В
int a = - -3;
в этом утверждении нет --(decrement operator)
, это унарный минус оператор, который делает - -3
как 3(cancelling negation)
. Следовательно это печатает 3
.
Примечание, если вы думаете об этом
int a = --3;
as печатает 2
, тогда вы думаете, что неправильно, так как это вызывает lvalue error , потому что --
применимо к переменной, а не к константе. Правильный -
int a = 3;
--a ;/* this is valid,this make a as 2 now */