C语言基础丨运算符之条件运算符(七)
條件運算符(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語言能起到一定的幫助作用。
?
?
總結
以上是生活随笔為你收集整理的C语言基础丨运算符之条件运算符(七)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java多线程视频转码_java 后台视
- 下一篇: Jetson Nano 安装deepSt