C語(yǔ)言-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式.ppt
《C語(yǔ)言-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式.ppt(41頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式,,,,數(shù)據(jù)類型常量與變量不同類型數(shù)據(jù)間的轉(zhuǎn)換運(yùn)算符和表達(dá)式,,3.1數(shù)據(jù)類型,C數(shù)據(jù)類型,,基本類型,構(gòu)造類型,指針類型,空類型void,定義類型typedef,字符類型char,枚舉類型enum,整型,實(shí)型,,,數(shù)組,結(jié)構(gòu)體struct,共用體union,數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作,基本數(shù)據(jù)類型,整型,字符型,實(shí)型,有,無(wú),說(shuō)明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機(jī)器硬件不同而不同,例:inta,b;unsignedshortc,d;longe,f;unsignedg;,3.2常量與變量標(biāo)識(shí)符定義:用來(lái)標(biāo)識(shí)變量、常量、函數(shù)等的字符序列組成:只能由字母、數(shù)字、下劃線組成,且第一個(gè)字母必須是字母或下劃線區(qū)分大小寫不能使用關(guān)鍵字長(zhǎng)度:最長(zhǎng)32個(gè)字符,一般不要超過(guò)8個(gè)字符命名原則:見(jiàn)名知意不宜混淆o與0,例:判斷下列標(biāo)識(shí)符號(hào)合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123,M.D.John,3days,#33,char,$123,a>b,一般用大寫字母,其值在作用域內(nèi)不能改變是宏定義預(yù)處理命令,不是C語(yǔ)句直接常量:整型常量實(shí)型常量字符常量字符串常量,如#definePRICE30,常量定義:程序運(yùn)行時(shí)其值不能改變的量(即常數(shù))分類:符號(hào)常量:用標(biāo)識(shí)符代表常量定義格式:#define符號(hào)常量常量,>,>,>,>,整型常量(整常數(shù))三種形式:十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號(hào)表示.如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開(kāi)頭,后跟數(shù)字0~7表示.如0123,011十六進(jìn)制整數(shù):由0 x開(kāi)頭,后跟0~9,a~f,A~F表示.如0 x123,0Xff,,main(){printf(“%d\n”,123);},main(){printf(“%d\n”,0123);},main(){printf(“%d\n”,0 x123);},,例12與12L,例30000為int型65536為longint型,,整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型如果其值在-32768?32767范圍內(nèi),認(rèn)為是int型,可以賦值給int型和longint型變量如果其值在-2147483648?2147483647范圍內(nèi),認(rèn)為是長(zhǎng)整型,可以賦值給longint型變量在整常量后加字母u或U,認(rèn)為它是unsignedint型常量在整常量后加字母l或L,認(rèn)為它是longint型常量,例-1u(65535),實(shí)型常量(實(shí)數(shù)或浮點(diǎn)數(shù))表示形式:十進(jìn)制數(shù)形式:(必須有小數(shù)點(diǎn))如0.123,.123,123.0,0.0,123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3,123E2,1.23e4,e-5,1.2E-3.5,規(guī)范化的指數(shù)形式e或E之前的小數(shù)部分中,小數(shù)點(diǎn)左邊只能有一位非零的數(shù)字例:1.23e4,5.68957e+002,實(shí)型常量的類型C編譯系統(tǒng)默認(rèn)將實(shí)型常量作為double型可以在實(shí)型常量后加字母f或F,則會(huì)按float型處理,例d=2.45768*4523.65,例d=2.45768f*4523.65F,字符常量定義:用單引號(hào)括起來(lái)的單個(gè)普通字符或轉(zhuǎn)義字符,字符常量的值:該字符的ASCII碼值,如‘\101’-----------‘A’‘\012’-----------‘\n’‘\376’-----------‘?’‘\x61’-----------‘a(chǎn)’‘\60’-----------‘0’‘\483’----------(?),例:‘A’-------‘\101’-------‘\x41’--------65,如‘A’——65,‘a(chǎn)’——97,‘0’——48,‘\n’——10,如‘a(chǎn)’‘A’‘?’‘\n’‘\101’,轉(zhuǎn)義字符:反斜線后面跟一個(gè)字符或一個(gè)代碼值表示,例轉(zhuǎn)義字符舉例main(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\C\");},運(yùn)行結(jié)果:(屏幕顯示)ABCIsay:”Howareyou?”\CProgram\Turbo‘C’,例main(){printf(“Y\b=\n”);},運(yùn)行結(jié)果:屏幕顯示:=打印機(jī)輸出:,main(){printf("__ab_c\tde\rf\n");printf("hijk\tL\bM\n");},main(){printf("\x4F\x4B\x21\n\n");printf("\x15\xAB\xAC\n\n");printf("\xE\xF\x1\n");},字符常量與字符串常量不同,字符串常量定義:用雙引號(hào)(“”)括起來(lái)的字符序列存儲(chǔ):每個(gè)字符串尾自動(dòng)加一個(gè)‘\0’作為字符串結(jié)束標(biāo)志,變量概念:其值可以改變的量變量名與變量值變量定義的一般格式:數(shù)據(jù)類型變量1[,變量2,…,變量n];,變量初始化:定義時(shí)賦初值,例:inta,b,c;floatdata;,決定分配字節(jié)數(shù)和數(shù)的表示范圍,合法標(biāo)識(shí)符,例:inta=2,b,c=4;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;intx=y=z=1;,變量的使用:先定義,后使用,例1intstudent;stadent=19;//Undefinedsymbol‘statent’infunctionmain,例2floata,b,c;c=a%b;//Illegaluseoffloatingpointinfunctionmain,變量定義位置:一般放在函數(shù)開(kāi)頭,整型變量占字節(jié)數(shù)隨機(jī)器不同而不同,一般占一個(gè)機(jī)器字short≤int≤long,實(shí)型變量float:占4字節(jié),提供7位有效數(shù)字double:占8字節(jié),提供15~16位有效數(shù)字,字符型變量字符變量存放字符ASCII碼char與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算,例floata;a=111111.111;/*a=111111.109375*/doubleb;b=111111.111;/*b=111111.111000*/,例a=‘D’;/*a=68;*/x=‘A’+5;/*x=65+5;*/s=‘!’+‘G’/*s=33+71;*/,沒(méi)有字符串變量,用字符數(shù)組存放,main(){floata,b;a=123456.789e5;b=a+20;printf(“%f”,b);}輸出12345678848.000000,main(){charc1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);}輸出:ab9798,例#definePRICE12.5main(){intnum=3;floattotal;charch1,ch2=‘d’;total=num*PRICE;ch1=ch2-(‘a(chǎn)’-‘A’);printf(“total=%f,ch1=%c\n”,total,ch1);},運(yùn)行結(jié)果:total=37.500000,ch1=D,main(){charch1,ch2,ch3;clrscr();ch1=a;ch2=b;ch3=232;printf("ch1=%c,ch1=%d\n\n",ch1,ch1);printf("ch2=%c,ch2=%d\n\n",ch2,ch2);printf("ch3=%c,ch3=%d\n\n",ch3,ch3);},,Ch3_2.c,3.3變量賦初值先定義變量再賦初值:inta,b;a=3;b=2;定義變量的同時(shí)賦初值:inta=3,b=2;被定義的變量中部分賦初值:inta,b=2;a=3;,3.3變量賦初值注意:,3.4不同類型數(shù)據(jù)間的轉(zhuǎn)換隱式轉(zhuǎn)換什么情況下發(fā)生運(yùn)算轉(zhuǎn)換------不同類型數(shù)據(jù)混合運(yùn)算時(shí)賦值轉(zhuǎn)換------把一個(gè)值賦給與其類型不同的變量時(shí)輸出轉(zhuǎn)換------輸出時(shí)轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換------實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換運(yùn)算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類型,顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)一般形式:(類型名)(表達(dá)式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6說(shuō)明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變,例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}結(jié)果:x=3.600000,i=3,精度損失問(wèn)題,3.5運(yùn)算符和表達(dá)式,學(xué)習(xí)運(yùn)算符應(yīng)注意:運(yùn)算符功能參加運(yùn)算的對(duì)象:運(yùn)算對(duì)象的個(gè)數(shù)運(yùn)算對(duì)象的類型運(yùn)算符優(yōu)先級(jí)別結(jié)合方向結(jié)果的類型,算術(shù)運(yùn)算符和表達(dá)式基本算術(shù)運(yùn)算符:+-*/%結(jié)合方向:從左向右優(yōu)先級(jí):----->*/%----->+-(2)(3)(4)說(shuō)明:“-”為單目運(yùn)算符時(shí),右結(jié)合性兩整數(shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù),例5/2=-5/2.0=,例5%2=-5%2=1%10=5%1=5.5%2,例5/2=2-5/2.0=-2.5,例5%2=1-5%2=-11%10=15%1=05.5%2(?),例7/3=2-7/3=-27/-3=-2“向零取整”,自增、自減運(yùn)算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1),例i=3;k=++i;i=3;k=i++;i=3;printf(“%d”,++i);i=3;printf(“%d”,i++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;,//k=4,i=4,//k=3,i=4,//4,//3,//c=20,a=4,//c=15,a=4,說(shuō)明,++--不能用于常量和表達(dá)式,如5++,(a+b)++++--結(jié)合方向:自右向左優(yōu)先級(jí):-++-------->*/%------>+-(2)(3)(4),例-i++?-(i++)i=3;printf(“%d”,-i++);//-3,例-i++i=3;printf(“%d”,-i++);,main()/*ch3_3.c*/{intx=6,y;clrscr();printf("x=%d\n\n",x);y=++x;printf("x=%d,y=%d\n\n",x,y);y=x--;printf("x=%d,y=%d\n\n",x,y);},運(yùn)行結(jié)果:x=6X=7,y=7X=6,y=7,main()/*ch3_7.c*/{intx=6;clrscr();printf("\n%d%d\n\n",x,x++);},運(yùn)行結(jié)果:76,賦值運(yùn)算符和表達(dá)式簡(jiǎn)單賦值運(yùn)算符符號(hào):=格式:變量標(biāo)識(shí)符=表達(dá)式作用:將一個(gè)數(shù)據(jù)(常量或表達(dá)式)賦給一個(gè)變量,例a=3;d=func();c=d+2;,復(fù)合賦值運(yùn)算符種類:+=-=*=/=%=《=》=a+b=3;,例floatf;inti;i=10;f=i;則f=10.000000,例inti;i=2.56;//結(jié)果i=2;,main()/*ch3_4.c*/{floatx1=1.5678,x2,x3;inty1,y2=6;doubley3=123456789;clrscr();y1=x1;/*float型賦值給int型*/printf("\ny1=x1:x1=%f,y1=%d\n\n",x1,y1);x2=y2;/*int型賦值給float型*/printf("x2=y2:y2=%d,x2=%f\n\n",y2,x2);x3=y3;/*double型賦值給float型*/printf("x3=y3:y3=%f,x3=%f\n\n",y3,x3);},main()/*ch3_5.c*/{charx1=65,x2=232,x3;inty1,y2,y3=1025;clrscr();y1=x1;printf("\ny1=x1:x1=%c,x1=%d,y1=%d\n\n",x1,x1,y1);y2=x2;printf("y2=x2:x2=%c,x2=%d,y2=%d\n\n",x2,x2,y2);x3=y3;printf("x3=y3:y3=%d,x3=%d,x3=%c\n\n",y3,x3,x3);},賦值表達(dá)式的值與變量值相等,且可嵌套,例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2),//表達(dá)式值為5,a,b,c值為5,//b=5;a=5,//表達(dá)式值11,c=6,a=11,//表達(dá)式值10,a=10,b=4,c=6,//表達(dá)式值5,a=5,b=10,c=2,例:a=12;a+=a-=a*a,例:inta=2;a%=4-1;a+=a*=a-=a*=3;,//a=-264等價(jià)于a=a+(a=a-(a*a)),//a=0等價(jià)于a=a+(a=a*(a=a-(a=a*3))),逗號(hào)運(yùn)算符和表達(dá)式形式:表達(dá)式1,表達(dá)式2,……表達(dá)式n逗號(hào)表達(dá)式的值:等于表達(dá)式n的值結(jié)合性:從左向右優(yōu)先級(jí):15用途:常用于循環(huán)for語(yǔ)句中,例a=3*5,a*4a=3*5,a*4,a+5例x=(a=3,6*3)x=a=3,6*a例a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);,//a=15,表達(dá)式值60,//a=15,表達(dá)式值20,//賦值表達(dá)式,表達(dá)式值18,x=18,//逗號(hào)表達(dá)式,表達(dá)式值18,x=3,//1,2,3,//3,2,3,例:#includemain(){intx,y=7;floatz=4;x=(y=y+6,y/z);printf("x=%d\n",x);},運(yùn)行結(jié)果:x=3,十進(jìn)制:4956=4?10+9?10+5?10+6?10,二進(jìn)制:1011=1?2+0?2+1?2+1?2,十六進(jìn)制:81AE=8?16+1?16+10?16+14?16,八進(jìn)制:4275=4?8+2?8+7?8+5?8,- 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您。
下載文檔到電腦,查找使用更方便
9.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ù)類型 運(yùn)算 表達(dá)式
鏈接地址:http://www.3dchina-expo.com/p-11494766.html