鱼C论坛

 找回密码
 立即注册
查看: 2747|回复: 5

scanf 輸入字串大於數組長度怎不會報錯

[复制链接]
发表于 2014-2-8 02:18:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
void main()
{
    char string[5];
    scanf("%s",string);
    printf("%s",string);
}
我在教學與書籍 都說要先聲明數組大小
但是我在輸入字串長度要是大於數組長度
都可以打印出來也不會報錯為何
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-8 03:46:45 | 显示全部楼层
scanf("%s",string); 这句话的意思是吧接收到的字符串放到内存中以string里存放的值得那个地址为开始应为是字符串所以就会连续往下了 你输入输出值是用了数组名而已没有对数组进行任何操作 当然不会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-8 08:20:42 | 显示全部楼层
我试了试,如果用Visual C++ 6.0的话,如果输入多于5个字符,就会不正常跳出;
如果你用任意版本的gcc(我用的gcc 4.8.2),输入7个字符的字符串,就会出现Process exited with return value 7,这表明在接收7个字符时不正常结束。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-8 12:18:41 | 显示全部楼层
嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-8 16:16:43 | 显示全部楼层
支持小甲鱼,赞点鱼币回来下载
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-8 20:53:57 | 显示全部楼层
路过看看 = =
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 04:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表