例子:z=(a==b?a:b?c:d);我知道這個(gè)例子,從右向左結(jié)合的話(huà),會(huì)是:z=(a==b?a:(b?c:d));從左向右結(jié)合的話(huà),會(huì)是:z=((a==b?a:b)?c:d);另一個(gè)例子:a=b=c等價(jià)于a=(b=c)那我是不是可以理解成這個(gè)結(jié)合性相當(dāng)于給先結(jié)合的東西加上括號(hào),也就是優(yōu)先級(jí)變高了。放到第一個(gè)例子里就是先計(jì)算b?c:d但是我用過(guò)下面這個(gè)例子測(cè)試intc=0;inttest=c==0?printf("1\n"):(c=2)?(c=3):printf("4\n");printf("%d",c);結(jié)果輸出1,我知道按照規(guī)范不能再條件表達(dá)式中有賦值語(yǔ)句,但這只是為了測(cè)試執(zhí)行順序,結(jié)果說(shuō)明它是先從最左邊的1開(kāi)始運(yùn)算的。真誠(chéng)求助!
有沒(méi)有童鞋遇到過(guò)同樣的問(wèn)題:C語(yǔ)言的條件表達(dá)式從右向左結(jié)合怎么理解謝謝哈~
犯罪嫌疑人X
2019-11-03 09:35:52