關鍵區別–值類型與參考類型
一種編程語言被設計用來給計算機發出執行任務的指令。該程序可以操作包含數字、字符和字符串的數據,並向用戶生成信息。用特定編程語言編寫的一系列指令就是一個程序。在C#等編程語言中,有標記。它們是關鍵字、標識符、文字和運算符。存儲數據的保留內存位置稱為變量。變量可以存儲某種類型的值。數據類型可分為值類型和引用類型。價值型和參照型的區別取決於兩個特徵。這些是變量存儲在內存中的位置,以及它們在賦值語句中的行為方式。本文討論了值類型和引用類型的區別。值類型和引用類型之間的關鍵區別在於,值類型在其自己的內存空間中保存數據值,而引用類型保存指向另一個保存數據的內存位置的指針。
目錄
1. 概述和主要區別
2. 什麼是價值類型
3. 什麼是參考類型
4. 值類型和引用類型的相似性
5. 並列比較-值類型與表格形式的引用類型
6.摘要
什麼是值類型(value type)?
值類型可分為兩類。它們是預定義的類型和用戶定義的類型。預定義的類型由編程語言提供。它們可以是數字、字符或十進制類型。數值類型可以是整數類型、浮點類型和十進制類型。整數類型可以進一步分為有符號和無符號。有符號整數可以存儲正數或負數。**yte、short、int和long是有符號數據類型。
sybte是一個字節,short是兩個字節,int是4個字節,long是8個字節。無符號類型存儲正值。byte、ushort、uint和ulong是無符號類型的示例。浮點類型可以存儲帶小數點的數值。float用於存儲32位單精度浮點值,double用於存儲64位單精度浮點。十進制類型用於高精度值。char數據類型用於在內存中存儲單個字符。有時需要存儲真值或假值。布爾函數用於此。這些是編程語言提供的值類型的一些示例。
用戶還可以創建值類型。兩種這樣的用戶定義值類型是結構和枚舉。結構包含不同類型的數據。它類似於一個類。“struct”關鍵字用於聲明結構變量。結構示例如下。
僱員結構{
公共國際機場;
公共字符串名稱;
}
枚舉用於提高代碼的可讀性。它用來給數字起名字。“enum”關鍵字用於聲明枚舉。下面是enum的一個示例。e、 g.–枚舉顏色{黑色、白色、紫色}。enum關鍵字通過指定從0開始的值來自動枚舉單詞列表。根據上面的例子,黑色被分配給0,白色被分配給1,紫色被分配給2。如果它被寫為enum Color{black,white=3,purple},那麼黑色被賦值為0,紫色被賦值為4。這些是一些值類型的示例。它們存儲在堆棧中。將值賦給另一個變量時,該值將複製到新位置。因此,內存中存在兩個相同值的副本。
什麼是參考類型(reference type)?
引用類型可以分為兩類:用戶定義類型和預定義類型。一些用戶定義類型的例子是類、接口和數組。類用於創建對象。類由數據成員和方法組成。數據成員描述屬性,方法描述行為。接口只包含成員的聲明。成員應該由派生類定義。數組可以存儲同一數據類型的多個元素。
預定義的類型是對象類型和字符串類型。對象類型是所有其他用戶定義類型的基類型。對象引用用於綁定到任何特定類型的對象。字符串文本作為值存儲在字符串對象中。使用它們可以完成複製、比較和連接等操作。這些是引用類型的一些示例。引用類型存儲在堆上。將一個引用變量分配給另一個引用變量時,只複製引用。實際值保持不變。
什麼是價值型與參照型的相似性(the similarity between value type and reference type)?
- 值類型和引用類型都是編程中的數據類型類別。
值類型(value type)和參考類型(reference type)的區別
值類型與引用類型 | |
值類型在其自己的內存空間中保存數據值。 | 引用類型保存指向另一個保存數據的內存位置的指針。 |
轉讓 | |
在值類型中,值被複制到新位置,因此內存中有兩個相同值的相同副本。 | 在引用類型中,複製引用,而實際值保持不變。 |
存儲位置 | |
值類型存儲在堆棧中。 | 引用類型存儲在堆上。 |
示例 | |
int、float、double、struct和enum是值類型的一些示例。 | 類、數組、接口是引用類型的一些示例。 |
總結 - 值類型(value type) vs. 參考類型(reference type)
數據存儲在稱為變量的保留內存位置中。每個變量存儲一個特定的數據類型。數據類型可以分為兩類。它們是值類型和引用類型。值類型和引用類型的區別在於,值類型在其自己的內存空間中保存數據值,而引用類型保存指向保存數據的另一個內存位置的指針。