二维数组作为函数参数

4

如果二维数组的大小已知,如何将其作为函数参数传递?我需要帮助声明和定义函数。我想到的是这样的:

#include <stdio.h>
#define size 10
void function(int anarray[size][size]); //<- Is that correct?
...

void function(int anarray[][]) //<-Is this too?
{
}    

非常感谢您!
1个回答

6
void function1(int anarray[size][size]); // <- Is that correct?

是的,没错。void function1(int anarray[][size]); 也可以工作。
void function1(int anarray[][]) // <- Is this too?

不,这是编译器错误。当传递到函数中时,只有数组的第一个(最内部)维度会衰减为指针。

我可以这样说void function1(int anarray[N][N])吗?感谢您的快速回答。 - user2276872
@darkchampionz,你有没有读我的回答的第一行?我的意思是,“是的,没错”已经足够了,不是吗? - user529758
@darkchampionz 函数的声明和定义必须兼容。选择适合您的类型声明并始终使用它。 - user529758

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接