sizeof和strlen的区别
1、两者无联系
2、 sizeof:计算数组,变量,类型所在空间的大小,单位是字节
strlen:求字符串的长度,'\0'之前的字符个数,只针对字符串求长度
3、sizeof是操作符
strlen是库函数,需要引头文件——#include<string.h>
例1:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
char arr[]="abcdef";
printf("%d\n",sizeof(arr));
printf("%d\n",strlen(arr));
return 0;
}
这里数组类型时char,char所占字节为1,所以sizeof=1✖️7(元素个数)=7;
(数组中的元素✖️类型所占字节数=所占空间的大小)
(“abcdef”中包含'\0','\0'也是字符)
例2:
#define _CRT_SECURE_NO_WARNINGS 1
#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;
}
出现arr2为15的原因:
1、这里的15是随机值
2、strlen:求字符串的长度,'\0'之前的字符个数,只有找到'\0'才停止