0、‘0‘、‘\0‘的区分和联系

在尝试理解这个问题前要先明白ASCII码,0we和‘\0"的替换使用就是通过ASCII码来实现的

'0'是字符0,对应ASCII码值为48(十进制)

'\0'是转义字符,对应ASCII码值为0(十进制)

0是数字0

在学习时有时会混淆就是因为字符型数据在内存中以ASCII码形式存储,由于此0又在一些情况下可以和'\0'相互替换,为了便于理解,进行以下测试:

#include<stdio.h>
int main()
{
	char arr1[] = { 'a','b','c',0 };
	char arr2[] = { 'a','b','c','\0'};
	char arr3[] = { 'a','b','c','0'};
	char arr4[] = { 12,13 ,14,0 };

	printf("%d", strlen(arr1));
	printf("%d", strlen(arr2));
	printf("%d", strlen(arr3));

	return 0;
}

对arr各数组进行赋值并监视

对比arr1[3],arr2[3],arr3[3]可知'\0'和0在内存中的存储形式是一致的,而'0'是字符0,是和转义字符\0不同的字符

对上述程序进行运行,也可证明'\0'和0两者一致

同理,整形数组中也可以用相应字符进行替换,不再一一赘述。

推而广之,由于ASCII码和字符一一对应并且以ASCII码存储,故可看作一种事物的两种不同表述也是 '\0'和0可以替换的根本原因至于'0'是和前两者不相干的字符和48(十进制)对应。

小白一个,自以为搞懂了一些东西,有点兴奋,如有不足,请不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值