学嵌入式和C语言编程|第七天:循环嵌套、循环辅助语句与数组
前言今天继续 C 语言基础学习前面掌握了四种基础循环现在学习循环嵌套、break、continue、return这些循环辅助关键字之后进入数组章节。数组在嵌入式开发中使用频率极高保存传感器批量数据、串口接收缓冲区、表格参数全部都离不开数组是必须吃透的知识点。一、循环嵌套执行流程外层循环每执行1 次内层循环完整执行一整轮。举个简单理解外层循环走一步内层循环从头到尾跑完一遍。二、循环辅助语句关键字作用说明重点注意事项break循环断路语句跳出当前这一层循环多层循环嵌套的时候仅退出自己所在的那一层循环不会直接退出全部外层循环continue循环短路语句跳过本次循环剩余代码本次循环直接结束直接进入下一轮循环判断不会终止整个循环return跳出当前整个函数写在 main 主函数内执行 return整个程序直接结束运行小提示很多新手容易混淆break与continuebreak 是彻底离开循环continue 只是跳过这一遍循环还要继续跑。三、四大循环回顾补充 goto承接上一天学习内容完整汇总四种循环for 循环cfor(表达式1 ; 表达式2 ; 表达式3){语句(循环体);}表达式 1循环初始条件表达式 2循环执行条件为真执行循环体为假跳出表达式 3促使循环走向结束的条件for(;;)代表死循环三个表达式语法允许省略但逻辑条件不能丢括号后面禁止加分号。while 循环cwhile(表达式){循环体;}初始化写在 while 前面结束变化代码写在循环体内部while(1)死循环嵌入式 main 主函数最常用括号后不要加分号。do…while 循环cdo{循环体;}while(表达式);先执行循环体再做条件判断循环体最少执行 1 次while 末尾的分号不能漏掉。goto 实现循环ctag:业务代码;if(条件)goto tag;依靠自定义标签跳转实现循环不属于结构化循环适合快速跳出多层嵌套循环、异常出错处理规范只做局部使用禁止跨函数滥用 goto。四、数组定义数组用来保存多个相同数据类型的数据数组类型不能为void。口诀高内聚低耦合1、数组基础数组定义格式c类型说明符 数组名 [常量];int a[10];类型说明符基础数据类型决定数组里面存什么类型数据数组名数组的名字命名遵守标识符命名规则[常量]代表数组里面能够存放元素的总个数获取数组占用字节sizeof(a)数组元素访问格式数组名[下标]下标从0 开始数组 10 个元素下标范围0~9访问第 10 个元素写a[9][]里面常量、变量、表达式都可以运算结果必须是整数⚠️越界风险下标从 0 到元素个数‑1如果超过这个范围数组访问越界程序会发生未知错误。2、数组初始化数组名代表数组整体类型不能直接给数组名整体赋值只能初始化或者逐个元素赋值。全部初始化cint a[10]{1,2,3,4,5,6,7,8,9,0};所有元素全部给出初始值。局部初始化cint a[10]{1,2,3,4,5};只写一部分初始数据没有赋值的元素系统自动初始化为 0。全部初始化为 0cint a[10]{0};如果完全不初始化数组内存存放随机杂乱值。3、数组的存储性质连续性数组在内存中占用一段连续的内存空间。单一性数组内部全部元素数据类型完全一致。有序性数组元素按下标a[0] ~ a[n‑1]顺序依次存储。4、数组越界重点初始化数据数量 数组本身元素个数发生越界语法报错。访问数组元素[]里面下标超出合法访问范围发生数组越界编译器不一定报错但是程序运行结果不可预测嵌入式项目中数组越界是高频 bug 来源。五、今日学习总结循环嵌套记住规则外层跑一次内层完整跑一轮break退出当前层循环continue跳过本次循环return直接退出函数数组下标从 0 开始总个数 N下标最大是 N‑1数组越界是新手高频坑点数组局部初始化未赋值元素系统自动填 0不能对已经定义完成的数组整体直接赋值嵌入式开发数组多用于传感器缓存、串口接收缓冲区写代码时刻警惕下标越界。