看板 TransCSI 關於我們 聯絡資訊
PROGRAM main PROCEDURE p( x, y, z ) BEGIN y = y + 3; // 2. y 代入 1 + 3 = 4 z = x + x; // 3. z 代入 5 + 5 = 10 END BEGIN a = 1; b = 4; CALL p( a + b ,a ,a ); // 1. p( 5, 1, 1) PRINT a; END 如果用call by test 的方式來呼叫,則印出的a值為何?? Ans:可以看到 p 傳了兩個 a 過去,可是兩個 a 的值都改成不一樣的 y 和 z 所以不太可能是 call by reference,不然會錯亂,a 不可能同時代表兩個值。 資料型態看起來應該都沒有改變,所以是 call by value 所以印出的 a 值應該是 1 -- 歡迎大家一起加入Intel Philanthropic Peer-to-Peer Program !!! 這項「英特爾慈善『點對點連線』計畫」旨在經由網際網路,把數百萬部個人電腦連結 起來,加速研發治療白血球過多症血癌)的藥物,從而把新藥上市的需要時間縮短約 一半。對本計畫有興趣者,可以到http://www.grid.org/download/gold/download.htm 網站,下載該程式。 一旦一批資料處理完畢,下次電腦連接上網際網路時,不論經由寬頻撥接,電腦便會 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.201.17
fly2089:嗯嗯..了解 感謝大大解惑 218.32.156.78 05/16