二维数组作为参数传入函数
时间: 2024-04-09 14:20:58 浏览: 77
二维数组作为参数传入函数时,有几种常见的写法。
第一种写法是在函数参数声明中指明数组的列数,而数组的行数没有太大关系。这是因为函数调用时传递的是一个指针,它指向由行向量构成的一维数组。例如:
void array_print(int array)
第二种写法是省略第一维,只指明数组的列数。这种写法也是常见的,可以处理事先未知行数和列数的二维数组。例如:
void array_print(int array[])
第三种写法是使用指针形式的函数参数,将二维数组表示为堆上分配的一维数组。这种方式可以使用动态分配的方式来创建二维数组,并且在函数调用时可以成功传递。例如:
int **array;
array = (int **)malloc(M * sizeof(int *));
for(i=0; i<M; i++)
array[i] = (int *)malloc(N * sizeof(int));
第四种写法是使用一维数组表示二维数组,并将函数参数声明为指针形式。这种折中方案可以简化代码,也不容易出错。例如:
int func(int *array, int m, int n)
{
int i, j;
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
printf("\t%d", *(array + i*n + j));
printf("\n");
}
return 0;
}
这些是常见的二维数组作为参数传入函数的写法,你可以根据自己的需求选择合适的方式。
阅读全文