
一、二维字符型数组1. 功能二维字符型数组主要用于存储和操作字符串数组。2. 定义char str[5][32];定义了一个包含5个字符串的数组每个字符串最大长度为31个字符加上结束符\0。3. 元素的访问str[0][2]访问单个字符元素char类型str[0]访问第一行字符数组char [32]类型4. 数组的初始化4.1 二维整型数组初始化示例int a[2][3] {1, 2, 3, 4, 5, 6}; int a[2][3] {{1, 2, 3}, {4, 5, 6}}; int a[2][3] {1, 2, 3, 4}; int a[2][3] {{1, 2}, {3}}; int a[2][3] {0}; int a[2][3] {{0}};int a[][3] {1, 2, 3, 4, 5, 6}; int a[][3] {1, 2, 3, 4}; int a[][3] {{1, 2}, {3}};4.2 二维字符数组初始化示例// 方式1逐个字符初始化 char str[5][32] { {h, e, l, l, o, \0}, {w, o, r, l, d, \0}, {h, o, w, \0}, {a, r, e, \0}, {y, o, u, \0} }; // 方式2字符串初始化带花括号 char str[5][32] { {hello}, {world}, {how}, {are}, {you} }; // 方式3字符串初始化简化 char str[5][32] {hello, world, how, are, you}; // 方式4全部初始化为0 char str[5][32] {0}; // 方式5省略第一维大小 char str[][32] {hello, world, how, are, you};二、函数1. 功能能够避免重复性代码可以让程序模块化2. 函数的三种形式2.1 函数的定义函数类型 函数名(数据类型1 形参1, 数据类型2 形参2, ...) { 函数体; return 返回值; }函数名与变量名要求保持一致形参形式参数用来展示函数对数据的处理方式函数类型函数运行结果的类型返回值类型与函数类型不一致时以函数类型为准函数类型如果不写默认为int类型如果想设置为void类型返回值必须将函数类型写成void返回值函数的运行结果2.2 函数的调用函数名(实参1, 实参2, ...);调用可以通过函数名加实参使用函数主调函数主动调用函数的函数称为主调函数被调函数被别人调用的函数称为被调函数传参主调函数调用被调函数会将实参的值传递给形参实参个数与形参个数必须一一对应如果实参与形参类型不匹配则将实参类型强制类型转换为形参类型再传参函数调用结果类型为函数类型函数调用结果的值为函数的返回值2.3 函数的声明如果被调函数在主调函数下方定义需要在主调函数上方声明被调函数如果被调函数在主调函数上方定义不需要声明被调函数3. 变量的作用域和生存周期3.1 变量的作用域能够使用变量的范围局部变量变量作用域在定义该变量最近的大括号内全局变量变量的作用域在本文件中均可使用3.2 变量的生存周期变量从被开辟空间到空间被回收的整个过程称为生存周期4. 变量的存储类型4.1 变量的定义存储类型 数据类型 变量名; int a; auto int a;4.2 存储类型自动型存储、局部变量默认auto将变量存放在栈区局部变量未经初始化为随机值执行到变量定义时为变量开辟空间执行到超过变量作用域范围被回收寄存器存储register将变量存放在CPU内部的寄存器中如果寄存器存满了等价于auto类型外部声明extern声明变量或者函数是外部存储的静态存储static将变量存放在静态区中未经初始化时值为0值编译代码时为变量分配空间执行时加载到数据区中程序结束回收空间限定变量/函数作用域只能在本文件中使用防止多文件编程时变量名或函数名冲突5. 函数传参5.1 值传递实参将值传递给形参形参拿到实参的值实现后续的操作