C 語言條件運算符詳細(xì)講解
如果希望獲得兩個數(shù)中最大的一個,可以使用 if 語句,例如:
if(a>b){
max = a;
}else{
max = b;
}
不過,C語言提供了一種更加簡單的方法,叫做條件運算符,語法格式為:
表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3
條件運算符是C語言中唯一的一個三目運算符,其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2 的值作為整個條件表達(dá)式的值,否則以表達(dá)式3的值作為整個條件表達(dá)式的值。條件表達(dá)式通常用于賦值語句之中。
上面的 if else 語句等價于:
max = (a>b) ? a : b;
該語句的語義是:如a>b為真,則把a賦予max,否則把b 賦予max。讀者可以認(rèn)為條件運算符是一種簡寫的 if else,完全可以用 if else 來替換。
使用條件表達(dá)式時,還應(yīng)注意以下幾點:
1) 條件運算符的優(yōu)先級低于關(guān)系運算符和算術(shù)運算符,但高于賦值符。因此
max=(a>b) ? a : b;
可以去掉括號而寫為
max=a>b ? a : b;
2) 條件運算符?和:是一對運算符,不能分開單獨使用。
3) 條件運算符的結(jié)合方向是自右至左。例如:
a>b ? a : c>d ? c : d;
應(yīng)理解為:
a>b ? a : ( c>d ? c : d );
這也就是條件表達(dá)式嵌套的情形,即其中的表達(dá)式又是一個條件表達(dá)式。
用條件表達(dá)式重新編程,輸出兩個數(shù)中的最大值:
#include <stdio.h>
int main(){
int a, b;
printf("Input two numbers:");
scanf("%d %d", &a, &b);
printf("max=%d\n", a>b?a:b);
return 0;
}
運行結(jié)果:
Input two numbers:23 45
max=45
以上就是對C語言的條件運算符知識的講解,有需要的朋友可以參考下。
相關(guān)文章
C++實現(xiàn)產(chǎn)生隨機數(shù)和相應(yīng)的猜拳小游戲?qū)嵗a
C++中沒有自帶的random函數(shù),要實現(xiàn)隨機數(shù)的生成就需要使用rand()和srand()。下面這篇文章主要給大家介紹了關(guān)于C++實現(xiàn)產(chǎn)生隨機數(shù)和相應(yīng)的猜拳小游戲的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09
C/C++讀寫JSON數(shù)據(jù)的詳細(xì)過程記錄
JSON文件無論是在web開發(fā)、客戶端開發(fā)、服務(wù)端等開發(fā)中都是應(yīng)用比較廣泛的的第一種輕量級數(shù)據(jù)交換格式,非常方便閱讀和編寫,下面這篇文章主要給大家介紹了關(guān)于C/C++讀寫JSON數(shù)據(jù)的詳細(xì)過程,需要的朋友可以參考下2023-04-04
C語言素數(shù)(質(zhì)數(shù))判斷的3種方法舉例
這篇文章主要給大家介紹了關(guān)于C語言素數(shù)(質(zhì)數(shù))判斷的3種方法,質(zhì)數(shù)是只能被1或者自身整除的自然數(shù)(不包括1),稱為質(zhì)數(shù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
c++利用stl set_difference對車輛進出區(qū)域進行判定
這篇文章主要介紹了set_difference,用于求兩個集合的差集,結(jié)果集合中包含所有屬于第一個集合但不屬于第二個集合的元素,需要的朋友可以參考下2017-03-03

