首页 > 代码库 > sizeof与strlen的区别
sizeof与strlen的区别
(1)用strlen函数计算字符串的长度时,strlen的结果值是不包含’\0’的。而sizeof计算 字符串的长度时,它的结果值包括’\0’.
(2)sizeof如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。
(3)sizeof 是关键字不是函数,sizeof 在计算变量所占空间大小时,括号可以省略,而计算类型(模子)大小时不能省略。当然它也可以计算函数大小,计算函数大小时可以省略括号,其计算函数的大小为函数返回值的类型所占字节数。无返回值得函数,默认大小为1个字节。
(4)对一个变量进行sizeof运算和对该变量所在的地址进行sizeof运算所得结果相同。
int i=0;
Sizeof(i)=4,sizeof(&i)=4
(5)sizeof()和初不初始化,没有关系;strlen() 和初始化有关。
(6)Sizeof运算结果是操作数所占的内存空间的字节数,strlen返回的是以’\0’结束符结束的字符串的长度。
char str[20]="0123456789";
int a=sizeof(str) //a=20;
int b=strlen(str) //b=10;
(7)sizeof是在编译时就进行计算,strlen在运行时才进行操作。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。