const char *p; //从右向左读,p是一个指针,指向char型,指向的内容不能变
char const *p; //从右向左读,p是一个指针,指向const char型,也就是指向的内容不能变,和上面等价
char *const p; //从右向左读,p是一个const指针,指向char型,那么指针本身不能被改变,也就是不能指向别的地方了。
char const *p; //从右向左读,p是一个指针,指向const char型,也就是指向的内容不能变,和上面等价
char *const p; //从右向左读,p是一个const指针,指向char型,那么指针本身不能被改变,也就是不能指向别的地方了。
多好理解啊,记住一句话,“从右向左读”就行了!
只看*和const的位置:如果const在*的左边(即const char *或char const *)的话表示指针指向的值不能改变,但是指针可以改变,即指向常量的指针;
如果const在*的右边(即* const)的话表示指针是不可改变的,其指向的值可以改变,即常量指针。
注意: const char *const p;p和p的指向都不可变。