……?……:……
式A?B:C值為:若A為真,則B;若A為假,則C。
但有一點是值得注意的,那就是問號表達式的結合性,問號表達式是從右往左的運算方向
尤其是當問號表達式嵌套使用時得注意這個問題,例如
代碼:
inta=1,b=2,c=3,d=4;
printf("%d",a<b?a:c<d?c:d);
正確結果是:1
因為先執行的是c<d?c:d,會返回c,然后執行a<b?a:c
因此得到的結果就是1(可以在編譯器上實驗一下)
……?……:……
式A?B:C值為:若A為真,則B;若A為假,則C。
但有一點是值得注意的,那就是問號表達式的結合性,問號表達式是從右往左的運算方向
尤其是當問號表達式嵌套使用時得注意這個問題,例如
代碼:
inta=1,b=2,c=3,d=4;
printf("%d",a<b?a:c<d?c:d);
正確結果是:1
因為先執行的是c<d?c:d,會返回c,然后執行a<b?a:c
因此得到的結果就是1(可以在編譯器上實驗一下)