1. 程式人生 > >三目運算子(條件運算子)

三目運算子(條件運算子)

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