指针在C语言编程中的应用
我在试图理解C编程中指针的用法时遇到了困难。我不明白这为什么不能编译:指针在C语言编程中的应用,c,pointers,C,Pointers,我在试图理解C编程中指针的用法时遇到了困难。我不明白这为什么不能编译: void func(char**p); void other_fun(void) { char arr[5][3]; func(arr); } 主要问题是数组与指针不同。在语法上,可以在函数中以非常相似的方式使用它们,但它们并不相同。因此,您在func(arr)中传递的是char(*)[3]类型的变量,或者是指向3个chars数组的指针,而不是指向指针的指针,这正是func所期望的。主要问题是数组与指针不同
void func(char**p);
void other_fun(void)
{
char arr[5][3];
func(arr);
}
主要问题是数组与指针不同。在语法上,可以在函数中以非常相似的方式使用它们,但它们并不相同。因此,您在
func(arr)
中传递的是char(*)[3]
类型的变量,或者是指向3个char
s数组的指针,而不是指向指针的指针,这正是func
所期望的。主要问题是数组与指针不同。在语法上,可以在函数中以非常相似的方式使用它们,但它们并不相同。因此,您在func(arr)
中传递的是char(*)[3]
类型的变量,或者是指向3个char
s数组的指针,而不是指向指针的指针,这正是func
所期望的。主要问题是数组与指针不同。在语法上,可以在函数中以非常相似的方式使用它们,但它们并不相同。因此,您在func(arr)
中传递的是char(*)[3]
类型的变量,或者是指向3个char
s数组的指针,而不是指向指针的指针,这正是func
所期望的。主要问题是数组与指针不同。在语法上,可以在函数中以非常相似的方式使用它们,但它们并不相同。因此,您在func(arr)
中传递的是char(*)[3]
类型的变量,或者是指向3个char
s数组的指针,而不是指向指针的指针,这正是func
所期望的。什么“不起作用”?您需要提供更多信息。什么是func
?您只显示一个声明。arr
是一个数组,而不是指针。规则是,“T的N元素数组”衰减为“T的指针”arr
具有类型“字符char
的三元素数组的五元素数组”,因此在本例中,T
是“字符char
的三元素数组”。因此,arr
从char[5][3]
衰减到char(*)[3]
。所以您的func
原型需要是void func(char(*arr)[3])
。什么“不起作用”?您需要提供更多信息。什么是func
?您只显示一个声明。arr
是一个数组,而不是指针。规则是,“T的N元素数组”衰减为“T的指针”arr
具有类型“字符char
的三元素数组的五元素数组”,因此在本例中,T
是“字符char
的三元素数组”。因此,arr
从char[5][3]
衰减到char(*)[3]
。所以您的func
原型需要是void func(char(*arr)[3])
。什么“不起作用”?您需要提供更多信息。什么是func
?您只显示一个声明。arr
是一个数组,而不是指针。规则是,“T的N元素数组”衰减为“T的指针”arr
具有类型“字符char
的三元素数组的五元素数组”,因此在本例中,T
是“字符char
的三元素数组”。因此,arr
从char[5][3]
衰减到char(*)[3]
。所以您的func
原型需要是void func(char(*arr)[3])
。什么“不起作用”?您需要提供更多信息。什么是func
?您只显示一个声明。arr
是一个数组,而不是指针。规则是,“T的N元素数组”衰减为“T的指针”arr
具有类型“字符char
的三元素数组的五元素数组”,因此在本例中,T
是“字符char
的三元素数组”。因此,arr
从char[5][3]
衰减到char(*)[3]
。因此,您的func
原型需要是void func(char(*arr)[3])
。