sizeof和strlen的区别
前言
C语言中有sizeof和strlen两个函数,这两个函数都可以用来求字符数组的长度,但它们又有所区别,这里对它们的用法进行区分。
分析
- C语言中字符串默认末尾加'\0'作为结尾;
- sizeof函数计算的是分配空间的实际字节数(包含'\0'),strlen计算的是字符串的字符个数(不包含'\0');
- sizeof是运算符,可以以数据类型、函数做为参数。strlen是函数,只能以字符串指针做参数;
- sizeof是在编译时计算数据类型占空间的大小。strlen则是运行代码时计算结果,传入函数的数组名将退化为指针;
- sizeof不能计算动态分配空间的大小;