NULL

来自cppreference.com
< c‎ | types
定义于头文件 <stddef.h>
定义于头文件 <string.h>
定义于头文件 <wchar.h>
定义于头文件 <time.h>
定义于头文件 <locale.h>
定义于头文件 <stdio.h>
定义于头文件 <stdlib.h>
#define NULL /*implementation-defined*/

NULL是实现定义的空指针常量,可以是

空指针常量能被转换成任何类型;转换结果是该类型的空指针值。

[编辑] 可能的实现

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

[编辑] 示例

#include <stdlib.h>
#include <stdio.h>
int main(void)
{    
    // 任何类型的指针都能被设为NULL
    int* p = NULL;
    struct S *s = NULL;
    void(*f)(int, double) = NULL;
 
    // 多数返回指针的函数用空指针指示错误
    char *ptr = malloc(10);
    if (ptr == NULL) printf("Out of memory");
    free(ptr);
}

可能的输出:

(none)

[编辑] 参阅

NULLC++ 文档