C語(yǔ)言第2章C語(yǔ)言的基本數(shù)據(jù)類型與表達(dá)式.ppt
《C語(yǔ)言第2章C語(yǔ)言的基本數(shù)據(jù)類型與表達(dá)式.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言第2章C語(yǔ)言的基本數(shù)據(jù)類型與表達(dá)式.ppt(55頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第2章C語(yǔ)言的基本數(shù)據(jù)類型與表達(dá)式,2.1C語(yǔ)言的基本數(shù)據(jù)類型2.2常量與變量2.3運(yùn)算符與表達(dá)式2.4數(shù)據(jù)類型轉(zhuǎn)換,教學(xué)目的和基本要求:,要求學(xué)生清楚數(shù)據(jù)類型與變量、常量的關(guān)系,掌握各種常量的性質(zhì)和定義,掌握表達(dá)式中各種運(yùn)算符的功能和特點(diǎn),明白產(chǎn)生副作用的原因,了解數(shù)據(jù)類型的相互轉(zhuǎn)換規(guī)則。,教學(xué)重點(diǎn):,數(shù)據(jù)類型、常量定義,運(yùn)算符與表達(dá)式。,存取數(shù)據(jù)必須先確定數(shù)據(jù)的編碼方式、存儲(chǔ)格式和所占的存儲(chǔ)長(zhǎng)度,C語(yǔ)言中把這三者結(jié)合起來(lái),給出幾種固定的形式,這些形式就是最基本的數(shù)據(jù)類型。,2.1C語(yǔ)言的基本數(shù)據(jù)類型,為什么要設(shè)置數(shù)據(jù)類型?,在計(jì)算機(jī)中使用一定長(zhǎng)度的存儲(chǔ)單元(通常是字節(jié)的倍數(shù))來(lái)存儲(chǔ)數(shù)據(jù)。,存儲(chǔ)的編碼方式有:原碼、反碼、補(bǔ)碼、ASCII碼……存儲(chǔ)的存儲(chǔ)格式有:定點(diǎn)型、浮點(diǎn)型……,其中,用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)單元的長(zhǎng)度決定了數(shù)據(jù)取值范圍的大小。,例如:,【例2.1】計(jì)算圓的面積,半徑為5cm。程序如下:,main(){floatr,area;r=5;area=3.14*r*r;printf("%f\n",area);},運(yùn)算結(jié)果是輸出圓的面積:78.500000,程序中用到的數(shù)據(jù):r、area、5、3.14對(duì)數(shù)據(jù)進(jìn)行的運(yùn)算:*、=,例jc2_1,分析:,計(jì)算機(jī)操作處理時(shí),要完成以下工作:在內(nèi)存中給半徑r和運(yùn)算結(jié)果area開(kāi)辟存儲(chǔ)空間,存放它們的值。應(yīng)該留多大的地方來(lái)存放它們的值?數(shù)據(jù)5和3.14與r、area不同,它們是在編寫程序時(shí)就給出確定的值,在運(yùn)算過(guò)程中不會(huì)改變。這樣的數(shù)計(jì)算機(jī)怎么處理?對(duì)整數(shù)5和小數(shù)3.14,計(jì)算機(jī)存放時(shí)是否有區(qū)別?,涉及數(shù)據(jù)類型的基本知識(shí),字符型(char)整型(int,short,long,unsigned,longlong)單精度型(float)實(shí)型雙精度型(double)長(zhǎng)雙精度(longlong_comple)枚舉類型(enum)數(shù)組類型([])構(gòu)造類型結(jié)構(gòu)體類型(struct)共用體類型(union)指針類型(*)空類型(void),一、數(shù)據(jù)類型概述,本章討論基本類型數(shù)據(jù),變量:指以標(biāo)識(shí)符為名字,其值可以改變的量。,在學(xué)習(xí)各種數(shù)據(jù)類型之前,我們先簡(jiǎn)單了解一下常量和變量的概念。后面的章節(jié)中將會(huì)詳細(xì)介紹。,常量:指在程序運(yùn)行中,其數(shù)值不能被改變的量。,變量代表計(jì)算機(jī)內(nèi)存中的某一存儲(chǔ)空間,變量的類型決定了該存儲(chǔ)空間的長(zhǎng)度和其中存放數(shù)據(jù)的編碼方式及存儲(chǔ)格式。變量的類型也決定了該存儲(chǔ)空間中存放數(shù)據(jù)的數(shù)據(jù)形式和取值范圍。,*八進(jìn)制的數(shù)碼范圍為0~7;018?*十六進(jìn)制的數(shù)碼除了數(shù)字0~9外,還使用英文字母a~f(或A~F)表示10~15。如:0 x1e√*整型數(shù)據(jù)均以二進(jìn)制補(bǔ)碼形式存儲(chǔ),,注意!,二、整型(采用定點(diǎn)整數(shù)的存儲(chǔ)格式,只能表示純整數(shù)),1、整型常量:,(1)十進(jìn)制形式:與數(shù)學(xué)上的整數(shù)表示相同;例如:12,-100,0(2)八進(jìn)制形式:在數(shù)碼前加數(shù)字0;例如:012=1*81+2*80=10(十進(jìn)制)(3)十六進(jìn)制形式:在數(shù)碼前加0X(數(shù)字0和字母X)。例如:0 x12=1*161+2*160=18(十進(jìn)制),問(wèn)題:為什么要采用補(bǔ)碼?如何表示?,計(jì)算機(jī)中正、負(fù)數(shù)的表示,例如:109=(1101101)2要區(qū)別:+109和-109方法是:將符號(hào)也數(shù)碼化即:正的符號(hào)+用0表示負(fù)的符號(hào)-用1表示,∴計(jì)算機(jī)中的數(shù)表示方法是:符號(hào)位+二進(jìn)制數(shù)值(以8bit為例)+109→+1101101→01101101-109→-1101101→11101101,問(wèn)題:計(jì)算機(jī)計(jì)算復(fù)雜化,例如計(jì)算:(-19)+(+22)10010011+00010110,解決的方法是:使用反碼或補(bǔ)碼的表示方法(按前述表示的編碼稱為原碼),即能將減法一律轉(zhuǎn)換為加法。,需要判斷符號(hào)是否相同:如果相同,結(jié)果符號(hào)不變,并進(jìn)行絕對(duì)值相加如果不同,結(jié)果取絕對(duì)值大的數(shù)的符號(hào),并進(jìn)行絕對(duì)值相減,原碼、反碼和補(bǔ)碼,正數(shù):原碼、反碼、補(bǔ)碼相同符號(hào)位為0,數(shù)值為對(duì)應(yīng)的二進(jìn)制數(shù)。+109,[01101101]原=[01101101]反=[01101101]補(bǔ)負(fù)數(shù):原碼符號(hào)位為1,數(shù)值為絕對(duì)值的二進(jìn)制數(shù)。-109[11101101]原反碼符號(hào)位為1,數(shù)值為絕對(duì)值的二進(jìn)制數(shù)各位變反。-109[10010010]反補(bǔ)碼符號(hào)位為1,數(shù)值為絕對(duì)值的二進(jìn)制數(shù)各位變反加1。-109[10010011]補(bǔ),,,2、整型變量的分類:,根據(jù)數(shù)據(jù)所占的存儲(chǔ)長(zhǎng)度的不同分為:int、short、long、longlong;同樣存儲(chǔ)長(zhǎng)度的數(shù)據(jù)又分unsigned、signed;故可組合出八種類型(參考課本P46)。,3、整型變量的值域:,由機(jī)器中數(shù)據(jù)的存儲(chǔ)長(zhǎng)度決定,思考:inta=20000,b=20000,c;c=a+b;c的值為多少?如果c定義為long型是否能解決問(wèn)題?,注意:C標(biāo)準(zhǔn)沒(méi)有具體規(guī)定各種數(shù)據(jù)類型占用存儲(chǔ)單元的長(zhǎng)度,在不同的編譯系統(tǒng)中規(guī)定不盡相同,如在VC6.0中short為2B,int和long都為四個(gè)字節(jié),注意,,三、實(shí)型,1、常量:(1)十進(jìn)制小數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成;例如:3.4,4.,.3。(2)指數(shù)形式:“十進(jìn)制小數(shù)”+“e(或E)”+“十進(jìn)制數(shù)整數(shù)”。例如:12.5e-6表示12.510-6。,?小數(shù)點(diǎn)不能單獨(dú)出現(xiàn);0.√.0√.??e或E的兩邊必須有數(shù),且其后面必須為整數(shù);如:6E0.2?e5?,實(shí)型數(shù)據(jù)的類型單精度實(shí)型數(shù)據(jù)float,分配4Byte雙精度實(shí)型數(shù)據(jù)double,分配8Byte實(shí)型數(shù)據(jù)的存儲(chǔ),單精度實(shí)型,指數(shù)部分3130(8位)236362(11位)52,小數(shù)部分220510,小數(shù)的符號(hào)位,隱藏“1”,2、實(shí)型變量的分類及值域:,實(shí)型數(shù)據(jù)的類型及規(guī)定,C標(biāo)準(zhǔn)并未具體規(guī)定各種實(shí)型數(shù)據(jù)所占字節(jié)數(shù),也不規(guī)定具體小數(shù)和指數(shù)部分的位數(shù)。一般而言,小數(shù)部分位數(shù)多,數(shù)據(jù)表示的有效數(shù)字多,精度就高;而指數(shù)部分位數(shù)多,則表示的數(shù)據(jù)范圍更大。(參照課本P51說(shuō)明),有效數(shù)字的意義?,字符形式功能\n換行\(zhòng)t橫向跳格\b退格\r回車\\反斜杠字符\’單引號(hào)字符\ddd8進(jìn)制數(shù)表示的ASCII碼對(duì)應(yīng)的字符\xhh16進(jìn)制數(shù)表示的ASCII碼對(duì)應(yīng)的字符,四、字符類型,1、常量:(1)用單引號(hào)括起來(lái)的一個(gè)字符;如:‘A’、‘1’、’?’等。(2)用單引號(hào)括起來(lái)的由反斜杠(\)引導(dǎo)的轉(zhuǎn)義字符。,4、字符串常量:是用一對(duì)雙引號(hào)括起來(lái)的字符序列。注意:每個(gè)字符串的后面都有一個(gè)‘\0’結(jié)束符。如:“SHANGHAI”,“AbcdeFGHijk”,“Howareyou”。,注意,‘\’‘√‘\\‘√‘’‘?‘\‘?‘a(chǎn)’與“a”的區(qū)別。,,例如:字符A的ASCII碼為:65D(十進(jìn)制)=41H(十六進(jìn)制)=101Q(八進(jìn)制)∴字符A可以表示為‘A’、’\x41’、’\101’。,2、字符型變量的分類:char和unsignedchar;,3、值域(字符型可參與數(shù)學(xué)運(yùn)算,也可看成一種一字節(jié)的整型變量)每個(gè)字符型數(shù)據(jù)在內(nèi)存中占一個(gè)字節(jié);包括ASCII字符表中的所有字符(可顯示字符和非顯示字符)。,一、常量、符號(hào)常量及常變量?常量是指在程序運(yùn)行中,其數(shù)值不能被改變的量。?常量又可分為直接常量和符號(hào)常量。,2.2常量與變量,120、-100、0;0120、072;0 xFFFF、0 x1e、0X28AF,0XED4;120L,200L;長(zhǎng)整型常量3.14、-3.1、5.12E-6;a、#、\n、\101;099、12f、0 xg、48EA;019.5、1e-08;實(shí)型常量只能用十進(jìn)制形式表示2.1E10.2、E-6、6.4E+4.8、E9;"changsha"、"+++\\?ab";\、\p、、ab;,1、直接常量:是在程序中直接引用的數(shù)據(jù)。,請(qǐng)判斷這些常量正確與否:,定義形式:#define標(biāo)識(shí)符常量數(shù)據(jù)例如:#definePI3.14159在程序預(yù)處理時(shí),凡是出現(xiàn)標(biāo)識(shí)符PI的地方都將用數(shù)據(jù)3.14159來(lái)替換。如:2*2.3*PI就等價(jià)于2*2.3*3.14159。,?變量是指以標(biāo)識(shí)符為名字,其值可以改變的量。?變量代表計(jì)算機(jī)內(nèi)存中的某一存儲(chǔ)空間,該存儲(chǔ)空間中存放的數(shù)據(jù)就是變量的值。?在同一程序塊中,變量不能被重復(fù)定義。?使用變量時(shí)必須“先定義,后使用”。,2、符號(hào)常量是用標(biāo)識(shí)符來(lái)表示一個(gè)數(shù)據(jù);在程序不能給它賦值。,二、變量,3、常變量(C99中使用)constinta=3;,注意符號(hào)常量和常變量的區(qū)別(課本P42),注意,inta=5,b=3;√inta=b=c=3;?inta,b,c;a=b=c=3;√,,例如:inta,b,c;floatx,y;charc1,c2;或intc1,c2;定義變量就是在內(nèi)存中劃出一塊相應(yīng)類型的存儲(chǔ)空間存放該變量的值。,,main(){intx,y,z,w;/*定義x,y,z,w為整型變量*/unsignedintk;/*定義k為無(wú)符號(hào)整型變量*/x=10;y=-20;k=30;z=x+k;w=y+k;printf(“x+k=%d,y+k=%d\n”,z,w);},例2-2:,程序運(yùn)行結(jié)果為:x+k=40,y+k=10,變量根據(jù)作用域的不同可分為局部變量和全局變量,根據(jù)存儲(chǔ)方式的不同可分為靜態(tài)存儲(chǔ)變量和動(dòng)態(tài)存儲(chǔ)變量,這些我們將在第六章中詳細(xì)介紹。,2.3運(yùn)算符和表達(dá)式,主要內(nèi)容:算術(shù)運(yùn)算符和算術(shù)表達(dá)式賦值運(yùn)算符和賦值表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式位運(yùn)算符和位運(yùn)算表達(dá)式條件運(yùn)算符和條件表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式其他運(yùn)算符及其運(yùn)算,運(yùn)算符的有關(guān)概念,作用:對(duì)運(yùn)算對(duì)象完成規(guī)定的操作運(yùn)算類型:按運(yùn)算對(duì)象分:?jiǎn)文俊㈦p目、三目按功能分:算術(shù)、賦值、關(guān)系、邏輯條件、逗號(hào)、位、其他,運(yùn)算符的優(yōu)先級(jí)和結(jié)合性,優(yōu)先級(jí)指各種運(yùn)算符號(hào)的運(yùn)算優(yōu)先順序例如:算術(shù)運(yùn)算優(yōu)先于關(guān)系運(yùn)算算術(shù)運(yùn)算中先*/后+-,結(jié)合性指運(yùn)算符號(hào)和運(yùn)算對(duì)象的結(jié)合方向分為:從左向右(左結(jié)合)和從右向左(右結(jié)合)例如:算術(shù)運(yùn)算符為左結(jié)合a-b+4賦值運(yùn)算符為右結(jié)合a=b=5(C語(yǔ)言規(guī)定見(jiàn)教材附錄C),本章涉及的運(yùn)算符,+-*/%++--+-=+=-=*=/=%=intb=6,c=3;求解:a*b/c-1.5+’a’+fabs(-5)=?,,,,,,,floata=2.0;intb=6,c=3;a*b/c-1.5+’a’+fabs(-5),,,,,,,,12.0/3,5,4.0-1.5,2.5+97(int),99.5+5,104.5(double),思考inta=1,b=2;表達(dá)式a/b+3的結(jié)果是多少?inta=10000,b=30000;表達(dá)式a+b的結(jié)果是多少?如何修改?,3、自增自減運(yùn)算,++--是單目運(yùn)算符有前綴和后綴兩種形式前綴形式:先自增(自減)再引用;后綴形式:先引用再自增(自減);功能:前綴形式++a等價(jià)于a=a+1--a等價(jià)于a=a–1后綴形式a++等價(jià)于a=a+1a--等價(jià)于a=a–1,表達(dá)式的值會(huì)不同,例如當(dāng)a=5時(shí)⑴++a表達(dá)式的值為6,且a=6⑵a++表達(dá)式的值為5,且a=6⑶b=++a等價(jià)于a=a+1;b=a表達(dá)式的值為6,且a=6,b=6⑷b=a++等價(jià)于b=a;a=a+1表達(dá)式的值為5,且a=6,b=5,說(shuō)明:,++和--的運(yùn)算對(duì)象只能是變量(或運(yùn)算結(jié)果是變量的表達(dá)式),不能是常量(或運(yùn)算結(jié)果是數(shù)值的表達(dá)式)。例如:5++、(a+2)++不合法。具有右結(jié)合性,結(jié)合方向?yàn)閺挠业阶蟆@纾酣Ca++等價(jià)于-(a++)如果有多個(gè)運(yùn)算符連續(xù)出現(xiàn)時(shí),C系統(tǒng)盡可能多的從左到右將字符組合成一個(gè)運(yùn)算符例如:i+++j等價(jià)于(i++)+j-i+++-j等價(jià)于-(i++)+(-j),main(){inta=5;printf("%d%d\n",a,a++);},說(shuō)明(續(xù)):,對(duì)函數(shù)參數(shù)的求值順序:TurboC系統(tǒng)先計(jì)算最右邊的參數(shù)值,再依次計(jì)算左面的參數(shù)值。,【例2.3】有多個(gè)函數(shù)參數(shù)且為同一變量自增的運(yùn)算處理。,輸出結(jié)果:65,運(yùn)行例2.3,說(shuō)明(續(xù)):,【例2.4】有多個(gè)函數(shù)參數(shù)且為同一變量多次自增的運(yùn)算處理。,main(){inta=5;printf("%d%d\n",a,(a++)+(a++));},輸出結(jié)果:711,運(yùn)行例2.4,特殊的:設(shè)i=3,j=4,k=i+++j,k=i=j=,再看幾個(gè)例子:如:設(shè)i=3,k=(i++)+(i++)+(i++)k=i=,9,6,如:設(shè)a=3,b=(a++)+(a++)b=a=,6,5,設(shè)a=3,b=(++a)+(a++)b=a=,8,5,設(shè)a=3,b=(a++)+(++a)b=a=,7,5,設(shè)a=3,b=(++a)+(++a)b=a=,10,5,7,4,4,main(){inta=5,b,c,k;k=a+++(b=a++)+(c=a++);printf("%d%d%d%d\n",a,b,c,k);},main(){inta=5,b,c;printf("%d%d%d%d\n",a,b,c,a+++(b=a++)+(c=a++));},思考!,1、6種關(guān)系運(yùn)算符:=>==!=2、關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將表達(dá)式連接起來(lái)的式子?優(yōu)先級(jí):(=>)>(==!=)?結(jié)合性:自左至右;?表達(dá)式的值:若為真,則結(jié)果為1;若為假,則結(jié)果為0。,3>5值為:32值為:設(shè)x=-2;-3- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語(yǔ)言 基本 數(shù)據(jù)類型 表達(dá)式
鏈接地址:http://kudomayuko.com/p-11495450.html