前几天学习一维数组的赋值的时候遇到这样一个问题,程序如下:
char a[]="hello";
char b[5]={'h','e','l','l','o'};
char c[]={'h','e','l','l','o',' '};
char *d="hello";
printf("%d,%dn",sizeof(a),strlen(a));
printf("%d,%dn",sizeof(b),strlen(b));
printf("%d,%dn",sizeof(c),strlen(c));
printf("%d,%dn",sizeof(d),strlen(d));
运行结果如下:
6,5
5,38
6,5
4,5
在分析结果之前,我们先来看下sizeof和strlen的区别。
本质上而言,sizeof是一个运算符,它用类型作为参数,而strlen只是C库提供的一个函数,他用来计算以’