当前位置: 代码迷 >> 综合 >> 关于空指针NULL
  详细解决方案

关于空指针NULL

热度:90   发布时间:2024-02-04 17:38:20.0

在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯。赋为 NULL 值的指针被称为空指针。

NULL 指针是一个定义在标准库中的值为零的常量。请看下面的程序:

#include <iostream>
using namespace std;
int main ()
{int  *ptr = NULL;cout << "ptr 的值是 " << ptr ;return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

ptr 的值是 0

如需检查一个空指针,您可以使用 if 语句,如下所示:

if(ptr)     /* 如果 ptr 非空,则完成 */
if(!ptr)    /* 如果 ptr 为空,则完成 */

因此,如果所有未使用的指针都被赋予空值,同时避免使用空指针,就可以防止误用一个未初始化的指针。很多时候,未初始化的变量存有一些垃圾值,导致程序难以调试。

那么,NULL是什么呢?在我的vs2013+QT 5.8中有如下定义:

stdlib.h

/* Define NULL pointer value */
#ifndef NULL
#ifdef __cplusplus
#define NULL    0
#else  /* __cplusplus */
#define NULL    ((void *)0)
#endif  /* __cplusplus */
#endif  /* NULL */

 

  相关解决方案