代码示例1:mesg[ ] = " "
#include <stdio.h>
#include <string.h>
int main()
{
char mesg[] = "";
printf("strlen of mesg:%d\n",(int)strlen(mesg));
printf("sizeof mesg:%d\n",(int)sizeof(mesg)/(int)sizeof(char));
return 0;
}
测试结果:
xuanmiao@linux:~/demo/test$ ./test
strlen of mesg:0
sizeof mesg:1
-
strlen计算的是字符串的有效长度(不包括终止符\0)。 -
sizeof计算的是数组的总大小(包括所有字符和终止符\0)。 mesg的实际内容是{'\0'},因此strlen返回0,sizeof返回1。
代码示例2:mesg[ ] = "\0"
#include <stdio.h>
#include <string.h>
int main()
{
char mesg[] = "\0";
printf("strlen of mesg:%d\n",(int)strlen(mesg));
printf("sizeof mesg:%d\n",(int)sizeof(mesg)/(int)sizeof(char));
return 0;
}
测试结果
xuanmiao@linux:~/demo/test$ gcc test.c -o test
xuanmiao@linux:~/demo/test$ ./test
strlen of mesg:0
sizeof mesg:2
-
mesg的实际内容是{'\0', '\0'},因此strlen返回0,sizeof返回2。
浙公网安备 33010602011771号