strlen与sizeof在本质上并没有什么区别。
strlen用来计算字符串的长度,遇到'\0'停止。而且strlen是一个库函数,引用时需要引用头文件。
sizeof是计算所占空间大小,一般来说包括'\0'。用来计算变量,数组,类型的大小。是一个操作符。
eg: #include <stdio.h>
#include<string.h>
int main ( )
{
char arr1[ ] ="abc";
char arr2[ ] ={'a','b','c'};
printf("%d\n",sizeof(arr1));
printf("%d\n",sizeof(arr2));
printf("%d\n",strlen(arr1));
printf("%d\n",strlen(arr2));
return 0;
}
打印结果为4 3 3随机值
解释:char1中包括a b c d \0,所以sizeof的空间大小为4个字节。char2中包括 a b c,所以sizeof的空间大小为3个字节。strlen用来计算字符串的长度,在char1中遇到\0就会停止,故strlen(arr1)的值为3。char2中只有 a b c 没有\0,所以strlen在计算arr1字符串长度时会得到一个随机值