下面程序运行之后,变量x的值是(      )。
......
//swap方法的声明
public static void swap(int a,int b){
  int t=a;
  a=b;
  b=t;
}
//main方法
public static void main(String args[]){
int x=2;
int y=3;
swap(x,y);
}运行之后X的值为什么仍为2呢?

解决方案 »

  1.   

    这个问题问了很多遍了,LZ知道什么叫值传递吗?
    LZ知道什么是变量吗?知道变量有自己的内存空间吗?
    LZ觉得main方法的x,y和swap方法的a,b是相同的变量吗?
    main方法的x,y和swap方法的a,b是不同的变量,它们有自己的内存空间,方法调用,只是把x,y的内存的值复制给swap方法的a,b,所以改变swap方法的a,b只是改变swap方法的a,b的内存的信息,并不影响x,y的内存信息.这样解释,LZ能明白吗?