strlen()和sizeof()浅谈

strlen()

strlen() 所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。

原型为size_t strlen(const char string); ,其中size_t实际上是unsigned int,在VC6.0中可以看到这样的代码:typedef unsigned int size_t; 。注意入口参数是char 类型,也就是只能是字符串或字符数组。包含在头文件string.h中。

sizeof()

在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符/操作符,注意strlen()是一个函数
其返回值类型为size_t,在头文件stddef.h中定义。这是一个依赖于编译系统的值,一般定义为 typedef unsigned int size_t; ,和strlen()是一样的类型。

sizeof()的情况会比较复杂,有

  • 基本数据类型或者表达式的sizeof()。
  • 指针的sizeof()。注意在32位机上式4个字节,64位机上式8个字节。
  • 函数的sizeof()。应该是函数返回值的数据类型的sizeof()
  • 结构体的sizeof()。考虑到字节对齐。

写着写着,突然发现百度百科上写的太全了。。。直接复制过来了。。。

https://baike.baidu.com/item/sizeof/6349467?fr=aladdin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值