非常教程

C参考手册

种类支持 | Type support

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 ++文档 |

|:----|

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。