因为 ++ 运算符的特殊性,i++会在整个表达式运算完成后才执行,而++i会在表达式计算之前就执行,所以上面这句话相当于被拆解成: ++i; int y = i+i; i++;
所以y=5,i=6
------解决方案--------------------
------解决方案-------------------- int y = (i++) + (++i);
------解决方案-------------------- 如果int i=4; int y=i+++++i; 计算步骤: int y = (i++) + (++i); int y = 4 + (++i); //这个时候i变成了5 int y = 4 + (++5)//++5 等于6 int y = 4+ 6=10