C++ 函数与数组

在本教程中,我们将通过示例学习如何在 C++ 中将一维和多维数组作为函数参数传递。

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

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

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

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

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

我们来看一个例子,

int total(int marks[5]) {
    // code
}

在这里,我们传递了一个名为 marksint 类型数组到函数 total() 。这个数组的大小是 5.

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

这个 C++ 程序用来显示包含了 5 个学生成绩的数组。其中,我们使用了数组作为参数传递到函数内部。

#include <iostream>
using namespace std;

void display(int m[5]) {
    cout << "Displaying marks: " << endl;

    // display array elements
    for (int i = 0; i < 5; ++i) {
        cout << "Student " << i + 1 << ": " << m[i] << endl;
    }
}

int main() {

    // declare and initialize an array
    int marks[5] = {88, 76, 90, 61, 69};

    // call display function
    // pass array as argument
    display(marks);

    return 0;
}

输出

Displaying marks:
Student 1: 88
Student 2: 76
Student 3: 90
Student 4: 61
Student 5: 69

这里,

  1. 当我们调用以数组作为参数的函数时,只使用数组的名称。

    display(marks);
    

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

  2. 但是,请注意 display() 函数的定义中的参数。

    void display(int m[5])
    

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

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

    C++ 以这种方式将数组传递给函数是为了节省内存和时间。

将多维数组传递给函数

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

示例 2:将多维数组传递给函数

这个 C++ 程序用来输出一个二位数组。其中,我们使用了二维数组作为参数传递到函数内部。

#include <iostream>
using namespace std;

// define a function
// pass a 2d array as a parameter
void display(int n[][2]) {
    cout << "Displaying Values: " << 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() {

    // initialize 2d array
    int num[3][2] = {
        {3, 4},
        {9, 5},
        {7, 1}
    };

    // call the function
    // pass a 2d array as an argument
    display(num);

    return 0;
}

输出

Displaying Values:
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++ 从函数返回数组

我们也可以从函数返回一个数组。但是,不返回实际数组。相反,在指针的帮助下返回数组第一个元素的地址。

我们将在接下来的教程中学习如何从函数返回数组。