
例如: #include "stdio.h" //stdio.h这是c语言提供的输入输出态伍函数库,我们可以使用
但如果你成 #include "stddio.h" 系统就会报错,错误提示和你给的错误提示是一毁祥样的。
因此,有可能是你的包含文件写错了。
没有必要去较这个真,比如 q 的值在我这里的结果是 9(最后的 % 是 shell 标识的无换行)
编译器是 Xcode 套件里面的 clang14。它报了 多个无序修改的 warning
我和楼下 arongustc 观点一样,这种东西本身就不应该存在。。
非要分析就是国内大学教的内容有问题,工作上这么写纯粹是找打。正常来说写代码就应该是为了清晰易读,容易引起歧义的地方主动避开而不是去学习怎么分或握念析这么复杂的表达式(比如写成多个 i--,然后最后加起来)
比如,实际写代码的时候,很多复杂的表达式问题,拆成多个式子、加个括号等等一切矛盾解决,清晰易懂。但考试就非不加这个然后考为什么这么算。
---
至于为什么会这样,这种行为本身就是未定义的。简单说,皮猛C 语言规范不会明确定义这种情况下到底该怎么算,做编译器的人也不会专门针对这个去统一意见。具体能算出来什么值谁也没有规定,只是说,按照原有的解析表达式的方式碰巧算出来啥就是啥(但是因为不同编译器计算方衫困式不同,所以这种没有明确定义的行为,运算结果可能也不同)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)