Re: [問題] 有關於 Java 的指標
※ 引述《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
07/31 11:33, 1F
推
07/31 14:54, , 2F
07/31 14:54, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):