C++ 将数组传递给函数
C++ 不允许将整个数组作为参数传递给函数。但是,您可以通过指定数组名称(不带索引)来传递指向数组的指针。
如果要将一维数组作为函数的参数传递,则必须使用以下三种方式之一声明函数形式参数,这三种声明方法的结果相似,因为它们都告诉编译器将接收一个整型指针。
方式 1
将形式参数作为指针如下所示 -
void myFunction(int *param) {
.
.
.
}
方法 2
形式参数作为大小数组如下 -
void myFunction(int param[10]) {
.
.
.
}
方法 3
形式参数作为未确定大小的数组,如下所示 -
void myFunction(int param[]) {
.
.
.
}
现在,考虑以下函数,它将一个数组作为参数以及另一个参数,并根据传递的参数,返回通过数组传递的数字的平均值,如下所示 -
double getAverage(int arr[], int size) {
int i, sum = 0;
double avg;
for (i = 0; i < size; ++i) {
sum += arr[i];
}
avg = double(sum) / size;
return avg;
}
现在,让我们按如下方式调用上述函数 -
#include <iostream>
using namespace std;
// 函数声明:
double getAverage(int arr[], int size);
int main () {
// 一个包含 5 个元素的 int 数组。
int balance[5] = {1000, 2, 3, 17, 50};
double avg;
// 将指向数组的指针作为参数传递。
avg = getAverage(balance, 5) ;
// output the returned value
cout << "平均值为: " << avg << endl;
return 0;
}
当上述代码一起编译并执行时,它会产生以下结果 -
平均值为: 214.4
如您所见,就函数而言,数组的长度并不重要,因为 C++ 不对形式参数执行边界检查。

