1、0 整数类型,占4个字节
2、‘0’ 用单引号括起来的是字符类型,ASCII 码值为48,占一个字节
3、‘\0’ 用单引号括起来是字符类型,前面有\,即使转义字符,ASCII 码值为0,占一个字节
所以:0与‘\0’虽所占字节数不同,但数值上是相等的,所以在初始化字符数组的时候,会用0来初始化。
例如:
char ch[6];
memset(ch,0,sizeof(ch));
相当于char ch[6] ={'\0','\0','\0','\0','\0','\0'};
相当于char ch[6] ={0};
基础知识:
1)'\ddd' \后1-3位八进制数字代表一个字符,八进制书换算成十进制,即为该字符的ASCII码值。
例如:‘\101’代表ASCII码值为65;
2)‘\xhh’ \后面1-2位十六进制数代表一个字符,字符中必须以小写x开头,十六进制数折算成十进制,即为该字符的ASCII码值。
例如:‘\x41’代表ASCII码值为65;
所以:'\0':没有以x开头,所以是一个八进制数表示的字符,其ASCII码值为0.
总结:‘\xhh’ 用两位十六进制数表示ASCII值,是因为ASCII码值就到255,而0xff=255,足够表示。八进制就至少需要3位。