int?*a;
a?=?&b;C和java都是初學(xué)者水平的在下,目前正在做將一個C程序移植到j(luò)ava的工作,很多指針功能不知道如何在java中實現(xiàn),希望有大神能幫忙解答!最好解釋一下原理!小弟萬分感謝!
1 回答
已采納

阿旭_
TA貢獻217條經(jīng)驗 獲得超353個贊
在java中沒有指針的概念,倒是有個引用的類似概念,
相同點是都是保存地址,不同點是C中的地址可能通過int型來保存,java中的地址必須是Object類型。
換話句說,java中保存地址的只能是Object類型,而C中int型即可以保存地址(指針)又可以保存一個數(shù)值。
簡單講要實現(xiàn)這樣一個功能,java寫起來會比較復(fù)雜,但是如果熟練起來會覺得比C好理解不容易出錯。
以你問的為例。代碼如下。
public?class?Test23?{ public?int?c?=?5; public?static?void?main(String[]?args)?{ Test23?b?=?new?Test23(); Test23?a?=?null;//?如果寫成int,就只能保存值,而不能保存地址了。 a?=?b;//?地址只能保存其它地址 /*?這里用c的輸出格式給你演示,方便你理解,但通常java是不用這種輸出格式的,而是System.out.println(a.c);即可?*/ System.out.printf("%d",?a.c); } }
添加回答
舉報
0/150
提交
取消