Re: [理工] 99中興資管計概 程式題

看板Grad-ProbAsk作者 (洛風魚子)時間14年前 (2012/03/01 12:05), 編輯推噓3(304)
留言7則, 3人參與, 最新討論串1/1
因為call-by-reference是把address傳進去 你題目有一句打錯了 是 x = b + x,不是 x = x + x 計算過程請看我註解的地方 ※ 引述《ByTutu (瓜拉)》之銘言: procedure mystery { int a,b; procedure enigma(x,y) { y = y+b; // y = b = 7+7 = 14 x = b+x; // x = a = 14+2 = 16 b = x+b; // b = y = 16+14 = 30 a = y; // a = y = b = 30 } a=2;b=7; enigma(a,b); write(a);write(b); } 不太懂為什麼採用call by reference的時候 a=30 b=30? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.40.222.33 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.138.103.196

03/01 12:45, , 1F
真的欸 沒發現打錯 謝謝你!
03/01 12:45, 1F

03/01 13:35, , 2F
大大,不好意思,請問為什麼在做"y = y+b;" b也跟著變14?
03/01 13:35, 2F

03/01 14:22, , 3F
因為呼叫enigma(a,b)時,會把b的address傳遞過去
03/01 14:22, 3F

03/01 14:22, , 4F
所以y指到b,只要y值變動,b值也會跟著變動
03/01 14:22, 4F

03/01 14:52, , 5F
感謝大大,所以如果call by value 就不會跟著變動吧?
03/01 14:52, 5F

03/01 14:52, , 6F
題目會事先說明是哪種型式對吧?
03/01 14:52, 6F

03/01 15:52, , 7F
基本上會講是哪一種型式,如果沒講通常是value
03/01 15:52, 7F
文章代碼(AID): #1FJlMGhR (Grad-ProbAsk)