C 深入理解型別

2022-02-22 08:09:52 字數 1468 閱讀 5814

值型別:

值型別通常儲存在棧中,值型別管理由作業系統管理

引用型別:

引用型別儲存在堆中由gc管理

引用型別巢狀定義值型別:

值型別巢狀引用型別:

值型別繼承自valuetype,valuetype有繼承自system.object 引用型別直接繼承自system.object

值型別的記憶體不受gc控制,作用域結束後值型別會被作業系統自行釋放,但是引用有gc來完成值型別效能能加存在優勢

型別轉換

隱式轉換就是有低級別型別轉換想高階別型別轉換的過程,派生類可以隱式轉換為他的父類。裝箱過程就是屬於這種隱式轉換

顯示型別轉換:這種轉換可能會倒是損失精度,或者出現異常

通過is和as運算子進行安全轉換

int i =3

// 裝箱

object obj = i;

// 拆箱

**的裝箱過程式

1.分配onj記憶體空間

2.copy i變數的值放在記憶體中

3.返回值存放的位址給obj變數 

拆箱過程:

1.檢查o變數的值是否為null為null時發出異常,不為null檢查拆箱後型別是否一直不一致異常

2。返回o變數實際資料位址

3。將託管堆中的資料複製到棧中

深入理解C語言型別轉換

c語言型別轉換分為兩種 也許你曾經遇到過乙個負數經過型別轉換後可能變成乙個很大的整數之類的現象,卻不知道實質上是因為什麼,只是淺顯地了解到型別轉換會向著更大精度的方向轉化。尤其是對於計算機基礎知識不紮實或者很多半路出家 比如我 的人來說不是很了解背後的原因。希望下面的解釋能夠解決這個疑惑。本文以c語...

深入理解C 列舉型別enum

參考 程式語言中的所有特性都是為了滿足某種需求,達到某個目的還出現.不會莫名其妙的出現在那.列舉可以用來儲存一組屬性的值.enum的全稱是enumeration意思是列舉 看著這句話可能覺得太書面化了,不夠通俗易懂.那舉些通俗的例子說說.日常生活中我們特喜歡分類,比如讀書時分啥數,理,化.當官的級別...

深入理解C 列舉型別enum

程式語言中的所有特性都是為了滿足某種需求,達到某個目的還出現.不會莫名其妙的出現在那.列舉可以用來儲存一組屬性的值 enum的全稱是enumeration意思是列舉 看著這句話可能覺得太書面化了,不夠通俗易懂.那舉些通俗的例子說說.日常生活中我們特喜歡分類,比如讀書時分啥數,理,化.當官的級別有啥省...