值型別(value type)和參考型別(reference type)的區別

一種程式語言被設計用來給計算機發出執行任務的指令。該程式可以操作包含數字、字元和字串的資料,並向用戶生成資訊。用特定程式語言編寫的一系列指令就是一個程式。在C#等程式語言中,有標記。它們是關鍵字、識別符號、文字和運算子。儲存資料的保留記憶體位置稱為變數。變數可以儲存某種型別的值。資料型別可分為值型別和引用型別。價值型和參照型的區別取決於兩個特徵。這些是變數儲存在記憶體中的位置,以及它們在賦值語句中的行...

關鍵區別–值類型與參考類型

一種編程語言被設計用來給計算機發出執行任務的指令。該程序可以操作包含數字、字符和字符串的數據,並向用戶生成信息。用特定編程語言編寫的一系列指令就是一個程序。在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)?

引用類型可以分為兩類:用戶定義類型和預定義類型。一些用戶定義類型的例子是類、接口和數組。類用於創建對象。類由數據成員和方法組成。數據成員描述屬性,方法描述行為。接口只包含成員的聲明。成員應該由派生類定義。數組可以存儲同一數據類型的多個元素。

預定義的類型是對象類型和字符串類型。對象類型是所有其他用戶定義類型的基類型。對象引用用於綁定到任何特定類型的對象。字符串文本作為值存儲在字符串對象中。使用它們可以完成複製、比較和連接等操作。這些是引用類型的一些示例。引用類型存儲在堆上。將一個引用變量分配給另一個引用變量時,只複製引用。實際值保持不變。

值類型(value type)和參考類型(reference type)的區別

什麼是價值型與參照型的相似性(the similarity between value type and reference type)?

  • 值類型和引用類型都是編程中的數據類型類別。

值類型(value type)和參考類型(reference type)的區別

值類型與引用類型
值類型在其自己的內存空間中保存數據值。 引用類型保存指向另一個保存數據的內存位置的指針。
轉讓
在值類型中,值被複制到新位置,因此內存中有兩個相同值的相同副本。 在引用類型中,複製引用,而實際值保持不變。
存儲位置
值類型存儲在堆棧中。 引用類型存儲在堆上。
示例
int、float、double、struct和enum是值類型的一些示例。 類、數組、接口是引用類型的一些示例。

總結 - 值類型(value type) vs. 參考類型(reference type)

數據存儲在稱為變量的保留內存位置中。每個變量存儲一個特定的數據類型。數據類型可以分為兩類。它們是值類型和引用類型。值類型和引用類型的區別在於,值類型在其自己的內存空間中保存數據值,而引用類型保存指向保存數據的另一個內存位置的指針。

引用
  • 發表於 2020-10-19 07:42
  • 閱讀 ( 59 )
  • 分類:科技

你可能感興趣的文章

商業模式(business model)和策略(strategy)的區別

...是指一家公司為了在可預見的未來留住消費者而創造的價值型別。在執行此過程時,需要一個有效的收入管理流程。如果收入管理不當,一家公司的所有職能都可能下降。在這方面,還需要有效的成本管理。 商業模式也承認關...

  • 發佈於 2020-10-10 21:09
  • 閲讀 ( 54 )

指示電極(indicator electrode)和參比電極(reference electrode)的區別

...電極是響應隨分析物變化而變化的兩個電極之一。有許多型別的指示電極,我們可以用來確定終點電位滴定。此外,一些例子包括玻璃電極、金屬離子指示電極等。我們將該電極稱為IE。該電極包含對分析物活性敏感的膜。因此...

  • 發佈於 2020-10-17 06:41
  • 閲讀 ( 92 )

單光束(single beam)和雙光束分光光度計(double beam spectrophotometer)的區別

...光的能力來分析溶液成分的儀器。分光光度計主要有兩種型別:單光束分光光度計和雙光束分光光度計。單光束分光光度計與雙光束分光光度計的區別在於,在單光束分光光度計中,所有的光波都透過樣品,而在雙光束分光光度...

  • 發佈於 2020-10-18 20:17
  • 閲讀 ( 107 )

外面的(out)和參考c#(ref in c#)的區別

...語法如下。方法有許多元素,如方法名、引數列表、返回型別和訪問說明符。 (引數列表) {//要執行的語句 } 每個方法都有一個唯一的方法來呼叫函式。可執行語句位於大括號內。返回型別解釋函式是否返回值。當沒有返回型...

  • 發佈於 2020-10-18 20:42
  • 閲讀 ( 52 )

巨集(macro)和行內函數(inline function)的區別

...其他語句不同,它們不以分號結尾。前處理器指令的一種型別是巨集。一般來說,巨集是用大寫字母寫的。 圖01:帶有巨集的C++程式 根據上面的程式,第3行和第4行表示巨集。計算面積時,使用定義的巨集替換PI值。在第14行volum...

  • 發佈於 2020-10-19 00:27
  • 閲讀 ( 44 )

變數(variables)和java中的資料字面值(data literals in java)的區別

...算。變數被賦值。有時這些值是固定的,不會改變。這些型別的值稱為資料字面值。在程式中,如果存在int value=5的語句,“int”就是資料型別。“value”是變數,“5”是資料文字。本文討論Java中變數和資料文字之間的區別。Jav...

  • 發佈於 2020-10-19 08:52
  • 閲讀 ( 51 )

奧斯特瓦爾德(ostwald)和烏氏粘度計(ubbelohde viscometers)的區別

...計 粘度計是用來測量液體粘度的化學儀器。主要的流體型別是氣體和液體。流體的粘度是流體對變形的阻力。Ostwald粘度計和Ubbelohde粘度計是兩種用於定量測量流體粘度的分析儀器。奧斯特瓦爾德粘度計和烏氏粘度計的主要區別...

  • 發佈於 2020-10-19 12:42
  • 閲讀 ( 42 )

班(class)和結構(c)#(structure in c#)的區別

...個變數都有一個特定的資料型別要儲存。兩種資料型別是值型別和引用型別。在值型別中,可以直接指定值。例如int、char、float。引用型別資料型別不儲存實際資料,但它們包含對變數的引用。類和結構儲存資料。本文討論了C#...

  • 發佈於 2020-10-19 17:15
  • 閲讀 ( 54 )

按值呼叫(call by value)和透過引用呼叫(call by reference)的區別

...。透過交換兩個數字的程式可以很容易地理解這個概念。參考下面用程式碼塊環境編寫的C程式。 圖01:交換兩個數字的程式 根據下面給出的程式,變數“a”的值為20,變數“b”的值為30。呼叫swap(a,b)函式時,將這兩個值傳...

  • 發佈於 2020-10-20 00:32
  • 閲讀 ( 48 )

競爭的(competitive)和非競爭性elisa(noncompetitive elisa)的區別

...抗體。因此,它不需要二級抗體。因此,直接ELISA比其他型別的ELISA更快。一級抗體將直接與固定化的靶抗原結合。因此,酶-底物反應將發生,產生可見訊號。 圖02:夾心ELISA 與直接ELISA不同,間接ELISA使用未標記的初級抗體和酶...

  • 發佈於 2020-10-21 17:20
  • 閲讀 ( 75 )
cynfkqtmvu
cynfkqtmvu

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦