1、在stdio.h中,对NULL有如下定义:
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
即,在c语言中NULL 用(void*)0表示,在c++中用0表示。
2、'\0':表示字符串结束,它在ASCII中的值为0(数值0,非字符‘0’)
所以在数值上NULL,'\0',0是一样的,都是0,但'0'就不同了,首先它本身是一个字符,在ASCII码中编码为48,所以字符0和上述三个值不同。