精華區beta Programming 關於我們 聯絡資訊
※ 引述《meltice.bbs@bbs.wretch.cc (三億兩千萬大散戶)》之銘言: : ※ 引述《khoguan.bbs@ptt.cc (Khoguan Phuann)》之銘言: : > 厚厚,關於這幾個名詞,眾說紛紜。 : > 讓我猜猜看,嗯,tinlans 的意思可能是將 call by address : > 與 call by reference 當做同義。而 cplusplus 則是將 : > call by address 本質同等於 call by value. : > 至於誰是誰非,或是各有道理呢?因為最近鄙人深感與人爭辯 : > 之苦,決定靜候公議。 : 我到覺得以C++來說 : foo(int *) , by address : 跟 : foo(int &) , by reference : 比較相近耶 : 之前有trace過組語 : 印象中底層實做是一樣的 : 都是push"位址"到參數堆疊上 by address & by reference 二者實際上,它們的意義並非如表面所看到 的那樣。 簡單的說,by reference 所工作的是操縱指標。換句話說,它所傳遞的是 是指標中的指標(&ptr==**ptr)。如此傳遞的最主要用意是在加速程式碼的 執行效率,當然也含蓋減少資料(結構...等)傳遞而達成執行效率之提昇。 以下的網址有詳細範例說明 by reference 與 by address的差別: http://64.233.187.104/search?q=cache:N1tM1Kw5ZEAJ:www.stanford.edu/class/cs107/Handouts/19-Code-Generation-Examples.pdf -- ╭──── Origin:<不良牛牧場> bbs.badcow.com.tw (210.200.247.200)─────╮ Welcome to SimFarm BBS -- From : [203.204.90.144] ◣◣◢ ◢◢不良牛免費撥接→電話:40586000→帳號:zoo→密碼:zoo ◣◣─╯