Latest web development tutorials

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)     /* 如果 p 非空,则完成 */
if(!ptr)    /* 如果 p 为空,则完成 */

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

C++ 指針 C++指針