0

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

int x = 1, a;
a = ++x*++x;
Harry
  • 221,325
lord
  • 31

1 Answers1

2

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

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

a = (++x, ++x, x*x);
Qwertiy
  • 123,725