值传递是指将实参的值复制给形参,形参在函数内部进行操作,不会改变实参的值。这种传递方式适用于基本数据类型和字符串类型,因为它们在赋值时是直接赋值的,而不是通过引用来赋值。
t类型的变量:
```javatt b) {tp = a;
a = b;p;
我们在主函数中定义两个变量a和b,并调用swap函数进行交换:
```javat a = 1;t b = 2; tln("a=" + a + ",b=" +
输出结果为:
a=1,b=2
可以看到,a和b的值并没有发生改变,因为swap函数中的a和b只是形参,对实参没有影响。
引用传递是指将实参的地址传递给形参,在函数内部对形参进行操作会改变实参的值。这种传递方式适用于对象类型和数组类型,因为它们在赋值时是通过引用来赋值的。
t数组的值:
```javatt[] b) {tp = a;
a = b;p;
我们在主函数中定义两个数组a和b,并调用swap函数进行交换:
```javat[] a = {1,2};t[] b = {3,4}; tlngg(b));
输出结果为:
a=[1,2],b=[3,4]
可以看到,a和b的值并没有发生改变,因为swap函数中的a和b只是形参,对实参没有影响。
但如果我们将swap函数改为:
```javatt[] b) {tp = a;
a[0] = b[0];p[0];
```javat[] a = {1,4}; tlngg(b));
输出结果为:
a=[3,b=[1,4]
可以看到,a和b的第一个元素的值已经交换了,因为在函数内部对a和b进行了操作,改变了它们所指向的数组的值。
值传递适用于基本数据类型和字符串类型,而引用传递适用于对象类型和数组类型。在函数内部对形参进行操作会改变实参的值,需要注意。在使用引用传递时,要注意在函数内部不要改变形参所指向的对象或数组的地址,否则会影响到实参。