const与指针
(一)、指向常量的指针
const int *ptr;//指向常量的指针,即指针为常量,即不需要给他赋初值
int a=3;
ptr=&a;//允许把非const指针对象地址赋值给const对象的指针
const int p=10;//定义一个常量对象p,对const对象地址的保存方法
const void * vp=&p;//定义一个指向常量的指针vp,必须使用const void*类型的指针保存const对象的地址。
//void *vp=&p;若保存const对象的指针是错误的,必须使用 const void *才管
/*总结:
(1)对于指向常量的指针,不能通过指针来修改对象的值。
(2)也不能使用void`*`指针保存const对象的地址,必须使用const void`*`类型的指针保存const对象的地址。
(3)允许把非const对象的地址赋值给const对象的指针,如果要修改指针所指向的对象值,必须通过其他方式修改,不能直接通过当前指针直接修改。*/
(二)、常指针
int a=2;
int *const b=&a;//定义个常指针,且必须进行赋初始值,且不能修改
int *t=&a;
*t=3;
cout<<*b<<endl;
(三)、指向常量的常指针
const int a=10;
const int *const p=&a;//指向常量的常指针,p是一个常指针,然后指向了一个int型的常对象