代碼1:?int i = 3;?if(i++>3) ? ?//括號內(nèi)的結(jié)果為假,代碼2:?int i = 3;?if(++i>3) ? ? //括號內(nèi)的結(jié)果為真代碼3:?int i = 3;?if((i++)>3) ? ?//括號內(nèi)的結(jié)果為假為什么,我講一下我的疑問,我知道算數(shù)運算符比比較運算符優(yōu)先級更高,按道理無論i++>3或++i>3,不應該是i先自增,在進行判斷嗎?如代碼1與代碼2,結(jié)果++i>3正確(true),而i++>3錯誤(false)。而如果我將i++>3加個括號,如代碼3?if((i++)>3) 不是應該先執(zhí)行i的自增在判斷嗎,結(jié)果卻是錯誤(false),為什么,小白求解!?。?!
9 回答

慕粉3291149
TA貢獻71條經(jīng)驗 獲得超52個贊
i++的意思是先使用i,在進行加1操作, 這里 i++>3 ?,先進行判斷i=3,3>3明顯錯誤,再進行加一操作
也可以這樣理解 i ++>3 分解之后就相當于這兩條語句 i>3; i=i+1;
++i的意思是先讓i進行加一操作,此時i=4,然后再進行判斷4>3,明顯正確
這里相當于 i=i+1; i>3

qq_匡璐_0
TA貢獻96條經(jīng)驗 獲得超96個贊
如你所說 ?算數(shù)運算符比比較運算符優(yōu)先級高 ?但是算數(shù)運算符 + - * / 沒有++這個吧 ?i++ 和 ++i 這種寫法是比較特殊的+1簡寫 如果按你理解 i++ = i+1 ; ++i = 1+ i ; 那它寫左邊和右邊還有什么意義 ?它是特殊的 特殊看待就行
添加回答
舉報
0/150
提交
取消