以下是引用点灯工程师在2020-10-11 18:47:27的发言:
我是不懂char * const * 和 char const *的区别,另外 char * const和 char const * 是一样的吗?
char * const * 和 char const * 的区别很明显,即使不看 const,那前者是 char
**,后者是 char
*;
char * const * p 说的是 *p 不可被更改,p本身 及 **p 是可以被更改的;
char const * p 说的是 *p 不可被更改,p本身 是可以被更改的;
const 在C语言中表示“只读”(顺便说一下,C++中不是这样)
char const * p; 看const后面是什么?是 *p,那就表示 *p 是只读不可修改的;
const char * p; 看const后面是什么?是 *p,那就表示 *p 是只读不可修改的;所以 char const * p 和 char const * p 是等价的,没区别。
char * const p; 看const后面是什么?是 p,那就表示 p 是只读不可修改的;所以 char * const 和 char const * 是
不一样的。
char const * const p; 看const后面是什么?前一个后面是 *p,后一个后面是 p,那就表示 *p 和 p 都是只读不可修改的;