【发布时间】:2011-02-21 12:52:38
【问题描述】:
我只是有一个关于条件运算符的快速问题。这里仍然是一个初出茅庐的程序员。 我得到 x = 1、y = 2 和 z = 3。
我想知道,为什么在这句话之后:
y += x-- ? z++ : --z;
即 y 为 5。语句后的值为 x = 0、y = 5 和 z = 4。 我知道条件运算符的工作方式是它的格式如下: 变量=条件?真值:假值。
对于条件 y += x-- ,y 是如何变成 5 的?我只能看到 2 (2 += 0) 和 3 (2 += 1)(然后 x-- 变为零)作为可能性。任何帮助深表感谢。 :)
【问题讨论】:
-
哇,我离开5分钟,已经有这么多答案了。现在很有意义。感谢所有的答案!我一定会记得永远不要这样写:)
-
我觉得有趣的是,几乎每个人都认为这个问题是关于 x 令人困惑的递减后问题,而不是实际问题,即 += 和 ?: 之间的优先级令人困惑......
标签: c conditional ternary-operator operator-keyword