const char *p,char const *p与 char * const p傻傻分不清

大耗子 2020年08月21日 45次浏览

口诀

  • 变量类型先去掉,const 的右边是什么,那么什么就不变。

解释

  • 比如const char *p的先去掉类型,那就是const *p,然后const的右边有*p,而p是一个指针,*p是指针的解引用,那就是该指针的解引用内容不变。

  • 在比如char* const p,const的右边是p,而p是什么?是一个指针,那说明这就是指针不变,也就是该指针指向的地址不能变化,只能赋初值。

  • 在比如const char* const p,那这就是解引用内容和指针指向的地址都不能变化,相当于上面两个例子结合。