sizeof strlen 区别

sizeof strlen 区别,第1张

sizeof strlen 区别


strlen() 函数从字符串的开头位置依次向后计数,直到遇见,然后返回计时器的值。最终统计的字符串长度不包括。
原型size_t strlen(char const* str);
因为函数 strlen 的返回结果是 size_t 类型(即无符号整型),而 size_t 类型绝不可能是负的。

#include 
#include 

int main ()
{
   char str[50]={0x01,0x02,0x03};
   int len;

   printf("strlen(str) = %dn",strlen(str));
   printf("sizeof(str) = %dn", sizeof(str));
	
   return(0);
}

关键字 sizeof 是一个单目运算符,而不是一个函数。与函数 strlen 不同,它的参数可以是数组、指针、类型、对象、函数等,如下面的示例代码所示:

char sArr[] = "ILOVEC";

printf("sArr的长度=%dn", sizeof(sArr));

相对于函数 strlen,这里的示例代码运行结果为 7(因为它包括结束字符 null)。同时,对 sizeof 而言,因为缓冲区已经用已知字符串进行了初始化,其长度是固定的,所以 sizeof 在编译时计算缓冲区的长度。也正是由于在编译时计算,因此 sizeof 不能用来返回动态分配的内存空间的大小。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4751872.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-08
下一篇 2022-11-08

发表评论

登录后才能评论

评论列表(0条)

保存