📚 二维数组定义 & 初始化大揭秘
二维数组的正确定义
数据类型 数组名[行长度][列长度]; // 定义格式
// 示例1:定义一个3行4列的整型二维数组(存放12个整数)
int score[3][4];
// 示例2:定义一个2行3列的字符型二维数组
char ch[2][3];
// 示例1:定义一个3行4列的整型二维数组(存放12个整数)
int score[3][4];
// 示例2:定义一个2行3列的字符型二维数组
char ch[2][3];
📌 数据类型
数组中所有元素的统一类型(int/char/float等)
📌 行/列长度
必须是常量,分别表示表格的「行数」和「列数」
📌 数组名
遵循C语言标识符规则,不能以数字开头
核心易错点:二维数组的列长度不能省略!行长度仅在初始化时可省略!
二维数组的四种初始化方式
✅ 完全初始化(按行赋值)
int arr[2][3] = {{1,2,3}, {4,5,6}};
// 外层大括号包行,内层大括号包列
// 外层大括号包行,内层大括号包列
| 1 | 2 | 3 |
| 4 | 5 | 6 |
🔸 部分初始化(未赋值补0)
int arr[2][3] = {{1,2}, {4}};
// 未赋值的元素默认是0
// 未赋值的元素默认是0
| 1 | 2 | 0 |
| 4 | 0 | 0 |
✨ 省略行长度(列不能省)
int arr[][3] = {{1,2}, {4,5}, {7}};
// 行长度由内层大括号个数决定(3行)
// 行长度由内层大括号个数决定(3行)
| 1 | 2 | 0 |
| 4 | 5 | 0 |
| 7 | 0 | 0 |
🔹 按元素顺序赋值
int arr[2][3] = {1,2,3,4,5,6};
// 按行优先顺序填充,不直观
// 按行优先顺序填充,不直观
| 1 | 2 | 3 |
| 4 | 5 | 6 |
实用技巧:按行赋值(加内层大括号)更直观,便于阅读和调试,推荐优先使用!
🔄 二维数组完整流程动画
1. 定义数组
指定类型、行长度、列长度
2. 分配二维空间
开辟行×列的连续内存表格
3. 初始化赋值
按行按列给元素赋初始值
4. 访问元素
通过行下标+列下标访问
| 1 | 2 | 3 |
| 4 | 5 | 6 |
💡 核心知识点 & 易错点总结
- 二维数组定义格式:数据类型 数组名[行常量][列常量];(列长度不可省略)
- 下标规则:行下标、列下标均从0开始,最大行下标=行长度-1,最大列下标=列长度-1
- 初始化时,省略行长度的条件:必须按行赋值(带内层大括号),行长度由内层大括号个数决定
- 部分初始化时,未赋值的元素默认是0(int数组)、'\0'(char数组)
- 二维数组本质:数组的数组(每一行都是一个一维数组)
- 常见错误:省略列长度、下标从1开始、行长度用变量定义
🎮 闯关小游戏(10关·每题10分)
准备好了吗?开始挑战二维数组10关,看看你能得多少分!