二维数组的定义与初始化
二维数组是“行+列”结构的数组(也称为矩阵)
定义格式:
数据类型 数组名[常量表达式1][常量表达式2]; // 常量1=行数,常量2=列数
int arr[3][4] #表示3行4列,共12个元素
初始化方式有4种:
1. 按行赋值:每行元素用花括号包裹
int arr1[2][3] = {{1,2,3}, {4,5,6}}; # 第1行{1,2,3},第2行{4,5,6}
2. 按顺序赋值:所有元素写在一个花括号内,编译器自动分行列
int arr2[2][3] = {1,2,3,4,5,6}; # 自动划分为2行3列
3. 部分元素赋值:未赋值元素默认初始化为0
c
int arr2[2][3] = {1,2,3,4,5,6}; # 自动划分为2行3列
注意 :若不按行用花括号包裹,元素会优先分配给前面的行
4. 省略行索引初始化:
行索引可省略(列索引不能省),编译器自动计算行数
int arr5[][3] = {1,2,3,4,5,6}; # 自动确定为2行3列
二、二维数组元素的访问
1. 读取指定元素:通过“数组名[行索引][列索引]”访问(索引从0开始)
int a[3][4] = {12,3,4,13,45,0,100,98,72,660,2,88};
a[0][0]; # 取第1行第1列元素12
a[1][0]; # 取第2行第1列元素45
2. 遍历数组元素:用双层循环(外层遍历行,内层遍历列)
三、二维数组的内存分配
二维数组在内存中是连续的线性存储(按行的顺序依次存储),可视为“元素是一维数组的一维数组”。
int arr[2][3] = {{1,2,3}, {4,5,6}} # 在内存中存储为: 1 2 3 4 5 6