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