代码如下:public class ArrayParameters
{ public static void changeOrNot(int i, double x[])
{ i = -1;
x[0] = -2.0;
double y[] = x;
y[1] = -3.0;
double z[] = {-4,-4,-4};
x = z; //这里为什么是不可见操作?已经知道X的值是从A中拷贝而来的,但为什么A没变化
}
public static void main(String args[])
{ int k = 1;
double A[] = {1.0, 2.0, 3.0};
changeOrNot(k, A);
System.out.println("k: " + k);
System.out.println("A[0]: " + A[0]);
System.out.println("A[1]: " + A[1]);
System.out.println("A[2]: " + A[2]);
}
}结果
k: 1
A[0]: -2.0
A[1]: -3.0
A[2]: 3.0 //
{ public static void changeOrNot(int i, double x[])
{ i = -1;
x[0] = -2.0;
double y[] = x;
y[1] = -3.0;
double z[] = {-4,-4,-4};
x = z; //这里为什么是不可见操作?已经知道X的值是从A中拷贝而来的,但为什么A没变化
}
public static void main(String args[])
{ int k = 1;
double A[] = {1.0, 2.0, 3.0};
changeOrNot(k, A);
System.out.println("k: " + k);
System.out.println("A[0]: " + A[0]);
System.out.println("A[1]: " + A[1]);
System.out.println("A[2]: " + A[2]);
}
}结果
k: 1
A[0]: -2.0
A[1]: -3.0
A[2]: 3.0 //
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货