C語言條件運算子和條件表示式

來源:酷知科普網 1.98W

如果在條件語句中,只執行單個的賦值語句時, 常可使用條件表示式來實現。不但使程式簡潔,也提高了執行效率

C語言條件運算子和條件表示式

if(a>b)max=a;

elsemax=b;

可用條件表示式寫為

max=(a>b)?a:b;

執行該語句的語義是:如a>b為真,則把a賦予max,否則把b 賦予max。使用條件表示式時,還應注意以下幾點:

條件運算子的運算優先順序低於關係運算符和算術運算子,但高於賦值符。因此

可以去掉括號而寫為

max=a>b?a:b;

max=(a>b)?a:b;

條件運算子?和:是一對運算子,不能分開單獨使用。

條件運算子的結合方向是自右至左。例如:

應理解為:

a>b?a:(c>d?c:d);

a>b?a:c>d?c:d;

這也就是條件表示式巢狀的情形,即其中的表示式3又是一個條件表示式。【例5-8】

#include

intmain(void){

inta,b,max;

printf("ninput two numbers: ");

scanf("%d%d",&a,&b);

printf("max=%d",a>b?a:b);

return0;

}

用條件表示式對上例重新程式設計,輸出兩個數中的大數。

熱門標籤