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

*p的值是怎么确定的,const*p使得*p是常量不能直接给*p赋值,为什么又可以通过地址改变

int const *p=&x;

p=&y

为什么*p=5




正在回答

4 回答

我理解int const *p=&x 相当于int const (*p)=&x,所以*p不可修改。但x不受约束可以修改,比如修改x为4之后,输出*p也为4,所以我认为这样使用const唯一的意义是禁止通过p指针修改其指向的内容。*p=5是通过其他途径修改了其指向内容的值。

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

*p=5后,x=5.

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

地址和地址中的值是不同的,就像是房间里的人和房间是一样的,*p存放的是值,如果用const修饰就不能改变其中的值,p中存放的是地址,如果用const修饰,就不能改变地址。

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

*p等于5之后,x打印出来又该等于什么

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

举报

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

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

进入课程

*p的值是怎么确定的,const*p使得*p是常量不能直接给*p赋值,为什么又可以通过地址改变

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