每日一c,.用strlen(),sizeof() 及空指针的梳理(三)

本文详细阐述了C语言中strlen()函数用于计算字符串长度与sizeof()运算符获取数组大小的区别,强调了无符号类型在比较时可能产生的问题。同时,介绍了空指针的概念,指出将0转化为指针时不能进行解引用操作,以避免运行时异常。
摘要由CSDN通过智能技术生成
时间:2017/06/05 11:30
一. strlen ()求字符串的长度及与sizeof()的区别
库函数 strlen 的原型为: size_t  strlen( char const *string );
strlen 返回一个类型为 size_t 的值。这个类型是在头文件 stddef.h 中定义的,它是一个无符号整型类型
在表达式中使用无符号数可能导致不可预期的结果。例如,下面两个表达式看起来是相等的:
if( strlen(str1) >= strlen(str2) )…
if( strlen(str1) - strlen(str2) >= 0 )…
但事实上它们是不相等的,第 1 条语句会按照预想的那样工作,但第 2 条语句的结果将永远是真的。 strlen 的结果是无符号数,所以操作符 >=   左边的表达式也将是无符号数,而无符号数决不可能是负的。表达式中如果同时包含了无符号数和有符号数,可能会产生奇怪的结果。和上面的一对语句一样,下面两条语句并不相等,原因相同。
if( strlen(str1) >= 1 0 )…
if( strlen(str1) -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值