簡單來說
call by value : 傳值不傳址,也就是不論你如何改變這個值也不影響原來的變數(不同位址)
call by address : 傳址,也就是你的任何改變是對這個address裡面存的數值做變動,所以會影響原來的變數(因為都指向同一個address),而裡面的指標變數可以指向其他位址
call by reference : 同call by address,唯一差異在於這種方式傳入的指標變數不可再次指向其他address,但是call by address可以作者: camby7s 時間: 2009-5-9 02:02 AM
三種其實是一樣的東西
只是在傳入的參數不一樣
Call by value: Copy傳入參數的值,Function結束Pop Stack就Free掉了,就好像你把作業影印一份給小明,就算他在上面寫林老師XX你原版的作業也不會改變。
Call by address:傳入參數是一個記憶體位置,改變記憶體位置內的值就等於改變了你原來的變數的值,就好像你跟小明說你的作業放在你抽屜自己拿,結果小明在你作業上面寫林老師XX,林老師就真的給你XX了
Call by reference:其實跟Call by address一樣,只是這次你直接把作業交給小明只是騙她說作業不是你的,他在上面寫林老師XX你交作業的時候林老師還是滿臉XX作者: k0184990 時間: 2009-6-5 12:28 AM