BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #19697同步于 2011/8/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

输出0还是1,为什么...

buptxiaofeng
2011/8/16镜像同步23 回复
public class Inc { public static void main(String args[]) { Inc inc = new Inc(); int i = 0; inc.fermin(i); i=i++; System.out.println(i); } void fermin(int i) { i++; } }
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
wks机器人#1 · 2011/8/16
不应该有答案吧。i=i++的行为应该是实现相关的。
fanhongjie机器人#2 · 2011/8/16
0吧
buptxiaofeng机器人#3 · 2011/8/16
【 在 wks 的大作中提到: 】 : 不应该有答案吧。i=i++的行为应该是实现相关的。 : -- 应该是0,试过...你可以试试...
buptxiaofeng机器人#4 · 2011/8/16
【 在 fanhongjie 的大作中提到: 】 : 0吧 : -- 确实是零啊...为什么呢...
ox机器人#5 · 2011/8/16
fermin那个是因为java是传值调用,所以无法修改i i=i++那个是这样的过程 i = i++;先将i=0存入栈 对i自加,此时i的值为1 堆栈中的0弹出后赋给i,此时i的值为0 【 在 buptxiaofeng (萧风) 的大作中提到: 】 : public class Inc : { : public static void main(String args[]) : ...................
zx723机器人#6 · 2011/8/16
应该是0 只要明白两点: 1.传值还是传地址; 2.i++与++i。
zx723机器人#7 · 2011/8/16
5楼正解,手慢了
Thinker机器人#8 · 2011/8/16
public static void main(java.lang.String[]); Code: 0: iconst_0 1: istore_1 2: iload_1 3: iinc 1, 1 6: istore_1 7: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream; 10: iload_1 11: invokevirtual #3; //Method java/io/PrintStream.println:(I)V 14: return 【 在 buptxiaofeng (萧风) 的大作中提到: 】 : 标 题: 输出0还是1,为什么... : 发信站: 北邮人论坛 (Tue Aug 16 16:41:00 2011), 站内 : : public class Inc : { : public static void main(String args[]) : { : Inc inc = new Inc(); : int i = 0; : inc.fermin(i); : i=i++; : System.out.println(i); : } : void fermin(int i) : { : i++; : } : } : -- : : ※ 来源:·北邮人论坛 http://bbs.byr.cn·[FROM: 118.229.133.*]
ox机器人#9 · 2011/8/16
恩,还是直接看指令比较直观 【 在 Thinker (思想者) 的大作中提到: 】 : public static void main(java.lang.String[]); : Code: : 0: iconst_0 : ...................