C++ 函数传递数组

2025 年 6 月 23 日 | 7 分钟阅读

在 C++ 中,数组是存储在连续内存位置并包含相同数据类型元素的集合。在 C++ 中,我们可以通过指针或引用将数组传递给函数。数组主要传递给函数以高效地对数组元素执行多项操作,这有助于维护模块化代码。

C++中,如果我们想重用数组逻辑,我们可以创建一个函数。我们只需提供数组名称即可在 C++ 中将数组传递给函数。

语法

它具有以下语法:

C++ 将数组传递给函数的示例:打印数组元素

让我们看一个 C++ 函数的示例,该函数打印数组元素。

示例

编译并运行

输出

Printing array elements:
10
20
30
40
50
Printing array elements:
5
15
25
35
45

在 C++ 中将数组传递给函数的方法

有几种方法可以用于在 C++ 中将数组传递给函数。一些主要方法如下

  • 将数组作为指针传递
  • 将数组作为引用传递
  • 作为大小数组传递
  • 作为无大小数组传递

将数组作为指针传递

在 C++ 中,将数组作为指针传递是向函数传递数组最常见和最有效的方法。在此方法中,我们可以传递初始数组元素的内存地址,这允许函数处理动态大小的数组。

语法

它具有以下语法:

在这个语法中,

  • functionname: 它表示函数的名称。
  • datatype: 它表示数据的类型。
  • *array_name: 它表示指针数组。

C++ 将数组作为指针传递的示例

让我们举一个例子来演示如何在 C++ 中将数组作为指针传递。

示例

编译并运行

输出

Array elements are: 5 10 15 20 25 30 

说明

在此示例中,我们在 display() 函数中使用了 int *arr,它接收 numbers 数组的基地址。之后,数组衰减为指针,因此 arr[i] 函数通过指针算术访问元素。最后,我们还传递了大小以指示元素的数量。

将数组作为引用传递

在 C++ 中,将数组作为引用传递给函数是一种重要的方法,主要用于保留数组的大小并避免指针衰减。它表示函数获取对原始数组的引用。它使函数能够访问和修改数组的实际元素并在编译时保留其大小详细信息。

语法

它具有以下语法:

C++ 将数组作为引用传递给函数的示例

让我们举一个例子来说明如何在 C++ 中将数组作为引用传递给函数。

示例

编译并运行

输出

Array elements are: 12 25 16 30 34 

说明

在此示例中,我们使用了 print_array() 函数,它通过引用接收一个包含 5 个整数的数组,这确保了保留的数组大小。之后,它使用 for 循环显示每个数组元素。最后,此方法防止指针衰减并使我们能够直接访问原始数组。

作为大小数组传递给函数

在 C++ 中,将大小数组传递给函数是向函数传递数组的常见方法。如果我们想将数组传递给函数,我们可以在函数的参数列表中指定其大小。这被称为传递大小数组。但是,当数组传递时,它会衰减为指针,这指定的大小有助于访问正确数量的元素。

语法

它具有以下语法:

C++ 作为大小数组传递给函数的示例

让我们举一个例子来演示如何在 C++ 中将大小数组传递给函数。

示例

编译并运行

输出

Elements in the array: 4 8 12 20 25 

说明

在此示例中,我们使用了 show() 函数,它接受一个固定大小的包含 5 个整数的数组,但主函数定义了一个包含 6 个元素的数组 nums。在 show() 函数中,循环尝试访问 6 个元素,这会导致未定义的行为,因为 arr[5] 超出了参数数组的声明大小。

作为无大小数组传递

在 C++ 中,作为无大小数组传递给函数类似于作为大小数组传递。我们可以通过在参数声明中避免大小来将无大小数组传递给函数。

语法

它具有以下语法:

C++ 作为无大小数组传递给函数的示例

让我们举一个例子来演示如何在 C++ 中将无大小数组传递给函数。

示例

编译并运行

输出

Unsized Array elements are: 7 14 21 28 35 

说明

在此示例中,我们使用了 show() 函数,它接受一个无大小数组 (int arr[]) 及其大小作为参数。之后,数组 nums 及其长度被传递,这允许函数遍历并显示每个元素。

C++ 将多维数组传递给函数的示例

让我们举一个例子来演示如何在 C++ 中将多维数组传递给函数。

示例

编译并运行

输出

Elements of Matrix are:
9 8 
7 6 
5 4 

说明

在此示例中,我们使用了 3×2 二维数组,该数组被传递给 printMatrix 函数。之后,函数接受一个固定大小的二维数组,并通过嵌套循环显示其所有元素。

C++ 将数组传递给函数常见问题解答

1) 我们可以在 C++ 中将数组传递给函数吗?

是的,我们可以在 C++ 中通过指针或引用将数组传递给函数。

2) 我们可以在 C++ 中在函数内更改数组元素吗?

是的,我们可以在函数内更改数组元素,但这会影响原始数组。

3) 我们可以在函数内部使用 sizeof() 函数来查找 C++ 中数组的大小吗?

不,sizeof() 函数只在调用函数中有效。

4) 我们如何在 C++ 中使用引用传递数组?

在 C++ 中,我们可以使用以下语法通过引用传递数组

5) 在 C++ 中将数组传递给函数的几种方法有哪些?

在 C++ 中,有几种方法可以将数组传递给函数,例如作为指针传递、作为引用传递、作为大小数组传递和作为无大小数组传递。


下一个主题C++ 多维数组