三目運算子(條件運算子)
阿新 • • 發佈:2019-02-18
C Primer Plus(總結)
C提供條件表示式(conditionalexpression)作為表達if else語句的一種
便捷方式,該表示式使用?:條件運算子。該運算子分為兩部分,需要 3 個運
算物件。回憶一下,帶一個運算物件的運算子稱為一元運算子,帶兩個運算
物件的運算子稱為二元運算子。以此類推,帶 3 個運算物件的運算子稱為三
元運算子。條件運算子是C語言中唯一的三元運算子。下面的程式碼得到一個
數的絕對值:
x = (y < 0) ? -y : y;
在=和;之間的內容就是條件表示式,該語句的意思是“如果y小於0,那
麼x = -y;否則,x = y”。用if else
if (y < 0)
x = -y;
else
x = y;
條件表示式的通用形式如下:
expression1 ? expression2 : expression3
如果 expression1 為真(非 0),那麼整個條件表示式的值與 expression2
的值相同;如果expression1為假(0),那麼整個條件表示式的值與
expression3的值相同。
需要把兩個值中的一個賦給變數時,就可以用條件表示式。典型的例子
是,把兩個值中的最大值賦給變數:
max = (a > b) ? a : b;
如果a大於b,那麼將max設定為a;否則,設定為b。