概念
如果把一维数组作为数组的元素,这时候就是二维数组了。同理,以二维数组作为元素的数组称为三维数组。二维数组以上的数组被称为多维数组
二维数组可以看成一个行列式,我们在遍历二维数组的时候,采取的是行优先的方式

二维数组的创建
- 定义:类型名 数组名[行数][列数];
int a[3][5];
double b[4][5];
二维数组的本质就是一维数组的数组
例如:a[0]就是一个一维数组, 里面包含5个int元素
二维数组的初始化
//全部初始化
int a[2][3] = {{1,2,3},{4,5,6}};
//部分初始化,其他元素为0
int b[2][3] = {1,3,4};//只初始化了第一行的元素
//行内省略大括号,按行依次填充
int c[2][3] = {1, 2, 3, 4, 5, 6};
//数组在初始化的时候,可以省略行,但是不可以省略列
int arr5[][5] = {1,2,3};
int arr6[][5] = {1,2,3,4,5,6,7};
int arr7[][5] = {(1,2),(3,4),(5,6)};
二维数组的下标
当我们掌握了二维数组的创建和初始化,那我们应该如何使用二维数组呢?
与一维数组一样,二维数组的访问也是使用下标 的形式。二维数组是有行和列,只要锁定了行和列就能锁定数组唯一的元素。
C/C++ 规定,二维数组的行是从 0 开始的,列也是从 0 开始的
int arr[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};

访问数组的元素
我们可以通过行列下标去定位二维数组里面的元素(数组的下标是从0开始的)
- 格式:数组名[行下标][列下标]
例如:
int arr[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};
a[0][0] -> 1
a[1][3] -> 5
遍历二维数组
使用嵌套循环遍历所有的元素
二维数组和一维数组一样,想要把所有的元素都打印一遍,需要用到循环 ,唯一不一样的是二维数组比一维数组多一个循环用来打印列。
int a[2][3] = {{1,2,3},{4,5,6}};
for(int i = 0; i < 2; i++) //遍历行
{
for(int j = 0; j < 3; j++) //遍历列
{
printf("%d ", a[i][j]);
}
printf("\n");
}
const 常量
const关键字用于定义常量货指示变量的值不能被修改,声明数组时,常量可以作为数组长度
格式: const 数据类型 变量名 = 值
const int A = 100;
| 变量 | 常量 | |
| 定义 | 存储可以改变的值 | 存储不可以改变的值 |
| 值是否可以改变 | 是 | 否 |
| 声明方式 | 多种方式:int x = 5; | 使用关键字const,const int N = 100; |
| 修改值 | 可以在程序运行期间多次修改 | 一旦初始化后不能再修改 |
| 内存使用 | 根据需要分配和释放 | 通常在整个程序生命周期中占用内存 |
| 用途 | 储存需要动态变化的数据 | 储存固定不变的数据 |
| 示例声明 | int age = 18; | const double PI = 3.14 |








- 最新
- 最热
查看全部