- C語言的條件運(yùn)算符 推薦度:
- 相關(guān)推薦
C語言條件運(yùn)算符
C語言具有高效、靈活、功能豐富、表達(dá)力強(qiáng)和較高的可移植性等特點(diǎn),那么大家知道C語言條件運(yùn)算符是什么呢?下面是小編收集整理的C語言條件運(yùn)算符,希望大家喜歡。
如果希望獲得兩個(gè)數(shù)中最大的一個(gè),可以使用 if 語句,例如:
if(a>b){ max = a;}else{ max = b;}
不過,C語言提供了一種更加簡單的方法,叫做條件運(yùn)算符,語法格式為:
表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3
條件運(yùn)算符是C語言中唯一的一個(gè)三目運(yùn)算符,其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2 的值作為整個(gè)條件表達(dá)式的值,否則以表達(dá)式3的值作為整個(gè)條件表達(dá)式的值。條件表達(dá)式通常用于賦值語句之中。
上面的 if else 語句等價(jià)于:
max = (a>b) ? a : b;
該語句的語義是:如a>b為真,則把a(bǔ)賦予max,否則把b 賦予max。
讀者可以認(rèn)為條件運(yùn)算符是一種簡寫的 if else,完全可以用 if else 來替換。
使用條件表達(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)而寫為
max=a>b ? a : b;
2) 條件運(yùn)算符?和:是一對(duì)運(yùn)算符,不能分開單獨(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語言變量理解
一、變量的概念
程序設(shè)計(jì)就是讓計(jì)算機(jī)按照一定的指令來進(jìn)行工作,可以說數(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ū)域是用來存儲(chǔ)數(shù)據(jù)的,計(jì)算機(jī)在工作的過程中會(huì)頻繁的從這個(gè)區(qū)域讀入和讀出數(shù)據(jù)。要想讓計(jì)算機(jī)按照某些指令(程序)自動(dòng)工作,首先必須把數(shù)據(jù)存儲(chǔ)到計(jì)算機(jī)的存儲(chǔ)空間中。在某種計(jì)算機(jī)語言中實(shí)現(xiàn)這種數(shù)據(jù)存儲(chǔ)功能的就是變量。變量就是計(jì)算機(jī)內(nèi)存中的某一個(gè)存儲(chǔ)單元。
二、變量的定義
C語言中變量在使用之前必須先對(duì)其進(jìn)行定義,變量的定義的一般形式如下:【存儲(chǔ)類別】數(shù)據(jù)類型變量名;其中存儲(chǔ)類別是可以省略的。
1、存儲(chǔ)類別計(jì)算機(jī)的內(nèi)存一般分為三個(gè)部分:1)程序區(qū);2)靜態(tài)存儲(chǔ)區(qū);3)動(dòng)態(tài)存儲(chǔ)區(qū);為了高效的發(fā)揮計(jì)算機(jī)的功能,不同類型的變量存放在不同的內(nèi)存區(qū)域。變量的存儲(chǔ)類別決定了變量中的數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)位置。C語言中局部變量存放在動(dòng)態(tài)存儲(chǔ)區(qū),全局變量或者靜態(tài)變量存放在靜態(tài)存儲(chǔ)區(qū)。
2、數(shù)據(jù)類型在用程序處理問題之前,首先必須確定用何種方式描述問題中所涉及到的數(shù)據(jù)。這個(gè)問題在C語言中是由數(shù)據(jù)類型來決定的。變量的本質(zhì)表現(xiàn)為在計(jì)算機(jī)中的存在時(shí)間和存儲(chǔ)空間。變量的數(shù)據(jù)類型是用來決定變量在計(jì)算機(jī)中占用內(nèi)存空間的大小。比如:整型數(shù)據(jù)在TC編譯系統(tǒng)中占用兩個(gè)字節(jié)的存儲(chǔ)空間。C語言變量的類型不僅確定了數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)區(qū)域的大小,同時(shí)確定了該數(shù)據(jù)能夠參與的各種運(yùn)算。任何一個(gè)C語言的變量必須有確定的數(shù)據(jù)類型,不管這個(gè)變量如何變化,變量的值都必須符合該變量數(shù)據(jù)類型的規(guī)定。
3、變量的名字通過以上介紹我們知道C語言中的變量就是計(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ī)就是通過地址來準(zhǔn)確的確定數(shù)據(jù)的存儲(chǔ)位置。但是對(duì)于程序員特別是非專業(yè)計(jì)算機(jī)人士,如果用計(jì)算機(jī)內(nèi)存地址記錄數(shù)據(jù)是非常難操作的。
為了更好的掌控變量,C語言規(guī)定可以給每個(gè)變量其一個(gè)容易識(shí)別的名字。這個(gè)名字的命名規(guī)則遵循C語言的標(biāo)識(shí)符命名規(guī)則。C語言的變量名的命名在遵循C語言標(biāo)識(shí)符規(guī)則的前提下,原則上可以是任意長度字符的組合。但是目前很多的C語言編譯系統(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ù)類型決定,這個(gè)存儲(chǔ)區(qū)域的位置有變量的存儲(chǔ)類類別決定。給變量賦予某個(gè)數(shù)值,其實(shí)就是向該變量對(duì)應(yīng)的存儲(chǔ)單元讀入數(shù)據(jù),對(duì)變量的處理就是對(duì)這個(gè)存儲(chǔ)單元中的數(shù)據(jù)的處理。并且這個(gè)存儲(chǔ)單元中的數(shù)據(jù)在程序的運(yùn)行期間是可以發(fā)生變化的。
【C語言條件運(yùn)算符】相關(guān)文章:
C語言的條件運(yùn)算符12-19
c語言算術(shù)運(yùn)算符07-23
C語言條件編譯分析實(shí)例08-18
JAVA程序語言中的運(yùn)算符10-09
C語言的結(jié)構(gòu)10-14
C語言考點(diǎn)精選06-29
C語言的應(yīng)用05-29
C語言試題08-02
什么是C語言07-27