C语言数组储存问题

 我来答
公良访风区凝
2019-10-22 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:941万
展开全部
c[3]是可以存储3个字符的,c[n]就是存储n个字符,n是int
整形常量.

对于,以上你提出的问题,定义一个字符数组
c[3],的确,他只可以储存三个字符,分别储存在c[0],c[1],c[2],但是,在C/C++中并没有检查数组是否越界或者是超界的功能,所以,在scanf(),语句中,我们输入的字符,C/C++是没有检查,所以,理论上我们只能输入两个字符,最后一个留给系统自动添加的\0,

但是,实际上,我们输入的字符.qwe是可以正确运行的,最后,系统也会自动添加\0,但是,添加的\0,就可能在数组定义之外了,可能就是系统在定义数组的之后,对于我们输入的其他字符也相应在数组定义之后的一连串空间中继续添加,所以,可以输入大于3的字符都可以正常输出,但是,会报错!错误是数组的访问越界了吧!以上纯属个人理解,仅供参考!希望对你有帮助!^_^.
章永新鹿涵
游戏玩家

2019-10-30 · 游戏我都懂点儿,问我就对了
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:857万
展开全部
因为C语言的数组会有溢出,你定义数组是应该使其足够大,否则可能会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
田和蔼向熙
游戏玩家

2019-10-22 · 游戏我都懂点儿,问我就对了
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:806万
展开全部
C的数据的边界是由程序员自己管理的,最好不要这样做,轻则把堆或是栈破坏了,程序会崩溃,重则有缓冲区溢出漏洞,给黑客可趁之机
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式