//数组名传递给指针子参数
#include <stdio.h>
#define N 3
float average(float * g);
int main()
{
float grade[N]={60,75,80};
printf("学生的平均成绩是:%.3f\n",average(grade));
}
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;
}
-------------------------------------------------------------------------------------------------------------------------------------------------------
//数组名传递给数组名
#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;
}
----