【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; }