數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式(1).ppt_第1頁(yè)
數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式(1).ppt_第2頁(yè)
數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式(1).ppt_第3頁(yè)
數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式(1).ppt_第4頁(yè)
數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式(1).ppt_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章 數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式,3.1 的數(shù)據(jù)類(lèi)型 數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)的組織形式,語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類(lèi)型形式出現(xiàn)的。,3.2 常量與變量,一、常量和符號(hào)常量 1.常量的定義 常量是程序運(yùn)行過(guò)程中其值不變的數(shù)據(jù)。 2.常量的類(lèi)型 整型常量: 21, 0, -12 實(shí)型常量: 1.2, -3.4 字符常量: a, Z 字符串常量: “Shen Zhen” 3.符號(hào)常量 若程序多處使用某個(gè)常量,可將它定義為符號(hào)常量。此時(shí)可用符號(hào)常量來(lái)替代該常量。,例符號(hào)常量的使用 #define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(“total=%d”,total); 運(yùn)行結(jié)果:total=300,兩點(diǎn)注意: 1、符號(hào)常量的值不能被改變,也不能被再次賦值。 2、符號(hào)常量名一般用大寫(xiě)字母,以便和變量區(qū)分開(kāi)。,使用常量的好處: 1、含義清楚。 2、在需要改變常量時(shí)能做到“一改全改”。,常量定義,二、變量和標(biāo)識(shí)符 1.什么是變量 變量是指在程序運(yùn)行過(guò)程中其值可以發(fā)生變化的量。 每個(gè)變量有一個(gè)名字(或叫做標(biāo)識(shí)符),并在內(nèi)存中占據(jù)一定的存儲(chǔ)單元。,2.標(biāo)識(shí)符 標(biāo)識(shí)符就是一個(gè)名字,它是用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、數(shù)組名等的有效字符序列。 C語(yǔ)言規(guī)定: 標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。 幾點(diǎn)注意: 1、字符區(qū)分大小寫(xiě) 2、不同編譯系統(tǒng)規(guī)定長(zhǎng)度不同 3、變量必須先定義,后使用。,例選出下面合法的變量名。 sum 38abc _0123 P#d Sum Z.Wan month ab,3.變量的定義 一般格式: 類(lèi)型說(shuō)明符 變量名,變量名 幾點(diǎn)說(shuō)明: 1、未定義而使用變量系統(tǒng)編譯出錯(cuò) 2、指定變量的類(lèi)型,以便系統(tǒng)為該變量分配相應(yīng)的存儲(chǔ)空間。 每個(gè)變量都要占用內(nèi)存中連續(xù)若干個(gè)字節(jié),所占用的字節(jié)數(shù)由變量類(lèi)型確定。其中第一個(gè)字節(jié)的地址稱(chēng)為變量的地址。 3、指定變量的類(lèi)型,便于系統(tǒng)檢查變量間運(yùn)算的合法性。,3.3 整型數(shù)據(jù),一、整型常量 整型常量是用來(lái)表示數(shù)學(xué)中整數(shù),包括正整數(shù)、0和負(fù)整數(shù)。 整型常量有三種表示方式: 十進(jìn)制整數(shù): 21, 0, -111 八進(jìn)制整數(shù): 021, 00, -0111 十六進(jìn)制整數(shù):0x21, 0x0, -0x111 整型常量:如,21,234u,011u,0x111 長(zhǎng)整型常量:如,0L,-0111L,0x15L,二、整型變量 1.整型變量的分類(lèi) 基本型:int 短整型:short int/short 長(zhǎng)整型:long int/long 無(wú)符號(hào)型: unsigned int unsigned short unsigned long,C要求:long不短于int; short不長(zhǎng)于int,通常的做法:long定為32位;short定為16位;int兩者都可以。,取值范圍: -32768+32767,取值范圍達(dá)21億,取值范圍: 065535,2.整型變量的定義 強(qiáng)制類(lèi)型定義,即在程序中所有用到的變量必須在程序中先定義。 例 main() int a,b,c,d; unsigned u; /*無(wú)符號(hào)整型*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%dn”,c,d); 運(yùn)行結(jié)果:a+u=22,b+u=-14,3.整型數(shù)據(jù)的溢出 *不同種類(lèi)的整型數(shù)據(jù)可以進(jìn)行運(yùn)算。 *運(yùn)算超出取值范圍時(shí),系統(tǒng)不報(bào)告錯(cuò)誤,而是采用類(lèi)似鐘表一樣的循環(huán)計(jì)數(shù)。 例如:int a=32767,b; b=a+1; 結(jié)果為-32768,而不是+32768. *為避免溢出,應(yīng)掌握較小數(shù)據(jù)類(lèi)型向較大數(shù)據(jù)類(lèi)型賦值的原則。 如,int a=32767; long b; b=a+1L;,注:long的格式輸出符為ld Printf(“%ld”,b);,3.4 浮點(diǎn)型數(shù)據(jù),一、浮點(diǎn)型常量 浮點(diǎn)型常量又稱(chēng)浮點(diǎn)數(shù),就是通常帶小數(shù)點(diǎn)的實(shí)數(shù)。它只使用十進(jìn)制數(shù),其書(shū)寫(xiě)方法有兩種: 十進(jìn)制小數(shù)形式 由整數(shù)、小數(shù)點(diǎn)和小數(shù)三部分組成。 例如:12.345, -1.2345, 47.0 指數(shù)形式 由尾數(shù)、字母e或E和指數(shù)三部分組成 例如:12.345e-2, -1.2345E3, 0.1234E4,規(guī)范化的指數(shù)形式,二、浮點(diǎn)型變量 1.浮點(diǎn)型變量的分類(lèi) 浮點(diǎn)型變量可分為單精度型(float)和雙精度型(double)兩種,每個(gè)浮點(diǎn)型變量都應(yīng)在使用前加以定義。 float x,y double z,2.浮點(diǎn)型數(shù)據(jù)的舍入誤差 由于浮點(diǎn)型變量的有效位數(shù)有限,在有效位數(shù)以外的數(shù)字被舍去,可能會(huì)產(chǎn)生誤差。 例實(shí)型數(shù)據(jù)的舍入誤差。 main() float a,b; a=123456.789e5; b=a+20; printf(“%f”,b); 運(yùn)行結(jié)果:12345678848.000000 (12345678920),3.5 字符型數(shù)據(jù),一、字符常量 字符常量是用兩個(gè)單引號(hào)括起來(lái)的單個(gè)字符,如 a、A、1、%等。 特殊形式的字符常量以一個(gè)“”開(kāi)頭的字符序列,也叫做轉(zhuǎn)義字符。(P48表3-3) 例轉(zhuǎn)義字符的使用 main() printf(“abctderftgn”); printf(“htibbjk”); ,二、字符變量 字符變量用來(lái)存放字符常量。一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié),只能可以存放一個(gè)字符。例如 char c1,c2; c1=a; c2=b; 字符存放在字符變量中,實(shí)際上是將該字符的ASCII代碼放到存儲(chǔ)單元中。因此,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。,例向字符變量賦以整數(shù): main() char c1,c2; c1=97;c2=98; printf(“%c %c”,c1,c2); 運(yùn)行結(jié)果:a b 字符變量以字符或整數(shù)兩種形式輸出: printf(“%c %d %c %d”,c1,c1,c2,c2); 運(yùn)行結(jié)果:a 97 b 98,c1=97 等效于 c1=a,c 效果不同于 d,三、字符串常量 字符串常量是一對(duì)雙引號(hào)括起來(lái)的字符序列,如:“ab”、“China”、“中國(guó)”。 C規(guī)定:在每一個(gè)字符串的結(jié)尾加一個(gè)字符串結(jié)束標(biāo)志“0”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。因此每個(gè)字符串在內(nèi)存中占用的字節(jié)數(shù)=字符串長(zhǎng)度+1。,中,國(guó),在C中,沒(méi)有專(zhuān)門(mén)的字符 串型變量,而是采用字符型 數(shù)組來(lái)實(shí)現(xiàn)。,例字符串和字符常量的使用 main() printf(“字符串的輸出:”); printf(“%s,%sn”,“Computer”,“計(jì)算機(jī)”); printf(“字符常量和字符串的輸出:”); printf(“%c,%sn”,A,”A”); 運(yùn)行結(jié)果: 字符串的輸出:Computer,計(jì)算機(jī) 字符常量和字符串的輸出:A,A,3.6 變量賦初值,程序中常需要對(duì)一些變量預(yù)先設(shè)置初值。C規(guī)定,可以在定義變量的同時(shí)使變量初始化。 int a=3,b=4; float f=12.345; 也可以使定義的變量的一部分賦初值。 int a,b,c=3; int a=3,b,c=3; 初始化不是在編譯階段完成的,而是在程序運(yùn)行時(shí)執(zhí)行本函數(shù)時(shí)賦以初值。,3.7 各類(lèi)數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型、字符型、單精度型和雙精度型數(shù)據(jù)之間可以混合運(yùn)算。例如 10+a+1.5-8765.1234 =-8656.623400 在進(jìn)行運(yùn)算時(shí),不同類(lèi)型的數(shù)據(jù)要先轉(zhuǎn)換成同一類(lèi)型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換規(guī)則是:,表示轉(zhuǎn)換的方向 表示系統(tǒng)內(nèi)部必做的轉(zhuǎn)換,3.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式,一、運(yùn)算符 運(yùn)算符是在描述數(shù)據(jù)處理時(shí)用來(lái)表示各種運(yùn)算的符號(hào)。例如,在描述數(shù)值運(yùn)算時(shí),經(jīng)常用到加(+)減(-)乘(*)除(/)等算術(shù)運(yùn)算符。 運(yùn)算符必須有運(yùn)算對(duì)象。 單目運(yùn)算符:運(yùn)算符的運(yùn)算對(duì)象只有一個(gè) 雙目運(yùn)算符:運(yùn)算符的運(yùn)算對(duì)象有兩個(gè) 三目運(yùn)算符:運(yùn)算符的運(yùn)算對(duì)象有三個(gè) C語(yǔ)言的運(yùn)算符有30多種。,二、基本算術(shù)運(yùn)算符,優(yōu)先級(jí)別規(guī)定:?jiǎn)文窟\(yùn)算符 優(yōu)于 雙目運(yùn)算符 *、/、% 優(yōu)于 +、- (各運(yùn)算符的優(yōu)先級(jí)與結(jié)合性請(qǐng)參看附錄C),三、算術(shù)表達(dá)式 算術(shù)表達(dá)式的類(lèi)型是整型、單精度或雙精度實(shí)型。 例設(shè)a=2,c=a,f=3.0 a+2-a*6/f+c%2 =? (a=f)+5 =? 若運(yùn)算符兩側(cè)的數(shù)據(jù)類(lèi)型不同,先自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換,然后進(jìn)行運(yùn)算。也可以使用強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類(lèi)型 如 (float)a+20 =22.0,1.0,6,四、強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符 可以利用強(qiáng)制轉(zhuǎn)換運(yùn)算符轉(zhuǎn)換變量或表達(dá)式的類(lèi)型。一般形式: (類(lèi)型名)變量名或(表達(dá)式) 例 main() float x;int i; x=32767.0; i=(int)x%3; print(“x=%f,i=%dn”,x,i); 運(yùn)行結(jié)果:x=32767.0,i=1,注意:強(qiáng)制轉(zhuǎn) 換時(shí),得到一個(gè)中 間變量,原來(lái)變量 的類(lèi)型不變。,五、增1減1運(yùn)算符,增1減1運(yùn)算符的優(yōu)先級(jí): 增1減1運(yùn)算符 優(yōu)于 雙目算術(shù)運(yùn)算符 增1減1運(yùn)算符 同級(jí) 單目算術(shù)運(yùn)算符+,- 單目邏輯運(yùn)算符!, 例 i+ 相當(dāng)于 (i+),例設(shè)變量i5,求運(yùn)算結(jié)果 j=i+ j=+i j=i- j=-i i+j i-j,運(yùn)算結(jié)果: j=5,i=6 j=6,i=6 j=5,i=4 j=4,i=4 (i+)+j (i-)-j,“+” “-”運(yùn)算符 需慎用,3.9 賦值運(yùn)算符和賦值表達(dá)式,一、賦值運(yùn)算符 賦值運(yùn)算符的作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量。例如:a=3。,二、類(lèi)型轉(zhuǎn)換 1.實(shí)型數(shù)據(jù)賦值給整型變量,舍棄實(shí)數(shù)的小 數(shù)部分。 如:int i=3.56 (i=3),2.整型數(shù)據(jù)賦給浮點(diǎn)型變量,數(shù)值不變并以浮點(diǎn)數(shù)形式存儲(chǔ)到變量中。如 f=23 (f=23.000000) 3.字符型數(shù)據(jù)賦給整型變量時(shí),將字符數(shù)據(jù)(8位)放到整型變量低8位中。, c=376, c=376,無(wú)符號(hào)變量,有符號(hào)變量,4.將帶符號(hào)的整型數(shù)據(jù)賦給長(zhǎng)整型變量時(shí),要進(jìn)行符號(hào)擴(kuò)展。 5.將無(wú)符號(hào)整型數(shù)據(jù)賦給長(zhǎng)整型變量時(shí),只需將高位補(bǔ)0。,三、復(fù)合的賦值運(yùn)算符 復(fù)合的賦值運(yùn)算符是在賦值符(=)前加上其它運(yùn)算符。例如 a+=3 a=a+3 x*=y+8 x=x*(y+8) 凡是二目運(yùn)算符,都可以與賦值運(yùn)算符一起組合成復(fù)合賦值符。C語(yǔ)言規(guī)定可以使用10種復(fù)合賦值運(yùn)算符。即 +=,-=,*=,/=,%= =, &=, =, |=,四、賦值表達(dá)式 賦值表達(dá)式是由賦值運(yùn)算符

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論