c++里面函数的参数在内存中是怎么存储的?

c++里面函数的参数在内存中是怎么存储的?我最近发现一小问题!函数参数为引用的时候,可以将它与实参的地址联系在一起,这样一来他们两个就建立了一种关系,但是不为引用的时候那... c++里面函数的参数在内存中是怎么存储的?我最近发现一小问题!函数参数为引用的时候,可以将它与实参的地址联系在一起,这样一来他们两个就建立了一种关系,但是不为引用的时候那些参数都是在内存里面怎么工作的?例如int MAX(int x,int y)例如这个函数当给他们赋予实参的时候例如赋值为MAX(a,b);那么当执行到这里的时候应该执行语句就会跳转到MAX函数体里面执行吧!那么那个时候MAX函数里面的值应该就等于a,b的值了吧!那么x和y在执行的时候是在什么时候消失掉的??是在遇见return 这句,还是这段话,执行结束的时候就消失掉了? 展开
 我来答
匿名用户
2017-10-21
展开全部

就如你问题中提到的,当函数int MAX(int x,int y)被赋予实参时,如下面代码所示

int main()
{
  int a=3,b=4;
  MAX(3,4);
  return 0;
}

此时函数MAX接收到的是a和b的拷贝值,也就是说函数在堆里面开辟一个空间,这个空间保存着两个值,分别是3和4,函数接下来操作的数值都是这个堆空间上的数值,跟main函数里面的a和b无关,当函数执行完毕时(也就是return执行完)会回收空间,这时堆空间里面的3和4就会被处理掉

匿名用户
2013-10-18
展开全部
如果变量不多于三个(四个?)时,是使用寄存器传值的,进入到函数里面就是直接使用寄存器;如果超过四个,那就要借助堆栈(STACK),即调用函数前先把数值压栈,然后在函数里面把堆栈里的数据取到寄存器中运算,函数调用结束时,堆栈还原就自动把变量去掉了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-18
展开全部
建议你用VC吧汇编文件也编译出来看看汇编代码 这些变量是怎么处理的就可以理解了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式