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

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

相当于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位。

相关推荐

盘点10大版本的黄蓉:朱茵最美,翁美玲成经典,金庸最满意的却是周迅!
VMware 替代常见问题合集:评估、选型、迁移与落地
365彩票app老版

VMware 替代常见问题合集:评估、选型、迁移与落地

📅 07-22 👁️ 2332
洛克王国任务档案更新频率揭秘:多久更新一次?
365彩票app老版

洛克王国任务档案更新频率揭秘:多久更新一次?

📅 07-05 👁️ 3671