В выражении:
- a + b - c + d
есть 3 разных оператора, идущих слева направо:
Как правило, унарные операторы имеют более высокий приоритет, чем бинарные операторы, поэтому это выражение эквивалентно:
(( (- a) + b) - c) + d
Итак, унарный -
относится к a
. Из приведенной выше спецификации:
Во время выполнения значение унарного минус-выражения представляет собой арифметическое отрицание повышенного значения операнда.
Таким образом, оно не делает a
отрицательным, оно приводит к выражению, значением которого является отрицание a
. Это бывает отрицательно, потому что a
имеет положительное значение. Тем не менее, ничего не делает a
, a
остается без изменений.