问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言关与数组的输入输出函数

发布网友 发布时间:2023-03-07 17:26

我来回答

4个回答

热心网友 时间:2023-10-30 22:25

向字符数组c中输入字符串,它是这样存储的:
将字符串中的第一个字符赋给字符数组的第一个元素c[0],第二个字符赋给第二个元素c[1],以此类推。

需要注意的是,当给c[9]赋过值之后,如果在字符串中还有剩余的字符,程序会继续命令指针从c[9]处继续向后移动一个存储单元的长度(在这里就是一个字节的长度),并在读入一个字符并赋给紧挨着c[9]的那个存储单元,形象一点儿,把它叫做c[10],以此类推,直到读完所输入的字符串中的所有字符,并自动加赋'\0'。

这种输入方式一般也能运行,但是这是十分危险的。因为紧挨在c[9]后面的单元中的内容是不可预料的,它可能是一个空白的存储空间,也可能已经存放了一个十分有用的数据。如果存储的是一个有用的数据,越界输入就会把越界部分原先已有的数据覆盖掉。

在程序比较小的时候,由于空白地带比较多,程序往往可以正常运行,但是当程序的规模很大的时候,一旦越界输入,(越界部分)有用数据被覆盖掉的可能性就很大了。

最好的方法就是使用scanf("%10s", c); 以*向字符数组中输入字符的个数。

热心网友 时间:2023-10-30 22:25

你可能会把堆栈写坏。
堆栈上只分配了10个字符的空间给这个数组,C语言不检查数组是否越界,所以你输入多少都无所谓。

简单的程序可能可以通过。但是复杂程序就不行了。

建议你以后一直这样使用scanf:
scanf("%10s", c);
最大接受10个字符,剩下的继续放在stdin流里面。
这样可以避免缓冲区溢出。代码是安全的。

热心网友 时间:2023-10-30 22:25

没错,就是这样设计的,C语言不会管你的数组是否越界,而是简单地顺序往下存。这是不推荐的用法,容易覆盖掉其他有用的数据

热心网友 时间:2023-10-30 22:26

你说的这种情况就是字符数组益出情况,当你以%s输入的时候,计算机是这样分配内存的,以数组的首地址开始往后存储,一直到你输入回车为止,系统才能自动在数组的末尾加上“\0”作为结束标记,当你输出时候也是从首地址开始往后面输出字符,直到有“\0”时候才结束,所以才出现输入多少,输出多少的情况。然而这是C语言语法上的错误的,因为如果超出了界限的话,可能把内存中很重要的东西覆盖掉了,很危险的!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
南南京到许昌的公共汽车票 南京去句容需要多久 南京到单县汽车票多少钱 八月十一号南京到高密的汽车票提前几天买 外省保育员证在广东能领到补贴吗 外省的保育员资格证可以在深圳申请补贴吗 广州保育员证在深圳可以申请从教津贴吗 广州的保育师证能在深圳用吗 很走心的干净短句,具有治愈能力的句子 社会很现实的哲理句子太经典了 新媒体文案撰写的关于刘翔退役的文案是否需要内部认可?为什么 pvc上水管漏水怎么办 2022年7月扫除最佳吉日查询 2022年7月大扫除黄道吉日 2022年7月哪天适合大扫除 高中英语改错翻译句型:数词的翻译 问一些英语题? 注会考试需要考试英语吗 文景之治是哪个朝代的? 2022立秋结婚好吗?立秋结婚有什么寓意 四绝日结婚有什么后果 为什么四离日不能结婚? 2022年立秋前一天是好日子吗 2022年立秋前一天适合结婚吗? 盎司的国语词典是什么 盎司的网络解释是什么 盎司解释是什么 罗非鱼与叉尾鱼口感比较? 答赠友人情谊诗句? 微信接龙怎么看谁还没有接 滕王阁序中的千古名言是什么 焊锡膏使用的注意事项是什么? 便秘不能吃什么东西 便秘吃什么东西最好 雌蕊和雌花的区别 泰拉瑞亚怎么在猩红之地钓鱼 论《内经》中神的概念 神锋散简介 神的产生和发挥要以什么为基础 黄金平安扣的寓意及象征 2005年10月24生女孩可以带黄金平安扣吗 戴黄金平安扣土气吗 戴黄金小天使好还是黄金平安扣好 买平安扣买黄金还是硬金 79年羊佩戴平安扣还是黄金锁好 海水天皇蝶鱼怎么养 人字蝶长白点将水温调到28度五行吗 旧手机怎样克隆? 一台核心交换机与一台汇聚交换机连接,需要几条光纤跳线 红楼梦二十四回概括 心肺疾患引起的呼吸困难的病人可采取什么体位?为什么? 最近经常在晚上的时候感觉胸闷,呼吸困难坐卧不安的烦躁尤其是晚上睡觉的时候,有时半睡半醒时会忽然被憋 喘证的主要病位在 搞砸了歌词 搞砸了歌词介绍