Re: でもこれは



[ このメッセージへの返事 ] [ 返事を書く ] [ home.html ]



投稿者: 68user @ oryo.inforyoma.or.jp on 98/3/06 02:34:28

In Reply to: Re: そう、それです!!

posted by EIJI @ cs22239.ppp.infoweb.or.jp on 98/3/05 21:52:19

> Sample.java
> (snip!)

これって

char *swap_result(int *num1,int *num2){
 int tmp;
 char *result_p;
 result_p = malloc(30);

 tmp = *num1;
 *num1 = *num2;
 *num2 = tmp;
 sprintf(result_p,"a,b=%d,%d\n",num1,num2);
 return result_p;
}

void main(){
 int a=30;
 int b=10;
 printf("%s",swap_result(&a,&b));
}

とやってるだけですよね。aとbの中身は入れ替わってないわけで。

で、EIJIさんの書かれたのをみて、

public class sample{
 public static void main(String args[]){
  int a=30,b=10;
  String str = "";
  Swap s = new Swap(a,b);
  System.out.println("a,b="+String.valueOf(a)+String.valueOf(b));
 }
}

class Swap{
 int a,b,tmp;

 Swap(int a,int b){
  int tmp;
  tmp = this.a;
  this.a = this.b;
  this.b = tmp;
 }
}

としてみたのですが入れ替わってませんでした。


ところでC++には参照(int #ってやつ)がありますよね。

これがJavaに実装されていたら、swapできるんじゃ
ないでしょうか。ちょっと今から試してみます。


> 68userさんでも知らないってことは、やっぱりできないんでしょうか……

いや、あの…僕はJava歴3日、C++歴10日くらいですので…(^^;

JavaもC++も、ぜ〜んぜん知りませんわ(笑)