一、int const *a
const修饰的是“*”,也就是说,指针指向的目标是常量,但是a不是常量
比如
int const * a;
int b =10, c = 23;
a = &b;
*a = 7;这个就不合法了,不能通过该指针修改指针指向的目标
但是a = &c; 这个合法,因为a不是常量,可以改变所指向的目标
二、int const *const a
前面的const 修饰的是“*”,规则同上
后面的const修饰的是a,此时a是常量,因此a在声明的时候就要初始化了,例如:
int b = 1, c = 8;
int const * const *a = &b;
a = &c; 这个不合法,因为a是常量
*a = 77;这个也不合法,因为指针指向的目标也不可改变