【问题标题】:Conditional operator and assignment operator in CC中的条件运算符和赋值运算符
【发布时间】:2011-03-11 19:19:07
【问题描述】:

开启http://groups.google.co.in/group/comp.lang.c/browse_thread/thread/bfb312ad902d94eb/74dcdcacce777679?lnk=gst&q=conditional+operator#74dcdcacce777679

有一个问题的答案为什么
(A%2==0)?A=0:A=1 给出错误。

我不明白我们什么时候使用(优先级和关联性)并且我们
使用 C 语法来解析表达式 ?

【问题讨论】:

    标签: c conditional operator-keyword


    【解决方案1】:

    始终使用语法来解析表达式。

    优先级和关联性源自语法,它们不是规则。许多优先表过于简化,在一些晦涩的极端情况下不起作用。

    【讨论】:

    • 你能举一些例子,这会产生影响,即优先级和语法相互交叉,因为与运算符的优先级相比,学习语法非常困难。
    • 如您的示例所示,任何试图将?: 放在某处的表通常都会产生误导,因为所有三个操作数都有不同的表达式类型。您可以在中间有一个 assignment-expression,但不能在结尾(在 C 中;不是 C++)。
    最近更新 更多