关于和||的优先级问题
生活随笔
收集整理的這篇文章主要介紹了
关于和||的优先级问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<stdio.h>
int main(){int x=2,y=2,z=0;++x||++y&&z++;printf("%d,%d,%d",x,y,z);//結果是3,2,0
}
大家理所當然的認為是先按優先級運算++x,++y,z++,表達式為3||3&&0(1);
教科書上寫的&&的優先級比||要高,所以大家又理所當然的認為表達式的求值順序為3||(3&&0)
c把先計算哪部分的決定權留個設計者,但&&和||是例外,c語言保證&&和||的求值順序是從左到右,一旦發現某個元素讓表達式無效立即停止運算(短路法則)。所以本實例中執行了++x后值為真后邊就都不執行了,結果就為3,2,0;
總結
以上是生活随笔為你收集整理的关于和||的优先级问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十大管理思维导图
- 下一篇: 计算机二级题目之字符串练习学习