C 中的值型別和引用型別

2021-09-22 06:40:49 字數 2185 閱讀 7498

原文 c# 中的值型別和引用型別

值型別(value type):int,long,float,double,decimal,char,bool 和 struct 統稱為值型別。值型別變數宣告後,不管是否已經賦值,編譯器為其分配記憶體。

引用型別(reference type):string 和 class統稱為引用型別。當宣告乙個類時,只在棧中分配一小片記憶體用於容納乙個位址,而此時並沒有為其分配堆上的記憶體空間。當使用 new 建立乙個類的例項時,分配堆上的空間,並把堆上空間的位址儲存到棧上分配的小片空間中。

下例說明值型別和引用型別的區別:

12

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

usingsystem;

usingsystem.collections.generic;

usingsystem.linq;

usingsystem.text;

namespaceparameters

staticvoiddowork()

}

classpass

publicstaticvoid

}

class// 類是引用型別

}

沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的框架所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如別人所關心你的。理想的騰飛與實現,沒有別人的支援與幫助,是萬萬不能的。

C 中引用型別和 值型別

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

C 中引用型別和值型別

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

C 中引用型別和值型別

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