为了解决这个题目,我们首先要了解参数传递的方法:
参数传递的方法一共有三种:
1、按值传递
2、按引用传递
3、按指针传递
其中按值传递表示方法(函数)接收的是调用者提供的变量的拷贝,不改变参数的值;按引用传递表示方法(函数)接收的调用者提供的变量地址;
按指针传递表示方法(函数)接收的是调用者提供的指针的拷贝,不改变指针的值和地址,但可以改变指针所指向的地址。
在C语言中可以通过传地址的方式改变变量中的值,也就是通过定义指针保存两个变量的地址,在Java中没有指针类型的变量,Java提供的参数传递方法,很遗憾只有一种,按值传递。也就是说,方法得到的是所有参数值的一个拷贝,方法不能修改传递给它的参数变量的内容。所以只能采用按值传递的方式。
(值传递根据形参的类型分为两种,详情请看这篇博客:)
Java参数值传递 swap(a,b)–如何交换a、b的值
package gyy;
public class Main{
public static void main(String[] args) {
int []a= {
22,33};
Swap(a);
for(int x:a) {
System.out.println("交换后的数字是:"+x);
}
}
public static void Swap(int []b) {
//引用数组即低配指针
for(int y:b) {
System.out.println("交换前的数字是:"+y);
}
for(int i=0;i<b.length-1;i++) {
int temp=b[i];
b[i]=b[i+1];
b[i+1]=temp;
}
}
}
运行结果:
交换前的数字是:22
交换前的数字是:33
交换后的数字是:33
交换后的数字是:22