【C语言】strlen和sizeof的区别

strlen和sizeof没有什么关系!!!

1.strlen是求字符串长度的,只能针对字符串求长度 ,库函数 , 使用要引用头文件string.h 2.sizeof计算变量、数组、类型的大小,它的单位是字节 ,属于操作符中的一种。

可用sizeof求数组元素的个数 strlen示例

头文件

#include<stdio.h>
#include<string.h>//先加头文件

主函数内容

int main()
{
	char arr1[] = { a,97,b };
	printf("%d
", strlen(arr1));//随机值,因为无结束符!!!!!!!!!
    //-->strlen结束符

	char arr2[] = "abcdef";
	printf("%d
", strlen(arr2));//6   //切记:不要算!!!!!!!
    //strlen求字符串长度
	//[a b c d  e f ]六个字符到停,求之前的字符
	return 0;
}

​

sizeof示例

头文件

#include<stdio.h>

主函数内容

int main()
{
	char arr3[] = "abcdef";//7个元素(一个)---char类型大小为1--7*1=7
	printf("%d
", sizeof(arr3));
	//sizeof 计算arr4所占空间的大小
	//7个元素-char 7*1=7
    int arr4[]={0,1,2,3,4,5,6,7,8,9};//一个整型类型4个字节--4*10=40
    int sz=sizeof(arr4)/sizeof(arr4[0]);//10
    //用数组的总字节数除以一个元素的字节数可得到这个数组中共有多少个元素
	return 0;
}

strlen和sizeof的比较

#include<stdio.h>
#include<string.h>//strlen--加其头文件
int main()
{
	char arr5[] = "abc";
	char arr6[] = { a,b,c };

	printf("%d
", sizeof(arr5));//4-四个字节
	printf("%d
", sizeof(arr6));//3!!!!!!!!!!!

	printf("%d
", strlen(arr5));//3
	printf("%d
", strlen(arr6));//随机值--因为无结束符!!!!!!!!!!!!!

	return 0;
}
经验分享 程序员 微信小程序 职场和发展