课程
/后端开发
/C++
/C++远征之离港篇
int const a=3; int *p=&a;
这里的语法为什么是错误的?这里的a是不能修改值的,但是后一句中,只是使p指向了a所在地址,这个怎么就错了呢,求问详细解答。谢谢
2015-09-14
源自:C++远征之离港篇 3-3
正在回答
你是可以通过指针来修改其所指的对象的。 所以如果允许p指向const int对象,就意味着你可以通过p来修改a,显然这是不合理的。
故语法要求const对象只能被“指向const对象的指针”所指。
将p声明为 const int *p; 就没有问题了,这个p是指向const对象的。
Kecho 提问者
举报
C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通