`

数组之值传递与引用传递

 
阅读更多
内容参考自孙卫琴的<Java面向对象编程>
  • 分别为数组和基本类型整型创建change方法,用于交换一个数组和整型
  • package com.perficient.basic;
    
    public class Swaper {
    	//交换数组
    	public static void change(int[] array1, int[] array2){
    		System.out.println("Befor change:");
    		for(int i=0; i<array1.length; i++){
            	System.out.println("array1[" + i + "]" + array1[i]);
            }
    		
    		for (int i=0; i<array1.length; i++){
    			int temp = array2[i];
    			array2[i] = array1[i] ;
    			array1[i] = temp;
    		}
    		
    		System.out.println("After change:");
    		for(int i=0; i<array1.length; i++){
            	System.out.println("array1[" + i + "]" + array1[i]);
            }
    	}
    	//交换两个整数
    	public static void change(int a, int b){
    		int temp = a;
    		a = b;
    		b= temp;
    	}
    }
    

  • 在main()函数中做测试,交换两个整数以及数组
  • 	public static void main(String[] args) {
    		int[] arr1 = {1, 3, 5, 7, 9};
            int[] arr2 = {2, 4, 6, 8, 10};
            
            change(arr1[1], arr2[1]);
            System.out.println("arr1[1]:" + arr1[1]); //打印 arr1[1]:3
            System.out.println("arr1[2]:" + arr2[1]); //打印 arr2[1]:4
                   
            change(arr1, arr2);
            for(int i=0; i<arr1.length; i++){
            	System.out.println("arr1[" + i + "]" + arr1[i]);
            }
    


  • 总结
  • 1. change(int, int)采用值传递,参数值值在传递之后并不会改变
    2. change(int[], int[])采用引用传递,传递后数组值会发生改变
    分享到:
    评论
    1 楼 any13678 2012-08-09  
    风牛马不相及的事儿,都能扯一块儿,V5!

    相关推荐

      java【第4章:数组与方法】_数组的引用传递.

      总之,理解Java中的数组引用传递是掌握面向对象编程的关键步骤之一。通过深入学习和实践,开发者能更好地控制程序的行为,编写出更高质量的代码。在后续的学习中,还会涉及到多维数组、数组作为方法返回值以及数组与...

      值传递,指针传递,引用传递的区别,内含可运行代码和详细解释

      另一方面,值传递由于形参和实参内存地址不一样,有些功能并不能实现(swap()),因此,除了极为简单的函数会使用值传递外,大多数会采用引用传递。而对于指针传递,则在涉及数组的情况下使用较多,因为指针本身会给...

      数组总结(概念、定义、默认值、可变长参数、值传递与引用传递等)

      数组总结(概念、定义、默认值、可变长参数、值传递与引用传递等)。1.冒泡排序: ​ 两两相比(两个相邻的数进行比较) 条件成立 互换位置 ​ 外层循环控制比较的轮数 **轮数永远是 长度 -1 (n - 1)** ​ 内层循环...

      C#调用C++ Dll关于结构体数组引用的传递及解析使用的展示代码

      #### 结构体数组的传递与解析 对于结构体数组的传递,我们需要创建一个结构体数组并将其转换为`IntPtr`类型,然后传递给C++ DLL。解析返回的结果时,我们需要从`IntPtr`类型还原出结构体数组。 在C#中创建结构体...

      Java面向对象值传递和引用传递

      Java 面向对象值传递和引用传递 Java 面向对象编程中,参数传递是非常重要的一个概念。参数传递有两种方式:值传递和引用传递。了解这两种方式的区别是非常重要的,因为它们对程序的执行结果产生了很大的影响。 值...

      javascript数组与php数组的地址传递及值传递用法实例

      2. 引用传递:与值传递不同,引用传递是将变量的内存地址传递给函数。这意味着函数可以访问并修改原始变量的值,而不是一个副本。在PHP中,数组和对象是通过引用传递的。而在JavaScript中,所有类型的变量都是通过...

      LabVIEW中引用的概念及在VI间传递值

      相比之下,按引用传递能避免这种问题,因为只有引用本身被传递,而不是实际数据。这在大型数据结构或复杂对象之间传递时特别有效。 下面是如何在VI间通过引用传递值的步骤: 1. 创建引用:首先,在VI中创建一个...

      2.1.1 C++和C#数据传递 -常用类型数组和List类型传递

      总的来说,C++和C#在数据传递上都支持值传递和引用传递,但C++需要明确选择引用或指针来实现引用传递,而C#总是进行引用传递。数组和列表在两者的处理方式上有共同之处,但C++的`std::vector`更强调内存管理和性能...

      用C#编程语言实现数据结构传递整形变量、字符串、数组的方法

      总结,C#编程中传递整型变量、字符串和数组涉及值传递和引用传递的概念,理解这些基础知识对于编写高效、灵活的代码至关重要。实际编程中,应根据需求选择合适的数据结构和传递方式,同时注意性能和代码的可读性。

      c++按引用传递

      C++按引用传递是C++编程语言中的一种参数传递方式,顾名思义,它是将参数传递给函数时,以引用的形式传递,而不是以值的形式传递。这种传递方式可以使函数对外部变量进行修改,实现了函数之间的参数传递。 什么是...

      C#笔记值传递和引用传递

      在C#编程语言中,了解值传递和引用传递的概念至关重要,因为这直接影响到函数或方法如何处理参数。本文主要探讨这两个概念以及与之相关的知识点。 首先,值传递是指当一个方法或函数调用时,实际参数(即调用时提供...

      Delphi值传递和引用传递实例

      记录类型类似于结构体,当记录类型的参数传递时,默认为按值传递,但如果记录包含可变字段(如指针或动态数组),那么传递行为实际上是按引用传递,这需要开发者额外注意。 在实际开发中,合理选择参数传递方式对于...

      PHP数组传递是值传递而非引用传递概念纠正

      但实际上,在PHP中,数组传递的行为是值传递,而不是引用传递。这一点在设计和调试PHP程序时非常重要。 为了更深入地理解这一点,我们首先需要区分“值传递”和“引用传递”这两个概念。值传递是指在函数调用时,...

      二维数组作为函数形参的两种方法

      ### 方法二:通过引用传递二维数组 尽管通过指针可以实现二维数组的传递,但这种方法可能会导致类型不匹配的问题。使用引用可以避免这些问题,同时保持与原始数组的绑定。下面是使用引用的例子: ```cpp // 定义...

      Java数组传递及可变参数操作实例详解

      Java 数组传递是指在方法之间传递数组对象的引用,而不是传递数组对象本身。这意味着,方法中对数组的修改将会影响原数组。在 Java 中,所有对象都是通过引用进行操作的,而数组也是一种对象。当把数组作为参数传递...

      C#将字符串数组传递给C++ DLL.rar

      C#中的字符串是引用类型,由.NET框架管理,而C++中的字符串可以是字符数组(char*)或宽字符数组(wchar_t*)。因此,传递字符串数组时,需要进行适当的类型转换。 1. **定义C++ DLL接口**: 在C++ DLL中,我们...

      C语言地址传递与值传递

      C语言中的函数调用机制包括值传递(value passing)和地址传递(address passing),通常被称为按值传递和按引用传递。C语言默认使用的是值传递机制,但是可以通过传递指针来实现类似地址传递的效果。下面将详细介绍这两...

      C#调用C++的dll实例,回调函数,string和int数组参数传递

      本实例将详细介绍如何在C#中调用C++的DLL,并处理回调函数、字符串和整型数组参数的传递。 首先,C++的DLL需要定义导出函数,以便C#能够访问。这些函数通常使用`extern "C"`来避免C++的名称修饰,以确保C#能正确...

      数组的引用传递

      NULL 博文链接:https://chaoyi.iteye.com/blog/2077056

    Global site tag (gtag.js) - Google Analytics