【发布时间】:2013-07-15 12:02:58
【问题描述】:
在书籍和here 中,鉴于递增和递减运算符的优先级高于三元运算符,但为什么在下面的代码中,b 和 c 的值都没有递增但只有 b 递增(或 c 递增是条件为假)
int a=1,h;
h = (a==1)?++b:++c;
printf("%d%d",b,c);
甚至对于像
这样的语句++i&&++j||++k; // why not all the increment and decrement operator executes first
如果我犯了一些概念上的错误,请解释一下,抱歉我太菜鸟了 (如果这是重复的,请将我重定向到原始问题,我没有找到)
【问题讨论】:
-
好吧,我希望这种混淆能对编写这样的代码起到强有力的威慑作用。
-
哦,“太本地化了”,你去哪儿了? :(
-
@sumitb 你对三元运算符的作用有清楚的了解吗?
-
两个字:懒惰的评价。
-
如果此代码的作者为我工作,我将应用“粉红滑倒”威慑。
标签: c++ c operators operator-precedence