作者turnoff11 (運動傷害)
看板Programming
標題[請益] call by value, call ref, call by name
時間Tue Mar 16 18:27:56 2010
有一題問call by value, call by ref, call by name的值
我試寫了,想問高手我的答案是正確的嗎?
function confuse(x,y,z)
{
x=x+2;
z=z+y;
printf(x,y,z);
}
main()
{
x=1;
y=2;
z=3;
confuse(x,x+y,z);
printf(x,y,z);
}
call by value,我的答案是(3,3,6)
(1,2,3)
call by ref, 我的答案是(3,3,6)
(3,3,6)
call by name,我的答案是(3,3,6)
(3,3,6)
不知道對不對?
另外題目有問到這個程式語言的scope?這什麼意思?
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.30.170.207
1F:推 Huangs:什麼是call by name啊? @@ 59.115.141.108 03/16 21:13
2F:推 nedbob:我猜是macro? 140.135.11.175 03/16 21:36
3F:推 yauhh:注意看主程式的call,call by ref不會改到y值 61.231.71.128 03/16 22:09
4F:→ yauhh:Wikipedia Evaluation_strategy 61.231.71.128 03/16 22:11
※ 編輯: turnoff11 來自: 163.30.170.179 (03/17 08:18)
5F:推 lingpxs:我記得只有分value, ref, address吧 114.33.233.10 03/19 01:30
6F:→ lingpxs:依序是複製值,傳指標給*,傳位址給& 114.33.233.10 03/19 01:31
7F:→ yauhh:C的執行方式的確只有那些,但並不是一討論 61.231.68.7 03/20 06:31
8F:→ yauhh:語言處理都只談C的情況. 61.231.68.7 03/20 06:31