企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 在 C++ 编程中将数组传递给函数 > 原文: [https://www.programiz.com/cpp-programming/passing-arrays-function](https://www.programiz.com/cpp-programming/passing-arrays-function) #### 在本文中,您将学习将数组传递给 C++ 中的函数。 您将学习如何传递一维和多维数组。 [数组](/cpp-programming/arrays "C++ arrays")可以作为参数传递给[函数](/cpp-programming/function "C++ functions")。 考虑以下示例,将一维数组传递给函数: * * * ## 示例 1:将一维数组传递给函数 **C++ 程序,通过将一维数组传递给函数来显示 5 个学生的分数。** ```cpp #include <iostream> using namespace std; void display(int marks[5]); int main() { int marks[5] = {88, 76, 90, 61, 69}; display(marks); return 0; } void display(int m[5]) { cout << "Displaying marks: "<< endl; for (int i = 0; i < 5; ++i) { cout << "Student "<< i + 1 <<": "<< m[i] << endl; } } ``` **输出** ```cpp Displaying marks: Student 1: 88 Student 2: 76 Student 3: 90 Student 4: 61 Student 5: 69 ``` 将数组作为参数传递给函数时,仅将数组名称用作参数。 ```cpp display(marks); ``` 还要注意将数组作为参数而不是变量传递时的区别。 ```cpp void display(int m[5]); ``` 上面代码中的参数`marks`表示数组`marks[5]`的第一个元素的内存地址。 并且函数声明中的形式参数`int m[5]`转换为`int* m;`。 该指针指向由数组`marks`指向的相同地址。 这就是原因,尽管该功能是在用户定义的函数中以不同的数组名称`m[5]`进行操作的,但是原始数组`marks`仍在操作。 C++ 以这种方式处理将数组传递给函数以节省内存和时间。 * * * ## 将多维数组传递给函数 [多维数组](/cpp-programming/multidimensional-arrays "C++ Multidimensional Arrays")的传递方式与一维数组类似。 考虑以下示例,将二维数组传递给函数: ### 示例 2:将多维数组传递给函数 **C++ 程序,通过将二维数组的元素传递给函数来显示它。** ```cpp #include <iostream> using namespace std; void display(int n[3][2]); int main() { int num[3][2] = { {3, 4}, {9, 5}, {7, 1} }; display(num); return 0; } void display(int n[3][2]) { cout << "Displaying Values: " << endl; for(int i = 0; i < 3; ++i) { for(int j = 0; j < 2; ++j) { cout << n[i][j] << " "; } } } ``` **输出** ```cpp Displaying Values: 3 4 9 5 7 1 ``` 在上述程序中,多维数组`num`被传递给函数`display()`。 在`display()`函数内部,使用嵌套的`for`循环遍历数组`n(num)`。 该程序使用 2 [进行循环](/cpp-programming/for-loop "C++ for loop"),以遍历二维数组中的元素。 如果它是 3 维数组,则应将 3 用于循环。 最后,所有元素都被打印到屏幕上。 **注意**:维度大于 2 的多维数组可以以类似于二维数组的方式传递。