void fn(char **);
int main()
{
char s[10][10];
fn(s); // 编译器说无法从char[][]转换为char**
}
为什么?
这样声明:
void fn(char (*)[10]){};
int main()
{
char s[10][10];
fn(s);
}
改为:
char *s[10];即可编译通过,因为char**为指针的指针,char[][]为一个字符二维数组类型,s是一个指向首地址的指针.