试图理解此页面上的示例使我的大脑皱巴巴: http ://answers.yahoo.com/question/index?qid=20091103170907AAxXYG9
更具体地说,这段代码:
int j = 4;
cout << j++ << j << ++j << endl;
给出输出:566
现在,如果表达式从右到左求值,这对我来说是有意义的,但是在 Java 中是一个类似的表达式:
int j = 4;
System.out.print("" + (j++) + (j) + (++j));
给出的输出:456
哪个更直观,因为这表明它是从左到右评估的。在各个站点上对此进行了研究,似乎对于 C++,编译器之间的行为有所不同,但我仍然不相信我理解。Java 和 C++ 之间的这种评估差异的解释是什么?谢谢。