当前位置: 首页 > 知识库问答 >
问题:

当我们将数组作为参数传递给其他函数时,数组的值是如何变化的?[副本]

汪耀
2023-03-14

当我将一个数组作为参数传递给函数时,原始数组会被更改,但数组不应该被更改,对吗?如果不对,请指正。

那么,相同的代码是如何以不同的方式影响数组和int的呢?

public  class Runy  {

public static void main(String [] args) 
{
    Runy p = new Runy();
    p.start();
}

void start() 
{
    long [] a1 = {3,4,5};
    long [] a2 = fix(a1);

    int x=10;
    int y= change(x);

    System.out.println(y);
    System.out.println(x);

    System.out.print(a1[0] + a1[1] + a1[2] + " ");
    System.out.println(a2[0] + a2[1] + a2[2]);

}

long [] fix(long [] a3) 
{
    a3[1] = 7;
    return a3;
}
int change(int a)
{
    a=a+1;
    return a;
}

}

共有1个答案

文志学
2023-03-14

你错了。您传递的不是数组--它是对数组的引用。在Java中数组是引用类型,因此a1的值(例如)不是数组对象--它是对数组对象的引用。

将该引用传递到fix时,参数(a3)的值与a1...该值引用了同一个数组,因此在方法返回后,对该数组的修改是可见的。此时,A1A2将是相等的引用--它们都引用同一个数组。

 类似资料:
  • 问题内容: 我需要在Web服务调用中将一些值从移动设备传递到服务器,因此我打算将JSON格式的所有值传递如下 以下是我的服务电话 我正在尝试通过这种方式致电上述服务 但是输出是这样的 谁能告诉我为什么我没有获得所有的价值观? 问题答案: 我建议将JSON数据作为请求传递给主体。但是,如果您仍然希望将其作为URL中的参数传递,则必须像下面这样对URL进行编码,例如: 对于前json是:-> 有关UR

  • 在Swift编程语言中,它说: 函数也可以接受可变数目的参数,将它们收集到数组中。 当我用逗号分隔的数字列表(`sumof(1,2,3,4)调用这样一个函数时,它们在函数中作为一个数组可用。 问题:如果我已经有一个数组要传递给这个函数,该怎么办? 这将失败,并出现编译器错误,“无法找到接受所提供参数的'__conversion'的重载”。有没有办法把一个现有的数组变成一个我可以传递给一个变量函数的

  • 问题内容: 我想将字符串数组作为参数传递给函数。请看下面的代码 代替: 但是如果我这样做,我会收到一条错误消息,指出将其转换为。我想知道是否可以传递这样的值,或者正确的方法是什么? 问题答案: 怎么样:

  • 问题内容: 该文档讨论了使用numba的作为的参数。我需要带有附加参数的相同内容。 我基本上是想做这样的事情: 但是,它不起作用,因为应该是/并且不能将它们转换为。我收到以下错误消息: 我没有找到有关如何从Numba中提取值的任何信息。在C语言中,应该类似于—在Numba中可以做同样的事情吗? 问题答案: 1.通过传递额外的参数 该文件说: 如果用户希望改善集成性能,则可以使用以下签名之一: 该是

  • 问题内容: 我已经熟悉Android框架和Java,并希望创建一个通用的“ NetworkHelper”类,该类可以处理大多数联网代码,使我能够从中调用网页。 我遵循了来自developer.android.com的这篇文章来创建我的网络类:http : //developer.android.com/training/basics/network- ops/connecting.html 码: