1、总所周知、C/C++在传参的时候,形参和实参是不同的,要想通过形参改变实参的值,需要用到取地址符&,也就是指针。要么就是使用返回值。
2、Java中的赋值和引用很强大啊。。。如果是基本数据类型,那么是赋值,如果是引用数据类型,那么是引用(也就是两个变量指向同一个地址,改变其中一个,那么相应的另外一个也相应变化)。所以说Java在传参的时候,不需要返回值,只要是引用数据类型即可实现在函数中修改变量的值,在主函数中变量的值也相应发生变化。
3、在Java中String属于特殊的引用数据类型,按基本数据类型处理。Vector属于引用数据类型。但是在C/C++中的String和Vector都属于基本数据类型。若想要通过传参改变Vector向量中间的值,C/C++只需要传入地址即可,Java直接传入即可。
package com;
import java.util.Vector;
public class hqh {
public static void fun(Vector v) {
v.add("1");
v.add("2");
}
public static void test() {
Vector<String> v=new Vector<>();
Vector<String> vv=new Vector<>();
vv.add("123");
vv.add("456");
v=vv;
System.out.println(v);
System.out.println(vv); //v和vv指向同一个地址
//引用,其实指向同一个地址。
vv.add("12456");
System.out.println(v);
System.out.println(vv); //相等
}
public static void main(String[] args) {
Vector<String> v=new Vector<>();
fun(v);
System.out.println(v); //v是修改后的值
test();
}
}
/*
[1, 2]
[123, 456]
[123, 456]
[123, 456, 12456]
[123, 456, 12456]
*/