【C#之棧和堆初遇】

我是太陽啦啦啦發表於2016-01-15

前言:

小編是一個剛剛入門的小菜鳥,初見面這兩個兄弟,一下子不知索然,,,不用怕,自己動手查查就一清二白了,米老師經常說的,不怕不知道就怕不知道,無論什麼時候,學習是永無止境的,知識是永無止境的!下面我們們一起來看看棧和堆這兩個兄弟吧!

正文:

一、總說

程式執行時,它的資料必須儲存在記憶體中。棧和堆的作用就來了,執行中的程式使用這兩個記憶體區域來儲存資料。

二、棧

1、含義:

棧是一個記憶體陣列,是一個LIFO(last-in first-out,後進先出)的資料結構。這個在下面的舉例中更加清楚的有所瞭解。

2、儲存資料型別

3、特徵

資料只能從棧的頂端插入和刪除。

解釋:入棧:把資料放到棧頂

 出棧:從棧頂刪除資料

棧頂:一個棧分為空閒的資料記憶體和儲存資料的記憶體,儲存資料的記憶體如果從底部依次向上為100,200,則200的上部為棧頂,向棧頂放入一個300,則300的上部為棧頂。

如圖所示:

、堆

1、含義

堆是一塊記憶體區域,在堆裡可以分配大塊的記憶體用於儲存某型別的資料。

2、特點

存放引用型別

3、垃圾收集過程

、區別

四、注意問題

在用到棧和堆的過程中,都要防止越界現象的發生。

總結:

剛剛接觸這個概念,理解的不是很深刻,有什麼錯誤歡迎大家給我指正,在以後的學習中,會繼續學習的!學習不是一次性的過程,繼續學習中。

相關文章