C++ 带参考参数的子函数:如何工作?
我最初展示的是a程序,它有一个子函数,带有非参考参数,如下所示:C++ 带参考参数的子函数:如何工作?,c++,C++,我最初展示的是a程序,它有一个子函数,带有非参考参数,如下所示: #include<iostream> using namespace std; int inc(int x) { x++; return x; } main() { n=3; inc(n); cout<<n; } 我认为: 当我们调用inc(n),之后可能是计算机将创建一个varint&m=n; m++;返回m最后它被擦除,但是n被n+1更改 我为什么要问?原因有二
#include<iostream>
using namespace std;
int inc(int x)
{
x++;
return x;
}
main()
{
n=3;
inc(n);
cout<<n;
}
我认为:
当我们调用inc(n)
,之后可能是计算机将创建一个varint&m=n
;
m++;返回m
最后它被擦除,但是n
被n+1
更改
我为什么要问?原因有二:
1) 我的朋友说:没有创造int&m
,function inc(int&x)
的作品,比如:n run in and out。
2) 如果存在int&m
为什么每个人总是说“inc(int&x)
fasterinc(intx)
”
我对这一点的理解正确吗?如果没有,你能告诉我为什么吗?从编译器的角度来看,引用离指针不远。所以在
int inc(int &x)
{
x++;
return x;
}
...
inc(n);
您只将引用(变量n
的地址)传递给函数,被调用者变量实际上会增加
鉴于
int inc(int x)
{
x++;
return x;
}
...
inc(n);
您按值传递,并且正在修改本地副本
int inc(int x)
{
x++;
return x;
}
...
inc(n);