复合类型的声明符可以从右向左阅读 最右侧的是声明符是直接类型 左侧的声明符是复合类型依赖的基本类型
const int *p = &ci;
//*表示p是一个指针,const int表示指针指向的一个常量int
//p是可以被重新赋值的,但是p指向的int不能被改变
int *const p = &i;
//const表示p是一个常量,int *表示这是一个int指针类型的常量
//p不可以被重新赋值,但是p指向的int是可以被改变的
const int *const p = &ci;
//按以上逻辑可以推出
//p不可以被重新赋值,p指向的int也不能被改变