在函数中,int与int&的区别
int&:传引用
// passing parameters by reference
#include <iostream>
using namespace std;
void duplicate (int& a, int& b, int& c)
{
a*=2;
b*=2;
c*=2;
}
int main ()
{
int x=1, y=3, z=7;
duplicate (x, y, z);
cout << "x=" << x << ", y=" << y << ", z=" << z;
return 0;
}
x=2, y=6, z=14
int& a
可以理解为:因为&
为取地址符号,所以a
为一个值。
int* a
可以理解为:因为*
为取值符号,所以a
为一个地址。
传引用,通过引用也是可以直接访问到实参和控制实参的,所以实际更改了x,y,z
的值。
int :传参数
#include <iostream>
using namespace std;
void duplicate (int a, int b, int c)
{
a*=2;
b*=2;
c*=2;
}
int main ()
{
int x=1, y=3, z=7;
duplicate (x, y, z);
cout << "x=" << x << ", y=" << y << ", z=" << z;
return 0;
}
x=1, y=3, z=7
相当于把x=1,y=3,z=7
这几个值复制一份传给函数,实际上并没有更改x,y,z
的值。
最后更新于
这有帮助吗?