色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

淺談C語言中的短路現象

lilihe92 ? 來源:最后一個bug ? 2023-11-21 09:25 ? 次閱讀

大家好,我是bug菌~ 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 ",a,b,c,d); } 因為a++是先判斷a的值再自加,而a初始值為0, 所以(a++)為假,由短路現象可知&&后面式子b++和--c就都不會執行;對于賦值語句,是先將a的值賦值給d,然后再自加,所以d的值為0,a最終為1。 執行結果:

4f93015c-880b-11ee-939d-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 ",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。 執行結果:

4fcad3ca-880b-11ee-939d-92fbcf53809c.png

編輯:黃飛

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

    關注

    5

    文章

    532

    瀏覽量

    31013
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136696

原文標題:簡單但容易掉坑,C語言所謂的短路現象

文章出處:【微信號:最后一個bug,微信公眾號:最后一個bug】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C語言中宏定義的應用

    C語言中,宏定義是一種預處理指令,用于在代碼中定義和使用常量、函數或代碼片段的替代。
    發表于 08-17 15:33 ?804次閱讀

    C語言中for循環的用法和應用 C語言中for循環與while循環的區別

    C語言中的循環結構時,for循環是最常用的一種。它允許重復執行一段代碼,直到滿足特定條件為止。
    發表于 08-18 16:33 ?3228次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>for循環的用法和應用 <b class='flag-5'>C</b><b class='flag-5'>語言中</b>for循環與while循環的區別

    C語言中基本數據類型、變量和常量的使用

    C語言中基本數據類型、變量和常量的使用
    發表于 08-18 16:42 ?2716次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>基本數據類型、變量和常量的使用

    C語言中結構體能不能相加

    C語言中,結構體能不能相加?
    的頭像 發表于 12-19 17:04 ?1273次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>結構體能不能相加

    C語言中指針的介紹非常詳細

    C語言中指針的介紹非常詳細 C語言中指針的介紹非常詳細
    發表于 12-25 10:39 ?57次下載

    C語言和匯編語言混合編程方法和C語言中斷處理方法

    C語言和匯編語言混合編程方法和C語言中斷處理方法,new
    發表于 01-06 14:36 ?36次下載

    C語言中的關鍵字

    C語言中的入門教程
    發表于 10-14 16:24 ?3次下載

    C語言中隨機數的生成代碼

    C語言中隨機數的生成完整代碼:
    的頭像 發表于 02-20 09:21 ?1w次閱讀

    總結那么幾個C語言中的“坑”

    總結幾個C語言中的“坑”
    的頭像 發表于 01-16 10:52 ?2569次閱讀

    C語言中短路現象

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

    詳解C語言中短路現象

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

    c#語言中怎么使用HTTP代理

    c#語言中怎么使用HTTP代理。
    的頭像 發表于 09-01 14:46 ?2146次閱讀

    scanf在C語言中的作用

    scanf在C語言中的作用? scanf是C語言中的輸入函數,用于從標準輸入設備(如鍵盤)讀取數據,并將其存儲到變量中。它是C
    的頭像 發表于 11-23 14:13 ?1400次閱讀

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

    C語言短路現象算是C語言的基礎吧,不過有時候代碼寫得不規范也容易引入一些bug,所以這些操作在工
    的頭像 發表于 03-27 08:09 ?412次閱讀
    幫你避雷 <b class='flag-5'>C</b><b class='flag-5'>語言</b>所謂的<b class='flag-5'>短路</b><b class='flag-5'>現象</b>~

    C語言中的socket編程基礎

    Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網絡編程的基礎。通過使用socket,程序可以發送和接收數據,實現不同計算機之間的通信
    的頭像 發表于 11-01 16:51 ?302次閱讀
    主站蜘蛛池模板: 精品久久久麻豆国产精品| 欧美性喷潮xxxx| 色屁屁影院| 在线观看中文字幕码2021不用下载| 波多野结衣 熟女| 久久se精品一区二区国产| 色尼姑久久超碰在线| 19不插片免费视频| 国产精品伊人| 欧美一区二区视频97色伦| 野花韩国在线观看| 国产精品私人玩物在线观看| 男人J放进女人屁股免费观看| 亚洲国产成人爱AV在线播放丿| 99久久亚洲精品影院| 娇妻玩4P被三个男人伺候电影| 日韩亚洲国产中文字幕欧美| 97se se| 狠狠色欧美亚洲狠狠色www | 免费麻豆国产黄网站在线观看| 亚洲 日韩 国产 中文视频| 超碰免费碰免费视频| 美女被j进去动态| 一本道dvd久久综合高清免费 | 24小时日本在线| 娇小萝被两个黑人用半米长| 玩弄放荡人妻一区二区三区| www亚洲欲色成人久久精品| 美女靠逼漫画| 一区一区三区产品| 花蝴蝶免费观看影视| 午夜福到在线4国产| 国产99久久久国产精品成人 | 色噜噜视频| beeg xxx日本老师| 蜜桃成熟时2在线| 在线免费福利| 久久精品国产亚洲AV妓女不卡| 亚洲精品天堂无码中文字幕影院| 国产国产乱老熟视频网站| 日本中文字幕伊人成中文字幕|