1. 程式人生 > 其它 >C# 堆和棧

C# 堆和棧

1.資料型別

值型別:賦值的時候是建立了一個副本,如,基本資料類,列舉,結構

引用型別:賦值的是物件的引用,如,陣列,類(基類 Object,字串,自定義 class),介面

2.儲存方式

引用型別:儲存在堆中,型別例項化的時候,會在堆中開闢一部分空間儲存類的例項,類物件的引用儲存在棧中

值型別:值型別分配在它宣告的地方,做區域性變數時,儲存在棧上,做類物件的欄位時,儲存在堆中

1 Student S1;// S1是物件的引用
2 S1 = new Student(); // 例項化一個物件

3.堆

託管堆,不同於 C 的堆,由 CLR 管理,當堆滿後,自動清理堆中的垃圾

4.棧

資料結構堆疊:一種資料結構,是一個概念

記憶體堆疊:記憶體分為棧區和堆區

:棧區存放函式引數,區域性變數,返回值資料,由編譯器自動釋放

:堆區存放引用的物件,由CLR釋放