strlen函数返回无符号数

有如下代码,判断打印结果是"hehe"还是"haha""

7020156f002f43dc81af24db570389cb.jpg

 strlen("abc")的结果为3,

strlen("abcdef")的结果为6,

3-6=-3,-3<0,可是结果显示"hehe"

36d2273b777a4231b56fe4f92a31e771.jpg

 

原因是库函数strlen规定返回类型为size_t(即无符号数)5baab61af0d94e85bbe52a788cc7554e.png

 所以-3在内存看来是无符号数,符号位上的1按无符号数处理,所以结果一定大于0,输出"hehe"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值