C语言NULL指针

C语言NULL指针教程

C 语言 中,如果一个 指针 不指向任何数据,我们就称之为空指针,用 NULL 表示。注意,NULL 是区分大小写的,即 NULL 不能写成 null。

我们在定义指针时或者再指针使用完毕,不再使用时,一定推荐将指针设置为 NULL,表明该指针不再指向任何数据。

C语言NULL指针详解

定义

#define NULL ((void *)0)

说明

(void *)0 表示把数值 0 强制转换为 void * 类型,最外层的 ( ) 把 宏定义 的内容括起来,我们自己进行宏定义时也推荐这么做,防止发生歧义。

头文件

NULL 定义在 stdio.h 头文件中。

案例

定义NULL指针

NULL 指针表明不指向任何数据

#include <stdio.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); int *pa; printf("pa = %p\n", pa); return 0; }

程序运行后,控制台输出如下图所示:

35_C语言NULL指针.png

我们定义了一个指针,该指针没有进行任何的初始化,接着,我们打印了该指针变量的值,我们发现,并不是 0,而是一个随机数,这是因为,我们定义了指针如果不初始化,那么就是任意的值。现在,修改程序如下:

#include <stdio.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); int *pa = NULL; printf("pa = %p\n", pa); return 0; }

程序运行后,控制台输出如下图所示:

36_C语言NULL指针.png

这次,我们显式的将指针变量 pa 赋值为了 NULL,此时,我们再打印变量 pa 的值,发现,此时指针变量 pa 的值为 0。

C语言NULL指针总结

在 C 语言中,如果一个指针不指向任何数据,我们就称之为空指针,用 NULL 表示。注意,NULL 是区分大小写的,即 NULL 不能写成 null。

我们在定义指针时或者再指针使用完毕,不再使用时,一定推荐将指针设置为 NULL,表明该指针不再指向任何数据。