Непонятное поведение пост-инкремента C++
Вот мой код:
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int ans = (n - 3) / 3;
cout << ans++ << " " << ans++ << " " << ans;
}
Входные данные:
9
Выходные данные:
3 2 4
Вопрос почему? Ведь должно же по идее в порядке возрастания выводится?
Компилятор - MCVSC++
Ответы (1 шт):
Автор решения: fat cock
→ Ссылка
До 17 стандарта тут неопределённое поведение, потому что в 1 выражении множество изменений 1 переменной, грубо говоря. Поэтому многие компиляторы с -std=c++98 выдают предупреждения. С 17 всё ок.