最近我的大脑变得很模糊,我这辈子都记不起为什么会出现以下 C 代码:
char a[3][3] = { "123", "456", "789" };
char **b = a;
生成以下警告:
warning: initialization from incompatible pointer type
有人可以为我解释一下吗?
谢谢。
最佳答案
char (*b)[3] = a;
这将 b
声明为指向大小为 3 的 char 数组的指针。请注意,这与声明 的
作为 3 个字符指针的数组。char *b[3]
不同b
另请注意,char *b = a
是错误的,并且仍会发出与 char **b = a
相同的警告。
关于c - 如何在 C 中转换二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4711122/