public class Qcb90 {
int a;
int b;
public void f(){
a=0;
b=0;
int[] c={0};
g(b,c);
System.out.println(a+" "+b+" "+c[0]+" ");
}
public void g(int b,int[] c){
a=1;
b=1;
c[0]=1;
}
public static void main(String args[]){
Qcb90 obj=new Qcb90();
obj.f();
}
}
g函数中,a是成员变量,b是参数变量,c是数组。
参数变量不能修改外部变量值,你这是值传递
运算结果就是101,因为b传的是局部变量。在g方法内部的b并不是成员变量b,而是g方法的局部变量,值不会传给成员变量b。所以打印结果是101;
g(b,c)中a是类的一个属性,修改为1,
由于b是形参,b的值不变为0,
数组的地址传过去所以c[0]修改为1,输出 1 0 1
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632