sizeof和strlen的区别

前言

C语言中有sizeof和strlen两个函数,这两个函数都可以用来求字符数组的长度,但它们又有所区别,这里对它们的用法进行区分。

分析

  • C语言中字符串默认末尾加'\0'作为结尾;
  • sizeof函数计算的是分配空间的实际字节数(包含'\0'),strlen计算的是字符串的字符个数(不包含'\0');
  • sizeof是运算符,可以以数据类型、函数做为参数。strlen是函数,只能以字符串指针做参数;
  • sizeof是在编译时计算数据类型占空间的大小。strlen则是运行代码时计算结果,传入函数的数组名将退化为指针;
  • sizeof不能计算动态分配空间的大小;

sizeof和strlen的区别