数组

一维数组

数组的定义

数组是存放相同类型对象容器,数组中存放的对象没有名字,而是要通过其所在的位置(相当于下标 例:aa[位置/下标])访问。

数组的大小是固定的,不能随意改变数组的长度。

定义数组

数组的声明形如 a[d]a[d] ,其中,aa 是数组的名字,dd 是数组中元素的个数。在编译时,dd 应该是已知的,也就是说,dd 应该是一个整型常量表达式

unsigned int d1 = 41;
const int d2 = 41; // const 是定义常量的c++标志字
int arr1[d1];  // 错误:d1 不是常量表达式
int arr2[d2];  // 正确:arr2 是一个长度为 42 的数组

不能将一个数组直接赋值给另一个数组:

int a1[3];
int a2[3];
a2=a1;  // 错误
a1=a1;  // 错误

注意:

数组下标从 00 开始,也就是说,数组下标最大为 d1d-1 (a[0]a[0] ~ a[d1]a[d-1])

——————————————————————————————————————————————————

多维数组

数组的定义及定义数组

多维数组的实质是 「数组的数组」 ,即外层数组的元素是数组。

例:二维数组

二维数组需要两个维度来定义: 数组的长度和数组内元素的长度。

访问二维数组时需要写出两个索引

int arr[3][4];  // 一个长度为 3 的 int 数组,它的元素是「长度为的 4 的 int 数组」
arr[2][1] = 1;  // 访问二维数组

我们经常使用嵌套的 for 循环来处理二维数组

int arr[n][m];
for (int i = 1; i <= n; i++){
    for (int j = 1; j <= m; j++) cin >> arr[i][j];
}

一般的,定义几维的数组,就可以用几层嵌套循环来处理

同样地,你可以定义三维、四维,以及更高维的数组