用数组元素作函数实参可以向形参传递一个数组元素的值,有时希望在函数中处理整个数组的元素,此时可以用数组名作为函数实参,但是并不是将该数组中全部元素传递给所对应的形参。由于数组名代表数组的首地址,因此只是将数组的首元素的地址传递给所对应的形参,因此对应的形参应当是数组名或指针变量。
例:有十个学生成绩,用一个函数求全体学生的平均成绩
分析:
在主函数中定义一个实型数组score,将输入的10个学生成绩存放在数组中。average函数用来求学生的平均成绩。这样就需要把数组有关的信息传递给average函数。用数组名作为实参,把数组地址传给average函数,在该函数中对数组进行处理。
源码如下:
#include<stdio.h>
float average(float array[10]);
{
int i;
float aver,sum=array[0];
for(i=0;i<10;i++)
sum=sum+array[i];
aver = sum/10;
return (aver);
}
int main ()
{
float score[10],aver;
int i;
printf("please enter two scores:\n");
for(i=0;i<10;i++)
scanf("%f",&score[i]);
aver=average(score); //以数组名为实参调用average函数
printf("average score is %5.2f\n",aver);
return 0;
}