Привет.
Я тут случайно узнал что следующий код дает разный результат для разных языков. Всю жизнь был уверен что оно работает одинаково кругом, и возвращает 4.
// i -- целочисленная переменная
i = 0;
i += i++ + ++i;
// чему равно i?
Так в C, Perl, PHP оно выводит 4, в Java, Javascript же 2. Причину я понял (момент вычисления i++), но зачем они такое сделали??? И еще вопрос. Есть ли гарантия что все реализации Java (JVM и компилятора) дадут 2?