C 语言从 0 入门(六)|一维数组详解 + 查找与排序实战|VS2022 精讲
大家好我是网域小星球。前面我们已经学会了变量、循环、分支但在实际编程里我们经常需要批量处理数据比如统计 10 个学生成绩、存储一组数字、记录多个端口号…… 只用变量会非常麻烦。这一篇我们学习数组它是 C 语言用来批量存储数据的最基础容器也是后续学习函数、指针、结构体的关键基础。本篇内容系统、案例经典全程适配 VS2022零基础也能直接跟着写、跟着运行。目录一、本章学习目标二、什么是数组三、一维数组的定义与初始化1. 定义格式四、数组的访问下标五、数组遍历用循环挨个访问七、经典案例 2查找指定数字八、经典案例 3冒泡排序入门必学九、数组常见坑新手必看十、本章核心总结下期预告一、本章学习目标学完本篇你将掌握数组的定义、本质与使用规则一维数组的初始化、赋值、遍历数组下标与越界问题经典案例数组求和、求最大值、查找数字简单排序冒泡排序入门VS2022 数组常见报错与调试二、什么是数组数组是一组相同类型变量的集合共用一个名字通过下标区分每一个元素。特点类型统一全是 int、全是 char 等内存连续一块连续的存储空间通过下标访问从0开始非常重要比如int score[5];表示一个可以存 5 个整数的数组。三、一维数组的定义与初始化1. 定义格式类型名 数组名[数组长度];示例int arr[5]; // 整型数组最多存 5 个 int char ch[10]; // 字符数组 double d[3]; // 浮点数组2. 初始化创建时赋值// 完全初始化 int arr[5] {10, 20, 30, 40, 50}; // 部分初始化未赋值的默认为 0 int brr[5] {1, 2}; // 省略长度由初始化值决定 int crr[] {1, 3, 5, 7, 9};四、数组的访问下标数组下标从0 开始第 1 个元素arr[0]第 2 个元素arr[1]……第 n 个元素arr[n-1]示例int arr[5] {10,20,30,40,50}; printf(%d\n, arr[0]); // 10 printf(%d\n, arr[3]); // 40五、数组遍历用循环挨个访问遍历 把数组里所有元素都看一遍。几乎都用for 循环。#define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h int main() { int arr[5] {10,20,30,40,50}; for (int i 0; i 5; i) { printf(arr[%d] %d\n, i, arr[i]); } return 0; }六、经典案例 1求数组最大值int main() { int arr[5] {12,45,7,89,23}; int max arr[0]; // 假设第一个是最大值 for (int i 1; i 5; i) { if (arr[i] max) { max arr[i]; } } printf(最大值是%d\n, max); return 0; }七、经典案例 2查找指定数字输入一个数字判断数组里有没有。int main() { int arr[5] {2,4,6,8,10}; int key, flag 0; printf(请输入要查找的数字); scanf(%d, key); for (int i 0; i 5; i) { if (arr[i] key) { flag 1; break; } } if (flag 1) printf(找到了\n); else printf(未找到\n); return 0; }八、经典案例 3冒泡排序入门必学把一组数字从小到大排序。思路两两比较大的往后 “冒”int main() { int arr[5] {3,1,4,2,5}; int n 5; // 外层排序轮数 for (int i 0; i n-1; i) { // 内层两两比较 for (int j 0; j n-1-i; j) { if (arr[j] arr[j1]) { int temp arr[j]; arr[j] arr[j1]; arr[j1] temp; } } } // 输出排序后 for (int i 0; i n; i) { printf(%d , arr[i]); } return 0; }运行结果1 2 3 4 5九、数组常见坑新手必看下标从 0 开始不是 1数组越界访问arr[10]但数组只有 5 个元素会崩溃或乱码数组不能整体赋值arr2 arr1;是错误的未初始化的局部数组值是随机垃圾值循环遍历必须严格控制下标范围十、本章核心总结数组 同类型数据的集合内存连续下标从 0 开始长度为 n 的数组最大下标是 n-1数组操作几乎都配合 for 循环高频题型遍历、求和、最值、查找、排序越界是数组最常见、最危险的错误下期预告C 语言从 0 入门七字符数组与字符串详解下一篇我们学习字符数组和字符串掌握scanf/gets/puts/strlen/strcmp等字符串处理函数实现姓名输入、密码判断、文本处理等实用程序继续 VS2022 实战精讲。