Re: [問題] 有關於 Java 的指標

看板java作者 (花生)時間10年前 (2013/07/31 11:06), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《lairrol (Hammer)》之銘言: : 想請問一下在 Java 中沒有類似 C/C++ 中 & 的用法嗎? : 小弟我在學 C/C++ 可以做下面這樣的事 : 可以利用 & 做傳址給副程式做一些運算 : #include <iostream> : using namespace std; : void add(int &a, int &b) : { : a++; : b++; : } : int main(void) : { : int a = 1, b = 1; : cout << a << b << endl; : add(a,b); : cout << a << b << endl; : } : 但是小弟在學 Java 的時候無法用 & 來做類似的事 : 查了一下版上的資料有討論到這部份的問題 : 我還是有點難理解 Java 中沒有 & 這種事.... 你想做的這件事,在Java中會把它包裝成"物件"來做。 public class Test { int a; public static void main(String[] args) { Test t = new Test(); t.a = 1; System.out.println("t.a:" + t.a); Test.add(t); System.out.println("t.a:" + t.a); } public static void add(Test t){ t.a++; } } 程式結果會印出: t.a:1 t.a:2 在傳遞參數時,Java會依變數型態來決定是「傳值」還是「傳參考」 如果是Java的8種基本資料型態:byte,short,int,long,float,double,boolean,char 就會是「傳值」。 但如果是這8種資料型態以外的,像把他包裝成"物件" 將Test t;這個物件傳進add(Test t)時,就是「傳參考」 也就跟C++裡面的&有點像。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.218.117.242

07/31 11:33, , 1F
這應該也不是 C 裡頭 & 的意思,只是結果趨近而已
07/31 11:33, 1F

07/31 14:54, , 2F
這是C裡頭的 *
07/31 14:54, 2F
文章代碼(AID): #1H-7yREE (java)
文章代碼(AID): #1H-7yREE (java)