跟晓雅数码学单片机之二维数组(多维数组)作为函数参数传递
二维数组(多维数组)作为函数参数如何传递呢?这里以二维数组作为例子讲解,多维数组以此类推。
方法1:将二维数组依旧当作二维数组来处理
依据:我们知道二维数组中a[i]=*(a+i),由此得a[i]+j=*(a+i)+j。由于*(a+i)+j是二维数组a的i行j列元素的地址,所以,该元素的值等于*(*(a+i)+j)。
例1:
#include
void
PrintArrayMothod1(int test_array[3][3]) //形参依然以二维数组的形式声明
//可以省略行:void PrintArrayMothod1(int
test_array[][3])也是可以的,但列是绝对不能少的
{
int i,j;
int tmp;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
tmp=*(*(test_array+i)+j);
//得到第i行第j列的元素的值
printf("%d ",tmp);
if(0==((j+1)%3))
printf("\n");
}
}
int
main()
{
int TestArray[3][3]={ {1,2,