看板 C_Sharp 關於我們 聯絡資訊
我是最近才開始學C#的,去弄了本書來自修 看到call by value的時候,就有一點點看不懂了 雖然之前學過一些C++,可是都忘光了 ^^" 下面是書上的範例 using System; public class example { public static void Main() { int a = 10; int b = 12; int c = sum(a, b); Console.WriteLine(c); // 第二個輸出:32 Console.WriteLine(a); // 第三個輸出:10 } private static int sum(int x, int y) { x += 10; int z = x + y; Console.WriteLine(y); // 第一個輸出:12 return z; } } 我比較不懂的地方是為什麼輸出的順序是 y、c、a? 如果int c = sum(a, b)是因為sum函數還沒出現,所以還不會輸出 那這樣的話輸出順序應該是a、y、c啊 雖然很基本的問題,可是搞不懂 ~"~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.0.34
james732:老實說我看不太懂原po的的問題.... 11/08 00:23
madmanQ:我也不知道該怎麼說明耶… 腦袋打結中 >"< 11/08 00:59
winnerhyc:很明顯阿 int c = sum(a, b)時 就叫了sum 11/08 02:10
winnerhyc:然後因為sum()內有Console.WriteLine(y) 所以 y印出 11/08 02:11
winnerhyc:之後才會Console.WriteLine(c) 跟 Console.WriteLine(a) 11/08 02:12
winnerhyc:所以當然是 y. c. a 11/08 02:12
MRjk:這跟call by value一點關係都沒有吧 11/09 03:05
tomex:可能程式課程得重修才行 11/09 13:26
MRjk:Visual Studio有單步執行 不懂的話叫程式一步一步走給你看 11/09 23:50
Qfuzzy: @@a 11/10 11:25
madmanQ:我知道問題在哪了,之前一直想錯方向了 >"< 11/12 23:37
madmanQ:因為沒學過程設的課,都是自學的,所以有些都看不懂 @@ 11/12 23:39
james732:加油!! 11/13 03:32