基本數(shù)據(jù)類型和表達(dá)式.ppt
《基本數(shù)據(jù)類型和表達(dá)式.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《基本數(shù)據(jù)類型和表達(dá)式.ppt(43頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第3章基本數(shù)據(jù)類型和表達(dá)式,在第二章中,我們從總體上介紹了一個(gè)C程序的基本結(jié)構(gòu),使讀者對(duì)C程序有了大概的了解。本章將詳細(xì)介紹C語言程序中使用的基本語法單位、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式。,3.1基本語法單位,任何一種語言都會(huì)根據(jù)自身的特點(diǎn)規(guī)定它自己特定的一套基本符號(hào)。例如,英語的基本符號(hào)是26個(gè)英文字母和一些標(biāo)點(diǎn)符號(hào)。C語言作為一種程序設(shè)計(jì)語言,也有它的基本符號(hào),程序就是由這些基本符號(hào)組成的。,3.1.1基本符號(hào),程序中要對(duì)各種變量和各種函數(shù)起名,這些變量名、函數(shù)名都是由語言的基本符號(hào)組成的。C的基本符號(hào)包括:(1)數(shù)字10個(gè)(0~9);(2)英文字母大小寫各26個(gè)(A~Z,a~z);(3)特殊符號(hào),主要用來表示運(yùn)算符,它通常是由1~2個(gè)特殊符號(hào)組成。包括:+—*/%>===!=這里的type必須是有效的C數(shù)據(jù)類型,variable_list(變量表)可以由一個(gè)或多個(gè)由逗號(hào)分隔的多個(gè)標(biāo)識(shí)符名構(gòu)成。例如:inti,j,l;//定義三個(gè)整型變量i,j,l,3.3.2變量,1.整型變量main(){inta,b,c,d;/*指定a,b,c,d為整型變量*/unsignedu;/*指定u為無符號(hào)整型變量*/a=22;b=-11;u=5;c=a+u;d=b+u;printf("a+u=%d,b+u=%d\n”,c,d);}運(yùn)行結(jié)果為:a+u=27,b+u=-6可以看到不同類型的整型數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算。在本例中是int型數(shù)據(jù)與unsingnedint型數(shù)據(jù)進(jìn)行相加減運(yùn)算。,2.實(shí)型變量實(shí)型變量分為單精度(float型)和雙精度(double型)。如:floatx,y;/*指定x,y為單精度實(shí)數(shù)*/doublez;/*指定z為雙精度實(shí)數(shù)*/在一般系統(tǒng)中,一個(gè)float型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié)(32位),一個(gè)double型數(shù)據(jù)占8個(gè)字節(jié)(64位)。單精度實(shí)數(shù)提供7位有效數(shù)字,雙精度提供15~16位有效數(shù)字,數(shù)值的范圍隨機(jī)器系統(tǒng)而異。值得注意的是,實(shí)型常量是double型,當(dāng)把一個(gè)實(shí)型常量賦給一個(gè)float型變量時(shí),系統(tǒng)會(huì)截取相應(yīng)的有效位數(shù)。,3.字符變量字符變量用來存放字符變量,注意只能存放一個(gè)字符,不要以為在一個(gè)字符變量中可以放字符串。字符變量的定義形式如下:charc1,c2;它表示c1和c2為字符變量,各放一個(gè)字符。因此可以用下面語句對(duì)c1、c2賦值:c1=a;c2=b;,3.3.3變量的初始化,變量的初始化是指在定義變量的同時(shí),給變量賦以初值,使某些變量在程序開始執(zhí)行時(shí)就具有確定的值。其形式為:=;例如:charc=’A’,ky=‘K’;/*字符型變量c、ky初值分別為’A’、’K’*/intj,i=1;/*整型變量i初值為1,j沒有賦初值*/floatsum=3.56;/*單精度變量sum初值為3.56*/如果對(duì)幾個(gè)變量賦以相同的初值,不能寫成:inta=b=c=3;而應(yīng)寫成:inta=3,b=3,c=3;,3.4表達(dá)式和運(yùn)算符,表達(dá)式是由操作數(shù)和運(yùn)算符組成,運(yùn)算結(jié)果產(chǎn)生一個(gè)確定的值。操作數(shù)可以是常量、變量、函數(shù)和表達(dá)式,每個(gè)操作數(shù)都具有一種數(shù)據(jù)類型,通過運(yùn)算得到的結(jié)果也具有一種數(shù)據(jù)類型,結(jié)果的數(shù)據(jù)類型與操作數(shù)的數(shù)據(jù)類型可能相同,也可能不相同。運(yùn)算符指出了表達(dá)式中的操作數(shù)如何運(yùn)算。C語言中,共有44種運(yùn)算符,根據(jù)各運(yùn)算符在表達(dá)式中的作用,表達(dá)式大致可以分成:算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、條件表達(dá)式、賦值表達(dá)式和逗號(hào)表達(dá)式等。,3.4.1算術(shù)運(yùn)算符,表3.4算術(shù)運(yùn)算符下面是算術(shù)運(yùn)算符的優(yōu)先級(jí):最高++、---(單目運(yùn)算符取負(fù)號(hào))*、/、%最低+、-,當(dāng)“/”被用于整數(shù)或字符時(shí),結(jié)果取整。模運(yùn)算取整數(shù)除法的余數(shù),所以“%”不能用于float和double類型。自增或自減運(yùn)算符在操作數(shù)之前(++x,--x),C語言在引用操作數(shù)之前就先執(zhí)行加1或減1操作;運(yùn)算符在操作數(shù)之后(x++,x--),C語言就先引用操作數(shù)的值,而后再進(jìn)行加1或減1操作。編譯程序?qū)ν?jí)運(yùn)算符按從左到右的順序進(jìn)行計(jì)算。而++和--的結(jié)合方向是“自右向左”。如-i++,它相當(dāng)于:-(i++)。,注:,3.4.2賦值運(yùn)算符,賦值運(yùn)算符分簡(jiǎn)單的賦值運(yùn)算符和復(fù)合的賦值運(yùn)算兩種。簡(jiǎn)單的賦值運(yùn)算的一般形式是:其中,“=”號(hào)是賦值運(yùn)算符。其作用是將一個(gè)表達(dá)式的值賦給一個(gè)變量,同時(shí)該值作為賦值表達(dá)式的結(jié)果。例如:▲a=b=c=d=0;相當(dāng)于:a=(b=(c=(d=0)));▲floatf;f=23;/*先將23轉(zhuǎn)換成23.00000,再存儲(chǔ)在f中*/▲inti;i=3.56;/*變量i的值為3*/,=,在簡(jiǎn)單賦值運(yùn)算符“=”之前加上其他運(yùn)算符,就構(gòu)成了復(fù)合賦值運(yùn)算符。(1)復(fù)合運(yùn)算符相當(dāng)于兩個(gè)運(yùn)算符的結(jié)合。例如:a+=b相當(dāng)于a=a+b,但并不等價(jià)。(2)在復(fù)合賦值運(yùn)算中,對(duì)于賦值號(hào)右邊是復(fù)雜的表達(dá)式時(shí),例如:x*=y+10–z相當(dāng)于x=x*(y+10–z)而不是x=x*y+10–z,即將右端表達(dá)式看作一個(gè)整體和x進(jìn)行有關(guān)運(yùn)算。用賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子稱為“賦值表達(dá)式”。它的一般形式為:賦值表達(dá)式也可以包含復(fù)合的賦值運(yùn)算符。例:設(shè)a的初值為8,表達(dá)式:a+=a-=a*a也是一個(gè)賦值表達(dá)式,根據(jù)優(yōu)先級(jí)和結(jié)合性,此賦值表達(dá)式的求解過程為:?。┫冗M(jìn)行“a-=a*a”的運(yùn)算,它相當(dāng)于a=a–a*a=8–8*8=-56;ⅱ)再進(jìn)行“a+=-56”,的運(yùn)算,相當(dāng)于a=a+(-56)=-56–56=-112。,,3.4.3關(guān)系運(yùn)算符,關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種。所謂“關(guān)系運(yùn)算”實(shí)際上是“比較運(yùn)算”。將兩個(gè)值進(jìn)行比較,判斷比較的結(jié)果是否符合給定的條件。例如,a>3是一個(gè)關(guān)系表達(dá)式,大于號(hào)“>”是一個(gè)關(guān)系運(yùn)算符,如果a的值為5,則滿足給定的條件“a>3”,因此該表達(dá)式的值為“真”(即“條件滿足”);如果a的值為2,不滿足“a>3”條件,則稱關(guān)系表達(dá)式的值為“假”。C語言提供6種關(guān)系運(yùn)算符,見表3.5。,3.4.3關(guān)系運(yùn)算符,表3.5關(guān)系運(yùn)算符說明:①參加比較的數(shù)據(jù)可以是字符型、整型和浮點(diǎn)型數(shù)據(jù)。②前4種關(guān)系運(yùn)算符(、>=)的優(yōu)先級(jí)相同,后兩種優(yōu)先級(jí)相同。前四種高于后兩種。例如:“>”優(yōu)先于“==”。而“>”與“3”(因?yàn)殛P(guān)系運(yùn)算符優(yōu)先于&&)。在關(guān)系運(yùn)算符兩側(cè)的5和3作為數(shù)值參加關(guān)系運(yùn)算,“5>3”的值為1,在進(jìn)行“1&&2”的運(yùn)算,此時(shí)1和2均是邏輯運(yùn)算的對(duì)象,均作為“真”處理,因此結(jié)果為1。再往下進(jìn)行“1||8<4-!0”的運(yùn)算。根據(jù)優(yōu)先次序,先進(jìn)行“!0”運(yùn)算,結(jié)果為1,因此,要運(yùn)算的表達(dá)式變成:“1||8<4-1”,即“1||8<3”,關(guān)系運(yùn)算符“<”兩側(cè)的8和3作為數(shù)值參加比較,“83&&2||8<4-!0,3.4.5位運(yùn)算符,位運(yùn)算是指按二進(jìn)制進(jìn)行的運(yùn)算。在系統(tǒng)軟件中,常常需要處理二進(jìn)制位的問題。C語言提供了6個(gè)位操作運(yùn)算符。這些運(yùn)算符只能用于整型操作數(shù),即只能用于帶符號(hào)或無符號(hào)的char,short,int與long類型。表3.8為C語言提供的位運(yùn)算符列表:表3.8位運(yùn)算符表,3.4.6逗號(hào)運(yùn)算符,C語言提供一種特殊的運(yùn)算符一逗號(hào)運(yùn)算符。用逗號(hào)將若干個(gè)表達(dá)式連接起來。如:3+5,6+8,稱為逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的一般形式為:逗號(hào)表達(dá)式的求解過程是:先求解表達(dá)式1,再求解表達(dá)式2,直到求解完表達(dá)式n,最后一個(gè)逗號(hào)表達(dá)式的值是整個(gè)逗號(hào)表達(dá)式的值。逗號(hào)運(yùn)算符又稱為“順序求解運(yùn)算符”。逗號(hào)運(yùn)算符是所有運(yùn)算符中級(jí)別最低的。因此,下面兩個(gè)表達(dá)式的作用是不同:①x=(a=3,6*3)②x=a=3,6*3表達(dá)式①是一個(gè)賦值表達(dá)式,將一個(gè)逗號(hào)表達(dá)式的值賦給x,x的值為18。表達(dá)式②相當(dāng)于“x=(a=3),6*3”,是一個(gè)逗號(hào)表達(dá)式,它包括一個(gè)賦值表達(dá)式和一個(gè)算術(shù)表達(dá)式,x的值為3。,,,,…,3.4.7條件運(yùn)算符,C語言提供了一個(gè)可以代替某些條件語句的條件運(yùn)算符。條件運(yùn)算符要求有三個(gè)操作對(duì)象,稱三目運(yùn)算符,它是C語言中唯一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為:說明:(1)條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。(2)條件運(yùn)算符優(yōu)先于賦值運(yùn)算符(3)條件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆?。?)通常用條件表達(dá)式取代簡(jiǎn)單的條件語句,表達(dá)式1?表達(dá)式2:表達(dá)式3,Operatorprecedenceandassociativity,3.5各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,在C語言中,允許不同類型的數(shù)據(jù)之間進(jìn)行某些混合運(yùn)算,如整型、單精度型、雙精度型、字符型數(shù)據(jù)之間進(jìn)行混合運(yùn)算。,例:假設(shè)i為int型,f為float型變量。運(yùn)算表達(dá)式:10+‘a(chǎn)’+i*f,運(yùn)算次序依次為:1)進(jìn)行10+‘a(chǎn)’的運(yùn)算,‘a(chǎn)’自動(dòng)轉(zhuǎn)換成整型97,然后執(zhí)行相加,結(jié)果為整型值107。2)進(jìn)行i*f的運(yùn)算,首先f自動(dòng)轉(zhuǎn)換成面double型,然后把int型的i轉(zhuǎn)換成double型,兩個(gè)double型數(shù)據(jù)進(jìn)行算術(shù)乘,結(jié)果是double型。3)整型值107與i*f的積相加。由于i*f的值是double型,先將整型數(shù)107轉(zhuǎn)換成double型,然后再相加,結(jié)果為double型。,圖3.2數(shù)據(jù)類型轉(zhuǎn)換,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基本 數(shù)據(jù)類型 表達(dá)式
鏈接地址:http://www.3dchina-expo.com/p-11497507.html