国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-17 03:03:38
字體:
來源:轉載
供稿:網友

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

1、值類型與引用類型

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

值類型所有的數值類型(longint 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、通過代碼的運用更深入地了解值類型和引用類型的區別

int temp;

temp = 100;

Console.WriteLine("修改前,temp=" + temp);

ChangeValue(temp);

Console.WriteLine("修改后,temp=" + temp);

Student stu = newStudent() { Name = "張三", Age =30 };

Console.WriteLine("修改前:" + stu.Name + " :" +stu.Age);

ChangeValue(stu);

Console.WriteLine("修改后:" + stu.Name + " :" +stu.Age);

Console.ReadKey();

static voidChangeValue(int num)

{

num = 200;

}

static voidChangeValue(Student stu)

{

stu.Age = 40;

stu.Name= "李四";

}

結果為:

5、下面給一張圖講解一下上面的案例

相信通過這個形象的例子,大家應該明白值類型和引用類型的區別了吧!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吐鲁番市| 于田县| 城步| 玉山县| 罗江县| 海南省| 铜陵市| 丽水市| 博客| 绍兴县| 临湘市| 云阳县| 台南县| 大宁县| 新疆| 睢宁县| 潮州市| 巴中市| 磴口县| 泽库县| 汤阴县| 石柱| 兴国县| 金昌市| 西昌市| 大厂| 巴马| 聂拉木县| 黑山县| 珲春市| 赤壁市| 玉林市| 阜阳市| 阳泉市| 牡丹江市| 北宁市| 乌海市| 广昌县| 明水县| 玉屏| 大新县|