const int *p //常量指针
int a = 10;
int b = 20;
p = &a; //正确
p = &b; //正确
//可以修改常量指针指向的地址
*p = 20; //错误
//不可以修改常量指针指向的地址上的值
int * const p //指针常量
int a = 10;
int b = 20;
p = &a; //正确
p = &b; //错误
//不可以修改指针常量指向的地址
*p = 30; //正确
//可以修改指针指向的地址上的值
const int * const p //指向常量的常量指针
int a = 10;
int b = 20;
const int * const p = &a;
p = &b; //错误
*p = 30; //错误
//指向常量的常量指针的地址和值都不可以修改