空指针


2022年9月14日, Learn eTutorial
1501

如果您不确定要分配的确切地址,最好将 NULL 分配给指针变量。当声明变量时,就会进行此操作。空指针是指那些已分配 NULL 的指针。

iostream 是标准库之一,它定义了 NULL 指针,这是一个值为零的常量。

C++ NULL Pointer

考虑下面的空指针示例程序

示例:空指针


#include <iostream>

using namespace std;
int main () {
   int  *ptr = NULL;
   cout << "The value of ptr will be " << ptr ;
 
   return 0;
}

输出

The value of ptr will be 0

由于操作系统已在地址 0 处保留内存,大多数操作系统不允许程序访问该内存。然而,内存地址 0 具有特定含义,因为它表示该指针不打算指向可访问的内存区域。通常,根据约定,如果指针具有空(零)值,则假定它不指向任何内容。

您可以使用 if 语句检查空指针,如下所示。


if(ptr) // succeeds only if the  p is not null
if(!ptr) // succeeds only if the p is null
 

因此,如果所有未使用的指针都赋值为空值,您可以防止意外使用空指针,并避免使用空指针。未初始化的变量通常包含垃圾值,这使得程序调试更加困难。