const char *p;他的意思是p指向的目标空间的内容不可变化
例如定义char c='A'; p=&c;则c的内容不可以变化.如c='B';等一些企图改变变量c的值的做法都不行.
然而p仍然是动态的,就是它还可以指向别的空间,被赋予新的地址值,只是被他指向的目标空间的内容不可变化,如上面的c值始终为'A',不可以更新,而一旦p指向别处,则c就可以更新了.
char * const p;是指针常量,它表明指针p的值不可变,但它指向目标的值可变.
例如char * const p; char c='A',m; p=&c;执行后,c='B'可以执行,但p=&m则被认为是非法.
参考文章:https://zhidao.baidu.com/question/590194351.html