作者csihcs (非天夜翔)
看板PLT
標題Re: [問題] 可否讓陣列引數變成傳值呼叫
時間Sun May 31 15:24:13 2009
※ 引述《godfat (godfat 真常)》之銘言:
: ※ [本文轉錄自 java 看板]
: 作者: godfat (godfat 真常) 看板: java
: 標題: Re: [問題] 可否讓陣列引數變成傳值呼叫
: 時間: Sun May 31 15:08:27 2009
: 雖然跟 java 關係不大了.. 不過還是稍微講一下好了,
: 推文實在很難表達 @@
: ※ 引述《csihcs (非天夜翔)》之銘言:
: : 推 tkcn:Java 沒有 Call by Reference 05/31 13:19
: : java 有這個詞但是與C++的是不同的
: : 在昇揚 java 網站線上教學裡面提到
: : http://java.sun.com/developer/onlineTraining/JavaIntro/contents.html#ReferenceVariableUsage
: : http://tinyurl.com/n6mqfo [上面網址的縮址/不放心可點上面的]
: : When the argument and parameter types are nonprimitive (a defined class),
: : this process is generally called call by reference
: : because the invoked method receives a copy of a reference value.
: 我討厭 sun 的其中一點就是,他很多東西都讓人搞得很混淆。
: 想我還沒用過 java 前,對他的誤解可大了 XDDDD
: 還不都是名詞混用的關係... 而且 1.5/5.0 什麼的也讓我覺得不舒服。
: 還看過台灣的書名寫 Java2 5.0 不知道是啥東西 XD
: : 推 godfat:統一名詞沒什麼不好,很多地方by address/reference是一樣的 05/31 14
: 我之所以說是一樣的,是說兩者意思是相同的,都是把 address 丟過去,
: 可以想像成 pointer of pointer. 這是根據之前 wikipedia:
: http://en.wikipedia.org/wiki/Evaluation_strategy
: 還有一些 google 之後的結果得到的結論。和很多台灣的書上所說是有點差距的。
: 但是... 現在 wikipedia 那頁上,已經找不到 call by address 這個詞了。
: 因此:
: : → csihcs:並不是說統一名詞不好~而是C++的Reference,Java的Reference 05/31 14
: : → csihcs:是不同的,而C++中by address/reference 又有程度上的差異 05/31 14
: : 推 godfat:換另一個說法,其實我找不太到 by address 的說法出處 05/31 14
: : → godfat:google 只有第一筆符合,還是問問題,下面都無關了 05/31 14
: 這邊我說找不太到這個名詞的出處。當然以英文為主,畢竟這是英文的詞.........
: 先不管他究竟是指什麼,還有他在台灣代表什麼意思。
: wikipedia 在這邊修改過非常多次,應該是表示還在討論該怎麼定「名詞」吧?
: 如果要定的話,不覺得 by address 本來就是很混淆的說法?
: 如果是 by pointer 是否清楚得多?雖然 wikipedia 上也沒這個詞,
: 但我想知道 pointer 的人應該看就知道是什麼意思了,
: 反倒是 by address 的說法真的一大堆......
以個人認知上是覺得C++只有 call by value 和 call by reference,
而 Java 則只有 call by value,
Java 的 call by reference 其實也只是 C++ 的 call by value 中的一種,
而 call by address 一詞,
曾聽聞過那是只有台灣這邊才有的,
國外並沒有這一個詞的出現,
故此 call by address 我在前文則盡可能以 call by value of pointer 表示。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.9.2
1F:推 SansWord:我的認知相反耶, C 只有 call by value吧? 06/02 16:40
2F:→ SansWord:只能把變數所在地點的值(也就是址)或著變數的值傳過去 06/02 16:40
3F:→ SansWord:沒辦法傳遞變數本身 06/02 16:40
4F:→ godfat:C++ 和 C 不同 06/02 16:51