MorganStanley
@MorganStanley

Некорректное вычисление?

Никак не могу понять почему конструкции выдают разный результат, в зависимости от компилятора. Проверял на JS и Java, выдают одинаково верный результат (как я думаю):
JS:
kiss_5kb.1469101944.png
Java:
kiss_34kb.1469102282.png
Ссылка на пример Java: goo.gl/HD223t

А вот результаты С++:
MSVCC 2015
kiss_6kb.1469102108.png
cpp.sh (gcc 4.9.2)
kiss_17kb.1469102183.png

ВТФ?
  • Вопрос задан
  • 333 просмотра
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Для C++ такая конструкция нарушает стандарт языка и приводит к неопределенному поведению. На C++ так писать нельзя.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
выдают одинаково верный результат

одинаково верный результат для java, потому что порядок вычисления значения выражений в java определён строго для любого выражения, см. https://docs.oracle.com/javase/specs/jls/se7/html/...

С++ -- это другой язык, на нём можно написать выражение вроде вашего, значение которого не определено стандартом и может варьироваться в зависимости от компилятора, опций оптимизации и фазы луны. См. https://ru.wikipedia.org/wiki/%D0%A2%D0%BE%D1%87%D...
Ответ написан
Комментировать
@sitev_ru
sitev.ru - мой блог ...
Даже девушки о таком пишут: alenacpp.blogspot.ru/2005/11/sequence-points.html ))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы