下面的案例也實現了通用的二維數組處理函數,能處理任意的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;
}