1.sizeof和strlen含义

sizeof(数据类型符或变量名),用于测试类型或数据所占用的字节数(所占空间的大小),字符串所占空间大小包括字符串结束符(\0);strlen用于测试并返回字符串的实际长度(不含字符串结束符),返回的无符号整型,可以强制类型转换,如(int)strlen()。

2举例

#include<stdio.h>
int main()
{
char arr1[]={"hxh"};//由a b c \0 组成的字符串
char arr2[]={'h','x','h'};//由a b c字符组成的字符数组
printf("%d",sizeof(arr1));//4
printf("%d",sizeof(arr2));//3//字符数组不包含结束符\0
printf("%d",strlen(arr1));//3
printf("%d",strlen(arr2));//随机值,找到\0结束,但不计数\0
return 0;
}

3.区别

strlen是针对字符串长度的测试,因此适用对象是字符串;sizeof是测试类型或数据所占用的字节数,因此可以测试除了字符串之外的其他类型数据,例如

#include<stdio.h>
int main()
{
int a;
char arr[]={"hxh\n\\21/\\\""};//由h x h \n \\ 2 1 / \\\ " \0组成
printf("%d",sizeof(int));//4
printf("%d",sizeof(a));//4
printf("%d",sizeof(arr));//11
return 0;
}

sizeof对变量名和其类型的结果一致,且使用适用范围更广。

总结:初学习,肯定还存在很多理解不到位之处和知识点遗漏之处,欢迎提出并一起学习。