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

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

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

Ответы (1 шт):

Автор решения: Qwertiy

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

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

a = (++x, ++x, x*x);
→ Ссылка