У меня свело мозги, когда я пытался понять примеры на этой странице: 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
Что более интуитивно понятно, потому что это указывает на то, что оно оценивалось слева направо. Изучая это на разных сайтах, кажется, что с С++ поведение разных компиляторов различается, но я все еще не уверен, что понимаю. Чем объясняется эта разница в оценке между Java и C++? Спасибо ТАК.