为什么你的 for 循环死活只跑了一次?VS2013 空语句陷阱深度解析
不知道你有没有遇到过这种让人抓狂的事情在 VS2013 里写了一个很简单的 for 循环想打印 1 到 10按下 F5 运行结果控制台上只孤零零地打印了一个数字就结束了#includestdio.hintmain(){inti;for(i1;i10;i);{printf(%d\n,i);}return0;}按 F5 运行VS2013 编译通过零报错零警告。控制台只输出了一个11然后程序就结束了。那一瞬间你是不是怀疑 VS2013 出了问题或者自己写的循环逻辑哪里不对明明 for 循环里写的是i 10为什么只跑了一次就罢工了而且打印出来的还是 11罪魁祸首for 括号后面那个隐形分号现在我们瞪大眼睛再看一遍上面那段代码。仔细看 for 那一行括号的最后面是不是紧跟着一个不起眼的分号对就是for (i 1; i 10; i);那个在右括号后面的分号。在 C 语言的语法里单独一个分号;是一条合法的语句叫作空语句null statement意思就是什么都不做。当你把分号紧贴在 for 的括号后面时编译器会认为你想表达的是“给我循环 10 次每次循环什么都不干。”于是for 循环老老实实地把i执行了 10 次从 1 自增到了 11。然后循环结束了。循环结束后程序继续往下走遇到了大括号里的printf(%d\n, i);。此时i的值已经是 11 了所以控制台上打印出了 11。关键点来了那个大括号{}根本不是 for 循环的循环体它只是一个独立的代码块跟在空语句后面和 for 循环没有任何关系这就是为什么你的循环只跑了一次——实际上循环跑了 10 次但大括号里的代码只执行了 1 次因为它不在循环里避坑方案知道了原因解决方案就很简单了——把 for 括号后面的分号删掉。#includestdio.hintmain(){inti;for(i1;i10;i){printf(%d\n,i);}return0;}这样编译运行控制台就会乖乖地打印出 1 到 10一切正常。如何在 VS2013 里发现这种隐形 BugVS2013 的编译器对这种情况默认不会报错也不会弹 warning。因为从语法上来说这真的没有错——空语句是标准语法。但有一个小技巧可以帮你提前发现这类问题在 VS2013 里如果你把鼠标悬停在for (...);那个分号上编译器有时候会用智能提示告诉你这里有一个空语句或null statement。养成写完代码后扫一眼 for、while、if 括号末尾有没有多余分号的好习惯能帮你省下大量的调试时间。还有一种更简单粗暴的防范方法养成把{直接写在 for 括号同一行末尾的习惯就像for (...) {这样这样你就没有机会在中间插一个分号了。今日思考题如果我写的是while (i 10);后面加个分号会发生什么按 F5 运行后程序会正常结束还是会直接卡死动手试一下把你的发现写在评论区标签#C语言#for循环#空语句#VS2013#避坑指南

相关新闻

律所私有化AI部署实战:可控性、知识图谱与三层过滤架构

律所私有化AI部署实战:可控性、知识图谱与三层过滤架构

1. 律所为什么突然开始自建AI系统?不是买SaaS就完事了吗? “我们上周刚拒掉一个报价80万/年的法律AI合同——不是嫌贵,是发现它连我们最常用的《民法典》第597条司法解释都标错了引用来源。” 这是上个月和某华东地区中型律所技术负责人吃午…

2026/7/16 16:15:14 阅读更多 →
无位置传感器电机控制技术解析与实现

无位置传感器电机控制技术解析与实现

1. 无位置传感器电机控制的核心挑战在传统电机控制系统中,位置传感器(如霍尔传感器、编码器)是获取转子位置信息的关键部件。但这类传感器不仅增加系统成本,还降低了可靠性——据统计,工业电机故障中约23%与位置传感器…

2026/7/16 16:13:12 阅读更多 →
Antigravity工作区架构与AI编程助手优化实践

Antigravity工作区架构与AI编程助手优化实践

1. Antigravity工作区架构解析在AI编程助手领域,Google Antigravity正逐渐成为开发者提升生产力的核心工具。作为一个智能体式开发平台,它通过Rule/Workflow/Skill三层机制实现了对开发流程的深度优化。这种架构设计源于对传统AI编程助手的痛点分析——当…

2026/7/16 16:13:12 阅读更多 →

最新新闻

C++ std::forward完美转发:原理、五大应用场景与避坑指南

C++ std::forward完美转发:原理、五大应用场景与避坑指南

1. 项目概述:为什么现代C开发者必须掌握std::forward? 如果你写过C模板,尤其是涉及通用引用(Universal Reference,即 T&& )的代码,大概率遇到过这样的困惑:为什么我明明传…

2026/7/16 17:12:02 阅读更多 →
新员工必修课:从MAG网络安全考试看企业级安全实战要点

新员工必修课:从MAG网络安全考试看企业级安全实战要点

1. 为什么网络安全是新员工的第一课? 刚入职的新人往往会有这样的疑问:为什么公司要把网络安全考试作为转正的硬性要求?我在实际工作中很少直接接触安全相关的工作啊。其实这个问题背后隐藏着一个关键认知——在现代企业环境中, …

2026/7/16 17:12:02 阅读更多 →
Angular-pipes高级用法:自定义管道扩展与组合技巧终极指南

Angular-pipes高级用法:自定义管道扩展与组合技巧终极指南

Angular-pipes高级用法:自定义管道扩展与组合技巧终极指南 【免费下载链接】angular-pipes Useful pipes for Angular 项目地址: https://gitcode.com/gh_mirrors/an/angular-pipes Angular-pipes是一个功能强大的Angular管道库,为开发者提供了丰…

2026/7/16 17:09:57 阅读更多 →
从0到1开发虎扑体育应用:TLint项目目录结构与代码组织最佳实践 [特殊字符]

从0到1开发虎扑体育应用:TLint项目目录结构与代码组织最佳实践 [特殊字符]

从0到1开发虎扑体育应用:TLint项目目录结构与代码组织最佳实践 🚀 【免费下载链接】TLint TLint for 虎扑体育 基于Dagger2RxJavaRetrofit开发,采用MVP模式 项目地址: https://gitcode.com/gh_mirrors/tl/TLint 想要快速掌握Android开…

2026/7/16 17:09:57 阅读更多 →
Blog.Admin微信集成指南:如何实现微信公众号管理功能

Blog.Admin微信集成指南:如何实现微信公众号管理功能

Blog.Admin微信集成指南:如何实现微信公众号管理功能 【免费下载链接】Blog.Admin ✨ 基于vue 的管理后台,配合Blog.Core与Blog.Vue等多个项目使用 项目地址: https://gitcode.com/gh_mirrors/bl/Blog.Admin 想要为你的博客管理系统添加强大的微信…

2026/7/16 17:07:56 阅读更多 →
【小程序毕业设计】基于 SpringBoot + 微信小程序的个人鼻部健康管理小程序的设计与实现(源码+文档+远程调试,全bao定制等)

【小程序毕业设计】基于 SpringBoot + 微信小程序的个人鼻部健康管理小程序的设计与实现(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/16 17:05:55 阅读更多 →

日新闻

HarmonyOs应用《重要日》开发第6篇 - 数据持久化存储

HarmonyOs应用《重要日》开发第6篇 - 数据持久化存储

本篇深入剖析 ImportantDays 项目的数据持久化方案——基于 HarmonyOS ArkData 模块的 Preferences 轻量级存储,以及 PreferenceUtil 工具类的单例封装。一、HarmonyOS 数据存储方案对比 HarmonyOS 提供了多种数据存储方案:方案适用场景特点Preferences轻…

2026/7/16 0:08:27 阅读更多 →
Python实现跨境电商商品图批量翻译教程

Python实现跨境电商商品图批量翻译教程

一、问题引入做跨境电商的卖家朋友,你是否遇到过这样的困扰?每次上架新品到亚马逊、Shopee或Lazada等平台,都需要处理大量商品图片的多语言版本。比如上架200款衣服,每款需要翻译成英语、日语、韩语等5种语言,这意味着…

2026/7/16 0:08:27 阅读更多 →
鸿蒙 7 新特性实战①:从 0 到 1 掌握 @kit 标准导入规范

鸿蒙 7 新特性实战①:从 0 到 1 掌握 @kit 标准导入规范

从鸿蒙 7(HarmonyOS NEXT)开始,官方全面完成了从 ohos.* 零散模块到 kit.* 领域套件的体系重构。对开发者来说,第一道门槛不是 API 用法变化,而是统一的导入规范——旧体系默认导入、解构导入混用的混乱局面被彻底终结…

2026/7/16 0:10:29 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/15 21:09:01 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/15 19:42:20 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/15 17:52:08 阅读更多 →

月新闻