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

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

感谢观看,感谢指正

相关推荐
仰泳之鹅13 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
之歆13 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
jolimark13 小时前
C语言自学攻略:小白入门三步走
c语言·编程入门·学习路线·实践项目·自学攻略
cen__y14 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
AI人工智能+电脑小能手14 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
社交怪人14 小时前
【算平均分】信息学奥赛一本通C语言解法(题号2071)
c语言·开发语言
郭涤生15 小时前
不同主机之间网络通信-以太网连接复习
开发语言·rk3588
山居秋暝LS15 小时前
【无标题】RTX00安装paddle OCR,win11不能装最新的,也不能用GPU
开发语言·r语言
卢锡荣15 小时前
单芯通吃,盲插标杆 —— 乐得瑞 LDR6020,Type‑C 全场景互联 “智慧芯”
c语言·开发语言·计算机外设
Xin_ye1008615 小时前
C# 零基础到精通教程 - 第七章:面向对象编程(入门)——类与对象
开发语言·c#