strlen和sizeof的区别有以下三点:
1、strlen和sizeof表示不同的含义。
strlen表示的是一个计数器的工作,它是从内存的某个位置(这里的位置可以是字符串开头,中间某个位置,也可以是某个不确定的内存区域)开始扫描,然后直至碰到第一个字符串结束符’\0’为止,然后返回计数器值。
sizeof在C语言中是用于判断数据类型或者表达式长度的运算符。
2、在程序中运行strlen和sizeof的运行结果有区别。
strlen后是不加最后的结束标志’\0’,其表示字符串的长度。而sizeof求的是字符串所在内存中的长度,所以它是加上最最后的结束标志’\0’的。
例子:
include[HTML_REMOVED]#include[HTML_REMOVED]int main(){char buf[] = “abc”;printf(“strlen(buf) = %d\n”,strlen(buf));printf(“sizeof(buf) = %d\n”,sizeof(buf));return 1; }
上面这个程序,运行的结果就是
strlen(buf) =3
sizeof(buf) =4
3、strlen和sizeof在用法上有区别。
sizeof可以用类型做参数,可以用函数做参数。而strlen只能用char*做参数。