C实际上没有多维数组,但是有几种方法来模拟它们.将这些数组传递给函数的方式取决于用于模拟多维的方式:
1)使用数组。这只能在您的数组边界在编译时完全确定或编译器支持的情况下才能使用。VLA‘s:#define ROWS 4#define COLS 5void func(int array[ROWS][COLS]){
int i, j;
for (i=0; i
{
for (j=0; j
{
array[i][j] = i*j;
}
}}void func_vla(int rows, int cols, int array[rows][cols]){
int i, j;
for (i=0; i
{
for (j=0; j
{
array[i][j] = i*j;
}
}}int main(){
int x[ROWS][COLS];
func(x);
func_vla(ROWS, COLS, x);}
2)使用指向(动态分配)数组的指针数组。这主要是在运行时才知道数组边界时使用的。void func(int** array, int rows, int cols){
int i, j;
for (i=0; i
{
for (j=0; j
{
array[i][j] = i*j;
}
}}int main(){