2. char** const cpp1 = NULL;
char** const cpp1 = NULL;
cpp1 -> char* cp1;
cp1 -> char c1;
cpp1是一个常量指针,所以cpp1需要在定义的时候初始化,它指向一个char*型的指针cp1。
2. char* const* cpp2;
char* const* cpp2;
cpp2 -> char* const cp2;
const cp2 -> char c2;
cpp2指向一个char*型常量指针cp2,cp1和cp2类型一样,只差了一个const修饰符,所以cpp2和cpp1指向的类型是一样的,cpp2 = cpp1是合法的。
3. const char** cpp3;
const char** cpp3;
cpp3 -> const char* cp3;
cp3 -> const char c3;
cpp3指向一个const char*型指针cp3。
4. char const** cpp4;
char const** cpp4;
cpp4 -> char const* cp4;
cp4 -> char const c4
cpp4指向一个char const*型指针cp4,cp4和cp3指向的类型为char的常量,所以cpp4和cpp3实际上是同一个类型。
5. const* char* cpp5;
语法错误 const* 没有具体类型。