C++ 数组存储相同类型元素的固定大小的顺序集合。数组用于存储数据集合,但通常更实用的是将数组视为相同类型的变量集合。
与其声明单个变量,例如 number0, number1, ..., 和 number99,不如声明一个名为 numbers 的数组变量,并使用 numbers[0], numbers[1], ..., numbers[99] 来表示单个变量。数组中的特定元素通过索引来访问。
所有数组都由连续的内存位置组成。最低地址对应于第一个元素,最高地址对应于最后一个元素。
声明数组
要在 C++ 中声明数组,程序员需要指定元素的类型以及数组所需的元素数量,如下所示:
type arrayName[arraySize];
这称为单一维度数组。arraySize 必须是一个大于零的整数常量,而 type 可以是任何有效的 C++ 数据类型。例如,要声明一个名为 balance 的双精度浮点类型 10 元素数组,可以使用以下语句:
double balance[10];
初始化数组
您可以逐一初始化 C++ 数组元素,或者使用单个语句如下:
double balance[5] = {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 ];
for ( int i = 0; i < 10; i++ ) {
n[ i ] = 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 |
多维数组 |
2 |
指向数组的指针 |
3 |
向函数传递数组 |
4 |
从函数返回数组 |