給初學者解釋程式設計中記憶體外存的利用
阿新 • • 發佈:2019-01-03
【來信】
老師您好:
我也是一名初學C++的學生,從這學期開始也一直都在跟著您學習,今天看到您的檔案+結構體這個專案,關於後邊的選擇30名同學發獎學金,我有新的想法就是把之前排好序的資訊儲存到一個新的檔案中,然後再從這個新檔案中取資料判斷,因為自己是初學者,雖然實驗了幾個數是成功的,可還是想請教一下老師,我不太懂的是為什麼排好序之後的資料可以儲存生成新的檔案,在程式執行中這些中間資料是儲存在哪裡的呢?一直到程式結束,是不是他們一直都在呀?還有就是在向檔案中儲存資料的時候為什麼資料一定是要分行的?麻煩老師了,還請老師賜教!【回覆】
需要了解一下計算機的儲存系統。計算機的儲存系統包括記憶體、外存兩部分(快取之類的,學計算機組成時再說)。記憶體小,快,斷電就沒了;外存指磁碟等,慢,很大,斷電後還在。檔案就存在在外存上。程式執行中,將檔案中的資料讀入,就是從外存的檔案中,讀到了記憶體裡。對於這個程式而言,定義了陣列,陣列分配在記憶體裡(所以訪問起來很快),讀入的資料就在記憶體中的這一段空間裡了。只要陣列在其作用範圍內,就一直能夠訪問。
檔案中儲存的資料並不一定分行,各個資料用空格隔開,或者用Tab(\t)隔開都可以,這和鍵盤輸入,顯示器輸出的要求一樣,請參考相關資料。
你的方法將中間結果儲存到檔案中,這是可行的,但卻不常用。原因是中間結果在外存,速度會慢,也是對磁碟無意義的磨損,就讓它在記憶體中待著好了,避免了頻繁地訪問磁碟還速度快,何苦而不為?
==================== 迂者 賀利堅 CSDN部落格專欄================= ======== 為IT菜鳥起飛鋪跑道,和學生一起享受快樂和激情的大學 ======= |