©
This document uses PHP Chinese website manual Release
在头文件<stddef.h>中定义 | ||
---|---|---|
在头文件<string.h>中定义 | ||
在头文件<wchar.h>中定义 | ||
在头文件<time.h>中定义 | ||
在头文件<locale.h>中定义 | ||
在头文件<stdio.h>中定义 | ||
在头文件<stdlib.h>中定义 | ||
#define NULL / *实现定义* / |
宏NULL是一个实现定义的空指针常量,可能是这样的。
一个整数常量表达式,值为0
值为0的整型常量表达式转换为类型void *
空指针常量可以转换为任何指针类型; 这种转换会导致该类型的空指针值。
| // 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 ++文档 |