关于strlen和sizeof求字符串之间的区别

本文讨论了C语言中字符数组ch1和ch2的区别,重点在于strlen和sizeof函数在计算字符串长度时的不同行为:strlen只计算可见字符到0为止,而sizeof包括0在内的数组总大小。通过实例展示了两者在实际应用中的效果和可能引发的警告。
摘要由CSDN通过智能技术生成

再讲之前先说一下以下两个字符数组的区别

1.char ch1[] = {"abcdef"} ;

2.char ch2[] = { 'a' , 'b' , 'c' , 'd' , 'e', 'f' };

数组ch1,是一个双引号括起来的连续字符串,有"\0"结尾,而第二个ch2是单引号没有"\0"结尾。

而一个字符数组的结束是遇到"\0",这就表示你不知道ch2什么时候结束。

了解完上面的两个数组之后我们再说下strlen和sizeof求字符串之间的区别。

strlen计算一个数组的长度是遇到"\0"停下来,并且"\0"是不参与长度计算的,那么strlen(ch1)的长度就是6,而strlen(ch2)就是一个随机值或者出错运行不起来。

sizeof计算一个字符数组的长度除了能看见的还包括看不见的"\0",所以ch1有"\0"长度为7,而ch2没有"\0",只能看见6个字符所以为6。代码和警告在下面可以看下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值