短路現(xiàn)象1
比如有以下表達式
a&&b&&c
只有a為真(非0)才需要判斷b的值;只有a和b都為真,才需要判斷c的值。
舉例
求最終a、b、c、d的值。
main() { inta,b,c,d; a=0; b=1; c=2; d=a++&&b++&&--c; printf("a=%db=%dc=%dd=%d ",a,b,c,d); }
因為a++是先判斷a的值再自加,而a初始值為0, 所以(a++)為假,由短路現(xiàn)象可知&&后面式子b++和--c就都不會執(zhí)行;對于賦值語句,是先將a的值賦值給d,然后再自加,所以d的值為0,a最終為1。
執(zhí)行結(jié)果:
短路現(xiàn)象2
比如有以下表達式
a||b||c
只要a為真(非0)就不必判斷b和c;只有a為假,才需要判斷b的值;只有a和b都為假,才有必要判斷c的值。
舉例
求最終a、b、c、d的值;
main() { inta,b,c,d; a=0; b=1; c=2; d=a++||b++||--c; printf("a=%db=%dc=%dd=%d ",a,b,c,d); }
因為a++是先判斷a的值再自加,而a初始值為0, 所以(a++)為假,由短路現(xiàn)象可知,還需要繼續(xù)判斷 || 后面的表達式b++,b++要先判斷b的值,b為1,所以b++為真,由短路現(xiàn)象可知,后面的式子--c就不在執(zhí)行;對于賦值語句,不再是將a的值賦值給d,而是將b先賦值給d然后a和b再自加,所以d的值為1,a最終為1,b最終為2。
執(zhí)行結(jié)果:
-END-
來源 | 一口Linux
作者 | 土豆居士
原文標(biāo)題:C語言中的短路現(xiàn)象
-
C語言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137712
原文標(biāo)題:C語言中的短路現(xiàn)象
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
EE-62:在C語言中訪問短字內(nèi)存
![EE-62:在<b class='flag-5'>C</b><b class='flag-5'>語言中</b>訪問短字內(nèi)存](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
EE-128:C語言中的DSP:從C調(diào)用匯編類成員函數(shù)
![EE-128:<b class='flag-5'>C</b><b class='flag-5'>語言中</b>的DSP:從<b class='flag-5'>C</b>調(diào)用匯編類成員函數(shù)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
C語言中申請的堆內(nèi)存能不能自動釋放
C語言中的頭文件能不能重復(fù)包含
C語言中的socket編程基礎(chǔ)
電源變壓器短路會出現(xiàn)什么現(xiàn)象
c語言中從左到右結(jié)合怎么看
嵌入式系統(tǒng)中C語言結(jié)構(gòu)體的基礎(chǔ)實現(xiàn)與應(yīng)用
![嵌入式系統(tǒng)中<b class='flag-5'>C</b><b class='flag-5'>語言</b>結(jié)構(gòu)體的基礎(chǔ)實現(xiàn)與應(yīng)用](https://file1.elecfans.com/web2/M00/C4/E6/wKgaomXv9r6Aaj6DAAAYJ3PfWAU110.jpg)
C語言中的typedef的應(yīng)用
![<b class='flag-5'>C</b><b class='flag-5'>語言中</b>的typedef的應(yīng)用](https://file1.elecfans.com/web2/M00/C3/B9/wKgaomXn5LGAbFesAAAe4pvOxcc159.png)
C語言#define的應(yīng)用
![<b class='flag-5'>C</b><b class='flag-5'>語言</b>#define的應(yīng)用](https://file1.elecfans.com/web2/M00/C3/B9/wKgaomXn42eACLumAAAag1PydyU214.png)
介紹C語言中錯誤處理和異常處理的一些常用的方法和策略
C語言中的可變參數(shù)介紹
![<b class='flag-5'>C</b><b class='flag-5'>語言中</b>的可變參數(shù)介紹](https://file1.elecfans.com/web2/M00/C2/BA/wKgaomXezG6AcBLhAABI4KQSKz0893.png)
評論