
c语言初学,字符串的字符数组问题
main(){staticcharsh[5];printf("请输入字符串:");scanf("%s",sh);}这个字符串长度定义了是5,但是为什么输入的时候可以输入超...
main()
{
static char sh[5];
printf("请输入字符串:");
scanf("%s",sh);
}
这个字符串长度定义了是5,但是为什么输入的时候可以输入超出5个长度的字符呢 展开
{
static char sh[5];
printf("请输入字符串:");
scanf("%s",sh);
}
这个字符串长度定义了是5,但是为什么输入的时候可以输入超出5个长度的字符呢 展开
4个回答
展开全部
main()
{
static char sh[5];
static char AA[5];
printf("请输入字符串:");
scanf("%s",sh);
}
如果sh后面还有别的变量定义时,当输入字符串超过5,或被写入到AA中,将AA中的信息覆盖。
{
static char sh[5];
static char AA[5];
printf("请输入字符串:");
scanf("%s",sh);
}
如果sh后面还有别的变量定义时,当输入字符串超过5,或被写入到AA中,将AA中的信息覆盖。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那是因为,在你没有输入回车前,你输入的字符串都是放在缓冲流中的,只有当你输入了回车,那么系统才会吧字符串从缓冲流中取出来,然后放到数组中,所以你可以输入长度大于所接收的字符串数组长度的字符串,但系统把字符串从缓冲流中取出来是按照先后顺序取出来的,当字符串放满时,没有放完的缓冲流中的字符还是在缓冲流中,打个比方就是用一桶水接自来水。桶接满了水,但是自来水管 中还是有水的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入没有问题,遇到回车结束,但是在内存中只为这个数组分配了五个单位,其他的随机存储
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询