<kbd id="daqct"></kbd>

  • <nav id="daqct"></nav>
    <wbr id="daqct"><pre id="daqct"></pre></wbr>
    <wbr id="daqct"></wbr>
    <form id="daqct"><th id="daqct"></th></form>
    更多課程 選擇中心

    C/C++培訓
    達內IT學院

    400-111-8989

    空指針到底是什么意思?

    • 發布:C++培訓
    • 來源:問答庫
    • 時間:2020-11-18 15:33

    各位,C中有一個叫做空指針的名詞,它究竟是指什么呢,今天就跟大伙聊聊這個空指針。

    我們講,每一種指針類型都有一個特殊值——“空指針”。它與同類型的其他所有指針值都不相同,它“保證與任何對象或函數的指針值都不相等”。也就是說,空指針不會指向任何地方,它不是任何對象或函數的地址。簡單點說,一個指針不指向任何數據,我們就稱之為空指針,用NULL表示。如下所示:

    int *p=NULL;

    比如我們熟悉的malloc函數,當分配內存失敗時就會返回空指針,這是空指針比較典型的用法。這里有一點我們要特別強調:空指針絕對不等同于未初始化的指針。我們前面講過未初始化的指針通常指的是野指針(關于野指針這里就不再贅述),而空指針可以確保不指向任何對象或函數,而未初始化的指針則可能指向任何地方,這也正是其危害所在。

    接下來我們來講講NULL,NULL其實是一個宏定義,在頭文件中是這樣的:

    #define NULL ((void*)0)

    (void*)0表示把數值 0 強制轉換為void*類型,注意是大寫的NULL,不是null也不是NUL,null只是普通的標識符,NUL表示的是'\0',是ASCII碼表中的第 0 個字符,一般用于字符串的結束標志,而NULL表示的是空指針,可以直接出現在代碼中,但NUL不能。

    還有一點需要特別說明的是:在源碼中用來表示空指針的空指針常量使用整數0,NULL 使 p 指向地址 0,大多數系統中都將 0 作為不被使用的地址,且在很多機器上都在內部釆用所有位都是0的字來表示空指針,但也有系統會使用地址 0,而將 NULL 定義為其他值,所以 NULL 不能說等于0。也就是說定義空指針要寫成int *p=NULL而不是int *p=0。

    好了,就講到這里吧,現在你對空指針有更深入的了解了嗎?希望對大家有所幫助,感謝耐心閱讀!

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:a[i] = i++ 到底對不對?
    下一篇:沒有下一篇了

    a[i] = i++ 到底對不對?

    C++培訓哪家好?全方位對比機構

    C/C++中的必須熟記的基礎知識

    C語言為什么沒有數組下標越界檢查?

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    欧美三级片,白洁外传,第四色播日韩AV第一页,啪啪免费观看大全av 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>