public class Test { public static void main(String[] args) {
int [] arry = {9,5,40,6,2,3};
bubble(arry); //为什么不这么写arry = bubble(arry);
for (int i = 0; i < arry.length; i++) {
System.out.println(arry[i]);
}
} private static int[] bubble(int[] arry) {
for(int i =arry.length; i>1; i--) {
for(int j=0; j<i-1; j++) {
if (arry[j] > arry[j+1]) {
int temp = arry[j];
arry[j] = arry[j+1];
arry[j+1] = temp;
}
}
}
return arry;
}}----------------
不理解为什么arry = bubble(arry)和bubble(arry)的效果一样
你的arry传进去后改变的就是arry所指向的变量,所以就不用赋值了。
如果bubble(arry)直接就可以更改值,因为通过bubble将arry指向的数组值改变了
如果arry=bubble(arry)将更改返回值赋值了一次,效果一样
传递的是引用
bubble(arry)虽然不能获得返回值,但是已经改变了数组首地址的引用,故效果一样