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个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值