class program
; int score2 = score1;
score2[0] = score1[3] + 100;
for (int i = 0; i < score1.length; i++)
//ref 和 out, ref是有進有出,out是只出不進。
int val = 0;
method(ref val);
// val is now 44
int value;
method1(out value);
// value is now 44
console.read();
}static void method(ref int i)
static void method1(out int i)
//得到結論:
//1.值型別有:int,double等值型別 struct結構體 enum列舉
//2.引用型別的變數在傳遞給新變數時,傳遞的是變數本身(引用、位址、指標),新變數並沒有開闢新的空間。它只是指向了新的變數。
//新變數改變了值,本質上改變的是「被引用變數」的值。
//引用變數有:陣列,物件,字串(字串是引用變數,但效果是和值型別一樣),自定義類
}
引用型別和值型別
c 是一種型別安全的語言。每乙個變數都要求定義為乙個特定的型別,並且要求儲存在變數中的值只能是這種型別的值。變數既能儲存值型別,也可以儲存引用型別,還可以是指標。這一課將講述前兩種型別,關於指標的討論我們將在下一課中進行。下面是關於值型別和引用型別不同點的概論 如果乙個變數v儲存的是值型別,則它直接...
引用型別和值型別
c 中值型別和引用型別作為方法引數傳遞的時候其實都可以說是 值 的傳遞,只不過這裡的 值 指代的東西有所區別。當方法的引數為值型別時,方法傳遞的是值本身的值。當方法的引數為引用型別時,方法傳遞的則是應用型別的引用的位址,也就是引用型別位址在棧上的值。舉個引用型別作為引數傳遞的例子 static vo...
值型別和引用型別
為了更好地說明兩種型別之間的區別,借用如下的 來說明 值型別引用型別 記憶體分配地點 分配在棧中 分配在堆中 效率效率高,不需要位址轉換 效率低,需要進行位址轉換 記憶體 使用完後,立即 使用完後,不是立即 等待gc 賦值操作 進行複製,建立乙個同值新物件 只是對原有物件的引用 函式引數與返回值 是...