希望高手能忍赖,写得有点多,不好意思啊,是这样的,遇到一个疑惑。就是关于字符数组的输入输出问题。
char a[10];
scanf("%s",a);
printf("%s",a);
我定义了一个字符数组char a[10],我用scanf对它进行输入,输入10个字符,书上讲的系统会自动在字符长量后加'\0'.但是字符数组的空间已经被10字符占了,而这个'\0'放在什么地??是不是会被放在a[9]的下个内存中(即越界了)???
我在用printf输出,能够正常输出,为什么??(printf不是要检测到'\0'才停止吗,既然数组中没有'\0',系统为什么不抱错??而且能够正常输出?)
还有一个问题就是(接上),当我输入11,12,13个字符时,程序也能正常运行,即同样输出11,12,13个字符。。但是当我输入几十个字符时,程序同样能运行,输出同样多字符,但是屏幕上会弹出一小筐,提示程序已经停止工作??????
这到到底是为什么呀??
就是字符串和结束符搞的不清楚。。
各位高手哥哥姐姐帮帮忙呀,帮小第一把。。