给初学者解释程序设计中内存外存的利用

【来信】

老师您好:

  我也是一名初学C++的学生,从这学期开始也一直都在跟着您学习,今天看到您的文件+结构体这个项目,关于后边的选择30名同学发奖学金,我有新的想法就是把之前排好序的信息存储到一个新的文件中,然后再从这个新文件中取数据判断,因为自己是初学者,虽然实验了几个数是成功的,可还是想请教一下老师,我不太懂的是为什么排好序之后的数据可以保存生成新的文件,在程序运行中这些中间数据是存储在哪里的呢?一直到程序结束,是不是他们一直都在呀?还有就是在向文件中存储数据的时候为什么数据一定是要分行的?麻烦老师了,还请老师赐教!

【回复】
  需要了解一下计算机的存储系统。计算机的存储系统包括内存、外存两部分(缓存之类的,学计算机组成时再说)。内存小,快,断电就没了;外存指磁盘等,慢,很大,断电后还在。文件就存在在外存上。程序运行中,将文件中的数据读入,就是从外存的文件中,读到了内存里。对于这个程序而言,定义了数组,数组分配在内存里(所以访问起来很快),读入的数据就在内存中的这一段空间里了。只要数组在其作用范围内,就一直能够访问。
  文件中存储的数据并不一定分行,各个数据用空格隔开,或者用Tab(\t)隔开都可以,这和键盘输入,显示器输出的要求一样,请参考相关资料。

  你的方法将中间结果保存到文件中,这是可行的,但却不常用。原因是中间结果在外存,速度会慢,也是对磁盘无意义的磨损,就让它在内存中待着好了,避免了频繁地访问磁盘还速度快,何苦而不为?

  

china-pub(正在发售)
卓越网(接受预订) 
图灵社区  官方试读本下载
豆瓣

==================== 迂者 贺利坚 CSDN博客专栏=================

|==  IT学子成长指导专栏  专栏文章分类目录(不定期更新)    ==|

|== C++ 课堂在线专栏   贺利坚课程教学链接(分课程年级)   ==|

======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======

  
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迂者-贺利坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值