@cxm-2016
2016-08-29T18:06:01.000000Z
字数 415
阅读 2003
c++
no
int rats = 10;
int & rodents = rats;
其中&
符号在这里不是取址运算符,而是引用运算符.表示声明一个int
类型的变量rodents
,并且该变量与rats
共用一块内存空间.此时rats
与rodents
地址相同并且修改其中一个的值另一个也会有相应的变化.
参考
int rats = 101;
int & rodents = rats;
int * parts = &rats;
也就是说这里rodents
与*parts
的行为相同
注意:引用必须在声明时初始化,并且不能更改
注意下列三个方法的区别
void fun1(int a);
void fun2(int & a);
void fun3(int * a);
方法1只是值传递(int a = x)
方法2是引用传递,可以通过修改形参的值来间接修改实参的值(int & a = x)
方法3是引用传递,可以直接通过地址操作修改实参的值(int * a = &x)