跨考上岸,发愁代码能力太差,之前为了应付机试,有一点c++基础,现在跟着B站up主学学java,为以后工作努力奋斗,希望能坚持下来。
//先看普通变量
public class Test03 {
public static void main(String[] args) {
int x = 100;
System.out.println("调用前x=" + x); //输出:调用前x=100
test(x);
System.out.println("调用后x=" + x); //输出:调用后x=100
}
//函数调用
public static void test(int num) { //这里形参用num,特意与实参x相区分,应该很好理解。
num=200;
}
}
//可以看到:传递普通变量时,形参的改变不影响实参的值。
//再看数组作参数的情况
public class Test03 {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7,8,9};
System.out.println("调用前arr[0]=" + arr[0]); //输出:调用前arr[0]=1
test(arr);
System.out.println("调用后arr[0]=" + arr[0]); //输出:调用后arr[0]=2
}
public static void test(int[] num) { //这里形参用num,特意与实参arr相区分。
num[0]=2;
}
}
//可以发现,arr[0]的值改变了,根本原因是,arr表示的是数组的首地址,所以传递的是地址,函数修改该地址对应的数据时,原数据自然也会发生改变;
//也就是说,对于数组作为参数进行传递时,要注意,在函数内对数组进行的修改,也会影响到原数组。