栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

sizeof strlen 区别

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 不能用来返回动态分配的内存空间的大小。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347396.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号