函数中修改形参的值对实参是没有影响的如下:
1.如果是其他类型,比如int,enum(c++),不会被改变
2.struct类型也不会被修改
只是复制内容到形参中,如需改变则需要引用
1.如果是数组当成参数传过去,里面的值会被修改
2.自定义bean,也当成实参传过去。
package test.util.mail;
public class TestArgs {
public static void main(String[] args) {
int b=2;
int a[]={1,2,3};
TestArgs test=new TestArgs();
System.out.println("没有运行之前b="+b);
test.test(b);
System.out.println("运行之后b="+b);
System.out.println("没有运行之前a[0]="+a[0]);
test.test2(a);
System.out.println("运行之后 a[0]="+a[0]);
Student stu=new Student();
stu.setName("刘备");
System.out.println("修改名称之前:"+stu.getName());
test.test2(stu);
System.out.println("修改名称之后:"+stu.getName());
}
void test (int b){
b=b+2;
}
void test2(int a[]){
a[0]=10;
a[1]=10;
}
void test2(Student stu){
stu.setName("关羽");
}
}
运行结果:
没有运行之前b=2
运行之后b=2
没有运行之前a[0]=1
运行之后 a[0]=10
修改名称之前:刘备
修改名称之后:关羽