为了账号安全,请及时绑定邮箱和手机立即绑定

引用的问题

int a=3;
int *p=&a;
和
int &p=a;
这两个有什么不同?


正在回答

4 回答

*p是指针  指向数据存放的内存空间的首地址
&p是引用  如课程里所说  变量的别名

0 回复 有任何疑惑可以回复我~

int &p = a;其实相当于int * const pr =& a,引用p扮演的角色相当于*const pr,引用在创建的同时也必须进行初始化,一旦与某个变量关联起来,就会一直效忠于它

0 回复 有任何疑惑可以回复我~

第一个是定义一个指向整型的指针P里面存放a的内容,第二个是a的别名的引用(即本身)p代表a的值,就像我们的小名一样,大家叫你什么你都知道别人是叫你的

0 回复 有任何疑惑可以回复我~

第1,2行。不是引用。*p=&a,这种说法是错误的。指针*p指向的是一个数值,而&a是一个地址。。。应该写成p=&a;则此时*p的值为a的值,即3.

第4,5行。是引用的知识。

0 回复 有任何疑惑可以回复我~
#1

格陵兰 提问者

诶错误的吗,我是照着视频抄下来的
2017-05-05 回复 有任何疑惑可以回复我~
#2

YiShen23 回复 格陵兰 提问者

我想错了,我潜意识里把a看成了一个数组
2017-05-06 回复 有任何疑惑可以回复我~
#3

格陵兰 提问者 回复 YiShen23

也就是说上面的写法其实是对的?
2017-05-18 回复 有任何疑惑可以回复我~
#4

YiShen23 回复 格陵兰 提问者

是的。你可以试着打印一下。但这两个是不同的。上一个是指针,下一个是引用。
2017-05-25 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

引用的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信