文章目录1. 二维数组的创建2. 二维数组的定义✨3. 不完全初始化arr1数组arr2数组完全初始化3. C99这种的变长数组⛷️ 重点变长数组不能初始化。加餐内容4. 课后思维题✨题目与源码源码讲解1. 二维数组的创建如果我们把一维数组作为数组的元素这时候就是二维数组 二维数组作为数组元素的数组被称为三维数组 二维数组以上的数组统称为多维数组。2. 二维数组的定义✨type arr_name[常量值1][常量值2]; 例如 int arr[3][5]; //表示3行5列3. 不完全初始化int arr1[3][5]{1,2};arr1数组int arr2[3][5]{0};arr2数组完全初始化int arr3[3][5]{1,2,3,4,5,2,3,4,5,6,3,4,5,6,7};3. C99这种的变长数组⛷️在C99标准之前C语言在创建数组的时候数组大小的指定只能使用常量、常量表达式或者如果我们初始化数据的话可以省略数组大小。例子 int nab; int arr[n];数组arr就是变长数组他的长度取决于变量n的值编译器没法事先确定只有运行时才能知道n是多少。 重点变长数组不能初始化。优势 ① 长度运行时确定 ② 按需分配内存 ③ 省去手动内存管理 ④ 代码更简洁 ⑤ 适合局部临时数据 劣势 变长数组也不是所有编译器都适配的 比如VS2022/2026上不能执行默认的是msvc编译器 虽然支持大部分C99的语法却没有支持C99中的变长数组的语言无法执行。加餐内容变长数组虽然灵活省事蛋可移植性差容易栈溢出、创建后不能改、无法检查分配失败、使用场景受限还有隐患因此只适合长度可控、规模较小、局部临时的场景跨平台或长度不可控时应改用动态内存分配或std::vector。4. 课后思维题✨题目与源码源码讲解