C# 數組在記憶體中的儲存

來源:互聯網
上載者:User

標籤:結構體   c#   ref   let   type   反射   程式   private   回收   

C# 數組是參考型別,那麼在記憶體中是如何儲存的呢?

 在VS中調試C#程式,如何查看記憶體、寄存器、反組譯碼 在這篇文章裡看到了如何在VS 中查看記憶體

先斷點打在數組建立後語句那裡,點debug->Windows->Memory, 選一個隨便memory

在immediate window裡 輸入 &變數名 arr,擷取arr的記憶體位址。

&arr
0x009becd8  ----->在堆棧中引用地址
*&arr: 0x02d75cb4  ----->在託管堆中空間的起始地址

 

經過這幾天的快餐知識學習,知道了堆棧中是由高向低填充。託管堆中好像相反,這句話不確定,因為記憶體回收了一部分,說是把那些有引用的對象都壓縮到一起了。

看記憶體哈~ c8 3b b8 72 09 什麼東西I don‘t know, if you know, let me know. 

INT 32, 普通實值型別都是結構體。

還有一個招,最近才學的,VS裡面自動產生建構函式,輸入ctor,然後點 ctrl+R+E

還有一個招,自動產生get,set。 private int _name, 然後點 Tab

string和object是唯一預定義的兩個參考型別。

16 在記憶體中儲存 00 00 00 10

15 在記憶體中儲存 00 00 00 0F

突然想反射一下 arr[0].GetType()   int32表示的範圍是 

 


正負2的31次方的整數。難道是有一位表示符號位嗎?我猜的。

 http://blog.csdn.net/zxsydyq/article/details/9125641 c#中int16 int32 int64區別 long不是真的long,.NET Framework 類型是int64;short不是真的短,.NET Framework 類型是int16

C# 數組在記憶體中的儲存

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.