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 中沒有 & 這種事....
首先,& 在 C/C++ 中有多種用途。你的例子的用法正正 *不是*
C/C++ 共有的用法。& reference 只在 C++ 有,在 C 裡是沒有的。
簡單來說,Java 沒有這種 reference 的概念。
你要是懂 C 的話就好辦。Java 與 C 一樣,只有 pass-by-value.
在 primitive type 的情況下,用C 的方法去理解就好。特別的地
方在於非 primitive type.
Java 中的 Foo foo; 其實差不多可以理解為 C/C++ 的 pointer.
即是 Foo* foo
所以假如有一 Java 的 method 長這樣:
void Bar(Foo foo)
其實就等同於 C/C++ 的
void Bar(Foo* foo)
要怎麼利用這種等性去做到類似pass-by-ref 的效果,懂 C/C++
的話我想你大概就心中有數了。
簡單來說,最多只做到有點類似的效果,沒法達成 C++ 的 reference
等同的效果。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 223.19.42.175
推
08/01 11:52, , 1F
08/01 11:52, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):