2023/6/27 strlen和sizeof的理解和使用

文章详细阐述了sizeof运算符和strlen函数在处理数组和字符串时的不同,sizeof返回数组的总字节数,而strlen计算字符串的长度直到遇到结束符。对于abc这样的字符串,strlen更适用;而对于单引号表示的字符,sizeof能快速获取长度。此外,文章还提到了递归函数的例子,解释了如何计算fun(2)的输出为16。
摘要由CSDN通过智能技术生成

首先用这两个函数的本质目的是求数组的下标问题(基本上),sizeof(arr)求得的是一个数组总共所占的字节,而strlen得到的是一个数组一共有多少位数,所以在求一共有多少位的时候sz=sizeof(arr)/sizeof(arr[ 0])

sz=strlen(arr)

在使用strlen时候要引用头文件string.h

还有一个不同是sizeof所计算的数组长度是把后面隐藏的结束标志/0也计算进去的,而strlen不会计/0

 这就引出了"abc"双引号里面的最后自动会加一个/0,而'a','b'单引号里面没有自动加一个/0

strlen会一直往后面记数直至找到一个/0

sizeof是一个操作符 是用来计算变量类型所占空间的大小  单位是字节,只关注内存的具体大小不关心类型

strlen是一个库函数,是专门计算字符串长度的,只能针对字符串,从参数给定的地址 向后一直找/0,统计/0之前出现的字符的个数

总结:" "双引号的结尾自动补一个/0因此用strlen()可以直接求得它的长度 strlen更适用于双引号" "

       ' '单引号没有自动补/0,这时候用sizeof求方便,

在主函数外的函数中不能用sizeof计算 因为传递过去的arr是数组首数组元素的地址arr不是代表整体所以sizeof只能在main函数中里用

递归函数的利用,如果调用的是fun(2)输出函数为多少?

2*f3

f3又进去f3又是2*f4

f4又进去是2*f5 

f5又进去就是2

所以2*2*2*2=16 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值