NULL的含义是什么是空值还是未知的值

问题描述:

NULL的含义是什么
是空值
还是未知的值

NULL的 英文意思是 “没有东西”“空”
C 语言中 是 宏 定义.
#include 里是:

#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
意思是:
如果前面已定义了 NULL 则不 改变它,完毕.
如果前面没有定义NULL 但是 定义了 __cplusplus (C++) 则 定义 为 0,完毕.
如果前面没有定义NULL 也 没有 定义 __cplusplus ,则定义 为 ((void *)0),完毕.
其他头文件也可以重新定义NULL
----------
到底NULL是什么,取决于程序包含的头文件.
当然,你自己也可以定义它:
#define NULL 0
----------
一般来说,NULL 可能是 0, 也可能是 ((void *)0)