NULL
在头文件<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 ++文档 |
|:----|
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com