函数接受 int[][26] 类型的值,但是,我无法定义这种类型的变量。
void A(int abc[][26]);
我尝试过以下方法
int abc[][26] (can't compile)
int (*abc)[26] (segmentation fault)
我如何定义这样一个变量/
多谢
基本上你不知道。int abc[][26]
将采用以下形式的任何二维数组int[N][26]
.
当您使用数组作为函数参数时,数组衰减为指针 https://stackoverflow.com/questions/1461432/what-is-array-decaying。这意味着不需要最顶层的维度,因为它会衰减为数组中元素类型的指针。所以,如果你有
void foo(int[10])
你真正拥有的是
void foo(int*)
因为有多少元素并不重要。当你有
void foo(int[10][26])
//or
void foo(int[][26])
然后你得到
void foo(int(*)[26])
由于数组保存数组,我们得到一个指向数组的指针,因为指针指向多少个数组并不重要,我们只需要知道它指向一个int[26]
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)