(C语言)sizeof和strlen的对比(详解)

sizeof和strlen的对⽐(详解)

1. sizeof

sizeof是用来计算变量所占内存空间大小的, 单位是字节,如果操作数是类型的话,计算的是用类型创建的变量所占空间的大小。
sizeof 只关注占用内存空间的大小 ,不在乎内存中存放什么数据。

当sizeof操作对象是变量名时,可以不加括号,从不加()就可以看出sizeof不是函数,函数是必须加()的,这一点经常有人记错,误以为sizeof是函数要注意。

2. strlen

strlen是C语言的库函数,头文件是string.h功能是求字符串长度,函数原型:

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

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

我们来看看i下面的代码:

运行结果:

arr1与arr2数组初始化方式不同,arr1中abc结尾没有\0,但是arr2后面面有\0,所以用strlen算arr1输出的是15是个随机值。不同电脑上的结果也不相同。

3 sizeof 和 strlen的对比

还有不懂得可在评论区提问,笔者看到会第一时间帮忙解答。

感谢观看,感谢指正

相关推荐
阿蒙Amon25 分钟前
C#类型转换:从基础到进阶的全景解析
开发语言·c#
乌萨奇也要立志学C++38 分钟前
【C语言】回调函数、转移表、qsort 使用与基于qsort改造冒泡排序
c语言
猎嘤一号2 小时前
Windows11桌面解锁守护脚本
开发语言·python·opencv
蓝婷儿3 小时前
Python 数据建模与分析项目实战预备 Day 2 - 数据构建与字段解析(模拟简历结构化数据)
开发语言·python·机器学习
青衫客363 小时前
浅谈 Python 中的 yield——yield的返回值与send()的关系
开发语言·python
玩代码4 小时前
CompletableFuture 详解
java·开发语言·高并发·线程
hz_zhangrl4 小时前
CCF-GESP 等级考试 2025年6月认证C++三级真题解析
开发语言·c++·青少年编程·gesp·gesp2025年6月·c++三级
人生在勤,不索何获-白大侠5 小时前
day21——特殊文件:XML、Properties、以及日志框架
xml·java·开发语言
Dxy12393102167 小时前
Python PDFplumber详解:从入门到精通的PDF处理指南
开发语言·python·pdf
EutoCool8 小时前
Qt:布局管理器Layout
开发语言·c++·windows·嵌入式硬件·qt·前端框架