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在运行时才进行操作。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值