二维数组作为参数传递时,一般都会用以下的这两种方式:
#include <stdio.h> void average(float *p,int n); void search(float (*p)[4],int n); int main() { float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}}; average(*score,12); search(score,2); printf("**score is :%2.0f\n",**score) ; return 0; } void average(float *p,int n) { float *p_end; float sum=0,aver; p_end=p+n-1; for(;p<=p_end;p++) sum+=*p; aver=sum/n; printf("average is %5.2f\n",aver); } void search(float (*p)[4],int n) { int i; printf("The score of N0.%d student are:\n",n); for(i=0;i<4;i++) printf("%5.2f ",*(*(p+n)+i)); printf("\n"); }