const char *p;
先看p,根据优先级它和*结合,是指针,指向char类型,但是char前面有一个const修饰,
所以p所指向的内容为const类型不可修改。
char const *p;
由于没有const *的运算(const不可能修饰*),若出现const *的形式,则const实际上是修饰前面的,
所以char const *p和const char *p一样。
char * const p;
const修饰p,p是char类型的指针,并且p的值是不可变的,也就是p的指向不可变
总结来说,const
修饰离它近的右边的对象,但是不能修饰*
,当右边是*
时,const修饰其左边的对象。
char *const ar[];
ar是一个数组,const修饰这个数组,所以数组的内容不可变,数组里面存放的是`char`类型的地址值。