您的位置:首页 > 编程语言 > Java开发

java题

2015-09-28 00:00 183 查看
摘要: 一道java题,自增、自赋值

此问题和回答均来源于技术问答,觉得很受教,记录下来,向两位表示感谢,就不@了。

题目:
int res=0;
for(int i=0;i<10;i++){
res+=res++;
}
res = ?

解析://这是代码上等价写法

res=res+(res++);

//这是内存上等价写法

int temp=res=0;//在内存temp中保存原始值,从此res++之前的res都是通过temp操作

res=res+1;//随即进行res++操作,这时是有赋值的,要不 i++那样的操作如何自增

res=temp+temp;//这时,使用原始值进行第一个+操作,++操作自增的1被覆盖。

//再看这个例子,这是代码写法

res=(res++)+res;

//这是内存上等价写法

int temp=res=0;//跟上面一样,但res++之后的res是++操作之后的值

res=res+1;//跟上面一样

res=temp+res;//结果为1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: