printf里的=、++
众所周知,我们一般应该有歧义的语句,但有歧义的语句也是有研究的乐趣的。
众所周知,printf从右向左“入栈”并边出栈边输出。
通过简单的控制变量法我发现:
printf里的多个全局变量i=,i=...会正确的从右向左取每次i赋到的值输出。(所以以下我们都考察局部变量)
printf里的多个局部变量i=,i=...会取最后一次i赋到的值输出。
printf里的++i完全等价于i=i+1,取最后一次赋到的值。
printf里的i++会正常的输出当时”路过“它时的值。
由此我提出猜测:i=什么什么入栈的时候先执行赋值,再把”i“入栈而不是把它的值入栈,而”i++“会把算出来的值入栈。至于为什么,我也不知道。或许我再学几年就会学到
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2019-03-15 QTREE[不更新了]