




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、運(yùn)算與表達(dá)式 3.1 算術(shù)運(yùn)算算術(shù)運(yùn)算 n運(yùn)算符(Operator):描述運(yùn)算功能的符號(hào)n表達(dá)式(Expression):由運(yùn)算符和操作對(duì)象構(gòu)成的式子。n運(yùn)算符分類: n根據(jù)操作數(shù)個(gè)數(shù)分類:單目運(yùn)算符、雙目運(yùn)算符 、三目運(yùn)算符n根據(jù)運(yùn)算功能分類:n算數(shù)運(yùn)算符n關(guān)系運(yùn)算符n邏輯運(yùn)算符n位運(yùn)算符n其它3.1 算術(shù)運(yùn)算算術(shù)運(yùn)算 n3.1.1 算術(shù)運(yùn)算符 n單目基本算術(shù)運(yùn)算符【例3.1】n+ 正n- 負(fù)n雙目基本算術(shù)運(yùn)算符 【例3.2】n+ 加n- 減n* 乘n/ 除n% 求余數(shù)(要求兩個(gè)操作數(shù)必須是整數(shù))3.1 算術(shù)運(yùn)算算術(shù)運(yùn)算 n注意點(diǎn)1、若兩個(gè)操作數(shù)的類型不同不同,則先轉(zhuǎn)換為相同類型后再運(yùn)算。2
2、、若兩個(gè)操作數(shù)的類型相同相同:n若均為short int 或 char 類型,則轉(zhuǎn)換為intn若均為float 類型,則轉(zhuǎn)換為double3、除法運(yùn)算符/:若兩個(gè)操作數(shù)都是整型,則結(jié)果為整型(小數(shù)部分直接去掉)4、求余運(yùn)算%:n兩個(gè)操作數(shù)必須是整型,否則編譯出錯(cuò)。n結(jié)果的符號(hào)與第一個(gè)操作數(shù)符號(hào)相同。3.1 算術(shù)運(yùn)算算術(shù)運(yùn)算3.1.2 優(yōu)先級(jí)與結(jié)合性優(yōu)先級(jí)與結(jié)合性 n優(yōu)先級(jí)問題優(yōu)先級(jí)問題 當(dāng)一個(gè)表達(dá)式中有多個(gè)運(yùn)算符時(shí),先計(jì)算哪個(gè)? 例如:10+20/10n結(jié)合性問題結(jié)合性問題當(dāng)一個(gè)表達(dá)式中有多個(gè)相同優(yōu)先級(jí)的運(yùn)算符時(shí),是從左向右計(jì)算,還是從右向左計(jì)算?例如:10*2/5優(yōu)先級(jí)優(yōu)先級(jí)運(yùn)算符運(yùn)算符高高
3、& + - - & + - - (按位取反)(按位取反) ! !(邏輯非)(邏輯非) + +(正)(正) - -(負(fù))(負(fù)) 右右左左* * / % / %左左右右+ +(加)(加) - -(減)(減)左左右右 (按位右移)(按位右移)左左右右 = =左左右右=(相等)(相等) != !=(不相等)(不相等)左左右右& &(按位與)(按位與)左左右右 (按位異或)(按位異或)左左右右| |(按位或)(按位或)左左右右&(邏輯與)(邏輯與)左左右右|(邏輯或)(邏輯或)左左右右?:?:(條件運(yùn)算符)(條件運(yùn)算符)右右左左= += -= = += -= *
4、*= /= %= = = /= %= = &= |= =&= |= =右右左左低低, ,(逗號(hào))(逗號(hào))左左右右請記錄請記錄3.1 算術(shù)運(yùn)算算術(shù)運(yùn)算3.1.3 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換 n數(shù)據(jù)類型轉(zhuǎn)換n隱式類型轉(zhuǎn)換n操作數(shù)為char或short int時(shí),自動(dòng)轉(zhuǎn)換為整型n操作數(shù)為float時(shí),自動(dòng)轉(zhuǎn)換為double型n當(dāng)操作數(shù)類型不同時(shí),將精度低的操作數(shù)的類型轉(zhuǎn)換為精度高的另一個(gè)操作數(shù)類型。n強(qiáng)制類型轉(zhuǎn)換n(類型名)(表達(dá)式) n(double)x signed charsigned short intsigned intsigned longunsigned charunsi
5、gned short intunsigned intunsigned longfloatdoublelong double請記錄請記錄3.1 算術(shù)運(yùn)算算術(shù)運(yùn)算 3.1.4自增、自減運(yùn)算自增、自減運(yùn)算 n自增運(yùn)算符“+”n表達(dá)式形式:n運(yùn)算符運(yùn)算符 操作對(duì)象操作對(duì)象 如:如:+kn操作對(duì)象操作對(duì)象 運(yùn)算符運(yùn)算符 如:如:k+n自減運(yùn)算符“-” n表達(dá)式形式:n運(yùn)算符運(yùn)算符 操作對(duì)象操作對(duì)象 如:如:-kn操作對(duì)象操作對(duì)象 運(yùn)算符運(yùn)算符 如:如:k-n注意注意n自增對(duì)象必須是整型變量整型變量 n盡量避免在一個(gè)表達(dá)式中出現(xiàn)對(duì)同一個(gè)變量的多次自增、自減運(yùn)算 3.2關(guān)系運(yùn)算關(guān)系運(yùn)算 n關(guān)系運(yùn)算符 n=
6、=雙目等于左結(jié)合n!=雙目不等于左結(jié)合n雙目大于左結(jié)合n=雙目大于等于左結(jié)合n雙目小于左結(jié)合n、=、=、y) & (-x0)后,求x的值2、執(zhí)行表達(dá)式(xy) | (-x0)后,求x的值3.4 位運(yùn)算位運(yùn)算 n3.4.1 按位邏輯運(yùn)算 n&雙目 按位與左結(jié)合n|雙目 按位或左結(jié)合n 雙目 按位異或左結(jié)合n單目 按位取反(非) 右結(jié)合n3.4.2 移位運(yùn)算移位運(yùn)算n雙目 右移位左結(jié)合3.4 位運(yùn)算位運(yùn)算 n3.4.3 程序例子程序例子 n輸入一個(gè)整數(shù),把該數(shù)的二進(jìn)制第5位清0 2個(gè)字節(jié):1111 1111 1110 1111 F F E Fn輸入一個(gè)整數(shù),判斷該數(shù)的二進(jìn)制第5位是
7、否為1,若是則輸出1,否則輸出0 2個(gè)字節(jié):0000 0000 0001 0000 0 0 1 0例3.18例3.19參考參考【例例3.183.18】編程練習(xí)編程練習(xí)輸入一個(gè)無符號(hào)字符型整數(shù),把該數(shù)的二進(jìn)輸入一個(gè)無符號(hào)字符型整數(shù),把該數(shù)的二進(jìn)制第制第2 2位清為位清為0 0,第,第3 3位置為位置為1 1。103.5 指針運(yùn)算指針運(yùn)算 3.5.1 取地址運(yùn)算 n通過求地址運(yùn)算符(&)獲得地址值n表達(dá)式形式:& 操作對(duì)象n例如:int a=3,*p;p=a; n通過指針變量或地址常量獲得地址值nint a=3,*p=&a, *q=p;nchar *p=ABCDEFG; n
8、通過標(biāo)準(zhǔn)函數(shù)獲得地址值 n空指針:int *p=NULL; 或 int *p=0 或 int *p=0; 3.5 指針運(yùn)算指針運(yùn)算 3.5.2 操作指針變量 n存取單元的數(shù)據(jù)兩種方法n直接存?。和ㄟ^變量名稱變量名稱存取變量值n間接存?。和ㄟ^變量地址變量地址存取變量值n指針變量的使用注意事項(xiàng) n先賦值后使用 n“&”和“*”優(yōu)先級(jí)相同,結(jié)合性為右結(jié)合 q p a int a, *p=&a, *q=&p;3.5 指針運(yùn)算指針運(yùn)算 3.5.3 移動(dòng)指針移動(dòng)指針 n形式如下:n指針 + 整型表達(dá)式n指針 整型表達(dá)式 n【例3.22】指針變量使用舉例。#include void
9、main( )int a, *p=&a;char c, *pc=&c;printf(%d,%dn,p,p+1);printf(%d,%dn,p,p-2);printf(%d,%dn,pc,pc+1);printf(%d,%dn,pc,pc-2);app+1cpcpc+13.5 指針運(yùn)算指針運(yùn)算 3.5.3 比較指針比較指針 n形式如下:n類型相同的兩個(gè)指針變量之間可以進(jìn)行、=、=、=、!= 的比較運(yùn)算。此外,任何指針變量都可以和0或空指針進(jìn)行“=”或“!=”的關(guān)系運(yùn)算 。n兩個(gè)同類型指針之間也可以進(jìn)行減法運(yùn)算,減法運(yùn)算的結(jié)果是兩個(gè)指針之間相差的內(nèi)存單元個(gè)數(shù),即兩者相差內(nèi)存地址值
10、除以指針指向數(shù)據(jù)類型所占內(nèi)存的大小。3.6 其它運(yùn)算其它運(yùn)算 3.6.1 sizeof運(yùn)算 nsizeof是一個(gè)單目右結(jié)合運(yùn)算符,運(yùn)算結(jié)果是一個(gè)無符號(hào)的整型。格式:sizeof(操作對(duì)象操作對(duì)象)n操作對(duì)象可以是類型名、常量、變量或確定操作對(duì)象可以是類型名、常量、變量或確定類型的表達(dá)式類型的表達(dá)式n舉例舉例n操作對(duì)象為類型名,如:操作對(duì)象為類型名,如:sizeof(int)n操作對(duì)象為常量,如:操作對(duì)象為常量,如: sizeof(5) n操作對(duì)象為常量,如:操作對(duì)象為常量,如: sizeof(5.9) n操作對(duì)象為表達(dá)式,如:操作對(duì)象為表達(dá)式,如: sizeof(x+1)3.6 其它運(yùn)算其它運(yùn)
11、算 3.6.2 逗號(hào)運(yùn)算逗號(hào)運(yùn)算 n用逗號(hào)連接的表達(dá)式稱為逗號(hào)表達(dá)式。用逗號(hào)連接的表達(dá)式稱為逗號(hào)表達(dá)式。n逗號(hào)表達(dá)式的形式為:逗號(hào)表達(dá)式的形式為:表達(dá)式表達(dá)式1,表達(dá)式,表達(dá)式2,表達(dá)式,表達(dá)式3,表達(dá)式,表達(dá)式nn注意注意n逗號(hào)表達(dá)式的求解過程為:依次計(jì)算表達(dá)式逗號(hào)表達(dá)式的求解過程為:依次計(jì)算表達(dá)式1的值,表的值,表達(dá)式達(dá)式2的值,的值,表達(dá)式,表達(dá)式n的值。表達(dá)式的值。表達(dá)式n的值為逗號(hào)表的值為逗號(hào)表達(dá)式的值。達(dá)式的值。n逗號(hào)運(yùn)算符的優(yōu)先級(jí)是所有運(yùn)算符中最低的,其結(jié)合性逗號(hào)運(yùn)算符的優(yōu)先級(jí)是所有運(yùn)算符中最低的,其結(jié)合性是自左向右。是自左向右。n例如:例如:int x;x=3*5,12+15,
12、100/5; 3.6 其它運(yùn)算其它運(yùn)算 3.6.3 條件運(yùn)算條件運(yùn)算 n條件表達(dá)式的一般形式為:條件表達(dá)式的一般形式為:表達(dá)式表達(dá)式1 ? 表達(dá)式表達(dá)式2 : 表達(dá)式表達(dá)式3n先計(jì)算表達(dá)式先計(jì)算表達(dá)式1,如果表達(dá)式,如果表達(dá)式1的值非的值非0,則執(zhí)行表達(dá)式,則執(zhí)行表達(dá)式2,表達(dá)式,表達(dá)式2的值作為整的值作為整個(gè)條件表達(dá)式的值;如果表達(dá)式個(gè)條件表達(dá)式的值;如果表達(dá)式1為為0,則執(zhí)行表達(dá)式則執(zhí)行表達(dá)式3,表達(dá)式,表達(dá)式3的值作為整個(gè)的值作為整個(gè)條件表達(dá)式的值。條件表達(dá)式的值。 n【例例3.26】輸入三個(gè)整數(shù),輸出其中最輸入三個(gè)整數(shù),輸出其中最大的一個(gè)大的一個(gè)#include void main(
13、)int x,y,z,t;scanf(%d%d%d,&x,&y,&z);t = xy ? x : y;t = tz ? t : z;printf(%dn,t);3.7 賦值運(yùn)算賦值運(yùn)算 3.7.1 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式 n一般形式為:一般形式為:變量變量 = 表達(dá)式表達(dá)式 n說明n賦值運(yùn)算符的優(yōu)先級(jí)僅高于僅高于逗號(hào)運(yùn)算符,賦值表達(dá)式的求解過程為:先計(jì)算賦值運(yùn)算符右邊的表達(dá)式的值,再將計(jì)算的值賦給運(yùn)算符左邊的變量。n賦值運(yùn)算符具有計(jì)算和賦值計(jì)算和賦值的雙重功能。3.7 賦值運(yùn)算賦值運(yùn)算 3.7.2 復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算 n在賦值運(yùn)算符之前加上其
14、它運(yùn)算符可以構(gòu)成復(fù)合在賦值運(yùn)算符之前加上其它運(yùn)算符可以構(gòu)成復(fù)合賦值運(yùn)算符賦值運(yùn)算符 n一般形式如下:+=a+ =b等價(jià)于a=a+b-=a-=b等價(jià)于a=a-b*= a*=b等價(jià)于a=a*b/=a/=b等價(jià)于a=a/b%=a%=b 等價(jià)于a=a%b=a=b等價(jià)于a=a=a=b等價(jià)于a=ab&=a&=b等價(jià)于a=a&b=a=b等價(jià)于a=ab|=a|=b等價(jià)于a=a|b本章習(xí)題:1. 已知有定義:char ch;則下面賦值正確的有哪些:ch=X 對(duì)ch=55錯(cuò)ch=M 錯(cuò)ch=55錯(cuò)ch=55對(duì)本章習(xí)題:1. 已知有定義:char ch;則下面賦值正確的有哪些:ch=X 對(duì)ch=55錯(cuò)ch=M 錯(cuò)ch=55錯(cuò)ch=55對(duì)8. 給出下面程序的運(yùn)行結(jié)果給出下面程序的運(yùn)行結(jié)果(1)int x=0 x100100;char *p=(char *)&x;*p=A;等價(jià)于等價(jià)于*p=0 x41p=p+2;*p=50;等價(jià)于等價(jià)于*p=0 x32printf(%xn,x);00410110 3200低字節(jié)低字節(jié)高字節(jié)高字節(jié)pa 即61pb 即62c 即63d 即64低字節(jié)低字節(jié)高字節(jié)高字節(jié)e 即65f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽航空職業(yè)技術(shù)學(xué)院《工業(yè)水處理設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江旅游職業(yè)學(xué)院《教師職業(yè)道德規(guī)范與教育法規(guī)》2023-2024學(xué)年第二學(xué)期期末試卷
- 畢節(jié)幼兒師范高等??茖W(xué)校《柔性可穿戴技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 石河子工程職業(yè)技術(shù)學(xué)院《導(dǎo)游基礎(chǔ)知識(shí)應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 福建農(nóng)林大學(xué)《液壓與氣壓傳動(dòng)B》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州黔南科技學(xué)院《電子商務(wù)B》2023-2024學(xué)年第二學(xué)期期末試卷
- 中原工學(xué)院《微型計(jì)算機(jī)技術(shù)與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 泰州2025年江蘇泰州市人民醫(yī)院招聘42人筆試歷年參考題庫附帶答案詳解
- 武漢外語外事職業(yè)學(xué)院《工程測量學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 太陽能采暖系統(tǒng)項(xiàng)目效益評(píng)估報(bào)告
- 智慧教育 云平臺(tái)建設(shè)方案
- 精雕JDPaint快捷鍵大全
- 燈泡貫流式機(jī)組基本知識(shí)培訓(xùn)ppt課件
- 小學(xué)數(shù)學(xué)四年級(jí)下冊培優(yōu)補(bǔ)差記錄
- 人教版三年級(jí)下冊體育與健康教案(全冊教學(xué)設(shè)計(jì))
- DB61∕T 5006-2021 人民防空工程標(biāo)識(shí)標(biāo)準(zhǔn)
- 土壤學(xué)習(xí)題與答案
- 產(chǎn)品結(jié)構(gòu)設(shè)計(jì)(課堂PPT)
- 第九課_靜止的生命
- 尖尖的東西我不碰(課堂PPT)
- 工程勘察和設(shè)計(jì)承攬業(yè)務(wù)的范圍
評(píng)論
0/150
提交評(píng)論