(Java语言) 函数参数使用int[][]类型,为什么改变形参的值,实参也会改变?

代码如下:实参定义:int[][]a=newint[9][9];//全部9x9=81个数我全部初始化为1,这里我就不写了函数定义:publicvoidCreate(int... 代码如下:

实参定义:
int[][] a = new int[9][9]; //全部9x9=81个数我全部初始化为1,这里我就不写了

函数定义:
public void Create(int[][] inputMatrix){
int[][] tmpMatrix = inputMatrix;

tmpMatrix[8][8] = 99;
}

当我调用Create(a);的时候
a[8][8]也改变成了99,这是为什么?有什么办法可以实现只改变形参的值而不改变实参的值么??
展开
 我来答
weixiao800
2014-05-17 · TA获得超过824个赞
知道小有建树答主
回答量:482
采纳率:0%
帮助的人:436万
展开全部
tmpMatrix 和 inputMatrix 实游蠢际指向的是一个堆里的判磨信对象a.
所以你要让tmpMatrix指向的掘轮对象和inputMatrix不同.
int[][] tmpMatrix = new int[9][9];
然后根据inputMatrix赋一样的值给tmpMatrix
追问
要写一个for循环,然后吧所有的值传递过去,这样是么?
追答
嗯 是的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式