3 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
逗號(hào)表達(dá)式從左往右依次計(jì)算,其結(jié)果是最右邊的表達(dá)式的值。逗號(hào)表達(dá)式具有最低優(yōu)先級(jí)。
這個(gè)問題重點(diǎn)在括號(hào)里面的計(jì)算過程:
首先計(jì)算c += c++;
c++的值是5,c的值是6,接著c += 5, 所以c的值是11。整個(gè)表達(dá)式的值是c,即11
然后計(jì)算c + 8, 結(jié)果是19,表達(dá)式的值是19
最后計(jì)算++c,c的值由11變成12,整個(gè)表達(dá)式的值是c, 即12
所以a = 2 + (11, 19, 12)
a = 2 + 12 ,a的值是14

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
int c=6;
int a;
a = 3 + ( c+=c++;c+8;++c);
計(jì)算是從左到右的。先括號(hào)。同時(shí),c++是先執(zhí)行操作,后+1. ++c是先加1,再執(zhí)行操作。
如果是這樣的。則
c+=c++;等價(jià)于c= c + c++;c= 6 +6+1; 這時(shí)候c=13
c+8這個(gè)無意義。沒賦值。
++c,這時(shí)候c=14
a=3+14=17

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
a=17 按計(jì)算順序如下:
c+=c++ // c=6+6=12 然后 自加1 等于13
c+8 // 因?yàn)槭?a >逗號(hào)表達(dá)式 對(duì)c的值沒有影響,不用考慮
++c //13+1=14
a = 3+14=17
- 3 回答
- 0 關(guān)注
- 1170 瀏覽
添加回答
舉報(bào)