数组名做参数
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
我们知道数组名是代表该数组的首地址,就想是指向数组第一个元素的指针,因此数组名也能当做参数。当数组名做参数时对应的函数参数也必须是数组名或者指针,且数组类型要相同。下面我们用数组名做参数来实现数字的平均值:
#include <stdio.h>
int aver(int[],int);
int main()
{
int num[5] = {10,20,30,40,50},ave,i;
ave=aver(num,sizeof(num)/sizeof(int));
printf("average score is %d\n",ave);
return 0;
}
int aver(int num[],int n)
{
int i, av=0,s=0;
for(i=0;i<n;i++)
s=s+num[i];
av=s/n;
return av;
}
上面的函数aver
就是用数组名作为参数,运行上面的程序,体会用数组名做参数。
上面的sizeof(num)/sizeof(int)
是计算int
型数组num的长度,还记得我们以前在计算char
型数组时就直接使用了sizeof
,为什么这里还要在除以sizeof(int)
呢?
这是因为char
型在计算机中只占1个字节,sizeof(char)
就是1,因此计算char
型数组就省略了除以的这一步。而int
型在计算机中占4个字节,所以计算int
型数组就必须除以sizeof(int)
。
在线练习
{$ activeFileHint $}