区别如下:
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'为止 ,然后返回计数器值。