标签:bubuko 允许 img 使用 副本 -- 相同 alt 运算
引用是已定义的变量的别名(另一个名称)。如果将twain作为clement作为变量的引用,则可以交替使用twain和Clemente来表示该变量。
创建引用变量
int rats;
int & rodents = rats;
这里的&不是地址运算符,而是类型标识符的一部分。
上述引用声明允许 rats 与 rodents 互换——他们指向相同的值和内存单元。
引用与指针的比较
int rats = 101;
int & rodents = rats; //共用一个内存空间
int * prats = &rats;
这样,表达式 rodents 和 *prats 都可以和 rats 互换,
表达式&rodents 和 prats 都可以和 &rats互换。
指针与引用的差别:
如果引用声明后再赋值,如下
int rats = 100;
int & rodents = rats ;
int bunnies=50;
rodent = bunnies; //编译器不会报错,只是将他当作简单的赋值语句。
输出结果:rats = rodents = bunnies =50;
但是:rats与rodents还是原来的地址 bunnies指向另外一个地址 。
将引用用作函数参数
下面时三种传参方式的声明与调用的对比:
void swapr(int & a,int & b); //引用传递
void swapp(int * a,int * b); //指针传递
void swapv(int a,int b); //值传递
swapr(wallet1,wallet2); //引用传递
swapp(&wallet1,&wallet2); //指针传递
swapv(wallet1,wallet2); //值传递
值传递与引用传递代码的表现形式上基本相同 只有引用传递的声明时 类型符不同
指针传递传过去的是地址,函数中的操作也都是对地址进行。
标签:bubuko 允许 img 使用 副本 -- 相同 alt 运算
原文地址:https://www.cnblogs.com/gc612/p/9898594.html