C++ 数组
C++ 数组存储相同类型元素的固定大小的顺序集合。数组用于存储数据集合,但通常将数组视为相同类型的变量的集合更为实用。
与其声明单个变量(例如 number0、number1、... 和 number99),不如声明一个数组变量(例如 numbers),并使用 numbers[0]、numbers[1] 和 ... numbers[99] 来表示单个变量。数组中的特定元素通过索引访问。
所有数组都由连续的内存位置组成。最低地址对应第一个元素,最高地址对应最后一个元素。
声明数组
要在 C++ 中声明数组,程序员需要指定元素的类型以及数组所需的元素数量,如下所示:
type arrayName [ arraySize ];
这称为一维数组。arraySize 必须是大于零的整型常量,type 可以是任何有效的 C++ 数据类型。例如,要声明一个名为 balance 且类型为 double 的 10 个元素数组, 请使用以下语句 -
double balance[10];
初始化数组
您可以逐个初始化 C++ 数组元素,也可以使用单个语句初始化,如下所示 -
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
大括号 { } 之间的值的数量不能大于方括号 [ ] 之间声明的数组元素的数量。以下是对数组中单个元素赋值的示例 -
如果省略数组的大小,则会创建一个刚好够容纳初始化内容的数组。因此,如果您这样写 -
double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0};
您将创建与上一个示例完全相同的数组。
balance[4] = 50.0;
上述语句将数组中第 5 个元素赋值为 50.0。具有第 4 个索引的数组将是第 5 个元素,即最后一个元素,因为所有数组的第一个元素的索引都是 0,也称为基索引。以下是我们上面讨论的相同数组的图形表示 -

访问数组元素
通过索引数组名称来访问元素。方法是将元素的索引放在数组名称后的方括号中。例如 -
double salary = balance[9];
上述语句将从数组中取出第 10 个元素,并将其值赋给 salary 变量。下面是一个示例,它将使用上述三个概念:声明、赋值和访问数组 -
示例
在下面的示例中,我们声明一个数组,为该数组赋值,然后访问数组元素 -
#include <iostream> using namespace std; #include <iomanip> using std::setw; int main () { int n[ 10 ]; // n 是一个包含 10 个整数的数组 // 将数组 n 的元素初始化为 0 for ( int i = 0; i < 10; i++ ) { n[ i ] = i + 100; // set element at location i to i + 100 } cout << "Element" << setw( 13 ) << "Value" << endl; // 输出每个数组元素的值 for ( int j = 0; j < 10; j++ ) { cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl; } return 0; }
该程序使用setw()函数来格式化输出。当上述代码被编译并执行时,它会产生以下结果 -
输出
Element Value 0 100 1 101 2 102 3 103 4 104 5 105 6 106 7 107 8 108 9 109
获取数组长度
要获取数组的长度,可以使用 sizeof() 运算符,即用数组的大小除以数组元素的大小。
请考虑以下语法 -
length = sizeof(arr) / sizeof(arr[0]);
示例
在下面的示例中,我们定义一个数组并计算其长度 -
#include <iostream> using namespace std; int main() { int arr[] = {10, 20, 30, 40, 50}; int arr_length = sizeof(arr) / sizeof(arr[0]); cout << "Array's Length : " << arr_length; return 0; }
输出
Array's Length : 5
更改数组元素
您可以通过指定数组元素的索引并赋值来更改其值。
示例
在下面的示例中,我们将更改索引 2 处的值 -
#include <iostream> using namespace std; int main() { int arr[] = {10, 20, 30, 40, 50}; cout << "Before changing, element at index 2: " << arr[2] << endl; // 改变值 arr[2] = 108; cout << "After changing, element at index 2: " << arr[2] << endl; return 0; }
输出
Before changing, element at index 2: 30 After changing, element at index 2: 108
更多关于 C++ 数组的内容
数组对 C++ 至关重要,需要更多细节的介绍。以下是一些重要的概念,C++ 程序员应该清楚了解它们 -
序号 | 概念与描述 |
---|---|
1 | 多维数组
C++ 支持多维数组。多维数组最简单的形式是二维数组。 |
2 | 指向数组的指针
只需指定数组名称(无需索引)即可生成指向数组首元素的指针。 |
3 | 将数组传递给函数
只需指定数组名称(无需索引)即可将指向数组的指针传递给函数。 |
4 | 从函数返回数组
C++ 允许函数返回数组。 |