0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

幫你避雷 C語言所謂的短路現(xiàn)象~

朱老師物聯(lián)網(wǎng)大講堂 ? 2024-03-27 08:09 ? 次閱讀

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

因?yàn)閍++是先判斷a的值再自加,而a初始值為0, 所以(a++)為假,由短路現(xiàn)象可知&&后面式子b++和--c就都不會(huì)執(zhí)行;對(duì)于賦值語句,是先將a的值賦值給d,然后再自加,所以d的值為0,a最終為1。

執(zhí)行結(jié)果:

4ebd0cba-ebce-11ee-9118-92fbcf53809c.png

短路現(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\n",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ì)于賦值語句,不再是將a的值賦值給d,而是將b先賦值給d然后a和b再自加,所以d的值為1,a最終為1,b最終為2。

執(zhí)行結(jié)果:

51bf7f06-ebce-11ee-9118-92fbcf53809c.png

本文轉(zhuǎn)載自公眾號(hào)|嵌入式Linux那些事

如有侵權(quán) |聯(lián)系刪除

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7594

    瀏覽量

    135858
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4722

    瀏覽量

    68231
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    檢查與電機(jī)連線是否有短路現(xiàn)象

    FD-B系列故障代碼故障代碼 故障現(xiàn)象/類型 故障原因 解決對(duì)策occ 交流電機(jī)驅(qū)動(dòng)偵測(cè)輸出側(cè)有異常突增的過電流產(chǎn)生檢查電機(jī)額定與電流驅(qū)動(dòng)器額定是否相匹配檢查交流電機(jī)驅(qū)動(dòng)器U-V-W見有無短路
    發(fā)表于 09-03 06:07

    短路/短路的發(fā)生與對(duì)策

    作者:李勇成  有些微短路.短路現(xiàn)象的成品板,用普通低壓電腦
    發(fā)表于 04-16 21:46 ?1205次閱讀

    鉛蓄電池短路現(xiàn)象及原因

    鉛蓄電池短路現(xiàn)象及原因 鉛蓄電池的短路系指鉛蓄電池內(nèi)部正負(fù)極群相連。鉛蓄電池短路現(xiàn)象主要表現(xiàn)在以下幾個(gè)方面:    (1)開路電壓低,
    發(fā)表于 10-28 11:24 ?764次閱讀

    C語言中的短路現(xiàn)象

    短路現(xiàn)象1 比如有以下表達(dá)式 abc 只有a為真(非0)才需要判斷b的值;只有a和b都為真,才需要判斷c的值。 舉例 求最終a、b、c、d的值。 main() { inta,b,
    的頭像 發(fā)表于 09-29 14:39 ?2557次閱讀

    避雷針是如何避雷

    為了避免雷擊,現(xiàn)代建筑物的樓頂會(huì)安置避雷針。而在中國(guó)古代,屋頂上會(huì)設(shè)計(jì)魚尾或者龍頭的瓦飾,在美觀的同時(shí)也起到避雷的作用。 你知道避雷針是如何避雷的嗎? 雷雨天氣時(shí),空氣的帶電云層帶著負(fù)
    的頭像 發(fā)表于 10-28 16:32 ?5477次閱讀

    詳解C語言中的短路現(xiàn)象

      C語言一經(jīng)出現(xiàn),就以其功能豐富、表達(dá)能力強(qiáng)、靈活方便、應(yīng)用面廣等特點(diǎn)迅速在全世界普及和推廣。C語言不但執(zhí)行效率高,而且可移植性好,可以用來開發(fā)應(yīng)用軟件、驅(qū)動(dòng)、操作系統(tǒng)等。而
    的頭像 發(fā)表于 03-12 12:23 ?3941次閱讀
    詳解<b class='flag-5'>C</b><b class='flag-5'>語言</b>中的<b class='flag-5'>短路</b><b class='flag-5'>現(xiàn)象</b>

    深入探索Linux中的C語言

    Linux 中的基礎(chǔ)頭文件、C 語言標(biāo)準(zhǔn)以及可移植操作系統(tǒng)(POSIX)標(biāo)準(zhǔn),C 語言是和 Linux 緊密結(jié)合的,掌握 C
    的頭像 發(fā)表于 03-14 16:48 ?1588次閱讀

    電機(jī)匝間短路現(xiàn)象 電機(jī)匝間短路的原因

    電機(jī)匝間短路是指電機(jī)線圈中的兩個(gè)相鄰匝之間發(fā)生了短路。這種現(xiàn)象會(huì)導(dǎo)致電機(jī)出現(xiàn)故障,嚴(yán)重的情況下可能會(huì)導(dǎo)致電機(jī)無法正常工作。
    發(fā)表于 03-19 15:16 ?1.3w次閱讀

    電機(jī)繞組匝間短路有哪些現(xiàn)象

    電機(jī)繞組發(fā)生匝間短路,會(huì)有以下現(xiàn)象
    的頭像 發(fā)表于 07-24 11:00 ?2591次閱讀

    什么是短路,什么是接地故障現(xiàn)象

    我們所說的短路,其實(shí)就是指相線之間、相線與中性線之間的直接觸碰,產(chǎn)生的電流就是短路故障電流。由于短路點(diǎn)的電阻不是很大,并且線路阻抗也同樣是比較小的,因此,短路電流也就很大。
    發(fā)表于 08-02 09:38 ?2892次閱讀
    什么是<b class='flag-5'>短路</b>,什么是接地故障<b class='flag-5'>現(xiàn)象</b>

    盤點(diǎn)電機(jī)繞組匝間短路可能出現(xiàn)的現(xiàn)象

    盤點(diǎn)電機(jī)繞組匝間短路可能出現(xiàn)的現(xiàn)象
    的頭像 發(fā)表于 08-11 10:28 ?1029次閱讀

    淺談C語言中的短路現(xiàn)象

    C語言短路現(xiàn)象算是C語言的基礎(chǔ)吧,不過有時(shí)候代碼寫得不規(guī)范也容易引入一些bug,所以這些操作在工
    的頭像 發(fā)表于 11-21 09:25 ?440次閱讀
    淺談<b class='flag-5'>C</b><b class='flag-5'>語言</b>中的<b class='flag-5'>短路</b><b class='flag-5'>現(xiàn)象</b>

    C語言短路現(xiàn)象

    a || b || c 只要a為真(非0)就不必判斷b和c;只有a為假,才需要判斷b的值;只有a和b都為假,才有必要判斷c的值。
    的頭像 發(fā)表于 12-07 12:20 ?605次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>短路</b><b class='flag-5'>現(xiàn)象</b>

    天幕避雷針相比傳統(tǒng)避雷針的優(yōu)勢(shì)有哪些

    雷電的“回閃”現(xiàn)象,提高雷電防護(hù)效果。2.保護(hù)范圍大:天幕避雷針的保護(hù)角不小于70°,相比傳統(tǒng)避雷針具有更大的保護(hù)范圍,能夠更有效地覆蓋需要保護(hù)的區(qū)域。3.非引雷裝置:天幕避雷針避免了
    發(fā)表于 09-12 14:10 ?0次下載

    電源變壓器短路會(huì)出現(xiàn)什么現(xiàn)象

    電源變壓器短路是指電路中有兩個(gè)本來不應(yīng)該直接相接的線路出現(xiàn)了導(dǎo)通狀態(tài),這會(huì)導(dǎo)致電源電壓驟降或電源短路過流,從而對(duì)電子設(shè)備造成損壞。以下是對(duì)電源變壓器短路現(xiàn)象的詳細(xì)分析,涵蓋其表現(xiàn)、原因
    的頭像 發(fā)表于 10-21 17:33 ?370次閱讀