各类资料学习下载合集
https://pan.quark.cn/s/8c91ccb5a474
在 C 语言中,二维数组是处理表格或矩阵数据的强大工具。理解如何正确地初始化二维数组对于编写稳健的代码至关重要。与一维数组类似,二维数组也提供了多种初始化方式,但由于其“二维”的结构,存在一些需要特别注意的地方。
本文将深入探讨 C 语言二维数组的各种初始化方法,包括全初始化、部分初始化以及一些特殊的写法,并通过详细的代码示例和运行结果来帮助您彻底掌握这些知识。
1. 二维数组初始化的基本概念
二维数组的初始化可以看作是其内部包含的一维数组的初始化。你可以选择在定义二维数组的同时为其赋初值。基本的初始化语法使用花括号 {}
,与一维数组类似,但由于是二维,通常会使用嵌套的花括号来表示行和列。
基本语法:
类型 数组名[行数][列数] = {
{值1, 值2, ...}, {值A, 值B, ...}, ...};
其中,外层花括号 {}
包含所有行的初始化数据,内层花括号 {}
分别对应每一行的数据。
2. 二维数组的常见初始化方式
方式一:使用嵌套花括号完整初始化
这是最清晰、最直观的初始化方式,它明确地列出了每一行的数据。
#include <stdio.h>
#include <stddef.h>
int main() {
printf("--- 方式一: 嵌套花括号完整初始化 ---\n");
// 定义并初始化一个 3 行 4 列的二维数组
int matrix1[3][4] = {
{10, 11, 12, 13}, // 初始化第一行
{20, 21, 22, 23}, // 初始化第二行
{30, 31, 32, 33} // 初始化第三行
};
// 打印数组内容以验证初始化
size_t rows = 3;
size_t cols = 4;
printf("二维数组 matrix1 内容:\n");
for (size_t i = 0; i < rows; i++) {
for (size_t j = 0; j < cols; j++) {
printf("%4d ", matrix1[i][j]);
}
printf("\n");
}
return 0;
}
代码解释:
-
int matrix1[3][4]
定义了一个 3 行 4 列的整型二维数组。 -
= { {...}, {...}, {...}}
提供了初始值。外层的 {}
包含三组内层 {}
,分别对应数组的 3 行。 - 每组内层
{}
包含 4 个值,用于初始化对应行中的 4 个元素。
方式二:使用扁平化的花括号初始化
你也可以省略内层的花括号,或者只使用一个外层花括号来提供所有元素的初始值。C 语言会按照行优先的顺序将这些值填充到二维数