C語(yǔ)言短路現(xiàn)象算是C語(yǔ)言的基礎(chǔ)吧,不過(guò)有時(shí)候代碼寫(xiě)得不規(guī)范也容易引入一些bug,所以這些操作在工程師實(shí)踐中盡量少用。 雖然下面找的例子比較簡(jiǎn)單,但如果后面是其他表達(dá)式,或許你并不會(huì)那么容易分辨。并且,你可能會(huì)斬釘截鐵的說(shuō),我絕對(duì)不會(huì)這樣編寫(xiě)我的代碼,但你確定的同事不會(huì)這樣?你的前同事不會(huì)? 好了,下面的案例來(lái)源于網(wǎng)絡(luò),僅供參考: 短路現(xiàn)象1 比如有以下表達(dá)式:
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); } 因?yàn)閍++是先判斷a的值再自加,而a初始值為0, 所以(a++)為假,由短路現(xiàn)象可知&&后面式子b++和--c就都不會(huì)執(zhí)行;對(duì)于賦值語(yǔ)句,是先將a的值賦值給d,然后再自加,所以d的值為0,a最終為1。 執(zhí)行結(jié)果:
短路現(xiàn)象2
比如有以下表達(dá)式:
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); } 因?yàn)閍++是先判斷a的值再自加,而a初始值為0, 所以(a++)為假,由短路現(xiàn)象可知,還需要繼續(xù)判斷 || 后面的表達(dá)式b++,b++要先判斷b的值,b為1,所以b++為真,由短路現(xiàn)象可知,后面的式子--c就不在執(zhí)行;對(duì)于賦值語(yǔ)句,不再是將a的值賦值給d,而是將b先賦值給d然后a和b再自加,所以d的值為1,a最終為1,b最終為2。 執(zhí)行結(jié)果:
審核編輯:黃飛
-
短路
+關(guān)注
關(guān)注
5文章
536瀏覽量
31033 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7605瀏覽量
136887
原文標(biāo)題:簡(jiǎn)單卻又容易掉坑!C語(yǔ)言的短路現(xiàn)象
文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
檢查與電機(jī)連線是否有短路現(xiàn)象
鉛酸蓄電池短路有哪些現(xiàn)象?
鉛蓄電池短路現(xiàn)象及原因
C語(yǔ)言入門(mén)經(jīng)典-C語(yǔ)言編程
C語(yǔ)言中的短路現(xiàn)象
詳解C語(yǔ)言中的短路現(xiàn)象
![詳解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>中的<b class='flag-5'>短路</b><b class='flag-5'>現(xiàn)象</b>](https://file.elecfans.com/web2/M00/35/9A/poYBAGIsIKmAWQVbAABtXilrR-c129.png)
電機(jī)匝間短路的現(xiàn)象 電機(jī)匝間短路的原因
什么是短路,什么是接地故障現(xiàn)象
![什么是<b class='flag-5'>短路</b>,什么是接地故障<b class='flag-5'>現(xiàn)象</b>](https://file1.elecfans.com/web2/M00/8E/B8/wKgZomTJtDSAa6A5AAAnJqgiRos342.png)
盤(pán)點(diǎn)電機(jī)繞組匝間短路可能出現(xiàn)的現(xiàn)象
淺談C語(yǔ)言中的短路現(xiàn)象
![淺談<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>中的<b class='flag-5'>短路</b><b class='flag-5'>現(xiàn)象</b>](https://file1.elecfans.com/web2/M00/AF/C2/wKgaomVcB3WABKfpAAARoGPTzfQ218.png)
幫你避雷 C語(yǔ)言所謂的短路現(xiàn)象~
![幫你避雷 <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>所謂的<b class='flag-5'>短路</b><b class='flag-5'>現(xiàn)象</b>~](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
評(píng)論