C语言--二维数组

91 阅读2分钟

二维数组的定义与初始化

二维数组是“行+列”结构的数组(也称为矩阵)

定义格式:

数据类型 数组名[常量表达式1][常量表达式2]; // 常量1=行数,常量2=列数 
int arr[3][4]    #表示34列,共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};     # 自动划分为23

 

3. 部分元素赋值:未赋值元素默认初始化为0

c

int arr2[2][3] = {1,2,3,4,5,6};       # 自动划分为23

注意 :若不按行用花括号包裹,元素会优先分配给前面的行

4. 省略行索引初始化:

行索引可省略(列索引不能省),编译器自动计算行数

int arr5[][3] = {1,2,3,4,5,6};        # 自动确定为23

二、二维数组元素的访问

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