※ 引述《Holocaust123 (Terry)》之銘言:
: 由此可知 java 的函數若以陣列為引數,預設是傳址呼叫。
: 有沒有辦法改成傳值呼叫呢?
1. Java 沒有 Poninter,只有 Reference,
所以根本也不會有 Call by Address。
2. Java 也沒有 Call by Reference,
全部都只是 Call by Value。
你的程式遇到的情形,
其實是對 reference 變數做了 Call by Value,
因此傳入的參數是另一份 reference 但指向同一個物件,
對 reference 變數來說,這是 Call by Value。
詳情請參考本版 5054 討論串。
(光是本版大概就討論了三次以上囉,不過比較完整的我只找到 5054 這串)
要解決你的問題,
請自己對陣列進行複製。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.4.53
推
05/31 12:11, , 1F
05/31 12:11, 1F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):