下面的案例也实现了通用的二维数组处理函数,能处理任意的M行N列的数组。
在调用函数之前,先用指针数组存储每行的首元素地址,再将指针数组名当成二级指针传递给函数。
#include <stdio.h>
#include <stdlib.h>
void print(int **p,int m,int n)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",p[i][j]);
}
printf("\n");
}
}
int main()
{
int A[3][3]={3,2,1,6,5,4,8,7,9};
int m=3,n=3,i;
int *p[m];//指针数组
for(i=0;i<m;i++)
{
p[i]=A[i];//存储每行的首元素地址
}
print(p,m,n) ;
return 0;
}