资讯动态

C语言一维数组:别再把「储物柜」玩成俄罗斯套娃啦!

发布时间:2026/10/2 13:54:02 来源:尧图企业网站定制
学C语言最抓狂的瞬间为了存10个学生成绩硬是定义了score1到score10十个变量——代码写到手抽筋还被老师吐槽「你这代码是裹脚布吗」别急教你用一维数组轻松搞定就像学校的连号储物柜让数据整齐划一、管理有序。一、数组是个啥→ 一排连号储物柜官方定义相同类型元素的有序集合内存里占连续空间。翻译成人话数组就是一排长得一模一样的储物柜每个柜子只能放同一种东西比如全放int成绩或全放char名字柜子按「0号、1号、2号…」编号而且一个挨着一个站绝不插队比如你定义一个int arr[5]就相当于跟系统说「给我5个连在一起的int型储物柜谢谢」二、怎么造储物柜→ 创建与初始化1. 基础创建语法比如注意[]里必须是常量比如5、10不能写变量比如int n5; int arr[n];在老版本C里会报错别问问就是祖传规矩。2. 三种初始化方式给柜子放东西完全初始化每个柜子都塞满部分初始化只塞前几个剩下的默认空其实是0偷懒模式不写柜子数系统自己数三、怎么找柜子里的东西→ 下标与访问1. 下标规则重点C语言规定数组下标从0开始比如arr[10]有10个柜子编号是0~9没有10号柜要是你喊「arr[10]」系统会翻个白眼「哪来的10号我报警了啊」这就是「下标越界」程序直接崩。举个真实例子别问我为什么从0开始——问就是C语言祖师爷丹尼斯·里奇的「恶趣味」习惯就好。2. 批量访问柜子循环走起想打印所有柜子里的东西用for循环挨个喊号想给柜子塞东西用scanf往里面扔四、柜子在内存里咋站的→ 连续存储的秘密你以为柜子是散落在系统里的错它们是手拉手站成一排的连续空间比如int型数组每个柜子占4字节所以相邻柜子的「门牌号」内存地址差4输出会是这样arr[0] 844954664 arr[1] 844954668 // 比上一个多4 arr[2] 844954672 // 又多4 ...这就是为什么数组访问快——知道第一个柜子的地址就能直接算出任意柜子的位置比翻字典还快五、不用数柜子数→ sizeof帮你算长度有时候忘了数组有几个柜子别傻乎乎地数用sizeof直接算想知道柜子总数用总大小÷单个柜子大小太方便了数组长度调整后无需手动修改循环条件比如将arr[10]改为arr[20]时循环中的len会自动更新为20简直是懒人福音六、实战练手三个必刷题做完你就是数组管理大师1. 数组逆置把柜子里的东西倒过来放比如[1,2,3,4,5]→[5,4,3,2,1]思路很简单0号和最后一个换1号和倒数第二个换…2. 元素扩大2倍每个柜子里的数×2比如[1,2,3,4]→[2,4,6,8]遍历一遍乘2就行3. 二分查找猜数字游戏的终极版题目在升序数组里找某个数找到了打印下标找不到说「没找到」。比如你要找数字7别傻乎乎地从第一个数到最后一个效率低到爆学「猜数字」先猜中间的数大了就往左半区猜小了就往右半区猜每次砍一半避坑提示算中间下标别写mid(leftright)/2——万一left和right都是超大数加起来会爆int正确写法是完整代码总结一下划重点数组是同类型元素的连续集合下标从0开始用sizeof(arr)/sizeof(arr[0])算数组长度别数下标越界会崩程序喊柜子号前先看有没有二分查找只适用于有序数组无序的话别瞎用现在是不是觉得数组就是一排听话的小柜子赶紧去敲那三个题练手练完你就是宿舍里最会管储物柜的仔有问题评论区喊我咱们下期聊二维数组就是「储物柜墙」哦

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑