- C語言入門很輕松(微課超值版)
- 云尚科技編著
- 2569字
- 2022-07-29 14:43:40
4.2 使用表達(dá)式
在C語言中,表達(dá)式由運算符和操作數(shù)構(gòu)成,表達(dá)式的運算符指出了對操作數(shù)的操作,操作數(shù)可以是常量、變量或者函數(shù)的調(diào)用,并且表達(dá)式是用來構(gòu)成語句的基本單位。本節(jié)就來介紹表達(dá)式的使用。
4.2.1 算術(shù)表達(dá)式
由算術(shù)運算符和操作數(shù)組成的表達(dá)式稱為算術(shù)表達(dá)式,算術(shù)表達(dá)式的結(jié)合性為自左向右。常用的算術(shù)表達(dá)式使用說明,如表4-10所示。
表4-10 算術(shù)表達(dá)式的描述

【例4.9】編寫程序,定義int型變量a、b、c,初始化a的值為10,初始化b的值為20,使用算術(shù)表達(dá)式對a和b進(jìn)行運算,將計算結(jié)果分別賦予c再輸出(源代碼\ch04\4.9.txt)。


圖4-9 例4.9的程序運行結(jié)果
程序運行結(jié)果如圖4-9所示。
在使用算術(shù)表達(dá)式的過程中,應(yīng)該注意以下幾點:
(1)在算術(shù)表達(dá)式中,如果操作數(shù)的類型不一致,系統(tǒng)會自動進(jìn)行隱式轉(zhuǎn)換,如果轉(zhuǎn)換成功,表達(dá)式的結(jié)果類型以操作數(shù)中表示范圍大的類型為最終類型。
(2)減法運算符的使用同數(shù)學(xué)中的使用方法類似,但需要注意的是,減法運算符不但可以應(yīng)用于整型、浮點型數(shù)據(jù)間的運算,還可以應(yīng)用于字符型的運算。在字符型運算時,首先將字符轉(zhuǎn)換為其ASCII碼值,然后進(jìn)行減法運算。
(3)在使用除法運算符時,如果除數(shù)與被除數(shù)均為整數(shù),則結(jié)果也為整數(shù),它會把小數(shù)舍去(并非四舍五入),如3/2=1。
4.2.2 賦值表達(dá)式
由賦值運算符和操作數(shù)組成的表達(dá)式稱為賦值表達(dá)式,賦值表達(dá)式的功能是計算表達(dá)式的值再賦予左側(cè)的變量。賦值表達(dá)式的一般形式如下:
變量 賦值運算符 表達(dá)式
賦值表達(dá)式的計算過程是:首先計算表達(dá)式的值,然后將該值賦給左側(cè)的變量。C語言中常見賦值表達(dá)式以及使用說明,如表4-11所示。
表4-11 常見賦值表達(dá)式以及使用說明

【例4.10】編寫程序,定義整型變量x、y,使用賦值表達(dá)式對x進(jìn)行相應(yīng)的運算操作,然后將結(jié)果賦予y輸出(源代碼\ch04\4.10.txt)。


圖4-10 例4.10的程序運行結(jié)果
程序運行后的結(jié)果如圖4-10所示。
在使用賦值表達(dá)式的過程中,應(yīng)該注意以下幾點:
(1)賦值的左操作數(shù)必須是一個變量,C語言中可以對變量進(jìn)行連續(xù)賦值,這時賦值運算符是右關(guān)聯(lián)的,這意味著從右向左運算符被分組。例如,形如a=b=c的表達(dá)式等價于a=(b=c)。
(2)如果賦值運算符兩邊的操作數(shù)類型不一致,如果存在隱式轉(zhuǎn)換,系統(tǒng)會自動將賦值運算符右邊的類型轉(zhuǎn)換為左邊的類型再賦值;如果不存在隱式轉(zhuǎn)換,那就先要進(jìn)行顯式類型轉(zhuǎn)換,否則程序會報錯。
4.2.3 關(guān)系表達(dá)式
由關(guān)系運算符和操作數(shù)構(gòu)成的表達(dá)式稱為關(guān)系表達(dá)式。關(guān)系表達(dá)式中的操作數(shù)可以是整型數(shù)、實型數(shù)、字符型等。對于整數(shù)類型、實數(shù)類型和字符類型,六種關(guān)系運算符都適用;對于字符串的關(guān)系運算符實際上只能使用==和!=運算符。關(guān)系表達(dá)式的格式如下:
表達(dá)式 關(guān)系運算符 表達(dá)式
例如:
3>2 z>x-y 'a'+2<d a>(b>c) a!=(c==d) "abc"!="asf"
☆大牛提醒☆
兩個字符串值都為null或兩個非空字符串長度相同、對應(yīng)的字符序列也相同的情況下比較的結(jié)果才能為“真”。
關(guān)系表達(dá)式的返回值只有“真”與“假”兩種,分別用“1”和“0”來表示,例如:
2>1 的返回值為“真”,也就是“1” (a+b)==(c=5)的返回值為“假”,也就是“0”
【例4.11】編寫程序,通過輸入端輸入一個字符,使用關(guān)系表達(dá)式判斷該字符是字母還是數(shù)字(源代碼\ch04\4.11.txt)。

保存并運行程序,如果輸入數(shù)值,則返回如圖4-11所示的結(jié)果;如果輸入一個字符,則返回如圖4-12所示的結(jié)果。

圖4-11 輸入數(shù)字的反饋信息

圖4-12 輸入字母的反饋信息
4.2.4 邏輯表達(dá)式
由邏輯運算符和操作數(shù)組成的表達(dá)式稱為邏輯表達(dá)式。邏輯表達(dá)式的結(jié)果只能是真與假,要么是“1”要么是“0”。邏輯表達(dá)式的書寫形式一般為:
表達(dá)式 邏輯運算符 表達(dá)式
例如,表達(dá)式a&&b,其中a和b均為布爾值,系統(tǒng)在計算該邏輯表達(dá)式時,首先判斷a的值,如果a為true,再判斷b的值,如果a為false,系統(tǒng)不需要繼續(xù)判斷b的值,直接確定表達(dá)式的結(jié)果為false。
雖然在C語言中,以“1”表示“真”,以“0”表示“假”,但是反過來在判斷一個量是“真”或是“假”時,是以“0”代表“假”,以非“0”的數(shù)字代表“真”。
例如:
2&&3
由于“2”和“3”均非“0”,所以表達(dá)式的返回值為“真”,即為“1”。
【例4.12】編寫程序,分別定義字符型變量s并初始化為“z”,整型變量a、b、c并初始化為1、2、3,浮點型變量x、y并初始化為2e+5、3.14。輸出由它們所組合的相應(yīng)邏輯表達(dá)式的返回值(源代碼\ch04\4.12.txt)。

程序運行結(jié)果如圖4-13所示。

圖4-13 例4.12的程序運行結(jié)果
4.2.5 位運算表達(dá)式
由位運算符和操作數(shù)構(gòu)成的表達(dá)式為位運算表達(dá)式。在位運算表達(dá)式中,系統(tǒng)首先將操作數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后再進(jìn)行位運算,計算完畢后,再將其轉(zhuǎn)換為十進(jìn)制整數(shù)。各種位運算方法,如表4-12所示。這里假設(shè)操作數(shù)1為8,操作數(shù)2為3。
表4-12 位運算符表達(dá)式

【例4.13】編寫程序,定義整型變量a、b,并初始化為20、15;定義int型變量c并初始化為0。對a、b進(jìn)行相關(guān)位運算操作,將結(jié)果賦予變量c并輸出(源代碼\ch04\4.13.txt)。

程序運行結(jié)果如圖4-14所示。

圖4-14 例4.13的程序運行結(jié)果
4.2.6 條件表達(dá)式
由條件運算符和操作數(shù)組成的表達(dá)式稱為條件表達(dá)式。條件表達(dá)式的一般形式如下:
條件表達(dá)式?表達(dá)式1:表達(dá)式2
條件表達(dá)式的計算過程是先計算條件,然后進(jìn)行判斷。如果條件表達(dá)式的結(jié)果為“真”,計算表達(dá)式1的值,表達(dá)式1為整個條件表達(dá)式的值;否則,計算表達(dá)式2的值,表達(dá)式2為整個條件表達(dá)式的值。例如,求出a和b中最大數(shù)的表達(dá)式。
a>b?a:b //取a和b的最大值
條件運算符的優(yōu)先級高于賦值運算符,低于關(guān)系運算符和算術(shù)運算符。所以有:
(a>b)?a:b 等價于a>b?a:b
條件運算符的結(jié)合性規(guī)則是自右向左,例如:
a>b?a:c<d?c:d 等價于a>b?a:(c<d?c:d)
注意:在條件運算符中?與:是一對運算符,不可拆開使用。
【例4.14】編寫程序,定義兩個整型變量,通過輸入端輸入兩數(shù)的值,再使用條件表達(dá)式比較它們的大小,將較大數(shù)輸出(源代碼\ch04\4.14.txt)。

程序運行結(jié)果如圖4-15所示。

圖4-15 例4.14的程序運行結(jié)果
4.2.7 逗號表達(dá)式
逗號運算符的功能是將兩個表達(dá)式連接起來成為一個表達(dá)式,這就是逗號表達(dá)式。逗號表達(dá)式的一般形式為:
表達(dá)式1,表達(dá)式2
逗號表達(dá)式的運算方式為分別對兩個表達(dá)式進(jìn)行求解,然后以表達(dá)式2的計算結(jié)果作為整個逗號表達(dá)式的值。在逗號表達(dá)式中可以使用嵌套的形式,例如:
表達(dá)式1,(表達(dá)式2,表達(dá)式3…表達(dá)式n)
將上述逗號表達(dá)式展開可以得到:
表達(dá)式1,表達(dá)式2,表達(dá)式3…表達(dá)式n
那么表達(dá)式n便為整個逗號表達(dá)式的值。
【例4.15】編寫程序,定義整型變量a,b,c,x,y。對a,b,c進(jìn)行初始化,它們的值分別為1,2,3,然后計算逗號表達(dá)式y(tǒng)=(x=a+b, a+c),最后輸出x,y的值(源代碼\ch04\4.15.txt)。

程序運行結(jié)果如圖4-16所示。

圖4-16 例4.15的程序運行結(jié)果
- HTML5+CSS3+JavaScript從入門到精通:上冊(微課精編版·第2版)
- Delphi程序設(shè)計基礎(chǔ):教程、實驗、習(xí)題
- 零起步玩轉(zhuǎn)掌控板與Mind+
- Mastering phpMyAdmin 3.4 for Effective MySQL Management
- 深入淺出Prometheus:原理、應(yīng)用、源碼與拓展詳解
- Web Development with Django Cookbook
- 數(shù)據(jù)結(jié)構(gòu)(C語言)
- 零基礎(chǔ)學(xué)Python數(shù)據(jù)分析(升級版)
- Spring+Spring MVC+MyBatis整合開發(fā)實戰(zhàn)
- C專家編程
- Visual Basic語言程序設(shè)計基礎(chǔ)(第3版)
- Python面試通關(guān)寶典
- 面向?qū)ο蟪绦蛟O(shè)計及C++(第3版)
- Java多線程并發(fā)體系實戰(zhàn)(微課視頻版)
- 一步一步學(xué)Spring Boot:微服務(wù)項目實戰(zhàn)(第2版)