问题及代码:
数组定义
int a[3][4]={...};
函数调用
printf("%d", fun(a));
其他的方案
用二维数组,例:fun(int a[][N]);或:fun(int a[M][N]
指向二维数组元素的指针:例:fun(int *p);
用指向数组的指针变量,例:fun(int (*p)[N]);
用指针数组,例:fun(int *a[M]);或fun(int *a[]);
#include <stdio.h>
#include <stdlib.h>
int aver(int *p,int n);//指向数组元素的指针。
int search(int (*p)[4],int n);//指向4个元素的数组指针。
int main()
{
int score[3][4]= {{65,67,79,60},{80,87,90,81},{90,99,100,98}};
aver(*score,12);
search(score,2);
return 0;
}
int aver(int *p,int n)
{
int aver,sum=0;
int *p_end;
p_end=p+n-1;
for(; p<=p_end; p++)
{
sum=sum+(*p);
}
aver=sum/n;
printf("average=%4d\n",aver);
return 0;
}
int search(int (*p)[4],int n)
{
int i;
printf("NO.%d :\n",n);
for(i=0; i<4; i++)
{
printf("%4d",*(*(p+n)+i));
}
printf("\n");
return 0;
}