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++17實現(xiàn)JSON庫設(shè)計思路示例全解
這篇文章主要為大家介紹了使用C++17實現(xiàn)JSON庫設(shè)計思路示例全解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08詳解C語言中動態(tài)內(nèi)存管理及柔性數(shù)組的使用
這篇文章主要為大家詳細(xì)介紹一下C語言中動態(tài)內(nèi)存管理以及柔性數(shù)組的使用方法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C語言有一定的幫助,需要的可以參考一下2022-07-07C語言 數(shù)組中重復(fù)的數(shù)字分析及方法
這篇文章主要介紹了C語言 數(shù)組中重復(fù)的數(shù)字分析及方法的相關(guān)資料,需要的朋友可以參考下2017-03-03C++內(nèi)存管理之簡易內(nèi)存池的實現(xiàn)
大家好,本篇文章主要講的是C++內(nèi)存管理之簡易內(nèi)存池的實現(xiàn),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2021-12-12VS?Code+msys2配置Windows系統(tǒng)下C/C++開發(fā)環(huán)境
我們在windows10中使用VS Code做C++程序開發(fā)過程中,需要安裝MSYS2和MinGW,下面這篇文章主要給大家介紹了關(guān)于VS?Code+msys2配置Windows系統(tǒng)下C/C++開發(fā)環(huán)境的相關(guān)資料,需要的朋友可以參考下2022-12-12