(1)源於:system.value type家族
(2)主要包括:基本資料型別和列舉型別、結構型別
(3)對於值型別,不同的變數會分配不同的儲存控制項,並且儲存空間中儲存的是該變數的的值。改變乙個變數的值不會影響另乙個變數的值。
(1)源於:system.object家族
(2)主要包括:類、介面和陣列
(3)如果直接賦值給其他變數,等同於將原物件傳遞給另乙個變數,但實際指向同一塊儲存空間。
(1)結構的語法:
訪問修飾符 struct 結構名
{//結構體
}(2)結構和類的區別:
1.結構——值型別 類———引用型別
2.類的字段可以有初始值,結構不能被賦初始值
3.類需要例項化物件進行使用,結構直接宣告
(1)裝箱:將值型別轉換為引用型別
(2)拆箱:將引用型別轉換為值型別
注:儘量減少不必要的裝箱和拆箱,二者的儲存方式不同,轉換時效能損失較大。
(1)值方式引數傳遞
1.使用引用型別作為引數
(不用ref修飾)引數在方法中的修改會保留
2.使用值型別作為引數
(不用ref修飾)引數在方法中的修改不會保留
(2)引用方式引數傳遞
1.使用引用型別作為引數
(用ref修飾)引數在方法中的修改會保留
2.使用值型別作為引數
(用ref修飾)引數在方法中的修改會保留
深入C 資料型別
值型別 源於system.valuetype 引用型別 源於system.object 結構中可以有字段也可以有方法 定義時,結構中的字段不能被賦初值 可以不用new,直接定義結構的物件即可 前提該屬性的型別不是數值型別 宣告結構的物件後,必須給結構的成員賦初值 結構體中沒有預設建構函式,但類中有預...
深入C 資料型別
一 值型別與引用型別 值型別源於system.valuetype家族,值型別包括基本資料型別,結構型別和列舉型別。值型別 在棧上儲存的真實的值。引用型別源於system.object家族,在c 中引用型別主要包括陣列 類 介面 string型別等。引用型別 在棧和堆上都要分配空間。值型別例題 1 c...
C 深入解析資料型別
1.值型別和引用型別的原理 2.執行緒棧和託管堆 3.裝箱和拆箱 4.型別判等 c 的基本型別是按照資料在計算機記憶體是如何被分配來劃分,一種是值型別 value type 基礎型別是結構,使用中記憶體儲存在棧中,一種是引用型別 reference type 基礎型別是類,使用中記憶體儲存在堆中常用...