條件運算子是C語言中類似於if語句的一種特殊運算子,它由符號?和:組成,其格式為運算式1?運算式2:運算式3,運算式1、運算式2和運算式3可以是任何類型的運算式。由條件運算子構成的運算式稱為條件運算式。條件運算子是C運算子中唯一一個三元運算子,要求3個運算元。
條件運算式的計算步驟是首先計算出運算式1的值,如果其值不為零(即結果為真),則計算運算式2的值並且將其值作為整個條件運算式的值,否則(結果為0,即為假)計算運算式3的值並將其值作為整個條件運算式的值。
條件運算子的優先順序高於賦值運算子,但是低於算術運算子、邏輯和關係運算子。
條件運算子使程式更加短小,但有時也使得代碼難於閱讀,需謹慎使用。
/************************************** * conditional_operator.c * * * * C語言中的條件運算子 * **************************************/#include <stdio.h>int Max(int i, int j){ return i > j ? i : j;}int main(){ int i = 1; int j = 2; int k = 0; printf("i = %d, j = %d, k = %d\n", i, j, k); k = i > j ? i : j; printf("i > j ? i : j的值為: %d\n", k); k = (i >= 0 ? i : 0) + j; printf("(i >= 0 ? i : 0) + j的值為: %d\n", k); k = i >= 0 ? i : 0 + j; printf("i >= 0 ? i : 0 + j的值為: %d\n", k); printf("i和j中的最大值 = %d\n", i > j ? i : j); printf("i和j中的最大值 = %d\n", Max(i,j)); return 0;}
參考文獻 K.N. King 著,呂秀峰 譯. C語言程式設計-現代方法. 人民郵電出版社