*二维数组作为形参时,必须写明数组有多少列:
void PrintArray(int a[][5])
*必须写明列数编译器才能根据下标算出元素的地址
a[i][j]的地址:
数组首地址+i乘N乘sizeof(a[0][0])+j乘sizeof(a[0][0])
(N是数组列数)形参数组的首地址就是实参数组的首地址
样例代码1.
#include <stdio.h>
void print(int a[][3]);
int main()
{
int a[2][3] = {1,2,3,4,5,6};
print(a);
return 0;
}
void print(int a[][3])
{
printf("%d\n",a[0][0]);
}
样例代码2.
#include <stdio.h>
void print(int array[],int len);
void funct(int a[][10]);
int main()
{
int b[4][10];
for(int i=0;i<4;i++)
for(int j=0;j<10;j++)
scanf("%d",&b[i][j]);
funct(b);
return 0;
}
void print(int array[],int len)
{
for(int i=0; i<len; i++)
printf("%d ",array[i]);//这个函数是一维数组的调用
putchar('\n');
}
void funct(int a[][10])//在funct函数中调用print函数
{
print(a[0],10);//第一行的十个数,相当于一个一维数组
print(a[1],10);
print(a[2],10);
print(a[3],10);
}