Заказ печати в С

int x=10;
printf("%d %d %d\n",x,++x,x++);
printf("%d %d %d",x,x+20,x+30);

Это вывод на печать как

12 12 10
12 32 42

Почему порядок в первом printf находится в обратном порядке, а почему нет во втором операторе printf? я нашел в книге, что C использует обратный порядок печати.

1 ответ

Ваш код имеет неопределенное поведение ("UB"). Таким образом, все может случиться.

В частности, нарушенное правило состоит в том, что нельзя читать и записывать одну и ту же переменную без точки последовательности, кроме как для определения значения для записи.

Другие вопросы по тегам