吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

幫你避雷 C語言所謂的短路現象~

朱老師物聯網大講堂 ? 2024-03-27 08:09 ? 次閱讀

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

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

執行結果:

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

短路現象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\n",a,b,c,d);
}

因為a++是先判斷a的值再自加,而a初始值為0, 所以(a++)為假,由短路現象可知,還需要繼續判斷 || 后面的表達式b++,b++要先判斷b的值,b為1,所以b++為真,由短路現象可知,后面的式子--c就不在執行;對于賦值語句,不再是將a的值賦值給d,而是將b先賦值給d然后a和b再自加,所以d的值為1,a最終為1,b最終為2。

執行結果:

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

本文轉載自公眾號|嵌入式Linux那些事

如有侵權 |聯系刪除

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137725
  • 代碼
    +關注

    關注

    30

    文章

    4828

    瀏覽量

    69055
收藏 人收藏

    評論

    相關推薦

    檢查與電機連線是否有短路現象

    FD-B系列故障代碼故障代碼 故障現象/類型 故障原因 解決對策occ 交流電機驅動偵測輸出側有異常突增的過電流產生檢查電機額定與電流驅動器額定是否相匹配檢查交流電機驅動器U-V-W見有無短路
    發表于 09-03 06:07

    短路/短路的發生與對策

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

    鉛蓄電池短路現象及原因

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

    C語言中的短路現象

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

    避雷針是如何避雷

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

    詳解C語言中的短路現象

      C語言一經出現,就以其功能豐富、表達能力強、靈活方便、應用面廣等特點迅速在全世界普及和推廣。C語言不但執行效率高,而且可移植性好,可以用來開發應用軟件、驅動、操作系統等。而
    的頭像 發表于 03-12 12:23 ?4072次閱讀
    詳解<b class='flag-5'>C</b><b class='flag-5'>語言</b>中的<b class='flag-5'>短路</b><b class='flag-5'>現象</b>

    深入探索Linux中的C語言

    Linux 中的基礎頭文件、C 語言標準以及可移植操作系統(POSIX)標準,C 語言是和 Linux 緊密結合的,掌握 C
    的頭像 發表于 03-14 16:48 ?2080次閱讀

    電機匝間短路現象 電機匝間短路的原因

    電機匝間短路是指電機線圈中的兩個相鄰匝之間發生了短路。這種現象會導致電機出現故障,嚴重的情況下可能會導致電機無法正常工作。
    發表于 03-19 15:16 ?1.3w次閱讀

    電機繞組匝間短路有哪些現象

    電機繞組發生匝間短路,會有以下現象
    的頭像 發表于 07-24 11:00 ?3009次閱讀

    什么是短路,什么是接地故障現象

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

    盤點電機繞組匝間短路可能出現的現象

    盤點電機繞組匝間短路可能出現的現象
    的頭像 發表于 08-11 10:28 ?1164次閱讀

    淺談C語言中的短路現象

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

    C語言短路現象

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

    天幕避雷針相比傳統避雷針的優勢有哪些

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

    電源變壓器短路會出現什么現象

    電源變壓器短路是指電路中有兩個本來不應該直接相接的線路出現了導通狀態,這會導致電源電壓驟降或電源短路過流,從而對電子設備造成損壞。以下是對電源變壓器短路現象的詳細分析,涵蓋其表現、原因
    的頭像 發表于 10-21 17:33 ?1441次閱讀
    真人游戏| 百家乐官网赌场方法| 鄯善县| 中信娱乐城| 孟村| 安义县| 澳门百家乐官网娱乐场| 网上百家乐官网哪里好| 百家乐官网视频游戏掉线| 澳门百家乐官网娱乐开户| 百家乐官网赌博经历| 新彩百家乐官网的玩法技巧和规则| 九州百家乐官网的玩法技巧和规则 | 百家乐园36bol在线| 洛克百家乐的玩法技巧和规则| 大发888代理充值| 新濠娱乐城| 百家乐官网如何投注法| 网络百家乐官网破解平台| 南安市| 百家乐官网2号死机| 百家乐网络公式| 百家乐在线赌场娱乐网规则| 大发888官方免费下载| 海港城娱乐城| 网上百家乐官网庄家有赌场优势吗 | 百家乐官网五湖四海娱乐| 百家乐哪条路好| 大家旺百家乐的玩法技巧和规则| 大发888游乐场下载| 南和县| 吉利百家乐官网的玩法技巧和规则| 百家乐大赢家小说| 神话百家乐的玩法技巧和规则 | 大发8888娱乐场| 百家乐官网最长的缆| 新锦江百家乐官网赌场娱乐网规则| 广东百家乐扫描分析仪| 老虎机破解| 大发888私网开户| 新百家乐.百万筹码|