- C語(yǔ)言的條件運(yùn)算符 推薦度:
- 相關(guān)推薦
C語(yǔ)言條件運(yùn)算符
C語(yǔ)言具有高效、靈活、功能豐富、表達(dá)力強(qiáng)和較高的可移植性等特點(diǎn),那么大家知道C語(yǔ)言條件運(yùn)算符是什么呢?下面是小編收集整理的C語(yǔ)言條件運(yùn)算符,希望大家喜歡。
如果希望獲得兩個(gè)數(shù)中最大的一個(gè),可以使用 if 語(yǔ)句,例如:
if(a>b){ max = a;}else{ max = b;}
不過(guò),C語(yǔ)言提供了一種更加簡(jiǎn)單的方法,叫做條件運(yùn)算符,語(yǔ)法格式為:
表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3
條件運(yùn)算符是C語(yǔ)言中唯一的一個(gè)三目運(yùn)算符,其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2 的值作為整個(gè)條件表達(dá)式的值,否則以表達(dá)式3的值作為整個(gè)條件表達(dá)式的值。條件表達(dá)式通常用于賦值語(yǔ)句之中。
上面的 if else 語(yǔ)句等價(jià)于:
max = (a>b) ? a : b;
該語(yǔ)句的語(yǔ)義是:如a>b為真,則把a(bǔ)賦予max,否則把b 賦予max。
讀者可以認(rèn)為條件運(yùn)算符是一種簡(jiǎn)寫(xiě)的 if else,完全可以用 if else 來(lái)替換。
使用條件表達(dá)式時(shí),還應(yīng)注意以下幾點(diǎn):
1) 條件運(yùn)算符的優(yōu)先級(jí)低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,但高于賦值符。因此
max=(a>b) ? a : b;
可以去掉括號(hào)而寫(xiě)為
max=a>b ? a : b;
2) 條件運(yùn)算符?和:是一對(duì)運(yùn)算符,不能分開(kāi)單獨(dú)使用。
3) 條件運(yùn)算符的結(jié)合方向是自右至左。例如:
a>b ? a : c>d ? c : d;
應(yīng)理解為:
a>b ? a : ( c>d ? c : d );
這也就是條件表達(dá)式嵌套的情形,即其中的表達(dá)式又是一個(gè)條件表達(dá)式。
用條件表達(dá)式重新編程,輸出兩個(gè)數(shù)中的最大值:
#includeint main(){ int a, b; printf("Input two numbers:"); scanf("%d %d", &a, &b); printf("max=%d ", a>b?a:b); return 0;}
運(yùn)行結(jié)果:
Input two numbers:23 45
max=45
拓展:C語(yǔ)言變量理解
一、變量的概念
程序設(shè)計(jì)就是讓計(jì)算機(jī)按照一定的指令來(lái)進(jìn)行工作,可以說(shuō)數(shù)據(jù)的處理是程序設(shè)計(jì)的主要任務(wù)。那么數(shù)據(jù)是怎么加入到計(jì)算機(jī)的內(nèi)存中呢?計(jì)算機(jī)最初的功能就是能夠存儲(chǔ)數(shù)據(jù)并處理數(shù)據(jù)的機(jī)器。那么數(shù)據(jù)是怎么加入到計(jì)算機(jī)的內(nèi)存中呢?在學(xué)習(xí)程序設(shè)計(jì)之前,很多學(xué)生對(duì)計(jì)算機(jī)的硬件設(shè)施都大概已經(jīng)很熟悉了。計(jì)算機(jī)的硬件設(shè)施中有一個(gè)區(qū)域是用來(lái)存儲(chǔ)數(shù)據(jù)的,計(jì)算機(jī)在工作的過(guò)程中會(huì)頻繁的從這個(gè)區(qū)域讀入和讀出數(shù)據(jù)。要想讓計(jì)算機(jī)按照某些指令(程序)自動(dòng)工作,首先必須把數(shù)據(jù)存儲(chǔ)到計(jì)算機(jī)的存儲(chǔ)空間中。在某種計(jì)算機(jī)語(yǔ)言中實(shí)現(xiàn)這種數(shù)據(jù)存儲(chǔ)功能的就是變量。變量就是計(jì)算機(jī)內(nèi)存中的某一個(gè)存儲(chǔ)單元。
二、變量的定義
C語(yǔ)言中變量在使用之前必須先對(duì)其進(jìn)行定義,變量的定義的一般形式如下:【存儲(chǔ)類(lèi)別】數(shù)據(jù)類(lèi)型變量名;其中存儲(chǔ)類(lèi)別是可以省略的。
1、存儲(chǔ)類(lèi)別計(jì)算機(jī)的內(nèi)存一般分為三個(gè)部分:1)程序區(qū);2)靜態(tài)存儲(chǔ)區(qū);3)動(dòng)態(tài)存儲(chǔ)區(qū);為了高效的發(fā)揮計(jì)算機(jī)的功能,不同類(lèi)型的變量存放在不同的內(nèi)存區(qū)域。變量的存儲(chǔ)類(lèi)別決定了變量中的數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)位置。C語(yǔ)言中局部變量存放在動(dòng)態(tài)存儲(chǔ)區(qū),全局變量或者靜態(tài)變量存放在靜態(tài)存儲(chǔ)區(qū)。
2、數(shù)據(jù)類(lèi)型在用程序處理問(wèn)題之前,首先必須確定用何種方式描述問(wèn)題中所涉及到的數(shù)據(jù)。這個(gè)問(wèn)題在C語(yǔ)言中是由數(shù)據(jù)類(lèi)型來(lái)決定的。變量的本質(zhì)表現(xiàn)為在計(jì)算機(jī)中的存在時(shí)間和存儲(chǔ)空間。變量的數(shù)據(jù)類(lèi)型是用來(lái)決定變量在計(jì)算機(jī)中占用內(nèi)存空間的大小。比如:整型數(shù)據(jù)在TC編譯系統(tǒng)中占用兩個(gè)字節(jié)的存儲(chǔ)空間。C語(yǔ)言變量的類(lèi)型不僅確定了數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)區(qū)域的大小,同時(shí)確定了該數(shù)據(jù)能夠參與的各種運(yùn)算。任何一個(gè)C語(yǔ)言的變量必須有確定的數(shù)據(jù)類(lèi)型,不管這個(gè)變量如何變化,變量的值都必須符合該變量數(shù)據(jù)類(lèi)型的規(guī)定。
3、變量的名字通過(guò)以上介紹我們知道C語(yǔ)言中的變量就是計(jì)算機(jī)的某個(gè)存儲(chǔ)單元,假設(shè)你給某個(gè)變量賦予了一個(gè)數(shù)值,對(duì)變量的處理其實(shí)就是對(duì)這個(gè)數(shù)據(jù)的處理。那么計(jì)算機(jī)是如何快速準(zhǔn)確的找到這個(gè)數(shù)據(jù)呢?計(jì)算機(jī)的內(nèi)存是以字節(jié)為單位進(jìn)行劃分的。每個(gè)存儲(chǔ)單元都有自己的地址編號(hào),就向賓館中房間的房間號(hào)一樣。計(jì)算機(jī)就是通過(guò)地址來(lái)準(zhǔn)確的確定數(shù)據(jù)的存儲(chǔ)位置。但是對(duì)于程序員特別是非專(zhuān)業(yè)計(jì)算機(jī)人士,如果用計(jì)算機(jī)內(nèi)存地址記錄數(shù)據(jù)是非常難操作的。
為了更好的掌控變量,C語(yǔ)言規(guī)定可以給每個(gè)變量其一個(gè)容易識(shí)別的名字。這個(gè)名字的命名規(guī)則遵循C語(yǔ)言的標(biāo)識(shí)符命名規(guī)則。C語(yǔ)言的變量名的命名在遵循C語(yǔ)言標(biāo)識(shí)符規(guī)則的前提下,原則上可以是任意長(zhǎng)度字符的組合。但是目前很多的C語(yǔ)言編譯系統(tǒng)只能識(shí)別前31個(gè)字符,如果兩個(gè)變量的前31個(gè)字符相同,則編譯系統(tǒng)會(huì)認(rèn)為這兩個(gè)變量時(shí)同一個(gè)變量。為了避免這種混淆的出現(xiàn)最好避免使用多余31個(gè)字符的變量名。變量的理解變量就是計(jì)算機(jī)中的某個(gè)存儲(chǔ)單元。定義某個(gè)變量本質(zhì)上就是向計(jì)算機(jī)申請(qǐng)一些存儲(chǔ)區(qū)域。這個(gè)存儲(chǔ)區(qū)域的大小由變量的數(shù)據(jù)類(lèi)型決定,這個(gè)存儲(chǔ)區(qū)域的位置有變量的存儲(chǔ)類(lèi)類(lèi)別決定。給變量賦予某個(gè)數(shù)值,其實(shí)就是向該變量對(duì)應(yīng)的存儲(chǔ)單元讀入數(shù)據(jù),對(duì)變量的處理就是對(duì)這個(gè)存儲(chǔ)單元中的數(shù)據(jù)的處理。并且這個(gè)存儲(chǔ)單元中的數(shù)據(jù)在程序的運(yùn)行期間是可以發(fā)生變化的。
【C語(yǔ)言條件運(yùn)算符】相關(guān)文章:
C語(yǔ)言的條件運(yùn)算符12-19
C語(yǔ)言輔導(dǎo):C語(yǔ)言運(yùn)算符表06-17
C語(yǔ)言賦值運(yùn)算符11-06
C語(yǔ)言中的運(yùn)算符10-05
C語(yǔ)言賦值運(yùn)算符考點(diǎn)10-08