C語言?和:是三目運算符,也叫三元運算符。
語法:表達式1 ? 表達式2 : 表達式3;
函數:先執行表達式1,執行完畢,如果表達式1的結果為真,則執行表達式2,整個表達式的結果就是表達式2的結果,否則執行表達式3,結果是表達式3的結果。
例如:int res=1?10:20;
可以簡單理解為表達式1成立嗎?成立執行表達式2,否則執行表達式3。
擴展資料:
關於三目運算符的幾點說明:
1、通常,表達式1是用於描述條件表達式中的條件的關系表達式或邏輯表達式。表達式2和3可以是常量、變量或表達式。例如:
(x==y)?y':'n'(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)ch=(ch>='a'&&ch<='z')?(CH+32):CH
2、條件表達式的執行順序為:首先求解表達式1。如果值為非零,則條件為真,則求解表達式2,並將表達式2的值用作整個條件表達式的值;
如果表達式1的值為0,表示條件為假,則解方程3,表達式3的值是整個條件表達式的值。例如:
(a>=0)?a:-a執行的結果是a的絕對值。
3、在程序中,直接將條件表達式的值賦給變量。例如:
min=(a<b)的結果?a:b是將條件表達式的值賦給變量min,即a和b中的較小者賦給min。
百度百科----C語言運算符