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