C语言中,多维数组名作函数参数
一、总结
多维数组元素可以作函数参数,与一维数组元素作函数参数类似。
特别需要注意的是,多维数组名作函数的实参和形参,在被调用函数中对形参数组定义时可以指定每一维的大小,也可以忽略第一维的大小说明。例如int a[5][10];或 int a[][10];
例如
#include <stdio.h>
int main()
{
int min_value(int array[][3],int n,int m); //此处的可以是array[5][3],也可以是array[][3]
int A[5][3]={{7,9,3},{2,-901,5},{8,6,33},{5,-100,90},{10,15,500}};
printf("Min value is %d\n",min_value(A,5,3));
return 0;
}
在第二维大小相同的情况下,形参数组的第1维可以与实参数组不同。
譬如:
实参数组为 float score[6][7];
形参数组可以定义为
float array[][7];
float array[1][7];
float array[2][7];
float array[9][7];
等等。
二.举例
1.问题: 有一个5*3的矩阵,求所有元素中的最小值
2.代码
// 有一个5*3的矩阵,求所有元素中的最小值
#include <stdio.h>
int main()
{
int min_value(int array[][3],int n,int m);
int A[5][3]={{7,9,3},{2,-901,5},{8,6,33},{5,-100,90},{10,15,500}};
printf("Min value is %d\n",min_value(A,5,3));
return 0;
}
// 子函数min_value
int min_value(int array[][3],int n,int m)
{
int i,j,min;
min=array[0][0];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(array[i][j]<min)
min=array[i][j];
return min;
}
3.运行结果