c语言中的0、‘0’、‘\0’、“0”及NULL
ASCII表字符的表示方法:
①单引号表示法:例如 ‘A’
②十进制表示法:直接使用该字符在ASCII表中的序号(即十进制值),例如65
③转义字符表示:使用 ‘\index’,其中index为该字符在ASCII表中的(八进制或16进制)值,例如 ’\101’(八进制)和 ’\0x41’(16进制)。使用该方法时,\ 后面的字符值只能使用该字符在ASCII表中的八进制值和16进制值,且默认使用八进制;使用16进制需要在 \ 后面加0x。
上面的’A’、65、’\101’、’\0x41’都是表示的大写字母A,其在ASCII表中的序号是65,即十进制数65,对应的八进制数是101,对应的16进制数是41。
0、’0’、’\0’、”0”、NULL
了解了上面ASCII表字符的表示方法之后,便不难理解标题中的几项了。
①0:ASCII表的第1个字符(NULL字符,打印出来的结果是一个空格,无任何显示),对应的十进制数0,对应的16进制数是0x00。
②’0’:表示字符0(阿拉伯数字0),ASCII表第48个字符,对应的八进制数是60,对应的16进制数是30。
③’\0’:使用转义字符表示的NULL,相当于①中直接使用的0。最常见的用法是隐式地表示字符数组结束。
④”0”:不是单个的字符,而是一个字符串。实际上它是两个字符,即’0’和’\0’。使用数组来存储时,该数组的长度是2。
⑤NULL:同①