一道简单而又让人迷惑的面试题

hello132 2005-12-15 09:22:22
class Check4
{
public static void main(String args[])
{
int x=0;
x=x++;
System.out.println(x);
int y=x;
System.out.println(y);
}
}
返回的是 0 0
为什么不是 0 1
...全文
1718 101 打赏 收藏 转发到动态 举报
写回复
用AI写文章
101 条回复
切换为时间正序
请发表友善的回复…
发表回复
comstep 2006-05-09
  • 打赏
  • 举报
回复
相当于:

int x=0,z=0;
z=x++;
x=z;
xiachedan 2006-05-09
  • 打赏
  • 举报
回复
疯了
cloudfly0424 2006-05-06
  • 打赏
  • 举报
回复
看过此帖真的收获不少
king24 2006-05-06
  • 打赏
  • 举报
回复
写这样的程序等着走人,楼主不要太在意这个.如果是考试那一分不要也罢
hwh_chizai 2006-05-06
  • 打赏
  • 举报
回复
日你妈的,本来我用的好好的++,你他妈来搅和什么
schol 2006-05-06
  • 打赏
  • 举报
回复
第一种情况
int x=0;
int y=x++;
x++是先赋值后运算的吧
y=0
x=1

--------------------------------
第二种情况
如果是
int x=0;
int y=++x;
++x是先运算后赋值的吧
y=1
x=1
----------------------------------
如果是
int x=0
x=x++
就相当于y=x++(第一种情况)
--------------------------------------
如果是
int x=0
x=++x
就相当于y=++x(第二种情况)

头都大了,这样理解好了。
schol 2006-05-06
  • 打赏
  • 举报
回复
e...头都被你们搞晕了。

什么破帖!!
alemjann 2006-02-21
  • 打赏
  • 举报
回复
有意思
xie2022228 2006-02-20
  • 打赏
  • 举报
回复
x=0;
x++;
hexiaofeng 2006-02-20
  • 打赏
  • 举报
回复
不错
weinickli 2006-02-18
  • 打赏
  • 举报
回复
N年的帖子没结
qiubiyu 2006-02-18
  • 打赏
  • 举报
回复
今天收获不小!
哈哈。。。
hcom 2006-02-18
  • 打赏
  • 举报
回复
up
ogmios 2006-02-18
  • 打赏
  • 举报
回复
路过,学习,理解!!!
熊孩子开学喽 2006-02-18
  • 打赏
  • 举报
回复
不好意思,我泼冷水了,大家的板砖向我拍过来吧,头破血流还是这么说的说。
熊孩子开学喽 2006-02-18
  • 打赏
  • 举报
回复
这种问题很有书匠气,运行一下不就知道结果了么。把精力花在这种地方不值得。
把力气花在做具体项目上不是更好么。
sophitia212 2006-02-18
  • 打赏
  • 举报
回复
c# 的运行结果和JAVA的一样,看来 微软也继承了JAVA的这个“优越性”。

:~)
WiseDragon 2006-02-18
  • 打赏
  • 举报
回复
关注
pxboy 2006-02-15
  • 打赏
  • 举报
回复
用寄存器来理解,x++是一个表达式,放到一个寄存器里,x是一个变量,放在另一个寄存器里
x=x++的结果可想而知是多少,只是有自增操作是在赋值前还是赋值后这样的变化啦,这就是java与c的不同,C是基于编译器的,前面有人谈到了
weilong122 2006-02-15
  • 打赏
  • 举报
回复
hello132(hell123)的解释最合理
加载更多回复(80)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧