-------------------------------------------------------------------------------------------------------------------------------------------------------
//数组名传递给数组名 #include <stdio.h> #define N 3 float average(float grade[N]); int main() { float grade[N]={60,75,80}; printf("学生的平均成绩是:%.3f\n",average(grade)); } float average(float grade[N]) { int i; // float ave,sum=0; for(i=0;i<N;i++) // sum+=grade[i]; return ave=sum/N; }-------------------------------------------------------------------------------------------------------------------------------------------------------
//指针传递给数组名 #include <stdio.h> #define N 3 float average(float grade[N]); int main() { float grade[N]={60,75,80}; float * a=grade; printf("学生的平均成绩是:%.3f\n",average(a)); } float average(float grade[N]) { int i; // float ave,sum=0; for(i=0;i<N;i++) // sum+=grade[i]; return ave=sum/N; } ------------------------------------------------------------------------------------------------------------------------------------------------------- //指针传递给指针子参数 #include <stdio.h> #define N 3 float average(float * g); int main() { float grade[N]={60,75,80}; float * a=grade; printf("学生的平均成绩是:%.3f\n",average(a)); } float average(float * g) { float *a=g; // float ave,sum=0; for(;g<a+N;g++) // sum+=*g; return ave=sum/N; } //指针传递给指针子参数 #include <stdio.h> #define N 3 float average(float * g); int main() { float grade[N]={60,75,80}; float * a=grade; printf("学生的平均成绩是:%.3f\n",average(a)); } float average(float * g) { float *a=g; //这句话很重要 float ave,sum=0; for(;g<a+N;g++) //原来a的地方用g代替会出错:因为随g自增,条件恒满足,程序陷入死循环 sum+=*g; return ave=sum/N; }