條件運算子(conditional operator)有時候也稱為三元運算子(ternary operator,或者trinary operator),因為它是唯一需要 3 個運算元的運算子,條件運算式的一般形式為:
條件 ? 運算式1 : 運算式2
條件運算操作會首先計算條件,然后根據條件的計算結果,再決定要計算兩個運算式中的哪一個,條件運算式通常用于賦值陳述句之中,
其求值規則為:
如果條件運算式為真,整個運算式的值為運算式1的值;
如果條件運算式為假,整個運算式的值為運算式2的值,
條件運算子代表了在程式流中的條件式跳轉,因此,有時候可以與 if-else 陳述句相互替代,
比如:如果我們希望獲得兩個數中最大的一個,我們可以使用if陳述句:
if(a>b){ max = a; }else{ max = b; }
上面所描述的if else陳述句等價于:
max = (a>b)?a:b;
該陳述句的語意是:如a>b為真,則把a賦予max,否則把b賦予max,大家可以認為條件運算子是一種簡寫的if else,完全可以用if else來替換,
如果你正在學習C/C++遇到瓶頸,迷茫,困惑,那么不妨加入C語言C++學習企鵝圈,跟著前輩一起交流學習,還有一些(原始碼、專案實戰視頻、專案筆記,基礎入門教程)分享喲!即使是零基礎的學習者,都可以一起成長進步,
另外我們使用條件運算式時,還應注意以下幾點:
①條件運算子的優先級低于關系運算子和算術運算子,但高于賦值符,因此
max = (a>b)?a:b;
可以去掉括號而寫為
max=a>b?a:b;
②條件運算子?和:是一對運算子,不能分開單獨使用,
③條件運算子的結合方向是自右至左,比如:
a>b?a:c>d?c:d;
應理解為:
a>b?a:(c>d?c:d);
這也就是條件運算式嵌套的情形,即其中的運算式又是一個條件運算式,
用條件運算式重新編程,輸出兩個數中的最大值:
#include <stdio.h> int main(){ int a,b; printf("Inputtwonumbers:"); scanf("%d%d",&a,&b); printf("max=%d\\n",a>b?a:b); return 0; }
運行結果:
Input two numbers:23 45 max = 45
今天C語言中的條件運算子知識就分享到這里啦,希望對大家學習C語言能起到一定的幫助作用,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/254661.html
標籤:C
上一篇:【知識教程】C語言撰寫2048
下一篇:我對遞回的理解和總結
