C++ 传递数组给函数
如果想要在函数中传递一个一维数组作为参数,可以使用以下面三种方式来声明函数形式参数
-
形式参数是一个指针
void myFunction(int *param){}
-
形式参数是一个已定义大小的数组
void myFunction(int param[10]) {}
-
形式参数是一个未定义大小的数组
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++ 不会对形式参数执行边界检查