在java中如何交换两个变量的值c/c++:
void swap(int *a,int *b){
  int t = *a;
  *a = *b;
  *b = t;
}
void swap(int &a,int &b){
  int t = a;
  a = b;
  b = t;
}在java中怎么实现?

解决方案 »

  1.   

    java中也是一样写吧,只是去掉指针或引用符号
      

  2.   


    public class Test { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int i = 5;
    int j = 6;
    Test t = new Test();
    t.ch(i, j);
    System.out.println("i = " + i + "     j = " + j); }

    public void ch(int a, int b){
    System.out.println("a = " + a + "     b = " + b);
    int c = a;
    a = b;
    b = c;
    System.out.println("a = " + a + "     b = " + b);
    }}自己看吧,改变的只是a和b,但是原始的i和j并没有变化
      

  3.   

    晕134楼
    我知道java中没有引用传递,我只是觉得要是想实现swap,有没有类似的方法而已。
      

  4.   

    理解不一样而已,我觉得程序员操纵的对象是对象引用,所以传值的时候传时候传的是这个引用的拷贝。
    所以我认为java里一切都是值传递。
    c里:
    void f(int *p){}
    int i = 1,*p = &a;
    f(p)这里你说传的是什么?