直接上代码
#include<stdio.h>
int main()
{
char name[10];
scanf("%s",name);
printf("%s\n",name);
return 0;
}
最终结果是这样的,请问为什么可以输出呢?
数组越界,你name就10个字符,输入那么多肯定有问题
缓冲区溢出了,将name开大一些。
或者,如果你要预防用户故意输入过长的字符串,可以用scanf_s(vc++ 2008以上支持)
#include<stdio.h>
int main()
{
char name[10];
scanf_s("%s",name, sizeof(name)-1);
printf("%s\n",name);
return 0;
}