黑马程序员技术交流社区
标题:
值传递?跪求各位大神指点,谢谢!!!
[打印本页]
作者:
孙建志
时间:
2015-11-19 21:30
标题:
值传递?跪求各位大神指点,谢谢!!!
第一道题: static {
int x = 5;
}
static int x,y;
public static void main(String[] args) {
x--;
myMethod(); //不传入参数的时候
System.out.println(x); //结果是什么? 为啥
System.out.println(x + y++ + x); //结果是什么? 为啥
}
public static void myMethod() {
y = x++ + ++x;
}
}
第二道:
static {
int x = 5;
}
static int x,y;
public static void main(String[] args) {
x--;
myMethod(x); //传入参数的时候
System.out.println(x); 结果是什么? 为啥
System.out.println(x + y++ + x); 结果是什么? 为啥
}
public static void myMethod(int x) {
y = x++ + ++x;
}
}
作者:
你是对的
时间:
2015-11-19 21:39
不懂帮顶 同求问
作者:
小笨笨天
时间:
2015-11-19 22:18
第一题 输出 x=1, y=0 static 中的 int x=5 属于局部变量 不用管; 还有记住 ++x 是x先自加在去做运算,x++相反;重点是: y = x++ + ++x; 要从右往左看,先++x , 在 + x ,在赋值y;最后x++;这样就得出 x y的值了。main函数中的运算同理
作者:
小笨笨天
时间:
2015-11-19 22:25
第二题 x=-1,x + y++ + x=-2 跟第一题相比只是你的 myMethod() 中的 static x 变成 局部变量x;第一题中就属于址传递,第二题就属于值传递。所以方法结束后对main函数中的x=-1值不影响。
作者:
深寒丶
时间:
2015-11-19 22:42
不管什么程序,先看main方法,++x,是先做自加再参与运算,x++是先参与运算再自加
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2