我在尝试理解C编程中指针的使用时遇到了困难。我不明白为什么这不编译:
void func(char**p);
void other_fun(void)
{
char arr[5][3];
func(arr);
}
答案 0 :(得分:3)
主要问题是数组不与指针相同。从语法上讲,您可以在函数中以非常类似的方式使用它们,但它们并不相同。因此,您在func(arr)
中传递的是char (*)[3]
类型的变量,或者是指向3 char
的数组的指针,而不是指向指针的指针,这是什么func
期待。