C++ 数组2025年4月25日 | 阅读 12 分钟 在 C++ 中,`std::array` 是一个封装固定大小数组的容器。在 C++ 中,数组索引从 0 开始。C++ 数组只能存储固定数量的元素。 在 C++ 或任何其他编程语言中,一组存储在相邻内存位置的相关数据项被称为数组。数组的元素可以通过其索引进行任意访问。它们可用于存储任何类型的原始 数据类型 的集合,包括 int、float、double、char 等。C++ 中的数组还可以存储结构、指针和其他数据类型的派生数据类型,这是一个额外的功能。下面提供了数组在图中的表示。 ![]() 示例编译并运行输出 First element: 2 Second element: 5 在这里,我们将讨论数组的声明、初始化、访问以及更多内容。 数组声明在 C++ 中,数组的构建首先定义 数据类型,然后是数组的名称和大小,这两者都用方括号 `[]` 括起来。这种语法通常被称为数组下标运算符。 语法 它具有以下语法。 此声明创建了一个名为 `array_name` 的数组,它根据指定的大小可以容纳固定数量的元素。数组 `char`、`float` 或 `int` 的数据类型决定了它可以保存的值的类型。一旦声明,数组的大小就不能动态更改;它是固定的。 例如:`int arr[4];`
创建一个名为“**arr**”的数组,它可以存储五个整数。但是,当声明数组时,数组元素没有预定义值。除非直接初始化,否则它们包含垃圾值。 初始化 C++ 中的数组在声明数组后,除非为其元素分配了值,否则无法使用它。 数组可以通过两种典型方式进行初始化
1. 声明时初始化数组可以在声明时将值放在花括号 `{}` 中来初始化数组。值之间用逗号分隔。 示例 2. 声明后赋值也可以先声明数组,然后单独为每个索引赋值来初始化数组。 示例 访问 C++ 中的数组元素索引是访问数组中元素的过程,通过在数组名称后面跟上用方括号 `[]` 括起来的索引号。它允许直接检索或修改特定的数组元素。第一个元素是 0,然后是 1,依此类推。例如,表达式 `name_of_the_array[index]` 引用指定索引点的元素。 在人类计数中位于 n 位置的元素,在编程中实际上位于 n-1 位置,因为索引使用从零开始的编号。当访问超出数组有效范围的索引时,可能会导致数据检索不准确或程序崩溃,这会导致未定义行为。为了避免运行时错误,使用数组需要进行适当的边界检查。 ![]() 语法 它具有以下语法。 示例 让我们举一个例子来说明如何在 C++ 中访问数组元素。 示例编译并运行输出 Starting element at the index 0: 10 Middle element at the index 2: 30 Last element at the index 4: 50 Complete array elements: 10 20 30 40 50 说明 C++ 程序在声明时使用 `{10, 20, 30, 40, 50}` 这五个元素初始化了整数数组 `num_bers`。使用相应的索引检索并显示第一个元素 (`num_bers[0]`)、中间元素 (`num_bers[2]`) 和最后一个元素 (`num_bers[4]`)。 `for` 循环遍历数组,依次打印每个条目。`cout` 语句确保输出格式清晰,便于识别每个元素的位置。程序最终成功结束并返回 0,表示正常执行。 C++ 带有空元素的数组在 C++ 中,当数组声明为固定大小 n 时,它可以包含最多 n 个元素。但是,如果显式初始化的元素少于 n 个,则其余未初始化元素的行为取决于数组的存储类型。让我们看下面的例子。 例如 在这种情况下,尽管数组 `arr` 的容量为 5,但只有三个元素 3、6 和 9 被显式赋值。在这种情况下,如果数组是局部变量(自动存储),未初始化的数组元素将包含分配时内存中的垃圾值。 示例 让我们举一个例子来说明带有空元素的 C++ 数组。 示例编译并运行输出 Uninitialized array elements: arr[0]: -201085088 arr[1]: 32765 arr[2]: -1660869745 arr[3]: 29498 在 C++ 中从用户那里获取输入并将其存储在数组中由于数组是存储在连续内存位置的相同数据类型的元素集合,因此可以使用其索引检索数组的每个元素。在 C++ 中,在数组首先以固定大小形成后,通常使用循环从用户那里获取值。它允许数组存储用户输入的数组。 示例 让我们举一个 C++ 示例,说明如何从用户那里获取输入并将其存储在数组中。 示例编译并运行输出 Enter 5 values: Provide input for position 1: 36 Provide input for position 2: 48 Provide input for position 3: 24 Provide input for position 4: 17 Provide input for position 5: 55 Stored elements in the array are: Element at index 0: 36 Element at index 1: 48 Element at index 2: 24 Element at index 3: 17 Element at index 4: 55 说明 在此示例中,程序要求用户将五个值输入到具有预定大小 DATA_LIMIT (5) 的整数数组 `recordList` 中。之后,使用 `for` 循环将数据存储在数组中。 然后,在再次遍历数组后,显示存储的值及其对应的索引。该程序有效地演示了 C++ 中数组的存储、检索和用户输入处理。 使用 sizeof() 运算符查找 C++ 中数组的大小在 C++ 中,我们可以使用 `sizeof` 运算符来查找数组的大小。此运算符以字节为单位返回对象使用的总内存量。 在 C++ 中查找数组大小的步骤
示例 让我们举一个 C++ 示例,说明如何在 C++ 中使用 `sizeof()` 运算符查找数组的大小。 示例编译并运行输出 Total memory occupied by an array: 20 bytes The size of single element: 4 bytes The total number of elements in the array: 5 说明 在此示例中,使用 `sizeof()` 运算符来确定数组使用的内存总量和元素数量。首先,使用 `sizeof(arr[0])` 运算符获取单个元素的内存大小,并使用 `sizeof(arr)` 来确定数组使用的总内存。 它通过将总大小除以一个元素的大小来精确计算数组长度。最后,它通过显示数组长度、每个元素使用的内存以及总内存利用率,确保了一种有效的数组大小分析方法。 C++ 数组类型C++ 编程中主要有两种类型的数组
C++ 一维数组一维数组是在连续内存块中存储的相同数据类型元素的集合。它是最简单的数组类型之一,易于声明和实现。 语法 它具有以下语法: 让我们举一个例子来说明 C++ 中的一维数组。 示例编译并运行输出 Element at index 2: 25 Change element at index 1: 50 Sum of all elements: 122 C++ 数组示例:使用 foreach 循环遍历在 C++ 中,我们也可以使用 foreach 循环遍历数组元素。它一次返回一个数组元素。 示例编译并运行输出 10 20 30 40 50 C++ 中的多维数组多维数组是一种包含一个以上数组作为其元素的数组。它是一组项,其中每个元素都使用多个索引进行访问。 多维数组是一种包含一个以上数组作为其元素的数组。它是一组项,其中每个元素都使用多个索引进行访问。 语法 它具有以下语法: 这里,`a1`、`a2` 和 `an` 定义了每个数组的大小。 让我们举一个例子来说明 C++ 中的多维数组。 示例编译并运行输出 Matrix elements are: 4 3 2 6 1 5 9 7 8 如何显示数组元素的总和和平均值?在这里,我们以 C++ 中的一个示例来查找数组元素的总和和平均值。 示例编译并运行输出 The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333 如何显示数组元素?在这里,我们以 C++ 中的一个示例来显示数组元素。 示例编译并运行输出 The numbers are: 7 5 6 12 35 The numbers are: 7 5 6 12 35 C++ 数组的优点C++ 数组的几个优点如下 1. 代码优化 数组使我们能够将多个值存储在单个变量中,从而减少了对多个独立变量的需求。 2. 随机访问 可以通过索引访问数组元素,这使得元素检索非常快速。 3. 易于遍历数据 在 C++ 中,可以使用循环非常有效地遍历数组。 4. 易于操作数据 在 C++ 数组中,可以轻松地更新、插入或删除元素。 5. 易于排序数据 可以通过几种内置函数(如 `std::sort`、`qsort` 等)轻松地对数组进行排序。 C++ 数组的缺点C++ 数组的几个缺点如下 1. 固定大小 数组大小是固定的,这意味着一旦确定了大小,就无法对其进行修改。 2. 内存浪费 如果数组的大小很大但未完全利用,则会浪费内存。 3. 缺乏灵活性 数组大小是静态的,无法动态调整大小。当声明数组大小时,其大小在程序的整个生命周期内保持不变。 C++ 数组选择题1. 在 C++ 中应如何声明一个大小为 5 的整数数组?
答案:a) int arr[5]; 2. 如果数组被指定为 `int arr[10]`,那么其最后一个元素的索引是多少?
答案:a) 9 3. C++ 数组的元素是如何存储在内存中的?
答案:a) 连续地 4. 如果我们访问数组元素超出其边界,会发生什么?
答案:c) 未定义行为 5. 哪个循环最常用于遍历 C++ 数组?
答案:c) for 循环 下一个主题C++ 将数组传递给函数 |
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India