作者tinlans ( )
看板PLT
标题Re: [问题] 请问call by address
时间Fri Mar 30 23:02:15 2007
※ 引述《godfat (godfat 真常)》之铭言:
: 根据 wikipedia,
: http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_reference
: ...总觉得这页长得好像跟以前不一样?
: 我记得以前是说 call by address 是 call by reference 的另一种说法
: 也就是说,两件事是指同一件事
: 现在看起来 call by address 又是 call by reference 的变形了
是同一种东西没有错,
建议尽量以教科书为准,
网路资讯为辅,
毕竟 wiki 是什麽都人可以去 edit 的,
你无聊的话也可以看看那篇的 history,
不过我 reply 这篇的时候 wikipedia 挂了,
不知道几时才能再进去。
在 C/C++ 分辨这种东西很单纯是看 call site 怎样写,
不经型别转换就自动取 lvalue 丢进去那就是 by address/reference,
其余的都是 by value,
在 C 要送变数的 address/reference 只能用 address-of 运算子取出 lvalue,
但这样会 explicit 构成一个 temporary object (programmer 可见),
所以送过去的会是 temporary object 的 value,
也因此这个还是 call by value。
--
Name: Tseng, Ling-hua E-mail Address:
[email protected]
School: National Tsing Hua University Department: Computer Science
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage:
https://it.muds.net/~uranus
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.216.167
1F:推 godfat:可惜我几乎没有读过教科书|||b 03/31 11:38
2F:推 yago01:还是有老师会教call by address 唉 03/31 19:50
3F:推 aoc90058:严谨的说,C 没 call by address 03/31 20:36
4F:→ aoc90058:K&R II , exactly passed by value 我记得有这麽一句 03/31 20:37
5F:推 yago01:没错阿 C本来就没有 有老师就说有阿...wahaha 03/31 23:27