char*const*p和char**const p之间的区别

rfo*_*itz 3 c pointers

有人在接受采访时问道.就像从右到左阅读的想法一样,我可以解释

char *const *p declares p as pointer to constant pointer of character.
Run Code Online (Sandbox Code Playgroud)

char * *const p declares p as a constant pointer to character pointer. 
Run Code Online (Sandbox Code Playgroud)

但由于我没有得到这些的确切含义所以请验证它.

jxh*_*jxh 5

char * const *p表示指向的字符指针p无法更改.

char arr[] = "";
char *ptr = arr;
char * const *p = &ptr;
**p = '\0';             // ok
*p = 0;                 // error
p = 0;                  // ok
Run Code Online (Sandbox Code Playgroud)

char ** const p意味着p无法改变.

char arr[] = "";
char *ptr = arr;
char ** const p = &ptr;
**p = '\0';             // ok
p = 0;                  // error
*p = 0;                 // ok, ptr is now NULL
Run Code Online (Sandbox Code Playgroud)