二维数组
- 概念:一个
一维数组
的每个元素
又是一维数组
- 定义
// 元素类型 数组名 [一维数组个数][一维数组元素个数] 1. 先定义再完全初始化 char names[2][3]; names[0][0] = 'W'; names[0][1] = 'X'; names[0][2] = 'X'; names[1][0] = 'Q'; names[1][1] = 'T'; names[1][2] = 'T'; 2. 定义同时不完全初始化 char names[2][3] = { {'W', 'X'} }; 3. 定义同时完全初始化 char names[2][3] = { {'W', 'X', 'X'}, {'Q', 'T', 'T'} }; 注意: (1) 定义同时初始化,可以省略 {} char names[2][3] = { 'W', 'X', 'X', 'Q', 'T', 'T', }; (2) 定义同时初始化,可以省略 一维数组个数 char names[][3] = { 'W', 'X', 'X', 'Q', 'T', 'T', 'H', 'Y' };
- 操作
- 获取单个元素
// items[index][index]:通过 下标 访问元素 char names[2][3] = { {'W', 'X', 'X'}, {'Q', 'T', 'T'} };
- 遍历
int scores[3][5] = { {66, 88, 99, 100, 120}, {22, 33, 44, 55, 66}, {11, 22, 33, 44, 55} }; for(int i = 0; i < 3; i++) { for(int j = 0; j < 5; j++) { printf("scores[%i][%i] = %i\n", i, j, scores[i][j]); } };
- 获取单个元素
- 内存分配
- 地址:
charValues
==&charValues
==&charValues[0][0]
- 存储细节
内存分配.png1. 系统给二维数组分配 一块连续 的 存储空间 2. 数组名 代表数组的 首地址,从首地址位置,依次 存入每一行 3. 每一行存储方式,还是从 行首地址 位置,依次 存入元素 4. 每个元素占用 相同 的 字节数 5. 数组中元素之间的地址是 连续的
- 地址:
网友评论