1、指向const对象的指针
如果指针指向const对象,C++要求指向const对象的指针也必须具有const特性:
const double _pi = 3.1415926;
const double *cptr = &_pi;
- 指针cptr本身不是const,也就是允许给cptr重新赋值指向另外一个const对象。
- 不能使用void*指针保存const对象的地址,而必须使用 const void*
- 允许把非const对象地址赋值给cptr(当然也就不能通过cptr来修改其值了)
2、const指针
const指针本身的值不能修改
int _number = 0;
int *const _ptr = &_number;
可以从右向左把上述语句读为:_ptr是指向int型对象的const指针
既然为const,_ptr在定义时初始化后就不能再指向其他对象了。
虽然_ptr是const,不过并没有说明指针指向的对象不能修改,该对象还是完全取决于其自身的属性。