歡迎來到培訓(xùn)無憂網(wǎng)!

全國切換

咨詢熱線 400-001-5729

位置:培訓(xùn)無憂網(wǎng) > 新聞資訊 > 電腦/IT > c語言 >  C語言培訓(xùn)空指針是什么意思

C語言培訓(xùn)空指針是什么意思

來源:m.universityresearchassociates.com 發(fā)布人:星星

2021-12-28 11:43:00|已瀏覽:1715次

空指針是什么意思

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

       我們講,每一種指針類型都有一個特殊值——“空指針”。它與同類型的其他所有指針值都不相同,它“保證與任何對象或函數(shù)的指針值都不相等”。也就是說,空指針不會指向任何地方,它不是任何對象或函數(shù)的地址。簡單點說,一個指針不指向任何數(shù)據(jù),我們就稱之為空指針,用NULL表示。如下所示:int *p=NULL;
       比如我們熟悉的malloc函數(shù),當分配內(nèi)存失敗時就會返回空指針,這是空指針比較典型的用法。這里有一點我們要特別強調(diào):空指針絕對不等同于未初始化的指針。我們前面講過未初始化的指針通常指的是野指針(關(guān)于野指針這里就不再贅述),而空指針可以確保不指向任何對象或函數(shù),而未初始化的指針則可能指向任何地方,這也正是其危害所在。
       接下來我們來講講NULL,NULL其實是一個宏定義,在頭文件中是這樣的:#define NULL ((void*)0)
       (void*)0表示把數(shù)值 0 強制轉(zhuǎn)換為void*類型,注意是大寫的NULL,不是null也不是NUL,null只是普通的標識符,NUL表示的是'\0',是ASCII碼表中的第 0 個字符,一般用于字符串的結(jié)束標志,而NULL表示的是空指針,可以直接出現(xiàn)在代碼中,但NUL不能。
       還有一點需要特別說明的是:在源碼中用來表示空指針的空指針常量使用整數(shù)0,NULL 使 p 指向地址 0,大多數(shù)系統(tǒng)中都將 0 作為不被使用的地址,且在很多機器上都在內(nèi)部釆用所有位都是0的字來表示空指針,但也有系統(tǒng)會使用地址 0,而將 NULL 定義為其他值,所以 NULL 不能說等于0。也就是說定義空指針要寫成int *p=NULL而不是int *p=0。

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

       本文由培訓(xùn)無憂網(wǎng)達內(nèi)教育專屬課程顧問老師整理發(fā)布,更多C語言課程信息可關(guān)注培訓(xùn)無憂網(wǎng)C語言培訓(xùn)頻道或添加老師微信:15033336050

      注:尊重原創(chuàng)文章,轉(zhuǎn)載請注明出處和鏈接 http://m.universityresearchassociates.com/news-id-10645.html 違者必究!部分文章來源于網(wǎng)絡(luò)由培訓(xùn)無憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實性請自行核實或聯(lián)系我們,了解更多相關(guān)資訊請關(guān)注c語言頻道查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費申請試課。關(guān)注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問老師會一對一幫助你規(guī)劃更適合你的專業(yè)課程!
  • 姓名:

  • 手機:

  • 地區(qū):

  • 想學(xué)什么:

  • 培訓(xùn)無憂網(wǎng)
免 費 申 請 試 聽
提交申請,《培訓(xùn)無憂網(wǎng)》課程顧問老師會一對一幫助你規(guī)劃更適合你的專業(yè)課程!