此問題和回答均來源於技術問答,以爲很受教,記錄下來,向兩位表示感謝,就不@了。spa
題目:orm
int res=0;內存
for(int i=0;i<10;i++){it
res+=res++;技術
}問答
res = ?margin
解析:top
//這是代碼上等價寫法 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