инкремент префиксный

Рейтинг: 0Ответов: 1Опубликовано: 15.03.2023

Почему здесь получается 9 а не 6?

int x = 1, a;
a = ++x*++x;

Ответы

▲ 2Принят

Здесь вообще UB. Если значение переменной изменяется, то использовать её более одного раза в выражении запрещено (кроме явно оговоренных случаев).

Вероятно, в твоём случае вычислилось как-то так:

a = (++x, ++x, x*x);