【发布时间】:2015-02-27 16:49:58
【问题描述】:
与 ++ 和 -- 运算符混淆
int a = 10;
printf("%d\n", -(--a) ); // valid
output: -9
但是,当使用以下时会出现问题:
printf("%d\n", --(-a)); // error, invalid
为什么?
【问题讨论】:
-
您似乎将 -(--a) 解释为具有一些神奇属性的字母序列。看看两者,写下每个表达式应该做什么,并且应该很明显为什么一个被允许而另一个不被允许。只需将“--”替换为“预减运算符”,将“-”替换为“一元减号”即可。