【发布时间】:2017-05-03 03:58:56
【问题描述】:
代码如下。所以我预计输出是 {2 4 6 8 10},但是,当我测试它时,结果是 {1 2 3 4 5}。我现在很困惑,谁能告诉我为什么?谢谢!
public class practice{
public void doubler(int[] a)
{
int[] b = new int[a.length];
for(int i = 0; i< a.length; i++)
{
b[i] = 2*a[i];
}
a = b;
}
public static void main(String[] args)
{
int[]c = {1,2,3,4,5};
Practice w = new Practice();
w.doubler(c);
for(int count = 0; count<c.length; count++)
{
System.out.print(c[count] + " ");
}
}
}
【问题讨论】:
-
怎么让你做
int[] s = w.doubler(c);.....是我的问题 -
doubler中的a与main中的c是不同的变量。 -
你会感到惊讶,但它与Is Java "pass-by-reference" or "pass-by-value"?重复
-
@Lashane 谢谢,这很有帮助!
标签: java methods parameters