sizeof 与strlen

sizeof 是一个运算符,且是单目运算符,用于计算操作数类型占用的字节数(即以字节为单位返回操作数的大小)。1个字节被定义为char类型所占用的空间的大小。

操作数可以是一个具体的对象(比如一个变量),也可以是一个类型(如int)。

它的一般格式是:sizeof(操作数)  

PS:操作数若是一个类型,它必须要写在括号里,其他情况操作数可以不用括号括起来。建议使用括号更保险。

例如:sizeof(int)=4(在32位系统中)

    或是sizeof  int  =4

           sizeof  float =4

           sizeof(double)=8

           sizeof('\100')=1

           sizeof("hello")=6(字符串"hello"还包含一个结束字符'\0')


strlen 是一个函数,用来求字符串的长度,该函数的功能是返回字符串的长度。字符串的长度是指字符串中有效的字符的个数,不包含结束符'\0'在内。

例如求上面字符串"hello"的长度strlen("hello")=5,而不是6,因为strlen 只计算'\0'之前的字符串长度。

例如:char s1[ ]="dog",s2[ ]="today\0 is \0  monday";

           printf("%d  %d \n",strlen(s1),strlen(s2));

  输出结果为3  5,因为在s2中有多个'\0',strlen函数只返回第一个'\0'之前的字符个数。


由此可知 sizeof 与 strlen 的区别在计算字符串长度时sizeof 是计算整个字符串的长度,包括'\0'在内,而strlen 在计算字符串长度时只是求在遇到的第一个结束符'\0'之前的有效字符长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值