




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基本數(shù)據(jù)類型、運算符及表達式22.1 基本數(shù)據(jù)類型2.1.1 C的數(shù)據(jù)類型C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型 typedef字符類型char枚舉類型enum整 型實型單精度型float雙精度型double數(shù)組結(jié)構(gòu)體struct共用體union短整型short長整型long整型int數(shù)據(jù)類型決定:1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2. 數(shù)據(jù)取值范圍3. 其上可進行的操作3n2.1.2 C的基本數(shù)據(jù)類型基本數(shù)據(jù)類型包括: 整型(int) 、單精度型(float)、 雙精度型(double)和和 字符型(char)修飾符:修飾符: long(長型)、short(短型)、 signed(有符
2、號)和和unsigned(無符號)4類型符號關(guān)鍵字數(shù)的表示范圍所占位數(shù)整型字符型實型有無(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127無unsigned char80255說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機器硬件不同而不同,上表以
3、IBM PC機為例5nshort只能修飾只能修飾int,且且short int 可省略為可省略為 shortnlong 只能修飾只能修飾int和和double,修飾修飾long int 時,可省略為:時,可省略為:longnunsigned 和和signed 只能修飾只能修飾char 和和int;在一般情況下,在一般情況下,char和和int 被默認為被默認為signed 型,實型數(shù)型,實型數(shù)float 和和double 總是總是有符號的,不能用有符號的,不能用unsigned修飾修飾62.2 常 量n定義: 程序運行時其值不能改變的量(即常數(shù))n分類: 整型常量 實型常量 字符常量 字符串常
4、量 符號常量7符號常量n定義一個標識符來代表一個常量 如:用PI代表圓周率,即 3.1415926n方法:用編譯預(yù)處理命令方法:用編譯預(yù)處理命令 #definen定義格式:定義格式: #define 標識符 字符串 標識符和字符串之間用空格隔開 句末不用分號 #define PI 3.1415926 #define PRICE 38.5n優(yōu)點:優(yōu)點: 增加可讀性 增強了可維護性8整型常量(整常數(shù))三種形式:十進制整型常量:由數(shù)字09和正負號表示.如 123,-456,0八進制整型常量:由數(shù)字0開頭,后跟數(shù)字07表示.如0123,011十六進制整型常量:由0 x開頭,后跟09,af,AF表示.
5、如0 x123,0Xff長整型數(shù)據(jù)可用L(l)作后綴。 1234L 5678l 無符號數(shù)據(jù)可用U(u)作后綴。12345U9實型常量由整數(shù)部分和小數(shù)部分組成的,只有十進制方式(1)定點數(shù)形式: 由數(shù)字和小數(shù)點組成。整數(shù)和小數(shù)部分可以省去一個,但不可兩者都省,小數(shù)點不能省。 如:1.234,.123,123.,0.0(2)指數(shù)形式(或稱科學(xué)表示法): 在定點數(shù)形式表示法后加e(或E)和數(shù)字來表示指數(shù)。指數(shù)部分可正可負,但須為整數(shù),字母e( 或E)之前必須有數(shù)字。 如:1.234e3, 12.34e2 合法 而e3,1e2.3,.e3,e 不合法 實型常量的后綴用F(或f)表示單精度型。 后綴用L
6、(或l)表示長雙精度型。 如:0.5e2f表示單精度數(shù),3.6e5L表示長雙精度數(shù)。 10 = = = - ) (3) 邏輯運算符 ( ! & | ) (4) 位運算符 ( & ) (5) 賦值運算符 ( = 復(fù)合賦值運算符 ) (6) 條件運算符 ( ? : ) (7) 逗號運算符 ( , ) (8) 指針運算符 ( * 和和 & ) (9) 求字節(jié)數(shù)運算符 ( sizeof ) (10) 強制類型轉(zhuǎn)換運算符 ( (類型標識符) ) (11) 分量運算符 ( ) (12) 下標運算符 ( ) (13) 其它 ( 如函數(shù)調(diào)用運算符()() )182. 運算符按其連接運算對象的個數(shù)可分為:運算符
7、按其連接運算對象的個數(shù)可分為:(1)單目運算符(僅對一個運算對象進行操作) !、!、+、-、-(取負號)、(取負號)、 (類型標識符)、(類型標識符)、*、&、sizeof()()(2)雙目運算符(該運算符連接兩個運算對象) +、-、*、/、%、=、=、 !=、 、 &、 、 |、 &、|、= 復(fù)合賦值運算符復(fù)合賦值運算符(3)三目運算符(該運算符連接三個運算對象) ? : 例:(例:(ab)?a:b(4)其它 ( ) 193. 優(yōu)先級及結(jié)合性n優(yōu)先級:運算符在表達式中的運算順序。n結(jié)合性:優(yōu)先級相同時,由結(jié)合性確定表達式的計算順序。 分為二類: (1)從左到右:多數(shù)運算符 (2)從右到左:單
8、目、三目和賦值運算符 如:a+b*c 乘法優(yōu)先級高于加法。 該表達式先做b*c,其結(jié)果再與a相加 a+b-c 加法、減法優(yōu)先級相同。 、的結(jié)合性從左向右運算 -5 負號與5結(jié)合202.4.2 算術(shù)運算符與算術(shù)表達式1. 算術(shù)運算符 單目運算符: -(取負)、+(取正) 雙目算術(shù)運算符: +(相加)、-(相減)、*(相乘)、 /(相除)、%(取余數(shù)) 單目運算符的優(yōu)先級要比雙目運算符高 注意: 整數(shù)相除結(jié)果為整數(shù),即只取商的整數(shù)部分 如:3/2 的結(jié)果為1,2/3的結(jié)果為0 % 是取兩整數(shù)相除后余數(shù)的運算符,只適用整數(shù)運算 如:3 % 2 的結(jié)果為1,2 % 3 的結(jié)果為2212. 自增、自減運
9、算符(與)n單目運算符:操作對象只有一個且只能是簡單變量n功能: 取由該運算符構(gòu)成的表達式的值 實現(xiàn)簡單變量(運算對象)自身的加1或減1運算n種類: 前綴 +i, -i (先執(zhí)行i+1 i或i-1 i ,再使用i值) 后綴 i+, i- (先使用i值,再執(zhí)行i+1 i或i-1 i)n說明:+ - 不能用于常量和表達式,如5+,(a+b)+ - 結(jié)合方向: 自右向左 例:j+k; (j+)+k;優(yōu)先級:- + - - * / % - + - 高 低22簡單舉例#include stdio.hvoid main() int a=4,b,c; b=a+; c=+a; printf(%dn%dn,b,
10、c);先執(zhí)行ba(4);再執(zhí)行aa(4)1;先執(zhí)行a=a(5)+1;再執(zhí)行ca(6);運行結(jié)果:運行結(jié)果: 4 623例例2.2 +、- 運算符應(yīng)用舉例運算符應(yīng)用舉例#include stdio.h#include void main()void main() char ch1=A,ch2,ch3; char ch1=A,ch2,ch3; int int i=5, j, k; i=5, j, k; ch2=ch1+; ch2=ch1+; ch3=+ch1; ch3=+ch1; j=i-; j=i-; k=-i; k=-i; printf(ch1=%c, ch2=%c, ch3=%cn,ch1,
11、ch2,ch3); printf(ch1=%c, ch2=%c, ch3=%cn,ch1,ch2,ch3); printf printf(i=%d, j=%d, k=%dn, i, j, ki=%d, j=%d, k=%dn, i, j, k); ; 程序運行結(jié)果:ch1=C, ch2=A, ch3=Cch1=C, ch2=A, ch3=Ci=3, j=5, k=3 i=3, j=5, k=3 243.算術(shù)表達式算術(shù)表達式: 用算術(shù)運算符將運算對象連接起來,符合語法 規(guī)則,并能說明運算過程的式子,稱為算術(shù)表達式。 如: 假設(shè)a,b,c,d,e,f均為整型量, ( a + b * c d / e
12、 ) % f 是一個合法的算術(shù)表達式。 該表達式的求值過程:先括號內(nèi)的乘、除與加、減,然后其括號的結(jié)果再與f做求余運算 該表達式運算結(jié)果的數(shù)據(jù)類型:整型 該表達式中運算符的結(jié)合性:自左至右252.4.3 表達式中數(shù)據(jù)間的混合運算與類型轉(zhuǎn)換 (a+b*c-d/e)%f其中:char a; int b,f; float c,d; double e;上述表達式是否正確?結(jié)果是什么數(shù)據(jù)類型?語言規(guī)定:相同類型數(shù)據(jù)直接進行運算,運算結(jié)果是原數(shù)據(jù)類型不同類型的數(shù)據(jù)先轉(zhuǎn)換成同一類型轉(zhuǎn)換成同一類型,然后才可進行運算兩種轉(zhuǎn)換形式: 隱含轉(zhuǎn)換 強制轉(zhuǎn)換261.數(shù)據(jù)類型的隱含轉(zhuǎn)換n由系統(tǒng)自動完成的,稱為數(shù)據(jù)類型的隱
13、含轉(zhuǎn)換n什么情況下發(fā)生n運算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運算時n賦值轉(zhuǎn)換-把一個值賦給與其類型不同的變量時n輸出轉(zhuǎn)換-輸出時轉(zhuǎn)換成指定的輸出格式n函數(shù)調(diào)用轉(zhuǎn)換-實參與形參類型不一致時轉(zhuǎn)換n運算轉(zhuǎn)換規(guī)則: 類型低的操作數(shù)類型轉(zhuǎn)換成類型高的操作數(shù)類型,即類型低的操作數(shù)類型轉(zhuǎn)換成類型高的操作數(shù)類型,即存儲空間少的轉(zhuǎn)換成存儲單元多的,以保證運算精度存儲空間少的轉(zhuǎn)換成存儲單元多的,以保證運算精度 各種類型的高低順序如圖所示:各種類型的高低順序如圖所示: 27doublefloatlongunsignedintchar,short低高例 char ch; int i; float f; double d;ch/
14、i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例 int i; float f; double d; long l;說明:說明:(1) 轉(zhuǎn)換不按箭頭方向逐步進行,可沒有中間某類型 (2) 類型轉(zhuǎn)換只影響表達式結(jié)果,不改變原變量的類型 (3) 類型轉(zhuǎn)換主要取決于優(yōu)先級,結(jié)合性。282. 數(shù)據(jù)類型的強制轉(zhuǎn)換n將某種數(shù)據(jù)類型采用一定的方式強制的轉(zhuǎn)換為指定的數(shù)據(jù)類型n分為兩種:n顯式強制轉(zhuǎn)換n隱式強制轉(zhuǎn)換29(1) 顯式強
15、制轉(zhuǎn)換 通過通過強制類型轉(zhuǎn)換運算符強制類型轉(zhuǎn)換運算符來實現(xiàn)來實現(xiàn)一般形式:(一般形式:( 類型標識符類型標識符 )()( 表達式表達式 ) 如:如: (int)(a+b*c-d/e)%f (int)(x+y)注意:注意: 強制類型轉(zhuǎn)換形式中的表達式,一定要用括號括起來強制類型轉(zhuǎn)換形式中的表達式,一定要用括號括起來 如:如:(int)(a+b(int)(a+b) /) /* * 將將 a+ba+b的值轉(zhuǎn)換成整型的值轉(zhuǎn)換成整型 * */ / (int)a+b (int)a+b / /* * 將將a a轉(zhuǎn)換成整型再與轉(zhuǎn)換成整型再與b b相加相加* */ / 強制類型轉(zhuǎn)換是一種不安全的轉(zhuǎn)換強制類型轉(zhuǎn)換
16、是一種不安全的轉(zhuǎn)換 強制類型轉(zhuǎn)換的結(jié)果是中間值,原變量類型未被改變強制類型轉(zhuǎn)換的結(jié)果是中間值,原變量類型未被改變例例 void main()void main() float x; float x; int int i; i; x=3.6; x=3.6; i=(int)x i=(int)x; ; printf(“x printf(“x=%f,i=%d”,x,i);=%f,i=%d”,x,i); 結(jié)果:結(jié)果:x=3.600000,i=3x=3.600000,i=3較高類型向較低類型轉(zhuǎn)換時可能發(fā)生較高類型向較低類型轉(zhuǎn)換時可能發(fā)生精度損失問題精度損失問題30(2) 隱式強制轉(zhuǎn)換賦值運算符時函數(shù)有返回
17、值時312.4.4 賦值運算符與賦值表達式1. 賦值運算符及賦值表達式 = 將賦值號右邊表達式結(jié)果送到左邊的變量中 如: x =3; y =(x+2)*3; 注意:注意: (1)賦值表達式先計算賦值運算符右側(cè)表達式,再賦值 (2)賦值運算符的左側(cè)必須是一個變量 如: 3 = x; (x+y)= c+d; /* 均是不合法的賦值語句 */2. 類型轉(zhuǎn)換 左值和右值類型不同,右值類型強制轉(zhuǎn)換為左值類型 如: int a; double b=3.45; a=b;323. 復(fù)合賦值運算符復(fù)合賦值運算符賦值表達式中出現(xiàn)如下形式的語句時: 變量變量 = = 變量變量 運算符運算符 表達式表達式 ; ; 可將上述表達式語句縮寫如下: 變量變量 運算符運算符 = = 表達式表達式; ; x = x + y;x = x + y;x += y;x += y;x = x x = x * * (y + z); (y + z);x x * *= y + z;= y + z; 如:這種+=,*=的運算符稱之為復(fù)合賦值運算符共10種復(fù)合運算符: + =+ =(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉庫機械租賃合同范本
- 凍肉投放合同范本
- 加工制作合同范本門窗
- 產(chǎn)品推廣居間合同范本
- 加盟合同范本奶茶
- 健身收購合同范本
- 出租黃色圍擋合同范例
- 中國國家展覽中心合同范例
- 住宅租賃房屋合同范例
- 2024年溫州鹿城農(nóng)商銀行招聘筆試真題
- 原油電脫鹽電脫水技術(shù)
- 國考斷面水站建設(shè)及運維技術(shù)要求參考
- XE82000--午山風(fēng)電場風(fēng)機定檢作業(yè)指導(dǎo)書
- 前列腺癌臨床路徑(最全版)
- 不吸煙不喝酒課件
- 奧數(shù)知識點 間隔問題
- 簡易旋轉(zhuǎn)倒立擺及控制裝置
- 深圳大學(xué)《數(shù)字信號處理》2009年期末考試試卷A卷
- 冠脈介入治療術(shù)后護理ppt課件
- BMC缺陷以及原因
- 《玉米套種柴胡栽培技術(shù)規(guī)程》
評論
0/150
提交評論