码迷,mamicode.com
首页 > 其他好文 > 详细

奇怪的C代码

时间:2014-10-22 17:16:28      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   sp   div   log   代码   bs   linux   

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代码

标签:style   blog   color   sp   div   log   代码   bs   linux   

原文地址:http://www.cnblogs.com/jiqingwu/p/4043361.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!