|
#include<stdio.h>
#include<string.h>
void main()
{
char a[]="hello";
char b[6];
printf("sizeof=%d,strlen=%d\n",sizeof(a),strlen(a));
printf("sizeof=%d,strlen=%d\n",sizeof(b),strlen(b));
}
输出:
sizeof=6,strlen=5
sizeof=6,strlen=13
sizeof(a)表示字符组a里元素所占用的字节大小
strlen(a)表示字符组a里的长度也就是有多少个元素strlen遇到'\0'才会退出
第一个数组说明:因为
----sizeof(a)表示字符组a里元素所占用的字节大小a里有6个元素每个元素占1个字节所以 第一
个答案是6。
----strlen(a)表示字符组a里的长度也就是有多少个元素strlen遇到'\0'才会退出。。也就是不
算上‘\0'所以结果是5。。。
第二个数组说明:
没有赋值,定义了数组空间的大小数组b的sizeof值为:6,而strlen的值为13?
我的理解数组b中没有赋值也就是没有遇到'\0',所以系统给了个默认的随机值。
如果那位有更好的答案请告诉我!谢谢! |
|