下面程序运行之后,变量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呢?
------解决方案--------------------
这个问题问了很多遍了,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能明白吗?
------解决方案--------------------