2 回答

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊
不要將評(píng)估順序與優(yōu)先順序混淆。
評(píng)估順序指出操作數(shù)始終從左到右執(zhí)行。
優(yōu)先級(jí)指出*和/ 運(yùn)算符在+和之前應(yīng)用-,除非被括號(hào)覆蓋。
所以,你說得對(duì),a++/b+--a*b++手段(a++ / b) + (--a * b++)。這是優(yōu)先事項(xiàng)。
由于數(shù)字運(yùn)算符將值提升為int(在這種情況下),所以您也說對(duì)了,這char a = 'D'是對(duì)的int a = 68。
所以:
(a++ / b) + (--a * b++) a = 68 b = 5
(68 / b) + (--a * b++) a = 69 b = 5
(68 / 5) + (--a * b++) a = 69 b = 5
(68 / 5) + (68 * b++) a = 68 b = 5
(68 / 5) + (68 * 5 ) a = 68 b = 6
13 + 340 a = 68 b = 6
353 a = 68 b = 6
如您所見,b++確實(shí)有一個(gè)作用:執(zhí)行表達(dá)式b 后的值。

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
步驟4:(68/6 + 68 * 5)這是您的錯(cuò)!b在計(jì)算中的所有位置均為5,而不是其值6。
所以我們有:
步驟4:(68/5 + 68 * 5)=(13 + 340)= 353
添加回答
舉報(bào)