作者learnerQQ (小銓)
看板Grad-ProbAsk
標題[理工] [資結] 參數傳遞
時間Wed Jan 11 17:22:50 2012
有點不太能理解 pass by value result and pass by name
可否像各位請教一下 以下題目 小弟解決的是否有誤
//Gloval var
int i,a[2];
void p(int x,int y){x++;i++;y++}
int main()
{
a[0]=3;a[1]=5;i=0;
p(a[i],a[i]);
printf("%d\n",a[0]);
printf("%d\n",a[1]);
system("pause");
return 0;
}
如果是使用 Pass by value result 會印出 4 , 5
如果是使用 Pass by name 會印出 4 , 6
請問這樣有錯嗎 還有是否有詳細一點的解釋 (很少使用這兩種參數傳遞
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.105.105
※ 編輯: learnerQQ 來自: 140.123.105.105 (01/11 17:24)
→ FY4:p(a[i],a[i]); 如果是這樣的話 是cal by value 是5,5吧 01/11 21:01
→ FY4:傳進去是a[0],a[0] 即使i++ 變的還是a[0] 01/11 21:03
推 FY4:call by name 想成我要用"值"的時候 都要在去重拿最新的 01/11 21:06
→ FY4:所以是4,6 一些拙見 .. 01/11 21:07