溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

區(qū)分零值指針,NULL指針,野指針

發(fā)布時間:2020-07-14 02:18:55 來源:網(wǎng)絡(luò) 閱讀:841 作者:_xd_ 欄目:編程語言

零值指針:是值是0的指針,沒有存儲任何內(nèi)存地址的指針,可以是任何一種指針類型,可以是通用變體類型void也可以是char,int*等等。

空指針:NULL 是一個標(biāo)準(zhǔn)規(guī)定的宏定義,用來表示空指針常量,其實空指針只是一種編程概念,就如一個容器可能有空和非空兩種基本狀態(tài),而在非空時可能里面存儲了一個數(shù)值是0,因此空指針是人為認(rèn)為的指針不提供任何地址訊息。
在C++里面我們認(rèn)為0指針就是空指針

野指針
:指向垃圾內(nèi)存的指針,與空指針不同,野指針無法通過簡單地判斷是否為 NULL避免,而只能通過養(yǎng)成良好的編程習(xí)慣來盡力減少。對野指針進(jìn)行操作很容易造成程序錯誤。
野指針產(chǎn)生的原因:
(1)指針變量沒有初始化,任何指針變量剛被創(chuàng)建時不會自動成為NULL指針,它的缺省值是隨機(jī)的;
(2)指針被delete或者free之后沒有置為空,讓人誤以為該指針是合法的
(3)指針操作超越了變量的范圍。不要返回指向棧內(nèi)存的指針或引用,因為棧內(nèi)存在函數(shù)結(jié)束時會被釋放。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI