原文鏈接:https://www.zhoubotong.site/post/85.html
這里有必要說下關于空指標的使用注意事項, C++ 中,如果一個指標不指向任何資料,就稱之為空指標,用 NULL 表示,
注意,NULL 是區分大小寫的,即 NULL 不能寫成 null,
C++ NULL指標
定義
#define NULL ((void *)0)
說明
(void *)0 表示把數值 0 強制轉換為 void * 型別,最外層的 ( ) 把 宏定義 的內容括起來,進行宏定義時也推薦這么做,防止發生歧義,
頭檔案
NULL 定義在 stdio.h 頭檔案中,
舉個例子吧:
#include <iostream>
using namespace std;
int main()
{
cout << "草堂筆記(www.zhoubotong.site)\\n" << endl;
int *ptr ;
cout << "ptr = " << ptr << endl;
return 0;
}
輸出:

上面我們定義了一個指標,該指標沒有進行任何的初始化,接著,我們列印了該指標變數的值,我們發現,輸出是 0,當然也可以像下面這樣定義:
#include <iostream>
using namespace std;
int main() {
cout << "草堂筆記(www.zhoubotong.site)\\n" << endl;
int *ptr = NULL;
cout << "ptr = " << ptr << endl;
if (!ptr) {
cout << "prt為空指標\\n" << endl;
}
return 0;
}
輸出:

上面我們顯式的將指標變數 pa 賦值為了 NULL,在大多數的作業系統上,程式不允許訪問地址為 0 的記憶體,
因為該記憶體是作業系統保留的,但是記憶體地址 0 有特別重要的意義,它表明該指標不指向一個可訪問的記憶體位置,
但是按照慣例,如果指標包含空值(零值),則表示它不指向任何東西,
上面我們用if判斷空指標,這里順帶說明下, 如需檢查一個空指標,我們可以使用 if 陳述句:
if(ptr) \* 如果 ptr 非空 */
if(!ptr) \* 如果 ptr 為空 */
總結:
我們在定義指標時或者指標使用完畢,不再使用時,推薦將指標設定為 NULL,表明該指標不再指向任何資料,
無論從事什么行業,只要做好兩件事就夠了,一個是你的專業、一個是你的人品,專業決定了你的存在,人品決定了你的人脈,剩下的就是堅持,用善良專業和真誠贏取更多的信任,轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/514988.html
標籤:C++
