跳到主要内容

C++ 编程中向函数传递数组

提示
  1. 传递数组作为函数参数:在 C++ 中,可以将数组作为参数传递给函数。例如,定义一个函数 void display(int m[5]),其中 m[5] 是一个整数类型的一维数组参数。
  2. 一维数组传递示例:当调用一个函数并传递数组时,只使用数组的名称,例如 display(marks);。在函数内部,参数实际上转换为指向原始数组的指针。
  3. 多维数组传递:也可以将多维数组作为参数传递给函数。当定义接收二维数组的函数时,列的数量需要明确指定,而行的数量可以省略,例如 void display(int n[][2])

在 C++ 中,我们可以将数组作为参数传递给函数。同时,我们也可以从函数返回数组。

在了解将数组作为函数参数传递之前,请确保您了解 C++ 数组C++ 函数

将数组作为函数参数传递的语法

将数组传递给函数的语法是:

returnType functionName(dataType arrayName[arraySize]) {
// 代码
}

让我们看一个例子,

int total(int marks[5]) {
// 代码
}

这里,我们将 int 类型的数组名为 marks 的数组传递给了函数 total()。数组的大小是 5。

示例 1:将一维数组传递给函数

// C++ 程序显示 5 个学生的成绩

#include <iostream>
using namespace std;

// 声明函数以显示成绩
// 以一维数组作为参数
void display(int m[5]) {
cout << "显示成绩:" << endl;

// 显示数组元素
for (int i = 0; i < 5; ++i) {
cout << "学生 " << i + 1 << ":" << m[i] << endl;
}
}

int main() {

// 声明并初始化数组
int marks[5] = {88, 76, 90, 61, 69};

// 调用 display 函数
// 将数组作为参数传递
display(marks);

return 0;
}

输出

显示成绩:
学生 188
学生 276
学生 390
学生 461
学生 569

这里,

  1. 当我们通过将数组作为参数传递给函数时,只需要使用数组的名称。
display(marks);

这里,参数 marks 代表数组 marks[5] 的第一个元素的内存地址。

  1. 但是,请注意 display() 函数的参数。
void display(int m[5])

这里,我们在函数参数中使用了数组的完整声明,包括方括号 []

  1. 函数参数 int m[5] 转换为 int* m;。这指向由 marks 数组指向的相同地址。这意味着当我们在函数体中操作 m[5] 时,实际上是在操作原始数组 marks。

    C++ 以这种方式处理将数组传递给函数,以节省内存和时间。

将多维数组传递给函数

我们也可以将多维数组作为参数传递给函数。例如,

示例 2:向函数传递多维数组

// C++ 程序展示通过传递给函数来显示二维数组的元素

#include <iostream>
using namespace std;

// 定义一个函数
// 传递一个二维数组作为参数
void display(int n[][2]) {
cout << "显示值:" << endl;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 2; ++j) {
cout << "num[" << i << "][" << j << "]: " << n[i][j] << endl;
}
}
}

int main() {

// 初始化二维数组
int num[3][2] = {
{3, 4},
{9, 5},
{7, 1}
};

// 调用函数
// 将一个二维数组作为参数传递
display(num);

return 0;
}

输出

显示值:
num[0][0]: 3
num[0][1]: 4
num[1][0]: 9
num[1][1]: 5
num[2][0]: 7
num[2][1]: 1

在上述程序中,我们定义了一个名为 display() 的函数。该函数接受一个二维数组 int n[][2] 作为参数,并打印数组的元素。

在调用函数时,我们只将二维数组的名称作为函数参数 display(num) 传递。

注释:不强制要求指定数组的行数。然而,列数应始终被指定。这就是为什么我们使用 int n[][2]

我们也可以将超过 2 维的数组作为函数参数传递。

C++ 从函数返回数组

我们也可以从函数中返回数组。然而,实际上不是返回数组本身。相反,返回的是数组第一个元素的地址,借助于指针

我们将在未来的教程中学习关于从函数返回数组的内容。