Re: [問題] 可否讓陣列引數變成傳值呼叫

看板PLT (程式語言與理論)作者 (非天夜翔)時間15年前 (2009/05/31 15:24), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《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

06/02 16:40, , 1F
我的認知相反耶, C 只有 call by value吧?
06/02 16:40, 1F

06/02 16:40, , 2F
只能把變數所在地點的值(也就是址)或著變數的值傳過去
06/02 16:40, 2F

06/02 16:40, , 3F
沒辦法傳遞變數本身
06/02 16:40, 3F

06/02 16:51, , 4F
C++ 和 C 不同
06/02 16:51, 4F
文章代碼(AID): #1A8Z2UKW (PLT)
文章代碼(AID): #1A8Z2UKW (PLT)