参考文章:https://www.bilibili.com/read/cv13541907/
对于指针变量P,引用变量Q,以及变量a=10;
赋值过程:
P=&a;
&Q=a;
P=&a:
将变量a的地址传给指针P。a的地址上存的值是10;P的地址上存值是a的地址;
*P:
指向的是存在指针P上的地址(a的地址)上的内容,即a的值10。指针P指向的是地址,或者说指针P中存的它所指向变量的地址。而要操作所指向地址中所存的数值(即a中所存的值10),需要在指针P前加 *。这略显麻烦,而引用就是将指针P从地址到加*这个过程进行了封装。
Q:
是引用变量,当&Q=a语句运行时,将变量a的地址传给引用变量Q,这和指针类似,P和Q中存的都是a的地址。而Q要操作a中的数值时,可以直接操作,如Q=15(等价于a=15,等价于*P=15);
所以引用变量和指针变量的相同点在于,二者存的都是所指向的变量的地址;而区别在于,指针需要在指标变量P前面加*才能操作所指向的变量数值;引用却可以直接操作,不需要加任何符号。
简单粗暴理解就是:
对指针而言:“P---*P---操作所指变量的值”;需要经历中间加*的过程才能操作变量;
对引用而言:“Q---*Q---Q---操作所指变量的值”;由于C++封装了加*这一过程,所以从用户角度来来看,相比于P,Q操作变量经历的过程更少,不用加*可以直接操作。但实际上,Q操作变量的过程相比于P是多一个步骤,只不过C++将Q+*=Q这一过程封装了。所以原本更繁琐的过程:“Q---*Q---Q---操作所指变量的值”就在用户角度便简化成了更精简的过程:“Q--操作所指变量的值”。
C++小白,如有错误,还请大佬多多指正!
标签:变量,C++,---,地址,引用,操作,指针 From: https://www.cnblogs.com/gomyj/p/17916290.html