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

下載本文檔

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

文檔簡介

1、本章學(xué)習(xí)本章學(xué)習(xí)c語言的基礎(chǔ)知識(shí):數(shù)據(jù)類型、語言的基礎(chǔ)知識(shí):數(shù)據(jù)類型、運(yùn)算符與表達(dá)式。運(yùn)算符與表達(dá)式。房間房間內(nèi)存單元內(nèi)存單元房號房號單元地址單元地址預(yù)定房間預(yù)定房間定義變量,定義變量,intint a,b; a,b;入住客人入住客人變量賦值,變量賦值,a=3;a=3;第三章第三章 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式數(shù)據(jù)類型、運(yùn)算符和表達(dá)式掌握掌握c的數(shù)據(jù)類型及其定義方法的數(shù)據(jù)類型及其定義方法-p37掌握掌握c運(yùn)算符種類、運(yùn)算優(yōu)先級、結(jié)合性運(yùn)算符種類、運(yùn)算優(yōu)先級、結(jié)合性-p365掌握不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算掌握不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算-p54掌握掌握c表達(dá)式類型和求值規(guī)則表達(dá)式類型和求值規(guī)則3.1

2、c的數(shù)據(jù)類型的數(shù)據(jù)類型整型字符型實(shí)型(浮點(diǎn)型)枚舉類型單精度型雙精度型數(shù)組類型結(jié)構(gòu)體類型共用體類型構(gòu)造類型基本類型指針類型空類型數(shù)據(jù)類型3.2 常量與變量常量與變量 一、常量一、常量1. 1. 什么是常量?什么是常量?常量是在程序運(yùn)行過程中,其值不能被改變的常量是在程序運(yùn)行過程中,其值不能被改變的量。量。2. 2. 常量的分類?常量的分類?常量常量直接常量直接常量符號常量符號常量: :從其字面形式即可判斷的常量從其字面形式即可判斷的常量。 如如:12:12、3.53.5、aa: :利用一個(gè)標(biāo)識(shí)符代表的常量利用一個(gè)標(biāo)識(shí)符代表的常量。 例例1:(直接常量):(直接常量)main( ) int r;

3、 float l,s; r=10; l=2*3.14159*r; s=3.14159*r*r; printf(“l(fā)=%fn”,l); printf(“s=%fn”,s); 例例2:(符號常量):(符號常量)#define pi 3.14159main( ) int r; float l,s; r=10; l=2*pi*r; s=pi*r*r; printf(“l(fā)=%fn”,l); printf(“s=%fn”,s); 3. 3. 符號常量的特點(diǎn)符號常量的特點(diǎn)符號常量的實(shí)際值易于修改。符號常量的實(shí)際值易于修改。符號常量意義較明確,屬準(zhǔn)常數(shù)。符號常量意義較明確,屬準(zhǔn)常數(shù)。 二、變量二、變量1. 1

4、. 什么是變量?什么是變量?變量是指程序在運(yùn)行過程中,其值會(huì)發(fā)生變量是指程序在運(yùn)行過程中,其值會(huì)發(fā)生改變的量。改變的量。int a;后后 a=4;a=8; ?a 發(fā)生了變發(fā)生了變化化 2.2.變量的屬性變量的屬性變量的屬性:變量名、變量類型、變量值變量的屬性:變量名、變量類型、變量值 變量的定義格式變量的定義格式:變量類型變量類型 變量名變量名如:如: char cup; int a,b,c=10; float x=2,y,z;3.3.變量的使用變量的使用c c語言中,對所有用到的變量作強(qiáng)制定義,即語言中,對所有用到的變量作強(qiáng)制定義,即“先定義,后使用先定義,后使用”。變量名的書寫規(guī)則變量名的

5、書寫規(guī)則:由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。符必須為字母或下劃線。例如:下列標(biāo)識(shí)符中,不合法的變量名有:例如:下列標(biāo)識(shí)符中,不合法的變量名有:m.d.john , 12%gf , 1add , _ce36 ,age&,5thclass, lotus-1-2-3 , cd*ef , float選變量名時(shí),要做到選變量名時(shí),要做到“見名知意見名知意”例如:例如:name st_age sum大小寫字母是兩個(gè)不同的字符,大小寫字母是兩個(gè)不同的字符,c變量名習(xí)慣用小變量名習(xí)慣用小寫字母表示。建議變量名的長度不要超過寫字母表示。

6、建議變量名的長度不要超過8個(gè)字符。個(gè)字符。變量名的含義:變量名的含義:變量名實(shí)際上是一個(gè)符號地址,變量名實(shí)際上是一個(gè)符號地址,代表內(nèi)存單元的地址。代表內(nèi)存單元的地址。3.3 整型數(shù)據(jù)整型數(shù)據(jù)一、整型常量一、整型常量1. 十進(jìn)制整數(shù)。如十進(jìn)制整數(shù)。如123、-456、0,可以為負(fù)數(shù),可以為負(fù)數(shù)2. 八進(jìn)制整數(shù)。以八進(jìn)制整數(shù)。以0開頭,如開頭,如0123表示八進(jìn)表示八進(jìn) 制數(shù)制數(shù)123, 即(即(123)8,等于十進(jìn)制數(shù),等于十進(jìn)制數(shù)83。 即:即: (123)8 = 182+281+380=833. 十六進(jìn)制整數(shù)。以十六進(jìn)制整數(shù)。以0 x開頭,如開頭,如0 x123代表代表 16進(jìn)制數(shù)進(jìn)制數(shù)12

7、3,即,即 (123)16=1162+2161+3160=291 (6c)16=6 161 +12160 =108二、整型變量二、整型變量 (一)整型變量的分類(一)整型變量的分類 基本型:以基本型:以 intint 表示表示 短整型:以短整型:以 short intshort int 或或 shortshort 表示表示 1.1.類型類型 長整型:以長整型:以 long intlong int 或或 longlong 表示表示 (123l(123l、 123l123l) 無符號基本型無符號基本型( (unsigned intunsigned int) ) 無符號型無符號型 無符號短整型無符號

8、短整型( (unsigned shortunsigned short) ) 無符號長整型無符號長整型( (unsigned longunsigned long) )(-3276832767)short int long數(shù)制轉(zhuǎn)換基本概念數(shù)制轉(zhuǎn)換基本概念10進(jìn)制:逢進(jìn)制:逢10進(jìn)進(jìn)1,數(shù)碼,數(shù)碼0 1 2 3 4 5 6 7 8 92進(jìn)制:逢進(jìn)制:逢2進(jìn)進(jìn)1,數(shù)碼,數(shù)碼0、1計(jì)算:計(jì)算:1+1=? 101+111=?8進(jìn)制:逢進(jìn)制:逢8進(jìn)進(jìn)1,數(shù)碼數(shù)碼0 1 2 3 4 5 6 7計(jì)算:計(jì)算:7+2=? 13+17=?16進(jìn)制:逢進(jìn)制:逢16進(jìn)進(jìn)1,數(shù)碼,數(shù)碼0 1 2 3 4 5 6 7 8 9

9、 a b c d e f計(jì)算:計(jì)算:5+6=? a2+51=?10 2進(jìn)制:除進(jìn)制:除2取余。取余。計(jì)算:計(jì)算:8 10 8進(jìn)制:除進(jìn)制:除8取余取余計(jì)算:計(jì)算:8 10 16進(jìn)制:除進(jìn)制:除16取余取余計(jì)算:計(jì)算:18 數(shù)制轉(zhuǎn)換基本概念數(shù)制轉(zhuǎn)換基本概念10進(jìn)制:逢進(jìn)制:逢10進(jìn)進(jìn)1數(shù)碼數(shù)碼0 1 2 3 4 5 6 7 8 9,位權(quán)為,位權(quán)為103 102 101 100故每位的數(shù)為相應(yīng)數(shù)碼故每位的數(shù)為相應(yīng)數(shù)碼*位權(quán),位權(quán),1234為為1*103+2*102 +3*101 +4*100=1234(十進(jìn)制表示)十進(jìn)制表示)2進(jìn)制:逢進(jìn)制:逢2進(jìn)進(jìn)1數(shù)碼數(shù)碼0、1,位權(quán)為,位權(quán)為23 22 21

10、 20故每位的數(shù)為相應(yīng)數(shù)碼故每位的數(shù)為相應(yīng)數(shù)碼*位權(quán),位權(quán),1101為為 1*23+1*22 +0*21 +1*20=13 (十進(jìn)制表示)十進(jìn)制表示)8進(jìn)制:逢進(jìn)制:逢8進(jìn)進(jìn)1數(shù)碼數(shù)碼0 1 2 3 4 5 6 7 ,位權(quán)為,位權(quán)為83 82 81 80故每位的數(shù)為相應(yīng)數(shù)碼故每位的數(shù)為相應(yīng)數(shù)碼*位權(quán),位權(quán),0017為為0*83+0*82 +1*81 +7*80=15(十進(jìn)制表示)(十進(jìn)制表示)16進(jìn)制:逢進(jìn)制:逢16進(jìn)進(jìn)1數(shù)碼數(shù)碼0 1 2 3 4 5 6 7 8 9 a b c d e f故每位的數(shù)為相應(yīng)數(shù)碼故每位的數(shù)為相應(yīng)數(shù)碼*位權(quán),位權(quán),00a3為為0*163+0*162 +10*161

11、 +3*160=163(十進(jìn)制表示)(十進(jìn)制表示)與與2進(jìn)制對應(yīng)進(jìn)制對應(yīng) 000000000000010001001000112001001000102300110110011340100100010045010110101015601101100110670111111011178100010008910011001910 10101010a11 10111011b12 11001100c13 11011101d14 11101110e15 11111111f2.整型數(shù)據(jù)在內(nèi)存中的存放形式(補(bǔ)碼表示法:便于加減運(yùn)算)整型數(shù)據(jù)在內(nèi)存中的存放形式(補(bǔ)碼表示法:便于加減運(yùn)算)int i;i=10;

12、也可用也可用8421法處理法處理10=(1010)2 2102522210余數(shù)0101首位8421法介紹(基本原理:法介紹(基本原理:15=23+22+21+20) | | | | 8 4 2 1如:如:11的的2進(jìn)制進(jìn)制=? 16 的的2進(jìn)制進(jìn)制=?反之,如已知反之,如已知1101是二進(jìn)制數(shù),求是二進(jìn)制數(shù),求10進(jìn)制數(shù)。進(jìn)制數(shù)。二進(jìn)制只有二進(jìn)制只有0、1,為何不出現(xiàn),為何不出現(xiàn)2?逢逢2進(jìn)進(jìn)1八進(jìn)制只有八進(jìn)制只有0 1 2 3 4 5 6 7,逢,逢8進(jìn)進(jìn)1十六進(jìn)制只有十六進(jìn)制只有09,10以后要占兩位,必須用以后要占兩位,必須用abcdef。f是多少?能出現(xiàn)是多少?能出現(xiàn)g嗎?逢嗎?逢16

13、進(jìn)進(jìn)1通用性的轉(zhuǎn)換方法:除通用性的轉(zhuǎn)換方法:除h取余,正向。取余,正向。*權(quán)后相加,反向。權(quán)后相加,反向。思考:用二進(jìn)制進(jìn)行過渡。思考:用二進(jìn)制進(jìn)行過渡。16進(jìn)制對應(yīng)進(jìn)制對應(yīng)4位,位,8進(jìn)制對應(yīng)進(jìn)制對應(yīng)3(17)10=1 0 0 0 1=0001,0001=(11)16(1a)16 =0001,1010=16+8+0+2+0=(26)10八進(jìn)制呢?同樣方法。八進(jìn)制呢?同樣方法。(17)10=16 8 4 2 1 =1 0 0 0 1=010,001=(21)8(17)8 =001,111=8+4+2+1=(15)10 2.整型數(shù)據(jù)在內(nèi)存中的存放形式(補(bǔ)碼表示法:便于加減運(yùn)算)整型數(shù)據(jù)在內(nèi)存中的

14、存放形式(補(bǔ)碼表示法:便于加減運(yùn)算)int i;i=10;也可用也可用8421法處理法處理10=(1010)2 2102522210余數(shù)0101首位0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 00 0 0 0 0 0 0 0 0 0 0 0 1 0 1 01 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 010的原碼取反取反后再加取反后再加1,得-10的補(bǔ)碼10的表示法的表示法,正數(shù)的補(bǔ)碼等于它的原碼正數(shù)的補(bǔ)碼等于它的原碼-10一個(gè)無符號整型變量中可以存放的正數(shù)的范圍比一般整型變量中正數(shù)的范圍擴(kuò)大一倍。只

15、需一般了解。int a; /* 變量a 的數(shù)值范圍: -3276832767 */unsigned int b; /* 變量b的數(shù)值范圍:065535 */0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1符號位數(shù)據(jù)位3276765535(二)整型變量的字長(二)整型變量的字長turbo c:short和 int是2個(gè)字節(jié)、long 是4個(gè)字節(jié)(三(三)整整型數(shù)據(jù)的數(shù)據(jù)范圍型數(shù)據(jù)的數(shù)據(jù)范圍請看請看p43表。表。注意:注意: 整型常量在給整型變量賦值的時(shí)候,整型常量在給整型變量賦值的時(shí)候, 一定要與其數(shù)據(jù)類型相匹配。一定

16、要與其數(shù)據(jù)類型相匹配。 整數(shù)常量后加字母整數(shù)常量后加字母l或或l,則是,則是long 型常量。型常量。 整數(shù)常量后加字母整數(shù)常量后加字母u或或u,則是,則是unsigned int 型常量,無符號性常量不可能為負(fù)數(shù)型常量,無符號性常量不可能為負(fù)數(shù)3.4 實(shí)型數(shù)據(jù)實(shí)型數(shù)據(jù)p45 一、實(shí)型常量(實(shí)數(shù)或者浮點(diǎn)數(shù))一、實(shí)型常量(實(shí)數(shù)或者浮點(diǎn)數(shù))1. 十進(jìn)制數(shù)小數(shù)形式十進(jìn)制數(shù)小數(shù)形式如:如:0.123、123.0、.123、123.、0.0等。等。由整數(shù)、小數(shù)點(diǎn)、小數(shù)三部分組成。(由整數(shù)、小數(shù)點(diǎn)、小數(shù)三部分組成。(必須有小數(shù)點(diǎn)必須有小數(shù)點(diǎn))。)。2. 指數(shù)形式指數(shù)形式如:如:123e3(相當(dāng)于(相當(dāng)于1

17、23x103),或?qū)懗桑?,或?qū)懗?123e3由尾數(shù)、由尾數(shù)、e(或或e)和指數(shù)三部分表示組成和指數(shù)三部分表示組成e或者或者e前面必須有數(shù)字,且前面必須有數(shù)字,且e或者或者e后面的指數(shù)必須為整數(shù)后面的指數(shù)必須為整數(shù) 如:如: e3 2.1e3.5 .e3 e思考:為何錯(cuò)?思考:為何錯(cuò)?二、實(shí)型變量二、實(shí)型變量(一)實(shí)型變量的分類(一)實(shí)型變量的分類c實(shí)型變量分為單精度、雙精度、長雙精度。實(shí)型變量分為單精度、雙精度、長雙精度。float 型型 : 字長字長32位(位(4個(gè)字節(jié))個(gè)字節(jié))double型型 :字長字長64位(位(8個(gè)字節(jié))個(gè)字節(jié))long double型:型:字長字長128位(位(16

18、個(gè)字節(jié))個(gè)字節(jié))(二)實(shí)型變量的定義(二)實(shí)型變量的定義單精度(單精度(float型)型) 如:如: float x , y ;雙精度型(雙精度型(double型)如:型)如:double a=10 , b , c ;例例2.3main() float a; double b; a=1234.111111 ; b= 1234.111111; printf(“a=%f,b=%f”, a,b); 輸出結(jié)果輸出結(jié)果:a=1234.111, b=1234.111111注意:注意: float型的有效位數(shù)達(dá)到型的有效位數(shù)達(dá)到7位位 double型的有效位數(shù)達(dá)到型的有效位數(shù)達(dá)到16位位3.5 字符型數(shù)據(jù)字

19、符型數(shù)據(jù) 一、字符常量一、字符常量1. 單引號括起來的一個(gè)字符:單引號括起來的一個(gè)字符: t , 7 ,! 2. 轉(zhuǎn)義字符轉(zhuǎn)義字符 :指不能用符號直接表示的字符常量。:指不能用符號直接表示的字符常量。將反斜杠(將反斜杠()后面的字符轉(zhuǎn)變成另外的意義。如后面的字符轉(zhuǎn)變成另外的意義。如n中的中的 n 不代表字母不代表字母n而作為而作為“換行換行”符。符。例如:例如: n 換行換行 ,將當(dāng)前位置移到下一行的開頭,將當(dāng)前位置移到下一行的開頭 t 橫向跳格(水平制表,占橫向跳格(水平制表,占8列)列) b 退一格退一格 r 回車,將當(dāng)前位置移到回車,將當(dāng)前位置移到本行的開頭本行的開頭 a 報(bào)警報(bào)警 0

20、空字符空字符 j 代表字符代表字符 j 單撇號字符單撇號字符 雙雙撇號字符撇號字符 ddd 1到到3位八進(jìn)制代表的字符位八進(jìn)制代表的字符-要會(huì)要會(huì)8進(jìn)制進(jìn)制 (165-11710-u) xdd 1到到2位十六進(jìn)制代表的字符位十六進(jìn)制代表的字符-要會(huì)要會(huì)16進(jìn)制進(jìn)制 (x6c-10810-l) 反斜杠(反斜杠(字符)字符)考試考試“n”,出,出n main()printf(12345678901234567890n); printf(c tlanguagsbercn);t跳跳8格格,b退退1格格,r回本回本行頭行頭printf(is tusef165x6c);165是是u,x6c是是l c la

21、nguage is useful二、字符型變量二、字符型變量(一)字符變量的定義形式(一)字符變量的定義形式char c1,c2;(二)字符的長度:(二)字符的長度:1個(gè)字節(jié)個(gè)字節(jié)字符型變量用來存放一個(gè)字符常量。實(shí)際在內(nèi)存字符型變量用來存放一個(gè)字符常量。實(shí)際在內(nèi)存中存放的是該字符的中存放的是該字符的ascii碼值。碼值。 main() int i; char c; i=97; c=a; printf(“i=%c,c=%cn”,i,c); printf(“i=%d,c=%d”,i,c);例:例:輸出結(jié)果:輸出結(jié)果:i=a,c=a i=97,c=97 字符型數(shù)據(jù)和整型數(shù)據(jù)(字符型數(shù)據(jù)和整型數(shù)據(jù)(0

22、255)之間)之間可以通用。可以通用。c=c+2;main() int i=298; printf(“ascii(%d)=%cn”,i,i);例:例:ascii(298)=*(*的的ascii是是298)0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0ascii(42)=*298%256=42 main() char beep=a; printf(“beep=%d%cn”,beep,beep); beep=7還會(huì)有一聲警告音三、字符串常量三、字符串常量 用雙引號括起來的一串字符序列。用雙引號括起來的一串字符序列。 如:如: ascii,7y677 ,8757gjn 要點(diǎn):要點(diǎn):注

23、意:注意:a和和“a”是完全不同的是完全不同的 。 字符串常量必須由雙引號括起。字符串常量必須由雙引號括起。 字符串常量的末尾有一個(gè)字符串常量的末尾有一個(gè)ascii碼為碼為0 的的 字符字符(字符字符0),作為字符串結(jié)束標(biāo)志,作為字符串結(jié)束標(biāo)志。 字符串常量的存儲(chǔ)字符串常量的存儲(chǔ)存儲(chǔ):字符串中的字符依次存儲(chǔ)在內(nèi)存中一塊存儲(chǔ):字符串中的字符依次存儲(chǔ)在內(nèi)存中一塊連續(xù)的區(qū)域內(nèi),并且把空操作字符連續(xù)的區(qū)域內(nèi),并且把空操作字符 0自動(dòng)自動(dòng)附加到字符串的尾部作為字符串的結(jié)束標(biāo)志。附加到字符串的尾部作為字符串的結(jié)束標(biāo)志。故字符個(gè)數(shù)為故字符個(gè)數(shù)為n的字符串在內(nèi)存中應(yīng)占的字符串在內(nèi)存中應(yīng)占n+1個(gè)字個(gè)字節(jié)。后面

24、講字符數(shù)組時(shí)要用到。節(jié)。后面講字符數(shù)組時(shí)要用到。 例:例:c=“china” c h i n a 03.6 運(yùn)算符和表達(dá)式的簡介運(yùn)算符和表達(dá)式的簡介 一、什么是運(yùn)算符和表達(dá)式?一、什么是運(yùn)算符和表達(dá)式? 1 + 2運(yùn)算符運(yùn)算符運(yùn)算量運(yùn)算量運(yùn)算量運(yùn)算量c語言的語言的表達(dá)式表達(dá)式是由常量、變量、調(diào)用函數(shù)通是由常量、變量、調(diào)用函數(shù)通過運(yùn)算符連接起來的式子。過運(yùn)算符連接起來的式子。 二、二、c運(yùn)算符運(yùn)算符 c的運(yùn)算符見的運(yùn)算符見55頁頁按運(yùn)算量的數(shù)量來分,按運(yùn)算量的數(shù)量來分,c語言的運(yùn)算符分為單目語言的運(yùn)算符分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。如:如:+ 單目運(yùn)算符

25、單目運(yùn)算符例:例:i+ + 雙目運(yùn)算符雙目運(yùn)算符例:例:a+b ? : 三目運(yùn)算符三目運(yùn)算符例:例:a?c:d三、三、c表達(dá)式表達(dá)式 c語言使用的基本表達(dá)式有:語言使用的基本表達(dá)式有: 賦值表達(dá)式,如:賦值表達(dá)式,如:a=3 算術(shù)表達(dá)式,如:算術(shù)表達(dá)式,如:3+4*2 關(guān)系表達(dá)式,如:關(guān)系表達(dá)式,如:32 邏輯表達(dá)式,如:邏輯表達(dá)式,如:35&a=b 條件表達(dá)式,如:條件表達(dá)式,如:ab?a:b 逗號表達(dá)式,如:逗號表達(dá)式,如:a=3,b=4,c=5四、表達(dá)式的求值規(guī)則四、表達(dá)式的求值規(guī)則 1. 在有多個(gè)運(yùn)算符的表達(dá)式中,按照運(yùn)算符優(yōu)先在有多個(gè)運(yùn)算符的表達(dá)式中,按照運(yùn)算符優(yōu)先級的高低進(jìn)行運(yùn)算。

26、(級的高低進(jìn)行運(yùn)算。(優(yōu)先級見附錄優(yōu)先級見附錄365頁頁)2. 對于優(yōu)先級相同的表達(dá)式中,按照運(yùn)算符的結(jié)對于優(yōu)先級相同的表達(dá)式中,按照運(yùn)算符的結(jié)合性來確定運(yùn)算的次序。合性來確定運(yùn)算的次序。 a=b+d/3*83.7 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式p551、基本的算術(shù)運(yùn)算符:、基本的算術(shù)運(yùn)算符: + - (求正與求負(fù))(求正與求負(fù)) * / % (乘、除、求余)(乘、除、求余) + - (加與減)(加與減)說明:說明: a=-b;(1)在)在“”運(yùn)算中,若操作數(shù)均為整數(shù),則執(zhí)行整除運(yùn)算中,若操作數(shù)均為整數(shù),則執(zhí)行整除運(yùn)算,舍去小數(shù)部分。例如:運(yùn)算,舍去小數(shù)部分。例如:5/3=1(2

27、)“”要求兩側(cè)均為整數(shù),要求兩側(cè)均為整數(shù),“”運(yùn)算不能用于運(yùn)算不能用于float 和和 double型數(shù)據(jù)型數(shù)據(jù)例如:例如:22、 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 一、運(yùn)算過程:一、運(yùn)算過程: 先自動(dòng)轉(zhuǎn)換成同類數(shù)據(jù),再進(jìn)行運(yùn)算。先自動(dòng)轉(zhuǎn)換成同類數(shù)據(jù),再進(jìn)行運(yùn)算。 二、轉(zhuǎn)換規(guī)則:二、轉(zhuǎn)換規(guī)則: 低字長類型轉(zhuǎn)換成高字長類型。低字長類型轉(zhuǎn)換成高字長類型。doublefloat long unsigned intchar,short向左的橫向箭頭表示即使在向左的橫向箭頭表示即使在同一種數(shù)據(jù)類型間進(jìn)行運(yùn)算時(shí)同一種數(shù)據(jù)類型間進(jìn)行運(yùn)算時(shí)也要進(jìn)行轉(zhuǎn)換。用于提高精度。也要進(jìn)行轉(zhuǎn)換。用于提高

28、精度。向上縱向箭頭表示當(dāng)運(yùn)算對向上縱向箭頭表示當(dāng)運(yùn)算對象類型不同時(shí)的轉(zhuǎn)換方向。象類型不同時(shí)的轉(zhuǎn)換方向。p54例:若有例:若有 int i; float f; double d; long double e;判斷表達(dá)式:判斷表達(dá)式:10 +a +i*f - d/e的類型的類型(a的的ascii是是97)原則:向精度高的看齊。請思考:原則:向精度高的看齊。請思考: 3/4 ? 3.0/4 ? 1/2*15*20 ? 1.0/2*15*20?char 8位,位,int 16位位float 32位,位,double 64位,位,long double 128位位int unsigned int lon

29、g int unsigned long int doubleshort , char float系統(tǒng)自動(dòng)轉(zhuǎn)換系統(tǒng)自動(dòng)轉(zhuǎn)換3、強(qiáng)制類型轉(zhuǎn)換運(yùn)算符、強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 一般形式一般形式:(類型名):(類型名)(表達(dá)式)表達(dá)式)例如:例如:(double) a+b; (int) (x+y) 功能功能 把表達(dá)式的的值轉(zhuǎn)換成指定的類型。把表達(dá)式的的值轉(zhuǎn)換成指定的類型。 輸出結(jié)果輸出結(jié)果: x=3.600000, i=3注意:強(qiáng)制類型轉(zhuǎn)換后并不改變原來變量的類型注意:強(qiáng)制類型轉(zhuǎn)換后并不改變原來變量的類型請看下面程序段請看下面程序段:main( ) float x,y;int i,j,k;x=3.6;i=(

30、int)x; j=(int)x+5; k=(int)(x+3.6);printf(“x=%f, i=%d”,x,i);3.8 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式 p59一、賦值運(yùn)算符一、賦值運(yùn)算符“=”賦值表達(dá)式的格式賦值表達(dá)式的格式 = 如:如:num=5+3功能功能:將該運(yùn)算符右側(cè)表達(dá)式的值賦給:將該運(yùn)算符右側(cè)表達(dá)式的值賦給 左側(cè)變量。左側(cè)變量。要求要求:如果表達(dá)式類型與左邊的變量的類型不:如果表達(dá)式類型與左邊的變量的類型不 匹配,自動(dòng)進(jìn)行類型轉(zhuǎn)換。匹配,自動(dòng)進(jìn)行類型轉(zhuǎn)換。結(jié)合方向結(jié)合方向(自右向左)自右向左)p365: x=y=a+b 等價(jià)等價(jià) x=(y=a+b)復(fù)合運(yùn)算符復(fù)合

31、運(yùn)算符: 在賦值符在賦值符“=”之前加上其他運(yùn)算符,可以構(gòu)成復(fù)之前加上其他運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。合的運(yùn)算符。復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符優(yōu)點(diǎn):書寫簡潔優(yōu)點(diǎn):書寫簡潔如:如: a+=3 等價(jià)于等價(jià)于 a=a+3 x*=y+8 等價(jià)于等價(jià)于 x=x*(y+8) x%=3 等價(jià)于等價(jià)于 x=x%3 常見復(fù)合賦值運(yùn)算符常見復(fù)合賦值運(yùn)算符: +=, =,*=,/=,%=復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算 的功能的功能:與左邊的變量進(jìn)行復(fù)合:與左邊的變量進(jìn)行復(fù)合運(yùn)算后再賦給左邊變量。運(yùn)算后再賦給左邊變量。 例:(賦值運(yùn)算符和復(fù)合賦值運(yùn)算符)例:(賦值運(yùn)算符和復(fù)合賦值運(yùn)算符) main( ) int a,b,

32、c; a=b=c=5;從右向左從右向左 a=(b=8)+(c=9); /*a=17*/ a=10; a+=a-=a*a;從右向左從右向左,先先a=a-a*a;賦值運(yùn)算賦值運(yùn)算 的順序的順序:自右向左。:自右向左。 a=-180 運(yùn)算符說明:運(yùn)算符說明:+ + 自增自增, 變量值加變量值加 1 自減自減, 變量值減變量值減 13.9 自增、自減運(yùn)算符自增、自減運(yùn)算符p57i=i+1; i+;i=i-1; i- -; 自增運(yùn)算符的另一種用法自增運(yùn)算符的另一種用法:+ + i、 i 先使先使i的值加的值加(減減)1, 再使用再使用ii + +、 i 在使用在使用i之后之后, 使使i的值加的值加(減減

33、)1記憶:記憶:+ i + (前加前加 i 后加后加) 前加代表:用前加前加代表:用前加后加代表:用后加后加代表:用后加例:例:int i=5 , j;j=+i; j=? i=?j=i+; j=? i=?舉例:舉例: int j,i=3; j=+i; /*j的值為的值為4*/ j=i+; /*j的值為的值為4,然后然后i的值變?yōu)榈闹底優(yōu)? */ j= -i+; /*j的值的值-5,然后,然后i的值變?yōu)榈闹底優(yōu)? */自右向左自右向左 i+; /* i=i+1; i為為7*/ j-; /* i=i-1; */printf(“i=%d”,i+); printf(“i=%d”,+i); 自增、自減運(yùn)算符只能用于變量,不能用自增、自減運(yùn)算符只能用于變量,不能用 于表達(dá)式。于表達(dá)式。 注意:注意: 如:如: (a+b)+ 5+ (-i)+ 使用時(shí),應(yīng)避免歧義性。使用時(shí),應(yīng)避免歧義性。 如:如:i+j ( i+)+j(3)自增、自減運(yùn)算符的結(jié)合方向是自右向左自增、自減運(yùn)算符的結(jié)合方向是自右向左 x= -i+x= -(i+)3.10 逗號運(yùn)算符和逗號表達(dá)式逗號運(yùn)算符和逗號表達(dá)式p65

溫馨提示

  • 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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論