课程
/后端开发
/C++
/C++远征之离港篇
const 修饰的是*p, *p是不可以变的,我能理解,但p是可变的,p赋予新的地址,*p的值不就变了吗?我这边理解是哪里出了偏差呀,求大神解答一下
2018-09-22
源自:C++远征之离港篇 3-1
正在回答
我的理解是这样的,const 修饰的是*p,只是指针所指的对象的值是不能修改的,不能用*p=表达式赋值修改,p赋予新的地址,const 修饰的是新*p,只要指针所指的新对象的值也不能修改,就可以通过成立,*p和新*p的值不一样没有关系。
const int *p,是指针所指的(对象的值是不能修改)
int *const p, 是(指针所指的对象)的值(不能修改)
const int *const p, 是指针所指的(对象的值是不能修改)且 是(指针所指的对象)的值(不能修改)
举报
C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通