C++空指针



如果您没有确切的地址要赋值,那么将指针变量赋值为NULL始终是一个好习惯。这在变量声明时完成。赋值为NULL的指针称为指针。

NULL指针是一个值为零的常量,在包括iostream在内的多个标准库中定义。考虑以下程序:

#include <iostream>

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

编译并执行上述代码后,将产生以下结果:

The value of ptr is 0

在大多数操作系统上,程序不允许访问地址0处的内存,因为该内存由操作系统保留。但是,内存地址0具有特殊意义;它表示该指针并非指向可访问的内存位置。但按照约定,如果指针包含空(零)值,则假定它不指向任何内容。

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

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

因此,如果所有未使用的指针都赋予空值,并且避免使用空指针,则可以避免意外滥用未初始化的指针。许多时候,未初始化的变量包含一些无用值,这使得程序调试变得困难。

cpp_pointers.htm
广告