课程
/后端开发
/C++
/C++远征之离港篇
int a=3; int *p=&a; 和 int &p=a; 这两个有什么不同?
2017-04-22
源自:C++远征之离港篇 2-2
正在回答
*p是指针 指向数据存放的内存空间的首地址 &p是引用 如课程里所说 变量的别名
int &p = a;其实相当于int * const pr =& a,引用p扮演的角色相当于*const pr,引用在创建的同时也必须进行初始化,一旦与某个变量关联起来,就会一直效忠于它
第一个是定义一个指向整型的指针P里面存放a的内容,第二个是a的别名的引用(即本身)p代表a的值,就像我们的小名一样,大家叫你什么你都知道别人是叫你的
第1,2行。不是引用。*p=&a,这种说法是错误的。指针*p指向的是一个数值,而&a是一个地址。。。应该写成p=&a;则此时*p的值为a的值,即3.
第4,5行。是引用的知识。
格陵兰 提问者
YiShen23 回复 格陵兰 提问者
格陵兰 提问者 回复 YiShen23
举报
C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通