大虾数组能做形参吗占内存吗

百度题库旨在为考生提供高效的智能备考服务,全面覆盖中小学财会类、建筑工程、职业资格、医卫类、计算机类等领域。拥有优质丰富的学习资料和备考全阶段的高效服务,助您不断前行!
京ICP证号&&
京网文[3号&&
Copyright (C) 2018 Baidu记录点滴,分享沉淀
实参和其对应的形参各占用独立的存储单元?
关于函数形参的问题?
以下正确的说法是:在语言中()。
实参和其对应的形参各占用独立的存储单元
实参和与其对应的形参共占用一个存储单元
只有当实参和与其对应的形参同名时才共占用存储单元
形参是虚拟的,不占用存储单元
这道题老是记不住,特此发个博文。
实参和形参是各占独立存储空间,函数调用过程中,实参向形参拷贝复制值。实参是个变量,形参也是个变量。
如果占用同一片空间的话,编译时候就不存在实参形参类型不匹配的报错
参数传递中,形参值的改变不影响实参的值。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!实参和形参都占用内存么?_百度知道
实参和形参都占用内存么?
我有更好的答案
实参 再编译是分配内存。程序结束内存消失。形参 为 运行到函数时分配内存,,函数结束,内存消失。
来自:求助得到的回答
采纳率:65%
形参是肯定的。实参的话,如果把寄存器也看作内存的一部分的话,实参也占用内存。
为您推荐:
其他类似问题
占用内存的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。您是不是在找:
买家还在看:
当前位置:
关注行业资讯
大虾 冻虾 40-50 虾
&120 - &130
detail3e达人选购¥65.00¥23.00¥1.70¥1.20¥300.00
detail3e周边优质供应商海南省琼海市重庆璧山县海南省琼海市北京海淀区
同参数产品
是否进口:
同参数产品
同参数产品
同参数产品
生长方式:
同参数产品
食品工艺:
同参数产品
包装方式:
同参数产品
储藏方法:
同参数产品
净重(规格):
同参数产品
慧聪网厂家北京京顺吉兴水产经营部为您提供大虾 冻虾 40-50 虾的详细产品价格、产品图片等产品介绍信息,您可以直接联系厂家获取大虾 冻虾 40-50 虾的具体资料,联系时请说明是在慧聪网看到的。
detail3e相关商品推荐¥65.00¥23.00¥1.70¥1.20¥300.00¥1390.00¥220.00¥300.00热门商品推荐 ¥65.00 ¥23.00 ¥1.70 ¥1.20 ¥300.00 ¥1390.00 ¥220.00 ¥300.00
detail3e店内热门商品¥100.00¥110.00¥200.00¥222.00
detail3e鲜活水产品相关资源鲜活水产品热门产品搜索更多&热门商机最新商机
提示:您在慧聪网上采购商品属于商业贸易行为。以上所展示的信息由卖家自行提供,内容的真实性、准确性和合法性由发布卖家负责,请意识到互联网交易中的风险是客观存在的。推荐使用,保障您的交易安全!
联系人:侯少雄 & 先生
010 ******
请供应商联系我
手机号不能为空
姓名不能为空
请供应商联系我
您对该公司的咨询信息已成功提交请注意接听供应商电话。
detail3e关于冻虾
您采购的产品:
请输入采购产品
您的手机号码:
请输入手机号码
*采购产品:
请输入采购产品
*采购数量/单位:
请输入采购数量
请选择单位
*采购截止日期:
请输入正确的手机号码
请输入验证码
*短信验证码:
<input id="valid_Code1" maxlength="6" placeholder="请输入验证码" name="VALIDCODE" class="codeInput" onkeyup="this.value=this.value.replace(/\D/g,'')" onkeypress="if(event.keyCode
57) event.returnValue =" type="text">
免费获取验证码
为了安全,请输入验证码,我们将优先处理您的需求!
请输入验证码
发送成功!
慧聪已收到您的需求,我们会尽快通知卖家联系您,同时会派出采购专员1对1为您提供服务,请您耐心等待!
010 ******
联系人:侯少雄&
公司名称:北京京顺吉兴水产经营部
备注:点击关注按钮后才可自动收到卖家电话
请输入正确的手机号码
请输入验证码
*短信验证码:
免费获取验证码
为了安全,请输入验证码,我们将优先处理您的需求!
请输入验证码
按字母分类 :一道面试题:C里面的函数堆栈和C++的函数堆栈的区别-CSDN论坛
一道面试题:C里面的函数堆栈和C++的函数堆栈的区别
如题。大虾们指教~
是否该从函数调用约定考虑?
期待楼下:
指函数调用约定么??
对不起,不懂
原题就是那样,SAP的一道面试题,大家广泛讨论就好,不一定非要得出标准答案
要说调用约定,这几种调用约定C/C++都支持
C++多一个thiscall,专用于类
引用&5&楼&jackyjkchen&的回复:要说调用约定,这几种调用约定C/C++都支持
C++多一个thiscall,专用于类
那么说说&类函数和一般函数堆栈的区别
对了,C++相对于C89来说可以任意位置声明变量,这就说明了在C++中,栈指针寄存器你是不能动的,或者需要保存在某个位置。
引用&6&楼&yuklufufei&的回复:引用&5&楼&jackyjkchen&的回复:
要说调用约定,这几种调用约定C/C++都支持
C++多一个thiscall,专用于类
那么说说&类函数和一般函数堆栈的区别
还真没什么区别,thiscall就是保存一个this指针(记得是存在ecx还是哪个寄存器里),函数内的堆栈使用和_stdcall一样
C89不是也能任意位置声明变量么?
只要多加一个大括号,形成一个新的作用域即可:
int&func(void)
引用&7&楼&jackyjkchen&的回复:对了,C++相对于C89来说可以任意位置声明变量,这就说明了在C++中,栈指针寄存器你是不能动的,或者需要保存在某个位置。
引用&9&楼&icemornings&的回复:C89不是也能任意位置声明变量么?
只要多加一个大括号,形成一个新的作用域即可:
C/C++&code
int&func(void)
&&&&int&a;
&&&&a&=&100;
&&&&&&&&int&b;
&&&&&&&&b&=&1000;
引用&7&楼&jackyjkchen&的回复:
对了,C++相对于C89来说可以任意位置声……
大括号作用域也就相当于一个新的函数作用域了,堆栈的使用和清理与调用一个新函数是一样的
一道面试题:C里面的函数堆栈和C++的函数堆栈的区别
----------------------------------------------
出这个题的人是傻的,又一个不知道抽象与实现之间关系的例子。
这条题改为“这个编译器的函数堆栈和那个编译器的函数堆栈的区别”更有现实意义。
实现本身并无标准,函数堆栈如何实现取决于编译器设计者的观念。不要说C和C++,即使是C本身或者C++本身不同的编译器之间也未必具有相同的实现。举个例来说,函数调用中的值传参的方法,可以由调用者产生一个临时对象,然后将形参的值传递改为对该临时对象的引用;当然也可以直接在被调函数的栈内部直接构建该值。这些行为取决于设计者如何取得平衡,并无一定的必然。
这个出题的,不知道在想啥,总感觉他用的名词和我所知的,不是一路的。
主要区别应该就是函数调用约定的问题
首先是函数参数压栈顺序,其次是压入堆栈的内容由谁来清除,调用者还是函数自己
这些开关用来告诉编译器产生什么样的汇编代码。
C/C++中各包含多种函数调用约定,调用约定主要影响的是参数入栈和函数实现时对栈数据进行清理与否等问题。
C中的调用约定有__cdecl,&__stdcall,&__fastcall,&naked,&__pascal。
C++中的调用约定有__cdecl,&__stdcall,&__fastcall,&naked,&__pascal,&__thiscall。
不知道这题考啥的。
c和c+函数堆栈基本一样,不同的地方是c++函数堆栈要支持异常机制。
引用&14&楼&demon__hunter&的回复:不知道这题考啥的。
c和c+函数堆栈基本一样,不同的地方是c++函数堆栈要支持异常机制。
是的,还看到一些资料上说&C++有些参数不用栈传递
引用&15&楼&yuklufufei&的回复:引用&14&楼&demon__hunter&的回复:
不知道这题考啥的。
c和c+函数堆栈基本一样,不同的地方是c++函数堆栈要支持异常机制。
是的,还看到一些资料上说&C++有些参数不用栈传递
_Fastcall调用约定c的参数也可以不用栈传递啊。
至于c++中this指针,vc是放入ecx,gcc是作为最后一个参数入栈。
这个跟堆栈木有啥大的关系。
在某楼看来世界上只有他一个明白人,其他人都是菜鸟,是哪楼自己清楚
很蛋疼,草,,那出题的人真会装。
做人要大气。
调用约定,并不是C/C++之间的区别。C/C++本身是无区别的,至于调用约定,是由编译器的支持程度来决定的。
顶多就是C++的成员函数调用的时候,一般的做法是要将this指针push到堆栈里面。
哥,请你说明白点,你这样说没有任何意义啊,告诉大家你的想法呗,你认为到底哪个是正确答案啊,为什么呢?
引用&17&楼&jackyjkchen&的回复:在某楼看来世界上只有他一个明白人,其他人都是菜鸟,是哪楼自己清楚
狗屎题目,IT面试圈目前已经变成说实话大冒险游戏
引用&10&楼&jackyjkchen&的回复:大括号作用域也就相当于一个新的函数作用域了,堆栈的使用和清理与调用一个新函数是一样的
不会吧,&什么编译器会这么蛋疼啊,&有根据么?
引用&17&楼&jackyjkchen&的回复:在某楼看来世界上只有他一个明白人,其他人都是菜鸟,是哪楼自己清楚
&&&&这...看来楼上有人,霸气外漏呀...哈哈.
以前看标准库,好像是没看到就C++标准库&有关于题目中提到的东东,还有就是函数堆栈,看起来这么别扭,如果是调用规则,楼上的牛牛们说了,说参数传递方式,C跟C++都是传值的,指针也是值的,
不知问什么?
所谓大公司的题目,可能就是这样操蛋,或许直接说:没有区别,&面试官会微笑着说:正确。
操蛋的题目……结了
路过,只知道__cdecl,&__stdcall
从汇编角度看c,c++生成的代码,在栈的使用上真的没有什么区别(不然的话,c++就难以做到从二进制上兼容c的lib了。)
从语法角度看,c++是强类型的,在栈上传递参数与c在栈上传递参数实现上是可以不同的。
就是说,有些实现上,c语言在栈上传递参数时是按机器字长的把数据入栈,在使用栈数据时转换数据为目标类型;而c++实现时,是把数据转换成目标类型,再按机器字长入栈,在使用的时候,直接按数据类型使用。
每日回帖可得分。
引用&30&楼&lisunlin0&的回复:从汇编角度看c,c++生成的代码,在栈的使用上真的没有什么区别(不然的话,c++就难以做到从二进制上兼容c的lib了。)
从语法角度看,c++是强类型的,在栈上传递参数与c在栈上传递参数实现上是可以不同的。
就是说,有些实现上,c语言在栈上传递参数时是按机器字长的把数据入栈,在使用栈数据时转换数据为目标类型;而c++实现时,是把数据转换成目标类型,再按机器字长入栈,在使用的时候,直接按数据类型……
C语言不也是强类型的吗?
C语言只用函数名来区分各个函数,所以函数不能重名的。C++是用函数名和参数类型及个数来区分的,除了函数名还可以以参数的不同来区分各个函数,因此C++的函数可以重载。我觉得就这样回答就可以了,没有必要回答的那么复杂。
两者应该没什么区别
题目什么意思啊?能不能问具体点?C++老鸟表示不知道,蛋疼。
再说,堆是堆,栈是栈,堆栈是卵蛋。
看看学习了。。。。
还是要回到汇编上,看看编译器是怎么实现的了。
就是多了个很特殊的thiscall吧,直接写寄存器的,不像其它调用都是用栈
引用&23&楼&adlay&的回复:引用&10&楼&jackyjkchen&的回复:
大括号作用域也就相当于一个新的函数作用域了,堆栈的使用和清理与调用一个新函数是一样的
不会吧,&什么编译器会这么蛋疼啊,&有根据么?
你的星星是咋来的?常识都不全
看不懂&&围观&学习下
直接学习C++的人会说堆是堆,栈是栈,这种人才蛋疼
从汇编、C、C++一路上来的会说这题目蛋疼,堆栈指针在CPU里头,跟语言无关,就是Java最下面也要用堆栈指针实现。
这个...不懂啊,一般这么蛋疼题目&我只能走人了
c++本来就是c的扩展,按照这句话的思路来讲,c++的函数堆栈规则自然也使用于c
我估计出这题的人其实是想问c的函数堆栈和c++中对象机制中的函数堆栈有什么区别
区别如上:多了一个this
另外说一下,看了楼上几位的发言,或许应该纠正一下,c的默认调用约定和stdcall还真不一样,支持stdcall只是为了可以调用win&api,两者的最大区别是堆栈平衡由谁来完成,c/c++的默认调用约定由调用者完成,而stdcall则由被调用者完成
每天回帖即可获得10分可用分!
路过看看啊
每天回帖即可获得10分可用分!
是不是对象那个呢??
果断不了啊...
c++中如果是__thiscall的话this指针存在ECX寄存器中。。
也在研究这个问题!
基本上所有编程语言的堆栈都是类似的,这方面的技术多少年了都是这样。
不知道他在考什么?调用约定&or&堆栈申请内存不同&or&堆栈的管理?
关注。。。
每日回帖10分可用分
&#xe60a;回复}

我要回帖

更多关于 php 形参 内存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信