C 值型別和引用型別

2021-08-03 08:54:43 字數 451 閱讀 7573

c#資料型別:值型別,引用型別

概念:值型別直接儲存其值,引用型別儲存對值的引用

這兩種型別儲存在記憶體的不同地方:值型別儲存在堆疊中,引用型別儲存在託管堆上。

乙個引用型別的例子,**如圖:

上圖中,只有乙個user物件,u1和u2都指向包含該物件的記憶體位置

執行結果:

在c#中,基本資料型別如bool和long都是值型別。

如果宣告乙個bool變數,並給它賦予另乙個bool變數的值,在記憶體中就會有兩個bool值。

如果以後修改第乙個bool變數的值,第二個bool變數的值不會改變。

c 值型別和引用型別

今天我們來學習一下什麼是值型別和引用型別。1.值型別的值存在棧上,引用型別棧上存的是位址,值在堆上 2.將乙個值型別變數賦給另乙個值型別變數時,將複製包含的值。引用型別變數的賦值只複製對物件的引用,而不複製物件本身。3.裝箱是將值型別轉換為引用型別,拆箱是將引用型別轉換為值型別,利用裝箱和拆箱功能,...

C 值型別和引用型別

型別被分為兩種 值型別 整數,bool,struct 建構函式 char 字元 小數 引用型別 string 陣列 自定義的類,內建的類,物件.兩者在記憶體中的儲存方式 值型別 只需要一段單獨的記憶體,用於儲存實際的資料,單獨定義的時候放在棧中 引用型別 需要兩段記憶體 第一段儲存實際的資料,它總是...

C 值型別和引用型別

之前有篇文章講到引數傳遞,但並未對值型別和引用型別做乙個詳細的了解。值型別和引用型別詳細的說明在右邊的 中有 之前看了詳細說明,於是在我的腦海中就留下了乙個印像,string是引用型別。對任何引用型別做了改變就會有影響。於是這句話在下面把我成功帶入坑。今天早上看了一篇部落格,就講到了值型別和引用型別...