strlen和sizeof比较

此图方便大家分析问题,作为参考,读者可作为对照参考:

简单说一下scanf():

Scanf()函数每次读取一个字符,跳过所有的空白字符,直至遇到第1个非空白字符才开始读取,往往只读取字符串中的一个单词,遇到第一个空格、制表符、换行符时就不再读取。结合程序8,9行,相信读者能看明白。

 

#核心#:在这里想根据上面的图例解释一下strlen与sizeof具体的区别和用法:

Strlen(函数)作用:计算返回字符串长度,以\0结束(所以计算的时候不含\0),受存储内容影响;

Sizeof(运算符)作用:计算实际分配的内存空间,通常只能计算静态内存空间,不受存储内容影响;
在这里说明一下
int a[ ]="abc";
Sizeof(a)=4,因为"abc"自动会添加\0,因此为3+1

在某些情况下!在某些情况下!

简单理解为:strlen为实际存储空间,sizeof为最大存储空间。

下面有些典型的例题供大家练习理解:

Sizeof:

Char str1[]=”abcde“      sizeof(str1)=6

Char str2[10]=”abcdefg”       zizeof(str2)=10

Char str3[20]={‘a’};             sizeof(str3)=20

思考题:

Char *str4=”abcde”

(1).Sizeof(str4)=4   (2).sizeof(*str4)=1    

分析:  (1)中计算的是 (char *str4)的存储空间,在C中以4个字节存储。

(2)中计算的是 str4首元素的值,是以1个字节存储。  

 

Strlen:就是计算字符串,小编不做过多解释!

                                                       希望这简单的说明,能让初学者能够知道其具体用法。如发现问题 请在下面留言 谢谢!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值