C 值型別和引用型別在記憶體中的儲存(堆疊)

2021-10-07 03:22:32 字數 564 閱讀 2748

前言值型別引用型別都是用來儲存資料的(值型別存資料,引用型別存引用),但是這兩種型別本身又需要儲存在記憶體中。

堆疊出現的原因:在程式執行中,為了提高程式的執行效率,就分出了一大一小兩塊區域來分別儲存不同型別的資料,分別是堆和棧;區域小的棧,讀取速度相對較快,區域大的堆,讀取速度相對較慢。

概念:資料在**宣告,就儲存在**。

方法中宣告:值型別資料儲存在棧中,引用型別的引用儲存在棧中,資料儲存在堆中;方法在棧中執行,在方法內宣告的變數都是在棧中儲存,方法執行完畢後將這些資料清除,方法內部的值型別將直接被清除,引用型別將被清除引用,而儲存在堆中的資料則等待gc自動**。

類中:值型別資料儲存在堆中,引用型別的引用和資料都儲存在堆中。

C 中引用型別和 值型別

值型別 儲存在棧 stack 中,乙個值型別的變數其實是乙個記憶體位址,位址中儲存的就是值本身 包括c 的基本型別 用關鍵字int char float等來宣告 結構 用struct關鍵字宣告的型別 列舉 用enum關鍵字宣告的型別。引用型別 儲存在堆 heap 中,乙個引用型別的變數的值是乙個指標...

C 中引用型別和值型別

c 的值型別包括 結構體 數值型別,bool型,使用者定義的結構體 列舉,可空型別。c 的引用型別包括 陣列,使用者定義的類 介面 委託,object,字串。值型別和引用型別的區別在於,值型別的變數直接存放實際的資料,而引用型別的變數存放的則是資料的位址,即物件的引用。值型別變數直接把變數的值儲存在...

C 中引用型別和值型別

c 的值型別包括 結構體 數值型別,bool型,使用者定義的結構體 列舉,可空型別。c 的引用型別包括 陣列,使用者定義的類 介面 委託,object,字串。值型別和引用型別的區別在於,值型別的變數直接存放實際的資料,而引用型別的變數存放的則是資料的位址,即物件的引用。值型別變數直接把變數的值儲存在...