程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 淺談值類型與引用類型的區別

淺談值類型與引用類型的區別

編輯:C#入門知識

淺談值類型與引用類型的區別

1、值類型與引用類型

我們將我們之前學的數據類型劃分成兩撥: 

值類型
所有的數值類型(long int short byte ulong uint ushort sbyte decimal double float)、bool、char、枚舉、結構

引用類型

string字符串、 數組、類

劃分依據: 他們在內存中存儲的結構不同

2、值類型與引用類型的異同點

a. 相同點:
無論是值類型的變量還是引用類型的變量, 變量始終是開辟在棧空間中的.
b. 不同點:
值類型的變量真實的值 直接存儲在 值類型的變量之中.
引用類型的真實的值(對象) 是存儲在 堆空間之中. 引用類型的變量之中存儲的是 真實的值(對象)在空間中的地址.

3、值類型與引用類型的賦值效果不同

在這裡強調一下: 無論是什麼類型的變量之間相互賦值, 都是將源變量的值拷貝1份,將這個副本賦值給目標變量.

a. 值類型的變量在相互賦值的時候,是對1個變量的值進行修改,不會影響另外1個變量的值.

b. 引用類型的變量之間相互賦值,兩個引用類型的變量實際上指向了同1個堆空間中的地址(對象),對1個變量進行修改 會影響另外的1個變量

特別注意的是:string是一種特殊的引用類型,string在內存中存儲時按照引用類型的存儲. 但是在賦值的時候不是這樣的,是由於字串符的恆定性造成的。

4、通過代碼的運用更深入地了解值類型和引用類型的區別

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved