作者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