一、数组基础存储特性数组拥有三大核心特点分别是单一性、有序性与连续性。单一性指数组内所有元素的数据类型完全统一不能混合存放整型、字符型等不同类型数据有序性代表元素严格按照下标 0、1、2……n 的顺序依次排列连续性是数组在内存中开辟一整块连续的空间存储所有元素不会分散存放。数组越界是高频易错点分为两种场景。第一种是数组初始化时提供的初始化元素数量超过数组定义的容量第二种是访问元素时下标数值超出合法区间。数组越界会读写未知内存引发乱码、程序崩溃等问题编写代码时必须严格控制下标范围。二、数组基础练习题考点输入 10 个整数存入数组并求和核心思路是循环接收输入存入数组再遍历全部元素累加查找数组最大值假定首个元素为最大值依次遍历后续元素对比遇到更大数值则更新最大值查找数组最小值逻辑与找最大值一致仅对比条件更换为更小数值。三、数组排序算法详解排序分为升序、降序两种需求课堂重点讲解选择排序、冒泡排序两类基础排序二者时间复杂度均为 O (n²)空间复杂度 O (1)仅需额外一个临时变量完成交换不占用额外数组空间。选择排序核心思想固定当前待排序下标遍历该下标之后所有元素升序场景下找到区间内最小值与当前位置元素交换一轮循环确定一个位置的有序数值。稳定性判定标准排序前后数组中相等数字的相对顺序不改变即为稳定排序反之则不稳定。选择排序属于不稳定排序远距离交换元素容易打乱等值元素原有位置。冒泡排序核心思想相邻两个元素两两对比升序排序时若前数大于后数则交换每一轮遍历会把当前区间内最大数值移动到区间末尾固定。冒泡排序是稳定排序只有前值大于后值时才执行交换数值相等不会发生操作能够保留相同数字原本的先后顺序。插入排序基础排序算法之一核心逻辑是将数组分为有序区与无序区逐个取出无序区元素插入有序区对应位置完成整体排序。四、二分查找折半查找前置硬性条件待查找的数组序列必须提前完成有序排序无序数组无法使用二分查找。核心思路升序数组设置左右边界标记查找区间不断计算区间中间下标用中间元素和目标数值对比目标值更大则舍弃左半区间更新左边界目标值更小则舍弃右半区间更新右边界数值相等即查找成功。循环终止条件为左边界大于右边界代表区间内不存在目标数字。算法优势相比逐个遍历的顺序查找二分查找每次直接缩小一半查找范围时间复杂度为 O (logn)数据量越大效率优势越明显。五、字符型数组字符串底层字符数组主要作用是存储单个字符也可组合存储完整字符串是 C 语言实现字符串的底层载体。定义格式标准写法为 char 数组名 [常量数值]常量代表数组总字节容量例如 char str [32] 会分配 32 字节连续内存空间。访问元素依靠下标如 str [0] 获取数组第一个字符使用时同样需要规避下标越界。字符数组初始化规则完整字符初始化逐个书写单引号包裹的字符这种写法不会自动补充字符串结束符 \0不能直接当作字符串打印双引号字符串初始化使用双引号包裹文字赋值编译器会自动在末尾追加 \0 作为字符串结束标记省略数组长度时数组容量会自动在字符总数基础上多分配 1 字节存放 \0局部初始化定义大容量数组仅填写部分字符未初始化的内存位置默认填充 0等同于结束符 \0全零初始化直接赋值 {0} 或 {‘\0’}数组全部空间初始化为字符串结束符。易混淆 ASCII 知识点数字 0 对应 ASCII 码数值 0等价于字符串结束符 \0字符 0’ASCII 码为 48二者完全不同字符串 “0” 包含两个内容字符 ‘0’ 和末尾自动添加的 \0。存储特性字符数组同样遵循数组三大基础特性全部元素统一为 char 类型、按下标顺序有序排列、内存占用连续空间。所有完整字符串操作都依赖末尾的 \0 判断字符读取终止位置缺少结束符会造成读取乱码、内存越界。