一、二维整型数组1. 二维数组定义格式类型说明符 数组名[行数][列数];示例int a[3][4]; // 存储12个int数据 float b[3][4]; // 存储12个float数据内存下标分布a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[1][2]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]2. 二维数组的访问格式数组名[行下标][列下标];行下标范围0 ~ 行数-1列下标范围0 ~ 列数-13. 二维数组的初始化1全部初始化int a[3][4] {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}}; int a[][4] {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}}; int a[3][4] {1,2,3,4,5,6,7,8,9,10,11,12}; int a[][4] {1,2,3,4,5,6,7,8,9,10,11,12};注意在二维数组有初始化值情况下可以省略行数不能省略列数。2局部初始化int a[3][4] {{1,2}, {5,6,7}, {9}}; int a[3][4] {1,2,3,4,5,6,7,8}; int a[][4] {1,2,3,4,5,6,7}; // 自动识别为2行4列规则未初始化数据按 0 存储。3全部初始化为 0int a[3][4] {0}; int a[][4] {0}; // 自动识别为1行4列4sizeof 计算行列int a[2][3] {{1, 2, 3}, {4, 5, 6}}; sizeof(a); // 总字节6*4 24 sizeof(a[0][0]); // 单个元素字节4 sizeof(a[0]); // 一行字节4*3 12 // 计算行数 sizeof(a)/sizeof(a[0]); // 结果2 // 计算列数 sizeof(a[0])/sizeof(a[0][0]); // 结果34. 二维数组的存储方式单一性数组内数据类型统一示例 int有序性先行后列顺序存放连续性内存空间连续 存储排布顺序a[0][0] → a[0][1] → a[0][2] → a[0][3] → a[1][0] → a[1][1] → a[1][2] → a[1][3] → a[2][0] → a[2][1] → a[2][2] → a[2][3]二、二维字符型数组一维字符数组保存一个字符串二维字符数组保存多个字符串1. 二维字符型数组定义char 数组名[行数][列数];示例char str[3][100]; // sizeof(str) → 3*100 300字节 // 可以存放hello world、how are you、xxxxxxx 三组字符串2. 二维字符型数组初始化char str[3][100] {0}; char str[3][100] {{hello}, {world}, {how}}; char str[3][100] {hello, world, how}; char str[3][100] {hello, world};3. 二维字符型数组输入输出输入示例char str[3][100] {0}; for (int i 0; i 3; i) { gets(str[i]); }输出示例for (int i 0; i 3; i) { puts(str[i]); //printf(%s\n, str[i]); }补充提示gets()函数 C11 标准已废弃仅作课堂学习参考正式开发建议替换。三、函数基础1. 函数定义格式返回值 函数名(形参表) { 函数体; }返回值支持 int、char 等基础类型、构造数据类型、void返回值函数最终运算结果void空类型函数执行完成不需要返回结果时使用函数名合法标识符建议见名知意例strcpystring copy、get_max_val ();形参表函数执行需要用到的条件书写形式数据类型 形参名, 数据类型 形参名, ...2. 函数的调用格式函数名(实参表);实参表传递给函数的具体数据常量、变量、表达式 调用规则实参个数和形参个数必须一致实参、形参数据类型一致或者互相兼容实参和形参名字可以相同也可以不相同函数不调用则不执行调用几次执行几次返回值规则有明确返回类型的函数必须使用return缺少 return 系统返回随机值void类型函数可以省略 return也可以单独写return;概念区分主调函数发起调用的函数典型main 函数被调函数被别人调用的函数四、知识点总结速记二维数组初始化可省行数不可省略列数未赋值元素默认 0二维数组内存连续先行后列依次存放char arr[N][M]N 代表字符串数量M 代表单个字符串最大长度函数模块化代码减少重复代码降低程序耦合性形参写在定义处实参写在调用处个数、类型必须匹配。