sizeof和strlen在c语言的区别是什么?

如题所述

区别如下:

1、指代上的区别

(1)sizeof:用来获取字符串长度的导引,是处理字符串的重要工具。

(2)strlen:做的是一个计数器。

2、用法上的区别

(1)sizeof:sizeof( type_name ); // sizeof(type); 在编译时有效,而不是在运行时有效。

(2)strlen:extern unsigned int strlen(char *s); 返回s的长度,不包含终止符NULL。

规则上的区别

(1)sizeof:可用于任何变量名,类型名或常量值。 当用于变量名(不是数组名)或常量时,不需要括号。

(2)strlen:从内存的某个特定位置开始扫描(可以是字符串的开头,中间的某个位置,甚至是不确定的存储区域),直到第一个字符串结束字符'\ 0'为止 ,然后返回计数器值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-12-09
如果我们使用字符数组s[100]来保存一个字符串,那么使用sizeof(s)测出的是字符数组s占用的字节数,得到的结果就是100。如果这个字符数组中保存的字符串是"Good",那么,我们使用strlen(s)测出的就是其中保存字符串的长度,也就是这个字符串中含有的字符个数,得到的答案是等于4。本回答被网友采纳
相似回答