下面給大家介紹一個三目運算符,即?:
首先介紹一個概念,所謂的“目”是指這個運算符參與運算的對象個數(shù)。
比如前面我們介紹了+、-、*、\等等運算符,這些需要兩個數(shù)或者變量運算,所以就屬于雙目運算符;而++和--一個對象就可以組合,這種就是單目運算符,很好理解,那么今天所提到的三目,當(dāng)然就是有三個對象參與運算了!這可是C語言當(dāng)中唯一一個三目運算符,它就是選擇運算符。
它的一般形式是通過?和:兩個符號組合而成的,一般形式如下:
表達(dá)式1?表達(dá)式2:表達(dá)式3
這什么意思呢?首先計算表達(dá)式1的值,看看是真還是假,也就是成立還是不成立,如果表達(dá)式1成立,那么這個三目運算符整體的值就是表達(dá)式2的值,否則(也就是表達(dá)式1不成立),這個三目運算符整體的值就是表達(dá)式3的值。怎么樣,看明白了嗎?
下面舉個例子說明一下:
2>1?10:20
這個表達(dá)式整體的值是幾呢?答案應(yīng)該是10,因為2>1成立,因此它的值就是表達(dá)式2的值,也就是10。
再比如:
int a=3,b=5; int c=10; c?:(a+b):(a-b)
這個表達(dá)式的值呢?大家先算算,應(yīng)該是8,為什么呢?因為表達(dá)式1也就是c的值(10)為真,所以就是表達(dá)式2的值也就是a+b就是8。這下大家明白了吧!
這就是三目運算符的用法,大家可以理解一下!
其實本質(zhì)上是一種選擇結(jié)構(gòu),根據(jù)表達(dá)式1的成立與否,決定是表達(dá)式2還是表達(dá)式3,大家理解一下然后上機實驗一下!
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程