学科分类
目录
C语言

空指针

NULL是一个宏,是C语言中的保留值,空指针指的是指针变量指向NULL,空指针表明指针指向的地址是不可读取也不可以写入的。C语言标准库中对NULL的定义如下:

#define NULL ((void *)0)

上述定义表明,NULL是((void)0)的宏定义,定义指针赋值为NULL与赋值为((vod) 0)是相同的,都指向同一块地址空间。下面通过一个案例演示空指针的定义,具体如例1所示。

例1 nullPointer.c

 1  #include <stdio.h>
 2  int main()
 3  {
 4    int* p = NULL;
 5    int* pp=((void*) 0);
 6    printf("空指针的值p为:%p\n", p);
 7    printf("空指针的值pp为:%p\n",pp); 
 8    return 0;
 9  }

例1的运行结果如图1所示。

图1 例1运行结果

由图1可知,空指针p和pp指向了内存空间地址为0的区域,0地址是一个特殊的地址空间。在程序中,有时可能需要用到指针,但是又不确定指针在何时何处使用,可以先使定义好的指针指向空。

点击此处
隐藏目录