数组赋值在不同语言中的差异
不同的编程语言,基本语法一致,但由于各自的设计结构及使用范围不同而导致一些细微的语法差异。以下介绍一个数组在赋值的时候结果不同的例子。
PHP 语言中的情况:
<?php $a = array(1, 2, 3, 4); $b = $a; $b[1] = 1000; echo (">> a[1] = " . $a[1] . '<br>'); echo (">> b[1] = " . $b[1]); ?>
输出结果为:
>> a[1] = 2 >> b[1] = 1000
Java 语言中的情况:
public class Test { public static void main(String args[]) { int[] a = {1,2, 3, 4}; int[] b = a; b[1] = 1000; System.out.println(">> a[1] = " + a[1]); System.out.println(">> b[1] = " + b[1]); } }
输出结果为:
>> a[1] = 1000 >> b[1] = 1000
结论:在 PHP 语言中数组是传值,而在 Java 语言中数组是传址,即引用。
特别注意,基本类型(整型、字符串型 等)在这两种语言中在赋值的时候都是按照传值的方式来进行,对象之间都是按照传引用的方式进行,而数组却有差异,以上已经说明。