C 操作员优先示例



我试图弄清楚如何根据先例将以下表达式分组:

int x = 0, y = 0;
someValue ? ++x, ++y : --x, --y;

当某个值为0(false)时,评估了第二部分,并且x和y均变为-1。但是,如果某个值为1(true),那么x变为1,但y保留0,这也意味着条件表达的第二部分也被评估,但是只有 - y部分,我认为这是因为逗号运算符,但是我一生无法弄清楚这是如何实现的。任何见解都将不胜感激。

,具有所有操作员的最低优先级,因此您的表达式被解析为

(someValue ? ++x, ++y : --x), --y;

相关内容

  • 没有找到相关文章