В этом коде:
int y = 10;
int z = (++y * (y++ + 5));
Что я ожидал
Первый y++ + 5
будет выполнен из-за приоритета самых внутренних скобок. Таким образом, значение y
будет равно 11, а значение этого выражения будет равно 15. Тогда будет выполняться ++y * ()
. Итак, 12 * 15 = 180. Итак, z = 180
Что я получил
г = 176
Это означает, что виртуальная машина движется слева направо, не следуя приоритету оператора. Так неправильно ли мое понимание приоритета оператора?