对于二级指针来说,不能将char** 类型转化为const char** 类型。
const char x = 31;
char y = 41;
char *q = &y;
&x的类型显然为 const char *, &q的类型是char **, 假设能将char **类型转化为 const char **, 那么可以另外定义一个变量:
const char** p = &q;
由于*p的类型是 const char *, 与&x的类型相同, 那么这样
*p = &x;
于是,即 q == &x,而q 的类型只是char*, 那么便可以通过 *p = 61; 来修改x的值。但是x 本身是const 类型的。
所以解决这个矛盾, 可以将 char ** 类型转化为 char* const * 类型。