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

关于const的用法

int const a=3; int *p=&a;

这里的语法为什么是错误的?这里的a是不能修改值的,但是后一句中,只是使p指向了a所在地址,这个怎么就错了呢,求问详细解答。谢谢

正在回答

1 回答

你是可以通过指针来修改其所指的对象的。 所以如果允许p指向const int对象,就意味着你可以通过p来修改a,显然这是不合理的。

故语法要求const对象只能被“指向const对象的指针”所指。

将p声明为 const int *p; 就没有问题了,这个p是指向const对象的。

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

Kecho 提问者

非常感谢!
2015-09-14 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

关于const的用法

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