一个关于数组的问题
这样的一个程序;
#include <stdio.h>
#include <string.h>
main()
{ int i;
char c[5];
puts(gets(c));
getch();
}
当我输入: abcdefghijkelmn 时为什么还能输出 :
abcdefghijkelmn呢?
想不通.请大家指教.
[解决办法]
gets函数参数传进去是指针,所以定义的数据大小并不能限制输入字符的个数。程序是把输入的字符存在以c指向的内存地址连续的内存(栈内存)。而且一直到最后一个字符的下一个才有字符串结束符 '\0 ',这也是puts能显示整个字符串的原因。