读书人

一个关于数组的有关问题

发布时间: 2012-02-16 21:30:36 作者: rapoo

一个关于数组的问题
这样的一个程序;
#include <stdio.h>
#include <string.h>

main()

{ int i;
char c[5];
puts(gets(c));
getch();
}
当我输入: abcdefghijkelmn 时为什么还能输出 :
abcdefghijkelmn呢?
想不通.请大家指教.

[解决办法]
gets函数参数传进去是指针,所以定义的数据大小并不能限制输入字符的个数。程序是把输入的字符存在以c指向的内存地址连续的内存(栈内存)。而且一直到最后一个字符的下一个才有字符串结束符 '\0 ',这也是puts能显示整个字符串的原因。

读书人网 >C语言

热点推荐