C 中值型別與引用型別對比

2021-07-26 19:52:25 字數 789 閱讀 3196

值型別的變數直接包含這種型別的值,結構是值型別。
引用型別的變數儲存的是對此物件的引用,即實際資料的位址。引用型別不包含儲存在變數中的實際資料,但它們包含對變數的引用。

類(class)是引用型別。

值型別相當於你的住房,而引用型別相當於你住房的位址,你可以將這個位址告訴任何乙個朋友,他們都能夠依賴這個位址找到你的家。

相同點:

預設都有乙個無引數的建構函式。
不同點:

值型別(類)的值存在棧上。當類中寫乙個有引數的建構函式,預設無引數的建構函式被替代掉了。類中寫結構函式引數列表中引數

個數可以不確定。

引用型別(結構)棧上存的的是位址,堆上存的是值。當結構中寫乙個有無引數的建構函式,預設的無引數的建構函式還存在,沒有

被替代掉,在結構中寫建構函式,要把所有的字段都要完全賦值。

下面的**展示了值型別和引用型別的區別:

class class1

class program

,",val1,val2);

console.writeline("refs:,",ref1.value,ref2.value);

console.readkey();}}

c 中值型別與引用型別

c 的值型別包括 結構體 數值型別,bool型,使用者定義的結構體 列舉,可空型別。c 的引用型別包括 陣列,使用者定義的類 介面 委託,object,字串。陣列的元素,不管是引用型別還是值型別,都儲存在託管堆上。引用型別在棧中儲存乙個引用,其實際的儲存位置位於託管堆。為了方便,這裡將引用型別部署在...

C 中值型別和引用型別

概念 1.值型別 資料儲存在記憶體的堆疊中,從堆疊中可以快速地訪問這些資料,因此,值型別表示實際的資料。2.引用型別 表示指向儲存在記憶體堆中的資料的指標或引用 包括類 介面 陣列和字串 c 中定義的值型別包括原型別 sbyte byte short ushort int uint long ulo...

c 中值型別和引用型別

在c 中有兩種型別的資料,一種是值型別資料,一種是引用型別資料。在編碼的時候區分這兩種型別資料,可以避免一些細小的編碼錯誤。首先說說什麼型別是值型別,例如 int float bool之類的基礎型別,以及用struct定義的型別,如 datetime。除此外,如string,陣列,以及用class定...