c - 对于表达式 a+=b|=c,这个表达式将如何运行?
解决方案
是的,确实如此,但这只是故事的一半。
要解决这个问题,您需要知道两件事:
+=
和的运算符优先级|=
如果这些相同,则这些运算符的关联性(从左到右或从右到左)
幸运的是,cppreference 有一张桌子。
这告诉我们:
两者都
+=
具有|=
相同的优先级它们的关联性是从右到左的
因此,测验的答案(如您的屏幕截图所示!)是a += (b |= c)
,也就是说
b |= c
首先评估,然后将结果添加到a
。
但是,正如 bolov 指出的那样,任何有自尊心的程序员至少会为您加上括号,或者(理想情况下)将其编码为两个单独的语句。
推荐阅读
- hibernate - Hibernate @ManyToOne 总是用referencedColumnName 加载实体
- r - 来自 R 代码块的动态 RMarkdown 标题
- charts - 在 Chart.js 中的图表内显示标签的总计(或简单地显示一个字符串)
- c++ - std::variant 的 std::vector 的内存布局如何?
- c# - 将视图变量绑定到视图内声明的 UserControl ViewModel
- java - maven有效的pom显示未定义的插件
- android - 带有 ViewPager 和 TabLayout 的 Android Jetpack 导航
- sql-server - SQL Server 存储过程复杂性
- android - 是否可以无头打开 Android 模拟器并让它自动运行 apk?
- reactjs - React 虚拟化无限滚动渲染聚合数据