Re: [請益] call by value, call ref, call by name

看板Programming作者 (喲)時間15年前 (2010/03/16 22:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《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
文章代碼(AID): #1Bdvnqqr (Programming)
文章代碼(AID): #1Bdvnqqr (Programming)