指针变量跟数组名做函数参数一直以来捋不清,今天练习了一些,小有体会,备案
1.首先,数组元素作为函数的时候就相当于普通变量,只需要在调用函数的时候将数组元素复制一份传给形参
2.数组名作为函数参数实际上是将数组首元素的地址传给形参数组名,所以形参首元素与实参首元素的地址是一样的,他们共同一个占同一个存储单元。
所以在定义了子函数之后:float average(float arr[]),
在调用的时候注意要传入数组名而不是数组元素---->a=average(score),而不是a=average(score[])
(arr[]这里相当于一个地址,也可以所以用指针变量表示float *arr)
ps:定义形参函数的时候不用声明数组的大小,在这里不起作用,编译系统不检查
例子:输入三个成绩,输出平均值
3.以上解决有确定长度数组的问题,以下解决没有确定长度的数组的问题
如何用一个函数求两个不同长度的数组的平均值问题
答:定义average函数时不必指定数组的长度,只需要在形参表上增加一个整型变量i,从主函数中将数组的实际长度分别从实参传给形参i,同时这个i用来在averarg函数中控制循环的次数。