使用道具 举报
Post by kinton 在Java中的输出是sum=12,i=5...
Post by manphiz 挺有意思…… 连加实际被分解为多个+操作。因此,表达式 (++i)+(++i)+(++i) 可能被解释为类似 x1 = (++i)+(++i); x2 = x1 + (++i); // x1, x2为临时变量 的形式。 对于第一个表达式,情况比较特殊。在分析(++i)+(++i)的时候,分析完第二个++i之后,++i返回的值为4,而+号两边的两个表达式都是(++i),可能编译器会认为两个(++i)应该具有相同的值,所以假设的x1的值就是4+4=8了。而之后x2就不存在这个问题,因此x2=8+5=13。 待知情者批判之……
本版积分规则 发表回复 回帖后跳转到最后一页