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

int *&p = q;这条语句改成int * p = q;运行结果一样~~他们区别在哪里呢?

 int *&p = q 和int * p = q

的却别

正在回答

1 回答

你在题目中写的代码和图片中的不一样啊,以题中代码为例,区别就是:

int *&p 中 q 是引用类型,p 为 q 的引用。

int *p 中的 p 就是指针。

引用类型有点“别名”的意思,操作p就相当于操作q。所以在这代码中,这两种声明方式不影响最后结果。

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

那天空 提问者

我觉得区别就是int *&p = q;是同一个地址空间,int *p = q;是不同地址空间!
2015-10-30 回复 有任何疑惑可以回复我~
#2

onemoo 回复 那天空 提问者

一个进程的所有变量都是在同一个地址空间中的,我猜你是错误的使用了“地址空间”这个名词。 从C++语言角度来说,没有什么地址空间的概念(那是实现层面的东西)。指针和引用是两种不同的类型,功能也不相同。它们的区别就是前面所说的。
2015-11-01 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

int *&p = q;这条语句改成int * p = q;运行结果一样~~他们区别在哪里呢?

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