[問題] call by ref
我的問題如下註解部份:
class A{
}
public class Test{
public static void f(A b)
{
b=new A();
}
public static void main(String[] a)
{
A b=null;
f(b); //為什麼執行完這行b還是null?
}
}
先謝啦
目前想到的解法: (若一定要透過function f來new的話)
若變數要在main一開始就宣告,而隨著得到更多的資訊來new A()
則只能把 f之return type改成A
藉由return new A();來達成
--
我的露天拍賣:
http://tinyurl.com/6z4rw7
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.126.177
推
12/10 17:21, , 1F
12/10 17:21, 1F
可是...我對於variable的scope又做了以下測試
http://gist.github.com/34301
如果依照kimkao大所說來看
感覺又好像怪怪的
執行完Matrix的ctor
m就無效了吧?
回到原本問題
我覺得是
很像C裡面的call by value
例子如下:
void f(int *p)
{
p=new int (5);
*p=10;
}
void main()
{
int a=5;
int *ptr=&a;
f(ptr); //執行完這行 a還是5
}
※ 編輯: walm20 來自: 140.118.126.177 (12/10 19:00)
推
12/10 19:49, , 2F
12/10 19:49, 2F
→
12/10 20:17, , 3F
12/10 20:17, 3F
推
12/10 20:41, , 4F
12/10 20:41, 4F
※ 編輯: walm20 來自: 140.118.126.177 (12/10 21:23)
推
12/11 16:04, , 5F
12/11 16:04, 5F
推
12/12 20:55, , 6F
12/12 20:55, 6F
討論串 (同標題文章)