Re: [請益] call by value, call ref, call by name
※ 引述《turnoff11 (運動傷害)》之銘言:
: 有一題問call by value, call by ref, call by nmae的值
: 我試寫了,想問高手我的答案是正確的嗎?
: 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);
: }
用名字呼叫的意思,是按照呼叫時傳入的參數對應,把相同於參數名的變數名
代換成對應的傳入參數.
以上例來看,呼叫 confuse(x, x+y, z),意思就是以下三條替換規則:
x ---> x
y ---> x+y
z ---> z
於是代換之後的函數變成:
function confuse (...) {
x = x + 2;
z = z + x+y;
printf(x, x+y, z);
}
接著三個值放進去:
x = 1 y = 2 z = 3
x = x + 2 x == 3 如上 如上
z = z + x+y x == 3 如上 z == 6
printf(x, x+y, z) 印出(3,5,6)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.71.128
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章