黑马程序员技术交流社区
标题:
这个程序中的被调函数中参数的值是怎么传回主函数的?
[打印本页]
作者:
梦想起航
时间:
2015-7-7 22:11
标题:
这个程序中的被调函数中参数的值是怎么传回主函数的?
public class bubbleSort {
public static void bubble(int [] arr){ //<--这个被调用的函数中的数组值是怎么传到主函数中去的?
for(int x=0;x<arr.length-1;x++){ //不是说void类型的函数没有返回值吗?
for(int y=0;y<arr.length-x-1;y++){
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
public static void printArray(int [] array){
System.out.print("[");
for(int x=0;x<array.length;x++){
if(array[x]!=array[array.length-1])
System.out.print(array[x]+",");
else
System.out.println(array[x]+"]");
}
}
public static void main(String args[]){
int [] arr={4,7,5,9,4,2,1};
printArray(arr);
bubble(arr);
printArray(arr);
}
}
作者:
palysh
时间:
2015-7-7 23:11
你这里面跟返回值没有任何关系,是关于调用函数时 传值和传址的问题。
显然你的public static void bubble(int [] arr) 函数的参数是一个int型的数组(相当于指针),在调用该函数时需要传递一个int型数组的地址,意思就是让arr指向一个int型数组,而函数内部对arr指向的数组改变其中的值时,那么这个数组中的值就确确实实的改变了
作者:
梦想起航
时间:
2015-7-8 17:56
palysh 发表于 2015-7-7 23:11
你这里面跟返回值没有任何关系,是关于调用函数时 传值和传址的问题。
显然你的public static void bubble( ...
似乎明白了,感谢大神
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2