chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

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

lilihe92 ? 來源:最后一個bug ? 2023-11-21 09:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

短路現(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í)行結果:

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

編輯:黃飛

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

    關注

    5

    文章

    620

    瀏覽量

    32517
  • C語言
    +關注

    關注

    183

    文章

    7642

    瀏覽量

    144767

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    C語言中宏定義的應用

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

    C語言中for循環(huán)的用法和應用 C語言中for循環(huán)與while循環(huán)的區(qū)別

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

    C語言中基本數(shù)據(jù)類型、變量和常量的使用

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

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

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

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

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

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

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

    C語言中的關鍵字

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

    C語言中隨機數(shù)的生成代碼

    C語言中隨機數(shù)的生成完整代碼:
    的頭像 發(fā)表于 02-20 09:21 ?1.1w次閱讀

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

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

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

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

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

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

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

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

    scanf在C語言中的作用

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

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

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

    C語言中的socket編程基礎

    Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網(wǎng)絡編程的基礎。通過使用socket,程序可以發(fā)送和接收數(shù)據(jù),實現(xiàn)不同計算機之間的通信
    的頭像 發(fā)表于 11-01 16:51 ?1921次閱讀