C語言短路現(xiàn)象算是C語言的基礎(chǔ)吧,不過有時候代碼寫得不規(guī)范也容易引入一些bug,所以這些操作在工程師實踐中盡量少用。 雖然下面找的例子比較簡單,但如果后面是其他表達式,或許你并不會那么容易分辨。并且,你可能會斬釘截鐵的說,我絕對不會這樣編寫我的代碼,但你確定的同事不會這樣?你的前同事不會? 好了,下面的案例來源于網(wǎng)絡(luò),僅供參考: 短路現(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é)果:

審核編輯:黃飛
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
短路
+關(guān)注
關(guān)注
5文章
620瀏覽量
32680 -
C語言
+關(guān)注
關(guān)注
183文章
7644瀏覽量
145634
原文標(biāo)題:簡單卻又容易掉坑!C語言的短路現(xiàn)象
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
AD5764芯片內(nèi)部短路是正常的現(xiàn)象嗎?
我在tb上買了一顆芯片,用萬用表短路檢測發(fā)現(xiàn)5號引腳和3號引腳、5號引腳和21號引腳都是短路的。我焊接到板子后上電,電源啟動了短路保護,電壓上不去,我斷電后重新檢測,發(fā)現(xiàn)GND和AVSS之間也
發(fā)表于 04-15 06:37
檢查與電機連線是否有短路現(xiàn)象
FD-B系列故障代碼故障代碼 故障現(xiàn)象/類型 故障原因 解決對策occ 交流電機驅(qū)動偵測輸出側(cè)有異常突增的過電流產(chǎn)生檢查電機額定與電流驅(qū)動器額定是否相匹配檢查交流電機驅(qū)動器U-V-W見有無短路
發(fā)表于 09-03 06:07
鉛酸蓄電池短路有哪些現(xiàn)象?
鉛酸蓄電池短路有哪些現(xiàn)象
(1) 開路電壓低,閉路電壓 ( 放電 ) 很快達到終止電壓。 (2) 大電流放電時,端電壓迅速下降到零。 (3) 開
發(fā)表于 10-24 13:46
?3611次閱讀
鉛蓄電池短路現(xiàn)象及原因
鉛蓄電池短路現(xiàn)象及原因
鉛蓄電池的短路系指鉛蓄電池內(nèi)部正負極群相連。鉛蓄電池短路現(xiàn)象主要表現(xiàn)在以下幾個方面:
(1)開路電壓低,
發(fā)表于 10-28 11:24
?1015次閱讀
C語言中的短路現(xiàn)象
短路現(xiàn)象1 比如有以下表達式 abc 只有a為真(非0)才需要判斷b的值;只有a和b都為真,才需要判斷c的值。 舉例 求最終a、b、c、d的值。 main() { inta,b,
詳解C語言中的短路現(xiàn)象
C語言一經(jīng)出現(xiàn),就以其功能豐富、表達能力強、靈活方便、應(yīng)用面廣等特點迅速在全世界普及和推廣。C語言不但執(zhí)行效率高,而且可移植性好,可以用來開發(fā)應(yīng)用軟件、驅(qū)動、操作系統(tǒng)等。而
電機匝間短路的現(xiàn)象 電機匝間短路的原因
電機匝間短路是指電機線圈中的兩個相鄰匝之間發(fā)生了短路。這種現(xiàn)象會導(dǎo)致電機出現(xiàn)故障,嚴重的情況下可能會導(dǎo)致電機無法正常工作。
發(fā)表于 03-19 15:16
?1.6w次閱讀
什么是短路,什么是接地故障現(xiàn)象
我們所說的短路,其實就是指相線之間、相線與中性線之間的直接觸碰,產(chǎn)生的電流就是短路故障電流。由于短路點的電阻不是很大,并且線路阻抗也同樣是比較小的,因此,短路電流也就很大。
發(fā)表于 08-02 09:38
?4718次閱讀
電源變壓器短路會出現(xiàn)什么現(xiàn)象
電源變壓器短路是指電路中有兩個本來不應(yīng)該直接相接的線路出現(xiàn)了導(dǎo)通狀態(tài),這會導(dǎo)致電源電壓驟降或電源短路過流,從而對電子設(shè)備造成損壞。以下是對電源變壓器短路現(xiàn)象的詳細分析,涵蓋其表現(xiàn)、原因
C語言的短路現(xiàn)象
評論