【发布时间】:2013-10-17 06:03:31
【问题描述】:
我们有函数
int foo(int x)
{
return x;
}
int bar(int& x)
{
return x;
}
...
foo(5);//ok
bar(5);//error
我不明白,当我们调用foo(5) 时会发生什么?内存中刚刚分配了4个字节并传输到foo?还是在分配 4 个字节后将创建此内存单元的副本并传输到foo?
【问题讨论】:
-
问题和代码似乎指的是两个不同的东西。问题的答案是 4 字节分配已在编译时完成。当您调用该函数时, foo 的参数值会在调用时复制到其中。代码的问题已经解释过了。
标签: c++ function parameter-passing