深入C 資料型別 李四為何自己new物件?

2021-10-17 03:30:50 字數 1287 閱讀 2517

若有所思:

double

zs =

;double

ls = zs;

console.

writeline

("去年,張三的身高為:,張三的體重為"

,zs[0]

,zs[1]

);console.

writeline

("去年,李四的身高為:,李四的體重為:"

, ls[0]

, ls[1]

);ls[0]=

180;

ls[1]=

70;console.

writeline

("今年,張三的身高為:,張三的體重為"

,zs[0]

,zs[1]

);console.

writeline

("今年,李四的身高為:,李四的體重為:"

, ls[0]

, ls[1]

);

執行結果如下:

存在問題!!!張三和李四共用同一段儲存空間!

double

zs =

;double

ls = zs;

console.

writeline

("去年,張三的身高為:,張三的體重為"

,zs[0]

,zs[1]

);console.

writeline

("去年,李四的身高為:,李四的體重為:"

, ls[0]

, ls[1]

);ls =

newdouble[2

];ls[0]=

180;

ls[1]=

70;console.

writeline

("今年,張三的身高為:,張三的體重為"

,zs[0]

,zs[1]

);console.

writeline

("今年,李四的身高為:,李四的體重為:"

, ls[0]

, ls[1]

);

溫馨小貼士:

-對於陣列而言,當乙個陣列引用賦值給另乙個陣列引用後,這兩個引用指向同一塊儲存空間,也就是指向同一塊儲存空間!

(所以我們將李四例項化乙個物件便可以將其開闢一塊儲存空間解決問題)

深入C 資料型別

源於 system value type家族 主要包括 基本資料型別和列舉型別 結構型別 對於值型別,不同的變數會分配不同的儲存控制項,並且儲存空間中儲存的是該變數的的值。改變乙個變數的值不會影響另乙個變數的值。源於 system object家族 主要包括 類 介面和陣列 如果直接賦值給其他變數,...

深入C 資料型別

值型別 源於system.valuetype 引用型別 源於system.object 結構中可以有字段也可以有方法 定義時,結構中的字段不能被賦初值 可以不用new,直接定義結構的物件即可 前提該屬性的型別不是數值型別 宣告結構的物件後,必須給結構的成員賦初值 結構體中沒有預設建構函式,但類中有預...

深入C 資料型別

一 值型別與引用型別 值型別源於system.valuetype家族,值型別包括基本資料型別,結構型別和列舉型別。值型別 在棧上儲存的真實的值。引用型別源於system.object家族,在c 中引用型別主要包括陣列 類 介面 string型別等。引用型別 在棧和堆上都要分配空間。值型別例題 1 c...