все их значения были оценены.
читал из официального руководства по Java, что префикс и постфикс ++ имеют разные приоритеты:
постфикс: expr ++ expr--
унарный: ++ 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.