NULL

NULL

在头文件中定义
在头文件<string.h>中定义
在头文件<wchar.h>中定义
在头文件<time.h>中定义
在头文件<locale.h>中定义
在头文件<stdio.h>中定义
在头文件<stdlib.h>中定义
#define NULL / *实现定义* /

宏NULL是一个实现定义的空指针常量,可能是这样的。

  • 一个整数常量表达式,值为0

空指针常量可以转换为任何指针类型; 这种转换会导致该类型的空指针值。

可能的实施

| // C ++ compatible:#define NULL 0 // C ++不兼容:#define NULL(10 * 2 - 20)#define NULL((void *)0)|

|:----|

#include <stdlib.h> #include <stdio.h> int main(void) { // any kind of pointer can be set to NULL int* p = NULL; struct S *s = NULL; void(*f)(int, double) = NULL; // many pointer-returning functions use null pointers to indicate error char *ptr = malloc(10 if (ptr == NULL) printf("Out of memory" free(ptr }

可能的输出:

(none)

扩展内容

| 用于NULL的C ++文档 |

|:----|