因为 ++ 运算符的特殊性,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
[解决办法] 不管是先i++,还是先++i,结果都是10。。
i++ + ++i中间的+必须有空格。。 [解决办法] 如果int i=4; int y=i+++++i; 计算步骤: int y = (i++) + (++i); int y = (i++) + 5; int y = 5 + 5=10;
[解决办法] y = i++ + ++i 相当于
// 解析i++ t1 = i; i = i +1; // 解析++i i = i + 1; t2 = i; // 等式结果 y = t1 + t2;