程序員開發經常涉及到的內存區域:堆、棧、靜態存儲區域。
值類型和引用類型的區別:
- 值類型和引用類型在內存上存儲的地方不一樣。值類型的值是存儲在內存的棧當中。引用類型的值是存儲在內存的堆中。
- 在傳遞值類型和傳遞引用類型的時候,傳遞方式不一樣。值類型我們稱之為值傳遞,引用類型我們稱之為引用傳遞。
本章節,暫時只介紹第1個區別:值類型和引用類型在內存上的存儲區域。
常用值類型:int、double、bool、char、decimal、struct、enum
常用引用類型:string、自定義類、數組
1.值類型存儲圖解:
2.引用類型-字符串存儲圖解:
3.引用類型-自定義類存儲圖解:
引用類型存儲總結:
引用類型的對象存儲在堆中,並且會分配一個內存地址。該內存地址會存儲到棧空間,棧空間名為變量名。
即讀取引用類型對象的順序:變量—>內存地址—>實例對象。