вначале x=2, y=1, z=0 z += - x ++ + ++ y |
|
z += - (x++) + (++y) |
Унарные операции выполняются справа налево, так что операция ++ выполнится перед операцией -. (Фактически, если бы операция изменения знака выполнялась первой, выражение было бы некорректным, так как операции ++ и - требуют, чтобы операндом было адресное значение; x есть адресное значение, а -x нет.) |
z += (-(x++)) + (++y) z += ((-(x++))+(++y)) (z+=((-(x++))+(++y))) |
|
(z+=((-2)+2)) и x=3, y=2 (z+=0) (z=0+0) (z=0) 0 |
Вычисление выражения начинается "изнутри". |