当前位置: 首页 > article >正文

【C语言】sizeof和strlen的区别

本篇博客将讲解以下知识:

1、sizeof和strlen的区别

1、sizeof和strlen的区别

(1)sizeof

sizeof是单目操作符,不是函数,计算变量所占内存空间大小。单位是字节。如果操作数是类型的话,计算的是使用这种类型创建的变量所占内存空间的大小。不在乎内存找那个存放什么数据。

注意:如果sizeof的操作数是变量,则可以省略sizeof后面的括号,省略括号这一点也侧面地说明了sizeof不是函数。函数使用的时候,不能省略函数后面的括号。

例如:

代码示例:

(2)strlen

使用strlen函数时,要包含头文件:string.h

strlen是C语言库函数,功能是求字符串长度。

函数原型:  size_t    strlen  (const    char*   str)

统计的是strlen函数的参数str中这个地址向后,\0之前字符串中字符的个数。

strlen函数会一直向后找\0,字符,直到找到为止,所以可能存在越界查找。

代码实例:
(3)sizeof和strlen的对比

sizeof

1))sizeof是操作符

2))sizeof计算操作数所占内存的大小,单位是字节

3))不关注内存中存放什么数据

注意:sizeof括号中有表达式的话,表达式是不参数计算的。

代码示例:

strlen

1))strlen是库函数,使用时需要包含头文件string.h

2))strlen是求字符串长度的统计的是\0之前字符的个数、

3))关注内存中是否有\0,如果没有\0就会继续往后找,可能会越界。


http://www.kler.cn/news/356183.html

相关文章:

  • 【C语言】指针与函数:传值与传址
  • 【汇编语言】寄存器(内存访问)(六)—— 栈
  • k8s 1.28.2 集群部署 harbor v2.11.1 接入 MinIO 对象存储
  • Linux文件操作基础
  • [LeetCode] 127. 单词接龙
  • Django中如何实现用户认证和会话管理
  • ThreadLocal线程局部变量
  • 《柬埔寨语翻译通》App是如何实现高棉语语音识别翻译技术的,高精度OCR文字识别技术分享!
  • IO多路复用:select、poll、epoll的底层区别
  • 003 Qt_信号和槽-上
  • FPGA图像处理之均值滤波
  • react子应用嵌入qiankun微前端后,多层抽屉drawer getContainer={false}挂载在当前位置后抽屉不在停靠在窗口的最边上
  • HarmonyOS NEXT开发之ArkTS自定义组件学习笔记
  • 全桥LLC谐振变换器概述及MATLAB仿真
  • LeetCode刷题日记之贪心算法(二)
  • 【汇编语言】寄存器(内存访问)(七)—— CPU提供的栈机制
  • python从0快速上手(十二)高级特性2
  • 如何接受Date范围的数据
  • Chrome DevTools 三: Performance 性能面板扩展—— 性能优化
  • Python | basemap空间绘图 | cartopy | geoviews