C語言條件運算符和條件表達式
- 互聯網
- 關注:1.89W次
如果在條件語句中,只執行單個的賦值語句時, 常可使用條件表達式來實現。不但使程序簡潔,也提高了運行效率。
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;
}
用條件表達式對上例重新編程,輸出兩個數中的大數。
- 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/sm/hulianwang/05zjj.html