(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 分钟前
Python爬虫入门
开发语言·爬虫·python
dubochao_xinxi22 分钟前
✅ TensorRT Python 安装精简流程(适用于 Ubuntu 20.04+)
开发语言·python·ubuntu
感谢地心引力26 分钟前
【Matlab】最新版2025a发布,深色模式、Copilot编程助手上线!
开发语言·windows·matlab·copilot
Java程序员-小白1 小时前
使用java -jar命令指定VM参数-D运行jar包报错问题
java·开发语言·jar
范纹杉想快点毕业1 小时前
以项目的方式学QT开发(一)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
c语言·数据结构·c++·git·qt·链表·github
xueyinan2 小时前
小刚说C语言刷题—1088求两个数M和N的最大公约数
c语言
ClearViper32 小时前
Java的多线程笔记
java·开发语言·笔记
敷啊敷衍2 小时前
深入探索 C++ 中的 string 类:从基础到实践
开发语言·数据结构·c++
学地理的小胖砸2 小时前
【Python 面向对象】
开发语言·python
神经毒素2 小时前
WEB安全--Java安全--LazyMap_CC1利用链
java·开发语言·网络·安全·web安全