C++ 传递数组给函数

返回上一级

如果想要在函数中传递一个一维数组作为参数,可以使用以下面三种方式来声明函数形式参数

  1. 形式参数是一个指针

    void myFunction(int *param){}
    
  2. 形式参数是一个已定义大小的数组

    void myFunction(int param[10]) {}
    
  3. 形式参数是一个未定义大小的数组

    void myFunction(int param[]){}
    

这三种声明方式的结果是一样的,因为每种方式都会告诉编译器将要接收一个整型指针

同样地,也可以传递一个多维数组作为形式参数

范例

我们先来定义一个求数组平均值的函数 avg() ,它把数组作为参数,同时还传递了另一个参数数组的长度

/**
 * file: main.cpp
 * author: 简单教程(www.twle.cn)
 *
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

#include <iostream>

double avg(int arr[], int size)
{
    int    i, sum = 0;       
    double avg;          

    for (i = 0; i < size; ++i)
    {
        sum += arr[i];
    }

    return double(sum) / size;
}

int main ()
{
   // 带有 5 个元素的整型数组
   int balance[5] = {128, 256, 512, 1024, 4090};
   double avg_of;

   // 传递一个指向数组的指针作为参数
   avg_of = avg( balance, 5 ) ;

   // 输出返回值
   std::cout << "平均值是:" << avg_of << std::endl; 

   return 0;
}

编译和运行以上范例,输出结果如下

平均值是:1202

可以看到,声明函数时,数组的长度是无关紧要的,C++ 不会对形式参数执行边界检查

返回上一级

C++ 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.