- - PR -
javaのポインタ(?) 値の入れ替えについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-25 01:29
c言語のように関数で値の入れ替えをしたいのですが、どのようにすればよろしいでしょうか?現在のソースは以下のようになっています。mainに帰ってきた時に値が変わっていない理由はわかりますが、どのように書けばいいのかわかりません。どなたかご教授ください。
public static void main(String[] args){ int a =10,b=5; System.out.println(a + " " + b); SWAP(a,b); System.out.println(a + " " + b); } public static void SWAP(int a,int b) { int swap_work = a; a = b; b = swap_work; } | ||||
|
投稿日時: 2005-08-25 02:45
SWAPメソッドに渡ってきているのはポインタではなくて値です。
SWAPメソッド内でaやbに代入をしてもmainのローカルスコープの変数の値は変わりません。 メソッドを展開して、mainメソッド内で同様の処理をしてみましょう。 | ||||
|
投稿日時: 2005-08-25 03:01
intを入れ換えるメソッドを作るのは不可能です。クラスで運ぶ必要があります。
java.lang.Integer は残念ながらこの目的には使えません。 | ||||
|
投稿日時: 2005-08-25 09:23
int[]を渡して、[0]を交換するというのもできるのでは。
どのみち直接の交換ではないですが。 |
1