C++ Null 指針

C++ 指針 C++ 指針

在變數聲明的時候,如果沒有確切的地址可以賦值,為指針變數賦一個 NULL 值是一個良好的編程習慣。賦為 NULL 值的指針被稱為指針。

NULL 指針是一個定義在標準庫中的值為零的常量。請看下麵的程式:

#include <iostream>

using namespace std;

int main ()
{
   int  *ptr = NULL;

   cout << "ptr 的值是 " << ptr ;

   return 0;
}

當上面的代碼被編譯和執行時,它會產生下列結果:

ptr 的值是 0

在大多數的操作系統上,程式不允許訪問地址為 0 的記憶體,因為該記憶體是操作系統保留的。然而,記憶體地址 0 有特別重要的意義,它表明該指針不指向一個可訪問的記憶體位置。但按照慣例,如果指針包含空值(零值),則假定它不指向任何東西。

如需檢查一個空指針,您可以使用 if 語句,如下所示:

if(ptr)     /* 如果 ptr 非空,則完成 */
if(!ptr)    /* 如果 ptr 為空,則完成 */

因此,如果所有未使用的指針都被賦予空值,同時避免使用空指針,就可以防止誤用一個未初始化的指針。很多時候,未初始化的變數存有一些垃圾值,導致程式難以調試。

C++ 指針 C++ 指針