c语言中数组名作为函数参数

发布网友 发布时间:2022-04-20 01:19

我来回答

3个回答

热心网友 时间:2023-09-29 21:21

要将数组长度作为一个参数传给average函数,不能在average函数内部通过int arrLen = sizeof(a) / 4;来计算数组长度。因为float average(float a[10])就相当于float average(float *a) ,所以sizeof(a)恒等于4,sizeof(a) / 4恒等于1。
应该这样:
float average(float a[10],int arrLen) {
float sumSco = 0;
for (int i = 0; i < arrLen; i++)
{
sumSco += a[i];
}
return sumSco / arrLen;
}

热心网友 时间:2023-09-29 21:22

因为你从主函数传过来之后,是给了a[10]啊,与arrlen无关啊,而且在调用函数时是会给局部变量重新分配内存,但这也只是说原先那个内存消失了,那么内存里面的值也会消失了,就会重新执行rrlen=sizeof(a)/4

热心网友 时间:2023-09-29 21:22

函数定义和声明的参数应该是:
int
oid_check(struct
snmp_seq
sp,
struct
rmc1207
*
ramp,
int
buffer_size);
函数调用:
flag=oid_check(sp,
ramp,
buffer_size);
-------------------------------------------------------------------------------
在这里,
ramp
是结构体数组的指针
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com