(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的对比

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

感谢观看,感谢指正

相关推荐
Warren9838 分钟前
如何在 Spring Boot 中安全读取账号密码等
java·开发语言·spring boot·后端·安全·面试·测试用例
燃尽了,可无1 小时前
C#基础编程核心知识点总结
开发语言·c#
llrraa20102 小时前
python whisper生成字幕
开发语言·python·whisper
努力努力再努力wz2 小时前
【c++进阶系列】:万字详解多态
java·linux·运维·开发语言·c++
秦亿凡2 小时前
多线程下为什么用ConcurrentHashMap而不是HashMap
java·开发语言
阿波罗尼亚3 小时前
ExcelUtils实现 设置内容 插入行 复制行列格式
java·开发语言
啊吧怪不啊吧4 小时前
C++之list类的代码及其逻辑详解 (中)
开发语言·数据结构·c++·list
.YM.Z4 小时前
数据在内存中的存储
c语言·内存
THMAIL5 小时前
大模型0基础开发入门与实践:第11章 进阶:LangChain与外部工具调用
开发语言·langchain·php
hfd19905 小时前
JavaScript 性能优化实战技术文章大纲
开发语言·javascript·性能优化