简单变量和数组作函数参数的区别
变量作主调函数参数和被调函数参数,形参和实参是占用不同的存储单元,只是复制一份,值是不会改变。
数组作主调函数参数和被调函数参数,形参和实参是占用相同的存储单元,都是指向同一个地址,值是会改变的。
举个平均数的例子说明下
#include <stdio.h>
#include <stdlib.h>
#define N 40 // 定义一个常量值
int Average(int score[],int n);//数组作为形参
void Getscore(int score[],int n);
int main()
{
int score[N],aver,n;
printf("请输入学生的人数: \n");
scanf("%d",&n);
Getscore(score, n);// 当数组作为实参的时候,只要写数组名即可
aver=Average(score, n);
printf("学生的平均数是%d\n",aver);
return 0;
}
void Getscore(int score[],int n)
{
printf("请输入分数");
for(int i=0;i<n;i++)
{
scanf("%d",&score[i]);
}
}
int Average(int score[],int n)
{
int sum=0, Aver=0;
for(int i=0;i<n;i++)
{
sum=sum+score[i];
}
Aver=sum/n;
return Aver;
}