call by reference之實作(傳參考呼叫) - 高考

Table of Contents

題目出自98年高考程式語言第三題

我只問我有疑問的地方 故簡化如下

試說明起動記錄中function parameters實作call by reference

我的書籍是高點 2013程式語言 胡世雄著

解答如下

1.主程式呼叫副程式時,系統先在副程式啟動記錄之fuction parameters欄位,為形式參數

配置一個可儲存形式參數位址(一個指標)之記憶體

2.將實際參數的記憶體位址傳遞至該指標記憶體,作為形式參數之記憶體位址

3.副程式對於形式參數的引用,皆會存取到實際參數的記憶體,可直接影響實際參數

之記憶體內容

我有疑問的是第一句標示紅色的句子

怎麼不是一個可儲存實際參數位址的記憶體呢?

其他地方沒問題 就是形式參數跟實際參數共用相同記憶體位址

也不曉得這種地方重不重要 PO版請問一下各位的意見

感謝~

--

All Comments

Frederic avatarFrederic2014-04-19
他的說法似乎是說,在呼叫形式參數的時候會生成兩塊記憶
Damian avatarDamian2014-04-20
體空間,一個是形式參數的值,一個是實際參數的位置,一
Joseph avatarJoseph2014-04-21
般情況當然只有給值的空間,位址隨便系統分配,但傳址呼
Franklin avatarFranklin2014-04-21
叫似乎就是這樣,最後再把實際參數的位址丟到形式參數的
位址記憶體,那塊'形式參數的值'就變成跟實際的一樣了吧
Callum avatarCallum2014-04-26
我錯了,上面別看.....
Aaliyah avatarAaliyah2014-04-29
總之就是宣告一個指標存會參考到形式參數的值的位址,所
Enid avatarEnid2014-04-30
以丟實際參數的位址進去,形跟實就是用同樣空間了
Zenobia avatarZenobia2014-05-01
沒錯 的確是儲存實際參數的位址 但是 位置的大小都是一
Leila avatarLeila2014-05-06
樣的(4bytes) 所以書上講得沒錯 就是儲存一個
Elvira avatarElvira2014-05-07
可儲存形式參數位址(一個指標)之記憶體 況且 在活動紀錄
一般也是用形式參數來表示 主程式以實際參數表示
Damian avatarDamian2014-05-09
好吧~腦袋轉不過來 再多想想 謝謝!
Kristin avatarKristin2014-05-11
因為 實際參數型態 不一定跟形式相同 所以以形式參數的型
態來配置空間 在函式內也是使用形式參數datatype來存取該
位址的內容