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

int const *p = &a

const 修饰的是*p, *p是不可以变的,我能理解,但p是可变的,p赋予新的地址,*p的值不就变了吗?我这边理解是哪里出了偏差呀,求大神解答一下

正在回答

1 回答

我的理解是这样的,const 修饰的是*p,只是指针所指的对象的值是不能修改的,不能用*p=表达式赋值修改,p赋予新的地址,const 修饰的是新*p,只要指针所指的新对象的值也不能修改,就可以通过成立,*p和新*p的值不一样没有关系。

const int *p,是指针所指的(对象的值是不能修改)

int *const p,  是(指针所指的对象)的值(不能修改)

const int *const p,  是指针所指的(对象的值是不能修改)且  是(指针所指的对象)的值(不能修改)


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

举报

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

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

进入课程

int const *p = &a

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