1.指向const的指针:const int *p 或 int const *p
解释:p是一个指针,指向const int类型的常量;指针指向的内容为常量,因此不能改变*p的值,但指针p可以改变,指向不同的const int常量
const int a=2; const int b=3; const int *p=&a; *p=4; //error,p指向常量a,不能修改 p=&b; //ok,p只要指向const int类型即可
2.const指针:int *const p;
解释:p是一个指针,是指向int类型的const指针;指针p的值不能改变,但其指向的值可以改变
int a=2; int b=3; int *const p=&a; *p=4; //ok,p的内容可以改变 p=&b; //error,p是常指针,指针值不能修改
3.指向const 的 const指针:const int *const p 或 int const *const p
解释:p是一个const指针,p指向const int 类型的常量;指针值和指向的对象的值都不允许修改
int a=2; int b=3; const int *const p=&a; *p=4; //error,p指向常量 p=&b; //error,p是常指针