本帖最后由 猫腻 于 2013-3-14 22:28 编辑
在JAVA中,给函数传递一个引用型变量,使该函数处理该数据,实际上传递的是该变量在对内存中实体的内存地址值。使之到达操作该数据的目的。但是JAVA中没有指针又如何调用一个函数来操作非引用行变量呢?下面这个程序该如何写才能使连个整型数据的值交换呢?- class ArrTest
- {
- public static void main(String[] args)//主函数
- {
- int[] arr = {1,2}; //定义两个数组
- int x = 11;
- int y = 22;
- print("arr未交换前的元素顺序",arr); //打印未交换前数组中的元素
- print("x与y交换前的值是",x);
- print("y与x交换前的值是",y);
- swap_1(arr,0,1); //调用交换方法一,并打印交换后的结果
- print("arr调用交换方法一后的元素顺序",arr);
- swap_2(x,y); //调用交换方法二,并打印交换后的结果
- print("x与y交换后的值是",x);
- print("y与x交换后的值是",y);
- }
- //将两个数进行交换方法一
- public static void swap_1(int[] arr,int x,int y)
- {
- int temp = arr[x];
- arr[x] = arr[y];
- arr[y] = temp;
- }
- //将两个数进行交换方法二
- public static void swap_2(int x,int y)
- {
- int temp = x;
- x = y;
- y = temp;
- }
- //将数组输出
- public static void print(String s,int[] arr)
- {
- System.out.print(s+"arr = {");
- for (int i=0; i<arr.length; ++i)
- {
- if (i != arr.length-1)
- {
- System.out.print(arr[i]+" ");
- }
- if (i==arr.length-1)
- {
- System.out.print(arr[i]+"}"+"\n");
- }
- }
- }
- //将单个整数输出
- public static void print(String s,int x)
- {
- System.out.println(s+x);
- }
- }
- /*
- 执行结果
- ============================================
- <blockquote>arr未交换前的元素顺序arr = {1 2}
复制代码 ============================================
*/
|