· 1. strlen 和sizeof 没有什么联系。
2. strlen 是求字符串长度的——只能针对字符串求长度——是库函数:使用得引用头文件。
3. sizeof 计算变量、数组、类型的大小——单位是字节——是操作符。
//C语言:sizeof与strlen的区别
#include <stdio.h>
int main()
{
char arr[] = "asdfgh";
printf("%d\n", sizeof(arr));
//sizeof是求字符串所占空间的大小,所以包含\n
printf("%d\n", strlen(arr));
//strlen是求字符串的长度 “\0”之前的字符个数,所以不包含\n
return 0;
}
结果为:
#include <stdio.h>
int main()
{
char arr1[] = "abc"; // a b c \n
char arr2[] = { 'a', 'b', 'c' }; // a b c
printf("%d\n", sizeof(arr1));//4
printf("%d\n", sizeof(arr2));//3
printf("%d\n", strlen(arr1));//3 \0之前的长度
printf("%d\n", strlen(arr2));//15 无\0,返回随机值
return 0;
}
结果: