一个很有趣的问题,自认为大虾的可以看看
#include <vector>#include <iostream>using namespace std;void main(){int i = 2, j;j = i++ + ++i;cout << j <<endl; //等于6i = 2;i = i++ + ++i;//换((i++) + (++i));此种形式,依然等于7cout << i <<endl; //等于7,为什么等于7呢?}自认为大虾的朋友们,能给小弟解惑一二吗?
根据cyz108D这位哥们的评论,我总结了原因如下:
问题是由于i++引起的,i = i++ + ++i会先执行i = 右边的表达式,最后再i++操作,所以结果就出现了一个6,一个7。