作者madmanQ (D.)
看板C_Sharp
標題[問題] call by value的問題
時間Fri Nov 7 23:51:42 2008
我是最近才開始學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
1F:→ james732:老實說我看不太懂原po的的問題.... 11/08 00:23
2F:→ madmanQ:我也不知道該怎麼說明耶… 腦袋打結中 >"< 11/08 00:59
3F:推 winnerhyc:很明顯阿 int c = sum(a, b)時 就叫了sum 11/08 02:10
4F:→ winnerhyc:然後因為sum()內有Console.WriteLine(y) 所以 y印出 11/08 02:11
5F:→ winnerhyc:之後才會Console.WriteLine(c) 跟 Console.WriteLine(a) 11/08 02:12
6F:→ winnerhyc:所以當然是 y. c. a 11/08 02:12
7F:→ MRjk:這跟call by value一點關係都沒有吧 11/09 03:05
8F:推 tomex:可能程式課程得重修才行 11/09 13:26
9F:→ MRjk:Visual Studio有單步執行 不懂的話叫程式一步一步走給你看 11/09 23:50
10F:推 Qfuzzy: @@a 11/10 11:25
11F:→ madmanQ:我知道問題在哪了,之前一直想錯方向了 >"< 11/12 23:37
12F:→ madmanQ:因為沒學過程設的課,都是自學的,所以有些都看不懂 @@ 11/12 23:39
13F:→ james732:加油!! 11/13 03:32