我曾经试图理解这个页面上的示例,让我的大脑感到困惑:
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++之间的这种评估差异的解释是什么?谢谢SO。