c语言中0,‘0’,‘\0’的区别

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'};

基础知识:

1)'\ddd'  \后1-3位八进制数字代表一个字符,八进制书换算成十进制,即为该字符的ASCII码值。

例如:‘\101’代表ASCII码值为65;

2)‘\xhh’ \后面1-2位十六进制数代表一个字符,字符中必须以小写x开头,十六进制数折算成十进制,即为该字符的ASCII码值。

例如:‘\x41’代表ASCII码值为65;

所以:'\0':是一个八进制数表示的字符,其ASCII码值为0.

总结:‘\xhh’ 用两位十六进制数表示ASCII值,是因为ASCII码值就到255,而0xff=255,足够表示。八进制就至少需要3位。

发布了25 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/modi000/article/details/104000299
今日推荐