在C/C++编程中,会遇到各种形式的0,虽是很基础的内容,对于初学者来说却又很容易混淆,从内存存储的角度或许能够更好的理解,整理如下:
0:整型常量,对应内存中存储的内容为0x00(8位)、0x00000000(32位)。
'0':字符常量(ASCII码值为48的字符),对应内存中存储的内容为0x30。
'\0':字符串结束符(ASCII码值为0的字符),对应内存中存储的内容为0x00。
''0'':字符串常量,对应内存中存储的内容为2个字节:0x30('0')、0x00('\0')。
NULL:C中定义为(void *)0,意为空指针,C++中定义为0,既可以表示整型常量0(编译器默认解释),又可以表示无类型指针常量(void *)0,C++11中新增的nullptr固定表示空指针。