cp2C語言程序設(shè)計-數(shù)據(jù)類型(9-10).ppt
第二章數(shù)據(jù)類型,基本數(shù)據(jù)類型常量與變量不同類型數(shù)據(jù)間的轉(zhuǎn)換,本章內(nèi)容,C語言數(shù)據(jù)類型分類及其意義標(biāo)識符的概念基本數(shù)據(jù)類型的數(shù)值表達(dá)和存儲C語言中的常量C語言中的變量不同數(shù)據(jù)類型之間的數(shù)據(jù)轉(zhuǎn)換,必須掌握的內(nèi)容,基本數(shù)據(jù)類型的存儲方式和表達(dá)范圍標(biāo)識符的概念符號常量和一般常量變量的定義和使用數(shù)據(jù)類型轉(zhuǎn)換規(guī)則,2.1數(shù)據(jù)類型,數(shù)據(jù)類型總表,數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作,基本數(shù)據(jù)類型,說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機(jī)器硬件不同而不同,上表以32機(jī)為例:,例:判斷下列標(biāo)識符號合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123,M.D.John,3days,#33,char,$123,a>b,2.2常量與變量,標(biāo)識符定義:用來標(biāo)識變量、常量、函數(shù)等的字符序列組成:只能由字母、數(shù)字、下劃線組成,且第一個字母必須是字母或下劃線大小寫敏感不能使用關(guān)鍵字長度:最長32個字符命名原則:見名知意不宜混淆如l與I,o與0,一般用大寫字母是宏定義預(yù)處理命令,不是C語句直接常量:整型常量實(shí)型常量字符常量字符串常量,如#definePRICE30,定義:程序運(yùn)行時其值不能改變的量(即常數(shù))分類:符號常量:用標(biāo)識符代表常量定義格式:#define符號常量常量,>,>,>,>,例1:符號常量舉例(ch2_001.c)#definePRICE30main()intnum,total;num=10;total=num*PRICE;printf("total=%d",total);,常量,ch2_001.c,整型常量(整常數(shù))三種形式:十進(jìn)制整數(shù):由數(shù)字09和正負(fù)號表示.如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字07表示.如0123,011十六進(jìn)制整數(shù):由0 x開頭,后跟09,af,AF表示.如0 x123,0Xff,<,例12與12L,例30000為int型65536為longint型,整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加字母l或L,認(rèn)為它是longint型常量,問題:0123=()100 x123=()100Xff=()10,實(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,.E3.5E-3(E的前面必須有數(shù)字,E的后面必須是整數(shù)),<,實(shí)型常量的類型默認(rèn)double型在實(shí)型常量后加字母f或F,認(rèn)為它是float型,aaa,ch2_002.c,定義:用單引號括起來的單個普通字符或轉(zhuǎn)義字符.,字符常量的值:該字符的ASCII碼值,如101-A012-n376-x61-a60-0483-(),例:A-101-x41-65,<,如A65,a97,048,n10,如aA?n101,轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示,例2:轉(zhuǎn)義字符舉例(ch2_002.c)main()printf("101x42Cn");printf("Isay:"Howareyou?"n");printf("CProgramn");printf("TurboC");,例main()printf(“Yb=n”);,運(yùn)行結(jié)果:屏幕顯示:=打印機(jī)輸出:,字符常量,<,字符常量與字符串常量不同,定義:用雙引號(“”)括起來的字符序列存儲:每個字符串尾自動加一個0作為字符串結(jié)束標(biāo)志,字符串常量,概念:其值可以改變的量變量名與變量值變量定義的一般格式:數(shù)據(jù)類型變量1,變量2,變量n;,變量初始化:定義時賦初值,例:inta,b,c;floatdata;,決定分配字節(jié)數(shù)和數(shù)的表示范圍,合法標(biāo)識符,例:inta=2,b,c=4;floatdata=3.67;charch=A;intx=1,y=1,z=1;intx=y=z=1;,變量的使用:先定義,后使用,例1intstudent;stadent=19;/Undefinedsymbolstatentinfunctionmain,例2floata,b,c;c=a%b;/Illegaluseoffloatingpointinfunctionmain,變量定義位置:一般放在函數(shù)開頭,變量,ch2_003.c,可執(zhí)行語句,變量定義,整型變量占字節(jié)數(shù)隨機(jī)器不同而不同,一般占一個機(jī)器字shortintlong可用sizeof(類型標(biāo)識符)測量,例floata;a=111111.111;/*a=111111.1*/doubleb;b=111111.111;/*b=111111.111*/,字符型變量字符變量存放字符ASCII碼char與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算,實(shí)型變量float:占4字節(jié),提供7位有效數(shù)字double:占8字節(jié),提供1516位有效數(shù)字,例a=D;/*a=68;*/x=A+5;/*x=65+5;*/s=!+G/*s=33+71;*/,沒有字符串變量,用字符數(shù)組存放,Ch2_004.c,例/*ch2_005.c*/#definePRICE12.5main()intnum=3;floattotal;charch1,ch2=D;total=num*PRICE;ch1=ch2-A+a;printf(“total=%f,ch1=%cn”,total,ch1);,隱式轉(zhuǎn)換什么情況下發(fā)生運(yùn)算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運(yùn)算時賦值轉(zhuǎn)換-把一個值賦給與其類型不同的變量時輸出轉(zhuǎn)換-輸出時轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換-實(shí)參與形參類型不一致時轉(zhuǎn)換運(yùn)算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運(yùn)算時先自動轉(zhuǎn)換成同一類型,2.3不同類型數(shù)據(jù)間的轉(zhuǎn)換,一般形式:(類型名)(表達(dá)式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6說明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變,/*ch2_006.c*/例main()floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);,精度損失問題,顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換),