Приоритет операторов ++ и - в Java

Я прочитал из официального руководства по Java, что префикс и постфикс ++ - имеют разные приоритеты:

постфикс: expr ++ expr -

unary: ++ expr --expr + expr -expr ~!

Операторы

Согласно руководству, этого не должно быть

d = 1; System.out.println (d ++ + ++ d);

распечатать 6 ( d ++ делает d 2, ++ d делает его 3) вместо 4?

Я знаю объяснение того, что ++ d оценивается заранее, но если d ++ имеет более высокий приоритет, чем ++ d , почему не d ++ проходит первую оценку? Более того, в каком случае d ++ должен показать, что он имеет более высокий приоритет?

РЕДАКТИРОВАТЬ:

Я пробовал следующее:

d = 1; System.out.println (++ d * d ++);

Возвращает 4. Кажется, должно быть 2 * 2 вместо 1 * 3.

9
задан user207421 27 February 2017 в 00:37
поделиться