




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章 簡(jiǎn)單算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式 C語(yǔ)言提供了23種運(yùn)算符,在這章內(nèi)只介紹算術(shù)運(yùn)算符和增1、減1運(yùn)算符及強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符,其余的將在以后的授課中逐一介紹。3.1 C運(yùn)算符和表達(dá)式3.2 宏常量與宏替換3.3 const 常量3.4 自動(dòng)類(lèi)型轉(zhuǎn)換與強(qiáng)制類(lèi)型轉(zhuǎn)換3.5 常用標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)3.6 小結(jié)3.1 C運(yùn)算符和表達(dá)式3.1.1 基本的算術(shù)運(yùn)算符和表達(dá)式1、基本的算術(shù)運(yùn)算符+ 、 加號(hào)運(yùn)算符、 減號(hào)運(yùn)算符、 乘號(hào)運(yùn)算符、 除號(hào)運(yùn)算符、 模運(yùn)算符,或叫作求余運(yùn)算符 說(shuō) 明 如果參加、運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(shù)為實(shí)數(shù),則結(jié)果是doubledouble型,因?yàn)樗袑?shí)數(shù)都 按dou
2、bledouble型進(jìn)行運(yùn)算。、模運(yùn)算符,或叫作求余運(yùn)算符。注意:% % 運(yùn)算要求運(yùn)算符兩的運(yùn)算對(duì)象均為整型運(yùn)算要求運(yùn)算符兩的運(yùn)算對(duì)象均為整型2 2、算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性、算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 所謂算術(shù)表達(dá)式即:用算術(shù)運(yùn)算符和括號(hào)將用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái)、符合運(yùn)算對(duì)象連接起來(lái)、符合C C語(yǔ)法規(guī)則的式子。語(yǔ)法規(guī)則的式子。其中運(yùn)算包括常量、變量、函數(shù)等。優(yōu)先級(jí)結(jié)合性 有關(guān)結(jié)合性的問(wèn)題將會(huì)在以后進(jìn)行詳細(xì)的說(shuō)明。參見(jiàn)附錄C C運(yùn)算符的優(yōu)先級(jí)與結(jié)合性3.1.2 復(fù)合運(yùn)算符 設(shè)變量a都被定義為整型變量,并給變量a賦了初值10。這句話要用程序表示如下左圖所示。若要想
3、將變量a的值加20,其表達(dá)式的寫(xiě)有兩種:使用一般形式(如下中圖所示);使用復(fù)合運(yùn)算符方式(如下右圖所示)int a, b;a = 10;或:int a = 10, b;a = a + 20a += 20這兩個(gè)表達(dá)式作用相同,其他算術(shù)運(yùn)算符的復(fù)合用法依次類(lèi)推3.1.3 3.1.3 自增、自減運(yùn)算符自增、自減運(yùn)算符 所謂增、自減的作用是使變量的值增1或減1。i +, i - 在調(diào)用i之后,再使i的值加或減1+ i , - i 在調(diào)用i之前,先使i的值加或減1。 粗略地看,i+和+i 的作用均相當(dāng)于i = i + 1,但+i和i+不同之處在于: int main(void) int i = 3;pr
4、intf(“first i= %d”, + i);printf(“second i= %d”, i+);printf(“third i= %d”, i);return 0;編輯、編譯、鏈接此程序,并運(yùn)行它,從輸出結(jié)果分析和理解+i和i+的區(qū)別。有關(guān)自增、自減的說(shuō)明有關(guān)自增、自減的說(shuō)明 自增運(yùn)算符和自減運(yùn)算符 只能用于只能用于變量變量。 + 和-的結(jié)合方向是“自右至左自右至左”。有關(guān)自增、自減的補(bǔ)充 1int main(void)int x,i=3; x=(i+)+(i+)+(i+); printf(x=%d i=%d,x,i);結(jié)果為:結(jié)果為:x=9 i=6x=9 i=6int main(vo
5、id)int x,i=3; x=(+i)+(+i)+(+i); printf(x=%d i=%d,x,i);結(jié)果為:結(jié)果為:x=18 i=6 以上為自增在賦值表達(dá)式中的運(yùn)算結(jié)果,要注意 左面由于是后+,先提取i的原值相加,即3+3+3得9。而右面是先+,故先得i為6,再6+6+6得18 i為6的時(shí)刻,左面i是在做完賦值后變?yōu)?的,而右面i是在賦值前已變?yōu)?了。有關(guān)自增、自減的補(bǔ)充 2main()int i=3; printf(%d,(i+)+(i+)+(i+); 結(jié)果為:12main()int i=3; printf(%d,(+i)+(+i)+(+i); 結(jié)果為:15 以上為自增在函數(shù)參數(shù)中的
6、運(yùn)算結(jié)果。以上兩程序都在第一個(gè)printf后再一句printf(“i=%d”,i);則顯示i=?3.2 宏常量與宏替換 另外可用一個(gè)標(biāo)識(shí)符代表一個(gè)常量,其定義方式如下: 以后在程序中凡遇到PRICE都代表30。 PRICE就稱(chēng)為符號(hào)常量(宏常量)。在程序中將PRICE替換成30的這個(gè)動(dòng)作叫“宏替換”。3.3 const 3.3 const 常量常量 使用宏常量的最大問(wèn)題是,宏常量沒(méi)有數(shù)據(jù)類(lèi)型。編譯器對(duì)宏常量不進(jìn)行類(lèi)型檢查,只進(jìn)行簡(jiǎn)單的字符替換,字符替換時(shí)極易產(chǎn)生意想不到的錯(cuò)誤。 那么可否聲明具有某種數(shù)據(jù)類(lèi)型的常量呢?在這里將介紹const常量。 在聲明語(yǔ)句中,只要將const類(lèi)型修飾置于類(lèi)型說(shuō)
7、明之前,就可將類(lèi)型說(shuō)明后的標(biāo)識(shí)符聲明為具有該類(lèi)型的const常量了。 由于編譯器將其放在只讀存儲(chǔ)區(qū),不允許在程序中改變其值,因此const常量只能在定義時(shí)賦值。例如: const double PAI = 3.1415926; 聲明了名為PAI的實(shí)型const常量,其值為3.1415926。 具體理解參見(jiàn)教材P34 高 double float long 低 int char, short 圖中橫向向左的箭頭表示橫向向左的箭頭表示必定的轉(zhuǎn)換必定的轉(zhuǎn)換,如字符數(shù)據(jù)必定先轉(zhuǎn)換為整數(shù),float型數(shù)據(jù)在運(yùn)算時(shí)一律先轉(zhuǎn)換成雙精度型,以提高運(yùn)算精度。 即使是兩個(gè)floatfloat型數(shù)據(jù)相加,也先都化為
8、doubledouble型,然后再相加。的箭頭表示當(dāng)前運(yùn)算對(duì)象為不同類(lèi)型時(shí)轉(zhuǎn)換的方向的箭頭表示當(dāng)前運(yùn)算對(duì)象為不同類(lèi)型時(shí)轉(zhuǎn)換的方向。例intint 型與doubledouble型數(shù)據(jù)進(jìn)行運(yùn)算,先將intint 型的數(shù)據(jù)轉(zhuǎn)換成doubledouble,然后再進(jìn)行運(yùn)算。3.4 自動(dòng)類(lèi)型轉(zhuǎn)換與強(qiáng)制類(lèi)型轉(zhuǎn)換自動(dòng)類(lèi)型轉(zhuǎn)換與強(qiáng)制類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換 如果賦值運(yùn)算符兩側(cè)的類(lèi)型不一致,但都是數(shù)值或字符型時(shí),在賦值時(shí)要進(jìn)行類(lèi)型轉(zhuǎn)換。 實(shí)型數(shù)據(jù)賦給整型變量 整型數(shù)據(jù)賦給單、雙精度變量 double型數(shù)據(jù)賦給float變量 字符型數(shù)據(jù)賦給整型變量 int、long型數(shù)據(jù)賦給一個(gè)char變量注意:這里指的是系統(tǒng)自動(dòng)
9、進(jìn)行轉(zhuǎn)換(需解釋)。強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符 可以利用強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類(lèi)型。例如: (double)a(double)a (將a轉(zhuǎn)換成double類(lèi)型) (int)(x+y)(int)(x+y) (將x+y的值轉(zhuǎn)換成整型) (float)(5%4)(float)(5%4) (將54的值轉(zhuǎn)換成float型)其一般形式為:(類(lèi)型名)(表達(dá)式)(類(lèi)型名)(表達(dá)式)表達(dá)式應(yīng)該用括號(hào)括起來(lái)。如果寫(xiě)成(int)x+y(int)x+y 則只將x x轉(zhuǎn)換成整型,然后與y y相加。說(shuō)說(shuō) 明明 在強(qiáng)制類(lèi)型轉(zhuǎn)換時(shí),得到一個(gè)所需要類(lèi)型的中間變量,原來(lái)的變量的類(lèi)型未
10、發(fā)生變化。如: (int) x(int) x (不要寫(xiě)成int(x)int(x)如果x x原指定為floatfloat型,進(jìn)行強(qiáng)制類(lèi)型運(yùn)算后得到一個(gè)intint型的中間變量,它的值等于x x的整數(shù)部分,而x x類(lèi)型不變(仍為floatfloat型)。例 強(qiáng)制類(lèi)型轉(zhuǎn)換 int main(main(void) ) float x; x; int i; i; x = 3.14;x = 3.14; i = (i = (int)x;)x;printf(printf(“x=%f,i=%dx=%f,i=%d”,x,i);,x,i);return 0; 0; 運(yùn)行結(jié)果:運(yùn)行結(jié)果:x=3.149000 i=3x
11、=3.149000 i=3X類(lèi)型仍為float,值仍為3.14#include /標(biāo)準(zhǔn)輸入輸出頭文件#include /標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)頭文件int main(void)double a, b, c, s, area;a = 3;b = 4;c = 5;s = (a + b + c) / 2; /能否寫(xiě)成1/2* (a + b + c) area = sqrt(s * (s - a) * (s - b) * (s - c);printf(area = %fn, area);return 0; 3.5 常用標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)參見(jiàn)教材P38注意:當(dāng)在程序中使用標(biāo)準(zhǔn)的數(shù)學(xué)函數(shù)據(jù)時(shí),程序中要掛上數(shù)學(xué)庫(kù)的頭文件。
12、如下所示:逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 C語(yǔ)言提供一種特殊的運(yùn)算符。用它將兩個(gè)表達(dá)式連接起來(lái)。如:3+6,7+8。這種表達(dá)式叫作,其一般形式為: 表達(dá)式表達(dá)式1 1,表達(dá)式,表達(dá)式2 2 的求解過(guò)程是:先求解表達(dá)式表達(dá)式1 1,再求解表達(dá)式表達(dá)式2 2。例如:“5 56 6,7 79 9”的值為1616。 從附錄C中查出,而結(jié)合方向是“”(左結(jié)合)。那么如果有下面的表達(dá)式: a=5a=5* *6,a+8 6,a+8 應(yīng)理解為由 a=5a=5* *6 6和a+8a+8 兩個(gè)表達(dá)式構(gòu)成了一個(gè)逗號(hào)表達(dá)式。若a a的初值為4 4,上述逗號(hào)表達(dá)式的運(yùn)算過(guò)程是: 先求解a=5a=5* *6 6 得a a值為3030(表達(dá)式1的值)。 再求解a+8a+8 得30308 8為為3838
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 舊料物資搬運(yùn)方案(3篇)
- 電力施工建設(shè)方案(3篇)
- 江堤改造工程方案(3篇)
- 污水藥劑供貨方案(3篇)
- 保姆車(chē)行業(yè)風(fēng)險(xiǎn)投資發(fā)展分析及投資融資策略研究報(bào)告2025-2028版
- 環(huán)衛(wèi)保潔節(jié)水方案(3篇)
- 超市單據(jù)處理方案(3篇)
- 財(cái)務(wù)駐場(chǎng)監(jiān)管方案(3篇)
- 打擊代理退保方案(3篇)
- 日產(chǎn)廢物處置方案(3篇)
- 飼料廠的培訓(xùn)課件
- 每周食品安全排查治理
- 人體寄生蟲(chóng)學(xué)實(shí)驗(yàn)課件
- 房屋買(mǎi)賣(mài)居間合同書(shū)范本
- 大家的日語(yǔ)(電子版)
- “怎樣提高學(xué)生的計(jì)算能力”教研活動(dòng)方案
- 談戀愛(ài)被騙民事起訴狀范本
- 錘擊樁(砼預(yù)制方樁、預(yù)應(yīng)力砼管樁、鋼樁)工程旁站監(jiān)理記錄
- 老年患者術(shù)后譫妄課件
- 國(guó)開(kāi)2023年春《互換性與技術(shù)測(cè)量》形考任務(wù)一二三四參考答案
- GB/T 42532-2023濕地退化評(píng)估技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論