[C++]数组长度传递到子函数

在数组作为子函数的参数时,其数组长度并不会被传递。因为在子函数中的数组参数本身是一个指向输入数组首地址的指针。

解决办法是,同时传递数组的长度到子函数中。

e.g 某求数组中,所有数的平均值

#include<stdio.h>

#include<time.h>

int aver(int[],length)               //声明子函数

int main()

{

srand(time(0));

   int Array[10]{0};   int L = aver(Array,sizeof(Array)/sizeof(int);    //L为数组长度

for(int i=0;i<L;i++) {   Array[i] =rand()%100;        }          //为数组没一个元素赋随机值

   printf(“%d”,aver(Array,L));              //打印平均值

return 0;

}

int aver(int A[],int length)                          //定义子函数 for 循环做累加
{
    int m = 0;                                            
    for (int i = 0; i <length; i++)                  //因为 数组元素是从0开始的,所以是  小于
         m+=A[i];                                          //  而非 小于等于
    return m/length;                                   //累加除以长度 为平均值
}

    原文作者:Yoiami
    原文地址: https://blog.csdn.net/Yoiami/article/details/121630919
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞