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