18 回答

TA貢獻(xiàn)143條經(jīng)驗(yàn) 獲得超39個(gè)贊
int a=12;int b=++a;不就等價(jià)于
int a=12;
a=a+1;? //13
int b = a; //13

TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超2個(gè)贊
int b=++a ?這是a先自加 再賦值給b
int b=a++ ?這是a先賦值給b ?再自加
區(qū)分好這兩種情況

TA貢獻(xiàn)41條經(jīng)驗(yàn) 獲得超38個(gè)贊
這個(gè)就要看你對(duì)++a的理解是否透徹
++a;是指先讓a自加1,然后將整體作為值賦給其他內(nèi)容做操作。
所以此時(shí) int b = ++a; ?實(shí)際上是執(zhí)行了 ? a = a + 1; b= a;?

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個(gè)贊
自加運(yùn)算符++的優(yōu)先級(jí)高于賦值運(yùn)算符=,因此先運(yùn)算 int a=12; ++a ,int a==12+1==13,接下來(lái),把a(bǔ)==13賦給b,結(jié)果輸出 13,13

TA貢獻(xiàn)237條經(jīng)驗(yàn) 獲得超0個(gè)贊

TA貢獻(xiàn)237條經(jīng)驗(yàn) 獲得超0個(gè)贊

TA貢獻(xiàn)237條經(jīng)驗(yàn) 獲得超0個(gè)贊

TA貢獻(xiàn)6條經(jīng)驗(yàn) 獲得超2個(gè)贊
++在前面是自身先加一然后再賦值; ++在后面是先賦值后自身加一
b=++a, 由于++在前面,a自身先加1,也就是a=13,然后再把值賦給b,所以都是13
b=a++ ? ==> b=12 ?a=13

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
++a和a++對(duì)于之后的System.out.println("a:"+a);效果一樣,都相當(dāng)于a=a+1;
區(qū)別是
int b = ++a;相當(dāng)于int b = a; a = a+1;
int b = a++;相當(dāng)于a = a + 1; b = a;
但是在System.out.println("a:"+a);的時(shí)候a都已經(jīng)+了1 所以a也等于13.

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個(gè)贊
a++和++a簡(jiǎn)單理解就是a和++哪個(gè)靠近=號(hào),哪個(gè)先運(yùn)算,int b=++a,就是先執(zhí)行++,就是說(shuō)a先加加,在賦值給b,
得到a得13,在把13賦值給b.
如果是int b=a++;就是先把a(bǔ)賦值給b,然后a在++就是說(shuō)b=12,a=13

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
你看 ++ 這個(gè)運(yùn)算符叫“自增運(yùn)算符”,所以它至少會(huì)使 a 的值增加 1 呀!

TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超1個(gè)贊
這個(gè)是我自己的理解,我也是剛學(xué)的Java,你這個(gè)原因可能是因?yàn)?+a是自增的,意思就是它自加后先把13賦值給了a所以把a(bǔ)=12給覆蓋了,你可試試a++這個(gè)是先自增后賦值,意思就是它是運(yùn)行完了你這個(gè)編碼后才是a=13的 ?你可編一個(gè)循環(huán)語(yǔ)句測(cè)試測(cè)試下。

TA貢獻(xiàn)163條經(jīng)驗(yàn) 獲得超40個(gè)贊
這很簡(jiǎn)單 ?++a
是先自己增加然后在執(zhí)行別的操作
a++
是先執(zhí)行別的操作然后在自加
添加回答
舉報(bào)