【发布时间】:2014-03-01 08:06:17
【问题描述】:
我试图弄清楚以下表达式如何根据优先级进行分组:
int x = 0, y = 0;
someValue ? ++x, ++y : --x, --y;
当 someValue 为 0 (false) 时,计算第二部分,x 和 y 都变为 -1。但是,如果 someValue 为 1 (true),那么 x 以某种方式变为 1 但 y 仍然为 0,这意味着条件表达式的第二部分也被评估,但只有 --y 部分,我认为这是因为逗号运算符,但是我一生都无法弄清楚这是如何实现的。任何见解将不胜感激。
【问题讨论】:
标签: c++ conditional comma evaluation operator-precedence