const int *a 和 int const *a 是一样的。但是const int *a 和 int * const a 完全不同的。
const int * a 修饰的是 *a , 指 *a是常量,不能在赋值了。而 int * const a 中的const修饰的是a,指 a是常量不能在赋值了。
int i1=30;
int i2=40;
const int *pi =&i1;
pi=&i2; /*这里pi可以在任意时候重新赋值一个新的地址,因为const修饰的是*pi */
i2=80; /* 而这里不能用*pi=80来代替,因为*pi是常量*/
int i1=30;
int i2=40;
int *const pi =&i1;
/* pi=&i2;这里pi不能重新赋值一个新的地址,因为const修饰的是pi */
i1=80; /* 这里能用*pi=80来代替,因为*pi不是常量*/