[考題] call by reference之實作(傳參考呼叫)

看板Examination (國家考試)作者 ( )時間12年前 (2014/04/14 20:38), 編輯推噓2(2014)
留言16則, 4人參與, 最新討論串1/1
題目出自98年高考程式語言第三題 我只問我有疑問的地方 故簡化如下 試說明起動記錄中function parameters實作call by reference 我的書籍是高點 2013程式語言 胡世雄著 解答如下 1.主程式呼叫副程式時,系統先在副程式啟動記錄之fuction parameters欄位,為形式參數 配置一個可儲存形式參數位址(一個指標)之記憶體 2.將實際參數的記憶體位址傳遞至該指標記憶體,作為形式參數之記憶體位址 3.副程式對於形式參數的引用,皆會存取到實際參數的記憶體,可直接影響實際參數 之記憶體內容 我有疑問的是第一句標示紅色的句子 怎麼不是一個可儲存實際參數位址的記憶體呢? 其他地方沒問題 就是形式參數跟實際參數共用相同記憶體位址 也不曉得這種地方重不重要 PO版請問一下各位的意見 感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.143.99.32 ※ 文章網址: http://www.ptt.cc/bbs/Examination/M.1397479105.A.548.html

04/15 07:37, , 1F
他的說法似乎是說,在呼叫形式參數的時候會生成兩塊記憶
04/15 07:37, 1F

04/15 07:38, , 2F
體空間,一個是形式參數的值,一個是實際參數的位置,一
04/15 07:38, 2F

04/15 07:39, , 3F
般情況當然只有給值的空間,位址隨便系統分配,但傳址呼
04/15 07:39, 3F

04/15 07:40, , 4F
叫似乎就是這樣,最後再把實際參數的位址丟到形式參數的
04/15 07:40, 4F

04/15 07:40, , 5F
位址記憶體,那塊'形式參數的值'就變成跟實際的一樣了吧
04/15 07:40, 5F

04/15 08:07, , 6F
我錯了,上面別看.....
04/15 08:07, 6F

04/15 08:08, , 7F
總之就是宣告一個指標存會參考到形式參數的值的位址,所
04/15 08:08, 7F

04/15 08:09, , 8F
以丟實際參數的位址進去,形跟實就是用同樣空間了
04/15 08:09, 8F

04/15 10:02, , 9F
沒錯 的確是儲存實際參數的位址 但是 位置的大小都是一
04/15 10:02, 9F

04/15 10:03, , 10F
樣的(4bytes) 所以書上講得沒錯 就是儲存一個
04/15 10:03, 10F

04/15 10:04, , 11F
可儲存形式參數位址(一個指標)之記憶體 況且 在活動紀錄
04/15 10:04, 11F

04/15 10:04, , 12F
一般也是用形式參數來表示 主程式以實際參數表示
04/15 10:04, 12F

04/15 10:54, , 13F
好吧~腦袋轉不過來 再多想想 謝謝!
04/15 10:54, 13F

04/18 23:02, , 14F
因為 實際參數型態 不一定跟形式相同 所以以形式參數的型
04/18 23:02, 14F

04/18 23:02, , 15F
態來配置空間 在函式內也是使用形式參數datatype來存取該
04/18 23:02, 15F

04/18 23:02, , 16F
位址的內容
04/18 23:02, 16F
文章代碼(AID): #1JIzR1L8 (Examination)
文章代碼(AID): #1JIzR1L8 (Examination)