C++ - неопределенное поведение при множественном изменении одной и той же переменной в выражении.
В с++ есть некоторое количество случаев когда, не определен точный порядок операций и в зависимости от реализации компилятора или стандарта можно получить разный результат. Рассмотрим простой пример: #include <iostream>
int main()
{
int i = 1;
printf("%d, %d\n", i++, i++);
return 0;
} Вопрос простой, что будет выведено в результате работы программы? printf является функцией, соответственно очередность выполнения выражений в аргументах не определена, можно получить результат: 1, 2 или 2, 1 и даже 1, 1 Этот эксперимент можно повторить на платформе https://godbolt...