C语言-&和|的优先级顺序
 2020.12.06    |      C/C++    |     AilsonJack    |     暂无评论    |     871 views
By: Ailson Jack
Date: 2020-12-06
个人博客: http://www.only2fire.com/
<p><span style="color: rgb(0, 112, 192);">通常情况下,像&#39;&gt;&#39;,&#39;&lt;&#39;和&#39;==&#39;这类的比较运算符的优先级要低于计算运算符。</span>所以下面的两段代码是一样的:<br/>代码1:<br/></p><pre class="brush:cpp;toolbar:false PrismJs">if&nbsp;(a&nbsp;&gt;&nbsp;b&nbsp;+&nbsp;c) { &nbsp;&nbsp;&nbsp;&nbsp;//… }</pre><p>代码2:<br/></p><pre class="brush:cpp;toolbar:false PrismJs">if&nbsp;(a&nbsp;&gt;&nbsp;(b&nbsp;+&nbsp;c)) { &nbsp;&nbsp;&nbsp;&nbsp;//… }</pre><p>但是,如果有&amp;和|参与的运算就要注意了,下面的代码3写法未必是你想的那样,其实际运算顺序是代码4那样的。<br/>代码3:<br/></p><pre class="brush:cpp;toolbar:false PrismJs">if&nbsp;(a&nbsp;&amp;&nbsp;mask&nbsp;==&nbsp;b) { &nbsp;&nbsp;&nbsp;&nbsp;//… }</pre><p>代码4:<br/></p><pre class="brush:cpp;toolbar:false PrismJs">if&nbsp;(a&nbsp;&amp;&nbsp;(mask&nbsp;==&nbsp;b)) { &nbsp;&nbsp;&nbsp;&nbsp;//… }</pre><p>是不是有点奇怪呀,<span style="color: rgb(0, 112, 192);">这是因为&amp;和|这两个运算符的优先级低于&#39;&gt;&#39;,&#39;&lt;&#39;和&#39;==&#39;这类的比较运算符的优先级。</span><br/><span style="color: rgb(255, 0, 0);">注:实际编程过程中,如果实在不清楚运算符的具体优先级关系,那么最好的保障就是在合适的地方添加上括号。</span><br/>比如代码3,我们应该加上括号,也就是代码5那样,才是我们想要的运算顺序:<br/>代码5:<br/></p><pre class="brush:cpp;toolbar:false PrismJs">if&nbsp;((a&nbsp;&amp;&nbsp;mask)&nbsp;==&nbsp;b) { &nbsp;&nbsp;&nbsp;&nbsp;//… }</pre><p><br/></p>
欢迎关注博主的公众号呀,精彩内容随时掌握:
热情邀请仔细浏览下博客中的广告,万一有对自己有用或感兴趣的呢。◕ᴗ◕。。
如果这篇文章对你有帮助,记得点赞和关注博主就行了^_^,当然了能够赞赏博主,那就非常感谢啦!
注: 转载请注明出处,谢谢!^_^
转载请注明来源: 本文链接:  By: AilsonJack
C语言-&和|的优先级顺序  |  说好一起走
暂无评论,要不要来个沙发
发表评论

 
Copyright © 2015~2023  说好一起走   保留所有权利   |  百度统计  蜀ICP备15004292号