sizeof 和strlen 的区别

  1. strlen计算字符串的具体长度(只能是字符串),不包括字符串结束符。返回的是字符个数。
  2. sizeof计算声明后所占的内存数(字节大小),不是实际长度。
  3. sizeof是一个取字节运算符,而strlen是个函数
  4. sizeof的返回值=字符个数*字符所占的字节数,字符实际长度小于定义的长度,此时字符个数就等于定义的长度。若未给出定义的大小,分类讨论,对于字符串数组,字符大 小等于实际的字符个数+1;对于整型数组,字符个数为实际的字符个数。字符串每个字符占1个字节,整型数据每个字符占的字节数需根据系统的位数类确定,32位占4个字节。
  5. sizeof可以用类型做参数strlen只能用char*做参数,且必须以‘\0’结尾,sizeof还可以用函数做参数;
  6. 数组做sizeof的参数不退化,传递给strlen就退化为指针;

猜你喜欢

转载自blog.csdn.net/fadbgfnbxb/article/details/88788068