C Порядок действий Противоречие между Eclipse, CLion, Code::Blocks и другими

У меня, казалось бы, очень простой вопрос о порядке операций в c, особенно с использованием оператора приращения.

Если у меня есть этот код:

int x,y;
y = 4;
x = ++y + y--;

printf("x: %d y: %d", x,y)

Результат, который я ожидаю:
x: 10 y: 4

Я получил это, используя процесс, описанный здесь:
http://ntci.on.ca/compsci/java/ch2/2_3.html
(См. Пример 2, в красном поле)

Когда я запускаю это в Eclipse на Mac с MacOSX GCC, это ответ, который он дает. Отлично.

Однако когда я использую CLion (под MinGW), он дает:
x: 9 y: 4

Как и Code::Blocks (с MinGW), и многие онлайн-компиляторы, такие как:
https://www.onlinegdb.com/online_c_compiler
а также
jdoodle-х
а также
tutorialspoint годов.

Что дает? Является ли Eclipse и мое понимание порядка операций в C неправильным?

Или CLion, Code::Blocks и куча онлайн-компиляторов не правы?

0 ответов

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