[問題] call by value的問題

看板C_Sharp (C#)作者 (D.)時間16年前 (2008/11/07 23:51), 編輯推噓3(3010)
留言13則, 6人參與, 最新討論串1/2 (看更多)
我是最近才開始學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

11/08 00:23, , 1F
老實說我看不太懂原po的的問題....
11/08 00:23, 1F

11/08 00:59, , 2F
我也不知道該怎麼說明耶… 腦袋打結中 >"<
11/08 00:59, 2F

11/08 02:10, , 3F
很明顯阿 int c = sum(a, b)時 就叫了sum
11/08 02:10, 3F

11/08 02:11, , 4F
然後因為sum()內有Console.WriteLine(y) 所以 y印出
11/08 02:11, 4F

11/08 02:12, , 5F
之後才會Console.WriteLine(c) 跟 Console.WriteLine(a)
11/08 02:12, 5F

11/08 02:12, , 6F
所以當然是 y. c. a
11/08 02:12, 6F

11/09 03:05, , 7F
這跟call by value一點關係都沒有吧
11/09 03:05, 7F

11/09 13:26, , 8F
可能程式課程得重修才行
11/09 13:26, 8F

11/09 23:50, , 9F
Visual Studio有單步執行 不懂的話叫程式一步一步走給你看
11/09 23:50, 9F

11/10 11:25, , 10F
@@a
11/10 11:25, 10F

11/12 23:37, , 11F
我知道問題在哪了,之前一直想錯方向了 >"<
11/12 23:37, 11F

11/12 23:39, , 12F
因為沒學過程設的課,都是自學的,所以有些都看不懂 @@
11/12 23:39, 12F

11/13 03:32, , 13F
加油!!
11/13 03:32, 13F
文章代碼(AID): #1956GHzx (C_Sharp)
文章代碼(AID): #1956GHzx (C_Sharp)