毫无疑问,函数传值和传引用的区别是:传值是传一份数据拷贝,而传引用的话,是可以操纵对象。
但是,一般人容易忽略的是:传引用其实也是传一份引用的副本。
实例如下:
class Number
{
public int num;
}
public class Test
{
public static void main(string[] str)
{
Number a=new Number();
a.num=1;
Number b=new Number();
b.num=2;
swap(a,b);
system.out.println(a.num+" "+b.num);
}
public static void swap(Number a,Number b)
{
Number temp;
temp=b;
b=a;
a=temp;
}
}
输出结果为:1 2
原理:在swap函数中,a 和b只是传了一份引用的副本,并不对实际的a和b造成影响
时间: 2024-10-14 11:40:26