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

p=&y后,*p为y的值,那么x会更新为5么?

p=&y后,*p为y的值,那么x会更新为5么?

正在回答

2 回答

p是指针,且不是const指针,也就是说你可以更改p的指向,让p指向其他int变量

x和y是两个不相关的变量,一开始时p是指向x的。

p=&y;  这一语句你让p指向y这个变量,那么再*p得到就是y,与x完全没有关系了。


C++是一门强类型的语言,变量的所有行为都与它的类型有关。p的类型声明为 int const *p ,这里的const修饰的是前面的int,也就是说,p所指的对象是const int的,那么*p得到的对象的类型也被当作是const int的,所以才不能被修改。这与p到底指向什么无关,这样的行为只与p自己的类型有关。

“但可以通过改变p来改变*p” *p始终是不可修改的。你所见到的前后两个*p值不同,完全是因为p在前后分别指向了不同的对象x和y,x和y的值本就不同而已。

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

骑着骆驼踩着雪 提问者

谢谢你 明白了
2015-12-16 回复 有任何疑惑可以回复我~

不会啊 你的p已经指向了Y  和你原先的x 已经没有了关系了啊

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

骑着骆驼踩着雪 提问者

const*p=&x,那是不是这么理解,这么锁定*p后,就不能通过直接赋值改变*p的值了,但可以通过改变p来改变*p?
2015-12-16 回复 有任何疑惑可以回复我~
#2

流浪_老 回复 骑着骆驼踩着雪 提问者

可以这么说 但是这里的改变 不是改变了原先*p指向的值 而是指向了其他的值
2015-12-17 回复 有任何疑惑可以回复我~
#3

骑着骆驼踩着雪 提问者

好的 谢谢你~
2015-12-19 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

p=&y后,*p为y的值,那么x会更新为5么?

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