首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >赋值或条件约束是否更强?

赋值或条件约束是否更强?
EN

Stack Overflow用户
提问于 2015-03-27 22:03:55
回答 1查看 332关注 0票数 8

我偶然发现了以下两条C++语法规则:

代码语言:javascript
复制
conditional-expression:
    logical-or-expression
    logical-or-expression ? expression : assignment-expression
                                         ^^^^^^^^^^^^^^^^^^^^^
assignment-expression:
    conditional-expression
    ^^^^^^^^^^^^^^^^^^^^^^
    unary-expression assignment-operator assignment-expression
    throw assignment-expression_opt

注意规则是如何相互递归的:条件表达式是指赋值表达式(规则2),赋值表达式是指条件表达式(规则1)。

这对运算符优先意味着什么?通常,强绑定操作符的非终端出现在弱绑定操作符的规则的右边,而不是相反的方向,对吗?让我困惑的是:

一方面,a = b ? c : d的意思是a = (b ? c : d),这意味着?:绑定得更强。

另一方面,a ? b : c = d的意思是a ? b : (c = d),这意味着=绑定得更强。

在传统意义上,运算符优先的概念在这里根本不适用吗?为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-27 22:09:53

?:=具有相同的运算符优先级,并从右向左绑定.

cppreference

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29310916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档