首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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)|

|:----|

代码语言:javascript
复制
#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);
}

可能的输出:

代码语言:javascript
复制
(none)

扩展内容

| 用于NULL的C ++文档 |

|:----|

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com