作者Ansaga (奈燦)
看板C_Sharp
標題[問題] void函數的問題...
時間Wed Feb 29 07:11:04 2012
真是慚愧不知道該怎麼辦才好
今天看中華電信的一個考題大概像
void swap(int i, int j) {
int t = i;
i = j;
j = t;
return ;
}
void main(void)
{ int a = 23, b = 47;
swap(a,b);
printf("After. a: %d, b: %d\n", a, b);
system("PAUSE");
return 0;
}
要找出錯誤並改寫
如果是c的話加上指標就結束了
想說c#好像不用指標就換到c#來
結果函數跑完後數值又變回來了
也就是a跟b只在function內有交換
一出function又是原來的a,b了
請問這個情況怎麼回事呢...
想不懂...慚愧
--
香菸帶不走的寂寞 ζ
ξ
你能不能懂 -●
ν)
√■_ˍ▁▂▃▄▄▃
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.144.249
※ 編輯: Ansaga 來自: 114.32.144.249 (02/29 07:13)
1F:→ ssccg:c#的value type一樣是pass by value啊,要加ref 02/29 07:34
2F:→ Ansaga:不解的原因是平常沒有特別用過ref好像也沒錯過 02/29 07:51
3F:→ Ansaga:今天想試試這個東西突然怎麼試都錯QQ 02/29 07:52
4F:→ Ansaga:一定是我東西還寫太少了 感謝大大解惑 02/29 07:52
5F:→ andymai:有空可以再玩玩傳物件,傳進去之前new和傳進去再new 02/29 10:05
6F:→ andymai:上面說的是不用ref或out的情形下... 02/29 10:06
7F:推 qwer820404:C#可以用ref? 02/29 12:48
8F:推 qwer820404:沒事 我中邪了ㄎㄎ 02/29 12:50
9F:→ qwer820404:andy大是指說用object[] return嗎 02/29 12:51
10F:推 stosto:MSDN搜尋一下就有了 02/29 21:17
11F:→ Elly:ref或out 02/29 23:33
12F:→ Elly:但out要再加一個參數去接 02/29 23:33
13F:→ andymai:object[] return?不是~是單純return object... 03/01 00:30