作者sbrhsieh (sbr)
看板PLT
標題Re: [問題] 可否讓陣列引數變成傳值呼叫
時間Sun May 31 17:07:06 2009
※ 引述《godfat (godfat 真常)》之銘言:
: : 推 godfat:統一名詞沒什麼不好,很多地方by address/reference是一樣的 05/31 14
: 我之所以說是一樣的,是說兩者意思是相同的,都是把 address 丟過去,
: 可以想像成 pointer of pointer. 這是根據之前 wikipedia:
: http://en.wikipedia.org/wiki/Evaluation_strategy
: 還有一些 google 之後的結果得到的結論。和很多台灣的書上所說是有點差距的。
: 但是... 現在 wikipedia 那頁上,已經找不到 call by address 這個詞了。
如果你把 by address 定義成透過 by value 把 address 傳遞過去的話,那麼
by address 與 by reference 應該還是非同義。by reference 最原始的意思應
是 pass 任何線索(關連)使得接收端可以按線索取得要傳遞的物件,雖然許多 C++
compiler 實做 reference type parameter 的方式是透過傳遞 address:
void foo(int& n) void foo(int* _n)
{ {
n = 87; *_n = 87;
} }
int main() int main()
{ {
int data = 0; int data = 0;
foo(data); foo(&data);
... ...
} }
但這只是 by reference 的一種作法而已(by reference 的子集)。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.141.238