Неопределённое поведение
Интерактивное демо «Неопределённое поведение» — раздел Энциклопедия · Код и разработка.
Неопределённое поведение: симулятор
Один и тот же код — разные исходы при смене компилятора, оптимизаций и запуска
Две модификации i между точками следования — порядок побочных эффектов не задан стандартом C/C++.
Фрагмент кода (C-подобный)
int i = 1; i = ++i + ++i; return i;
Без оптимизаций — чаще "терпимое" поведение · GCC
Нажмите "Запустить снова" — один и тот же исходный код может дать разный результат.
Журнал запусков
Пока нет запусков — сравните несколько результатов подряд.
Это образовательная симуляция в браузере, а не запуск C/C++. Она иллюстрирует идею: при неопределённом поведении нельзя полагаться на повторяемость результата.