C语言问题:char a[3]={'A','B','C'};printf("%d\n",strlen(a));​为什么输出是7?

#include<stdio.h>
#include<string.h>
void main(void)
{
char a[]={'A','B','C'};
//或者是char a[3]={'A','B','C'};
printf("%d\n",strlen(a));
}
为什么输出是7?

第1个回答  2014-05-13
strlen是在求字符串长度,字符串末尾都要以'\0'为结尾,这里是a不构成一个串追问

那为什么没检查出错误,确而且能输出确定值7?

第2个回答  2014-05-13
你想得到几? 如果是想要3的话应该用sizeof(a);

如果是使用strlen的话应该得到6才对。 你在什么平台怎么会得到7?追问

恩,我知道sizeof(a)是3。。只是不知道为什么上面输出的是7?谢谢

追答

我刚才试了,在linux上得到的是6.

追问

win7 32位     vc++6.0是7

本回答被提问者采纳
相似回答