Topic: 还是传递的问题 |
Print this page |
1.还是传递的问题 | Copy to clipboard |
Posted by: luis_liu Posted on: 2005-01-23 23:32 class ArrayArgument { public static void main(String args[]) { int x[]={11,12,13,14,15}; display; change; display; } public static void change(int x[]) { x[0]=22; x[1]=22; //3 change后改变X的值 //x=new int[]{21,22,23,24,25}; //2 change后未改变 /* int y[]={21,22,23,24,25}; //1 change后未改变 x=y; */ } public static void display(int x[]) { for (int i=0;i<x.length ;i++ ) { System.out.print(x[i]+""); } System.out.println(""); } } 我想知道为什么会改变原数组中的数据 请赐教 ArrayArgument.java (0.54k) |
2.Re:还是传递的问题 [Re: luis_liu] | Copy to clipboard |
Posted by: luis_liu Posted on: 2005-03-17 16:14 为什么啊 |
3.Re:还是传递的问题 [Re: luis_liu] | Copy to clipboard |
Posted by: xinye0123 Posted on: 2005-03-17 22:51 1,3情况是传递的是引用(指针),自然会改变,第2中情况,x被重新分配了,相当于重新定义了x,但是这个变量是作用域只在change里有效,到外面就无效了,因此不能改变原来的x,不知道你明白了没有,这确实很容易混淆 |
4.Re:还是传递的问题 [Re: luis_liu] | Copy to clipboard |
Posted by: xinye0123 Posted on: 2005-03-17 22:55 再补充一下,每个函数内部new出来的变量它的作用域只在函数体内部,除非它是static的 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |