关于sizeof与strlen的一点总结

一:定义

sizeof:返回一个对象或者类型所占的内存字节数;

strlen:返回字符串长度,以'\0'为结束标志;

二:遇到的几种情况

1.定义字符数组并且存放字符串的情况

char chars[]="12345";//这里会自动分配存储空间

printf("%d \n",sizeof(chars));//6
printf("%d \n",strlen(chars));//5

2.定义字符数组并且存放字符的情况

char chars[]={'1','2','3','4','5','\0'};

printf("%d \n",sizeof(chars));//6
printf("%d \n",strlen(chars));//5

3.定义字符指针指向字符串的情况

char *chars="12345";

printf("%d \n",sizeof(chars));//4,char*类型在32位机上占4个字节,chars是char*类型的指针
printf("%d \n",strlen(chars));//5
发布了62 篇原创文章 · 获赞 9 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Sruggle/article/details/101780150