目录
sizeof和strlen
1.sizeof
2.strlen
3. sizeof 和 strlen 的对比
sizeof和strlen
1.sizeof
- sizeo正名:sizeof是操作符,不是函数,sizeof是操作符,括号内如果有计算不会进行计算
- sizeof 是操作符,用于计算变量所占内存空间大小的,单位是字节,如果操作数是变量类型的话,计算的是使用变量类型创建的变量所占内存空间的大小
- sizeof 只关注占用内存空间的大小,不在乎内存中存放什么数据
2.strlen
- strlen 是C语言库函数,需要包含头文件#include <string.h> 功能是求字符串长度。函数原型为
,统计的是 str 地址开始向后 \0 之前字符串中字符的个数。 strlen 函数会⼀直向后找 \0 字符,直到找到为止,所以可能存在越界查找。
- 使用 "" 引号引起来的字符串末尾会补上\0
- 使用 {} 数组括起来的字符末尾不会补上\0
3. sizeof 和 strlen 的对比
sizeof
- sizeof是操作符,括号内如果有计算不会进行计算
- sizeof计算操作数所占内存的大小, 单位是字节
- 不关注内存中存放什么数据
strlen
- strlen是库函数,使用需要包含头文件 string.h
- srtlen是求字符串长度的,统计的是 \0 之前字符的个数
- 关注内存中是否有 \0 ,如果没有 \0 ,就会持续往后找,可能会越界