sizeof与strlen总结

sizeof和strlen这两个东西老是搞不清楚.今天总结一下:

char ch[] = "abcde";
 cout<<"sizeof(ch): "<<sizeof( ch )<<"  strlen(ch):  "<<strlen( ch );//6,5
 cout<<"\n";

 char ch1[100] = "abcde";
 cout<<"sizeof(ch1): "<<sizeof( ch1 )<<"  strlen(ch1):  "<<strlen( ch1 );//100,5

 cout<<"\n";
 char* pch = "abcde";
 cout<<"sizeof(pch): "<<sizeof( pch )<<"  strlen(pch):  "<<strlen( pch );//4,5

sizeof指的是实际占用的大小.(包括\0)

strlen则指的实际字符的大小(不包括\0)

而对数组取大小,其值不退化(成指针)

指针保持原样,(一般是int型)

如果是将字符数组传递给函数,然后获取sizeof的话,数组就退化成指针.

例如:

void fun( char ch[20] )

{
       sizeof(ch) //4

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值