调用swap()无法改变主函数中a的值,是因为swap()的a参数和主函数中a不是同一个变量,
在swap()中执行 a = b; 只是改变了swap()中的a变量指向数组的地址,
当调用完swap后,swap()中的a,b参数会被回收释放,主函数中a变量指向数组的地址并没有被改变。
只有在主函数中执行a = b; 改变的才是主函数中a变量指向数组的地址
另外
a = b 是把b的地址传递给a, b的地址没有改变, 是让a 和 b 都指向b数组原本的地址.
要交换a 和 b 指向的数组地址应该是
int[] c = a;
a = b;
b = c;
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!