一个字符数组的初始化问题
#include <stdio.h>#include <string.h>
void main()
{
char s[4]={'a','b','c','d'};
//char s[4]="abcd";
printf("%d\n",strlen(s));
}
在给数组s初始化时,出现以下问题:
1、s[4]={'a','b','c','d'}编译可以通过,但是s[4]="abcd";出现错误array bounds overflow。
2、在输出长度时,s[4]={'a','b','c','d'}是7而不是4。在vc6环境下跟踪调试,发现
s="abcd?".
请高手赐教!
[ 本帖最后由 逐渐学习 于 2010-10-9 13:00 编辑 ]