黑马程序员技术交流社区

标题: 请问strlen()和sizeof()的使用上的区别在哪? [打印本页]

作者: 新生heima    时间: 2015-8-15 15:15
标题: 请问strlen()和sizeof()的使用上的区别在哪?
本帖最后由 新生heima 于 2015-8-16 14:31 编辑

请大神说的详细点!
作者: 960743995    时间: 2015-8-15 16:58
1.Strlen只是用来求字符串类型的常变量数组等的长度。
作者: 960743995    时间: 2015-8-15 17:05

1.Strlen()只是用来求字符串类型的常变量数组等的长度.只能用来求string类型。
2.sizeof()用来求常变量数组等在内存中占的空间大小,即字节数。
因为char类型变量一个字母占1字节,所以有时候二者计算结果相同,但有时候并不相同。如:
char str[10]="itcast";
int a=strlen(str);      //结果 a=6; 因为有6个字符。
int b=sizeof(str);      //结果 b=10; 因为数组大小为10,而一个字符占的字节为1,所以b = 10*1 =10.
综上,如果你要求字符串的长度,用strlen();如果你的目的是看这个常变量占的内存,用sizeof()。
作者: 新生heima    时间: 2015-8-16 14:29
960743995 发表于 2015-8-15 17:05
1.Strlen()只是用来求字符串类型的常变量数组等的长度.只能用来求string类型。
2.sizeof()用来求常变量数 ...

多谢回答,很详细,明白了,之前一直有点混乱




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2