c 值型別與引用型別

2022-03-10 03:12:49 字數 677 閱讀 1597

一.引用型別與值型別

值型別是個輕量級型別,引用型別是個 '重量級『型別。

值型別存放的是物件本身,而引用型別存放的物件存放的記憶體位址

1.記憶體分配

c#同c/c++不同,c#是基於.net環境的,稱之為託管。因為之前學的是c語言所以很不理解。

比如c語言中變數存放在 堆還是棧中並不是有變數型別來決定。 而是由定義變數的方式。棧中存放區域性變數的值,系統進行記憶體分配**。堆則是程式設計師建立,**。

而在c#託管**中變數存放記憶體的位置則不是根據定義變數的方式,他是由例項(c#中用變數型別有些欠妥,用物件例項比較精確點)型別決定的。

c/c++的 堆與棧區別

點選開啟鏈結

點選開啟鏈結

2. net framework sdk 文件中已經指明了哪些是引用型別,哪些是值型別

值型別:值型別稱為結構或列舉。struct ,int32,boolean,decimal, 、這些結構都是從system.valuetype派生下來的。所有的列舉都是從system.enum派生下來的

引用型別:類 都是引用型別

3.初始化

值型別變數建立的時候預設是個包含基礎型別的值,所有成員被初始化為 0

引用型別變數建立的時候預設是null,表明沒有指向乙個有效的物件,如果直接使用,會丟擲乙個nullreferenceexception的異常。

C 值型別與引用型別

1.主要內容 型別的基本概念 值型別深入 引用型別深入 值型別與引用型別的比較及應用 2.基本概念 c 中,變數是值還是引用僅取決於其資料型別。c 的基本資料型別都以平台無關的方式來定義,c 的預定義型別並沒有內置於語言中,而是內置於.net framework中。net使用通用型別系統 cts 定...

c 引用型別與值型別

c 的值型別包括 結構體 數值型別,bool型,使用者定義的結構體 列舉,可空型別。c 的引用型別包括 陣列,使用者定義的類 介面 委託,object,字串。在c 中函式傳值的特點 1.對於複雜的資料型別,按引用傳遞的效率更高,因為在按值傳遞時,必須複製大量的資料 2.除非特別指定,所有的引用型別都...

C 值型別與引用型別

資料型別分為 值型別 引用型別 值型別 int char double bool 結構 struct 列舉 enum 儲存在堆疊中 引用型別 類 string。陣列 介面 儲存在託管堆中 2.值型別 變數儲存物件的值,賦值會建立值的副本,修改任何乙個副本,不會影響其他的 副本 int x 5 int...