作者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