C和java中的++问题

刚刚在一个群里有人指出一个问题,他认为以下代码结果为15

然后我用mingw环境编译了一下,结果是16


拆分以后发现最后i==6
似乎和预想的4+5+6没什么出入,那关键就是前面两个了。
后来我仔细想了想,发现mingw编译器编译的时候把两个i先++了再执行第一个相加操作,也就是5+5+6,过程如下

 
 
java是这么理解的

 
 
然后又有一个小伙伴来了个VS编译的实例,代码一样,不过结果是18

 
所以我劝各位小伙伴们没事不要写这么2B的代码或者拿这种代码去考别人,会挨骂的இ௰இ





如文中无特殊说明,本站均使用以下协议:知识共享许可协议
知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。

本博客使用Disqus评论系统,如果看不到评论框,请尝试爬墙。