问题上图片的编译器为wintc的
下面是java的textpat
C++的Visual C++ 6.0的
还有,turbo c
- 慧慧
-
对于大多数主流的理解
i++ + i++应该是先执行i+i 然后在执行两次i的自加
所以表达式的值应为i+i, 这里的i是原始值。 计算后i本身值会自加2
这个也是主流的解释
事实上,对于这种多次自加并最终进行表达式计算的情况,ANSI C标准中并没有定义,所以不同编译器可能会给出不同的结果,这个也是正常的
没有研究过C99及以上版本的规定,不知道现在有没有新的定义规范
换句话说,所谓的主流解释,不过是臆断或者从主流编译器结果推论出来的,并不能作准
- gitcloud
-
<=>=(i++)+(i++)
<=>=2i;
i=i+2;