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

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

感谢观看,感谢指正

相关推荐
Yupureki4 分钟前
从零开始的C++学习生活 20:数据结构与STL复习课(4.4w字全解析)
c语言·数据结构·c++·学习·visual studio·1024程序员节
REDcker11 分钟前
C++项目 OpenSSL 依赖最佳实践
开发语言·c++
一念&15 分钟前
每日一个C语言知识:C 错误处理
c语言·开发语言·算法
国服第二切图仔24 分钟前
Rust开发之使用panic!处理不可恢复错误
开发语言·后端·rust
郝学胜-神的一滴39 分钟前
Qt删除布局与布局切换技术详解
开发语言·数据库·c++·qt·程序人生·系统架构
奔跑吧邓邓子43 分钟前
【C语言实战(66)】筑牢防线:C语言安全编码之输入与错误处理
c语言·安全·开发实战·错误处理·输入验证
闲人编程1 小时前
现代Python开发环境搭建(VSCode + Dev Containers)
开发语言·vscode·python·容器·dev·codecapsule
雨落在了我的手上1 小时前
C语言入门(十三):操作符详解(1)
c语言
代码搬运媛2 小时前
【工具上新】快速了解一站式开发工具 bun
开发语言·bun
fantasy5_52 小时前
手撕vector:从零实现一个C++动态数组
java·开发语言·c++