首页 > 代码库 > 奇怪的C代码
奇怪的C代码
int i = 3;int ans = (++i)+(++i)+(++i);
ans等于多少?我想大多数同学都会和我一样的认为: ans = 4 + 5 + 6 = 15.
而实际结果呢?
- Linux下用gcc编译的结果是16.
- Windows下用VC编译,debug模式的结果是16, Release模式的结果是18.
- VS 2010中不管是Debug模式或是Release模式,结果都是18.
这都是编译器优化的结果,导致结果不确定。
所以我们应该避免在一行代码中重复出现被递增(递减)的变量。
奇怪的C代码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。