发布网友
共5个回答
热心网友
输出 a=1 b=2 ;
这类运算 a b 的值始终不变,虽然你把值传过去了 相当于 复制了一次a b ,交换的只是复制的那一份a b 真实的 a b仍在main方法里面 始终不变
(可以用克隆来解释,虽然是一样的 即便你把自己的克隆体消灭了 但是你的本体还是自己 不受克隆体的任何影响)
热心网友
每个方法都有一个方法栈,栈中有局部变量表,其中保存了方法中的局部变量和形参变量,这些变量随方法退出而消亡。而且方法形参是实参的副本(x和y是a和b复制出来的)。所以x,y和a,b其实已经没有关系了
热心网友
接过就是 1,2
热心网友
热心网友
a,b是值类型,不是引用行,你传入方法的是值,你写的交换是没有用的,直接
int temp = a;
a=b;
b = temp;