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

strlen和sizeof具体化说明

简单说一下scanf():

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

 

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

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

Sizeof(运算符)作用:计算实际分配的内存空间,通常只能计算静态内存空间,不受存储内容影响;

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

简单理解为: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:就是计算字符串,小编不做过多解释!

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

相关文章: