南京師范大學(xué)C語言第三講_第1頁
南京師范大學(xué)C語言第三講_第2頁
南京師范大學(xué)C語言第三講_第3頁
南京師范大學(xué)C語言第三講_第4頁
南京師范大學(xué)C語言第三講_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1第3章數(shù)據(jù)描述主要內(nèi)容:數(shù)據(jù)類型常量與變量不同類型數(shù)據(jù)間的轉(zhuǎn)換運算符和表達(dá)式√2

3.1

數(shù)據(jù)類型1.數(shù)據(jù)類型總表C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整型實型單精度型float雙精度型double數(shù)組結(jié)構(gòu)體struct共用體union短整型short長整型long整型int數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作語言程序設(shè)計C√2.基本數(shù)據(jù)類型類型符號關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型字符型實型有符號無符號int16-32768~32767short16-32768~32767long32-2147483648~214748364716unsigned

int0~65535320~4294967295unsigned

longunsigned

short160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127無unsignedchar80~255說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機(jī)器硬件不同而不同,上表以IBMPC機(jī)為例:語言程序設(shè)計第三章數(shù)據(jù)描述C√40111111111111111int型:最大:327671000000000000000最小:-327681111111111111111unsignedint型:最大:655350000000000000000最小:0語言程序設(shè)計第三章數(shù)據(jù)描述C√53.2

常量與變量1.標(biāo)識符用作變量、常量、函數(shù)等的名字組成:只能由字母、數(shù)字、下劃線組成,且第一個字母必須是字母或下劃線大小寫敏感不能使用關(guān)鍵字長度:最長32個字符命名原則:見名知意不宜混淆如l與I,o與0語言程序設(shè)計第三章數(shù)據(jù)描述C√6一般用大寫字母是宏定義預(yù)處理命令,不是C語句直接常量(字面):整型常量實型常量字符常量字符串常量如#definePRICE302.常量分類:符號常量:用標(biāo)識符代表常量定義格式:#define

符號常量常量>>>>例符號常量舉例(ch3_1.c)#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}運行結(jié)果:total=300語言程序設(shè)計第三章數(shù)據(jù)描述C√7(1)整型常量(整常數(shù))三種形式:十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號表示.如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.如0123,011十六進(jìn)制整數(shù):由0x開頭,后跟0~9,a~f,A~F表示.如0x123,0Xff例12與12L例30000為int型65536為longint型整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加字母l或L,認(rèn)為它是longint型常量問題:0123=()100x123=()100Xff=()1083291255問題:0123=()100x123=()100Xff=()10語言程序設(shè)計第三章數(shù)據(jù)描述C√8(2)實型常量(實數(shù)或浮點數(shù))表示形式:十進(jìn)制數(shù)形式:(必須有小數(shù)點)如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

實型常量的類型默認(rèn)double型在實型常量后加字母f或F,認(rèn)為它是float型語言程序設(shè)計第三章數(shù)據(jù)描述C√第三章數(shù)據(jù)描述9(3)字符常量定義:用單引號括起來的單個普通字符或轉(zhuǎn)義字符.

字符常量的值:該字符的ASCII碼值<轉(zhuǎn)義字符及其含義:轉(zhuǎn)義字符含義\n\v\r\a\‘\ddd\t\b\f\\\“\xhh轉(zhuǎn)義字符含義換行垂直制表回車響鈴單引號3位8進(jìn)制數(shù)代表的字符水平制表退格換頁反斜線雙引號2位16進(jìn)制數(shù)代表的字符如‘\101’-----------‘A’‘\012’-----------’\n’‘\376’-----------’’‘\x61’-----------’a’‘\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)義字符:反斜線后面跟一個字符或一個代碼值表示例轉(zhuǎn)義字符舉例(ch3_001.c,ch2_004.c)

main(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\'C\'");}運行結(jié)果:(屏幕顯示)ABCIsay:”Howareyou?”\CProgram\Turbo‘C’例main(){printf(“Y\b=\n”);}運行結(jié)果:屏幕顯示:=打印機(jī)輸出:¥10字符常量與字符串常量不同(4)字符串常量定義:用雙引號(“”)括起來的字符序列存儲:每個字符串尾自動加一個‘\0’作為字符串結(jié)束標(biāo)志hello\0例字符串“hello”在內(nèi)存中aa\0例‘a(chǎn)’“a”例空串“”\0例:charch;ch=“A”;例:charch;ch=‘A’;語言程序設(shè)計第三章數(shù)據(jù)描述C√第三章數(shù)據(jù)描述11編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元…...地址inta=1,b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址…...內(nèi)存1-3隨機(jī)數(shù)3.變量概念:其值可以改變的量變量定義的一般格式:

數(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;//Undefinedsymbol‘stadent’infunctionmain

例2floata,b,c;c=a%b;//Illegaluseoffloatingpointinfunctionmain

變量定義位置:一般放在函數(shù)開頭main(){inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf(“data=%f\n”,data);}變量定義可執(zhí)行語句main(){inta,b=2;a=1;floatdata;data=(a+b)*1.2;printf(“data=%f\n”,data);}語言程序設(shè)計C√第三章數(shù)據(jù)描述12(1)整型變量占字節(jié)數(shù)隨機(jī)器不同而不同,short≤int≤long(分別為:2個2個4個字節(jié))可用sizeof(類型標(biāo)識符)測量(2)實型變量float:占4字節(jié),提供7位有效數(shù)字double:占8字節(jié),提供15~16位有效數(shù)字(3)字符型變量字符變量存放字符ASCII碼char與int數(shù)據(jù)間可進(jìn)行算術(shù)運算例floata;a=111111.111;/*a=111111.1*/doubleb;b=111111.111;/*b=111111.111*/例a=‘D’;/*a=68;*/x=‘A’+5;/*x=65+5;*/s=‘!’+‘G’/*s=33+71;*/沒有字符串變量,用字符數(shù)組存放語言程序設(shè)計第三章數(shù)據(jù)描述C√例

#definePRICE12.5main(){intnum=3;floattotal;charch1,ch2=‘D’;total=num*PRICE;ch1=ch2-‘A’+‘a(chǎn)’;printf(“total=%f,ch1=%c\n”,total,ch1);}宏定義變量定義輸出結(jié)果運行結(jié)果:total=37.500000,ch1=d語言程序設(shè)計第三章數(shù)據(jù)描述C√143.3不同類型數(shù)據(jù)間的轉(zhuǎn)換1.隱式轉(zhuǎn)換什么情況下發(fā)生運算轉(zhuǎn)換------不同類型數(shù)據(jù)混合運算時賦值轉(zhuǎn)換------把一個值賦給與其類型不同的變量時輸出轉(zhuǎn)換------輸出時轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換------實參與形參類型不一致時轉(zhuǎn)換運算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運算時先自動轉(zhuǎn)換成同一類型語言程序設(shè)計C√15doublefloatlongunsignedintchar,short低高說明:必定的轉(zhuǎn)換運算對象類型不同時轉(zhuǎn)換例charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+‘a(chǎn)’+i*f-d/l例inti;floatf;doubled;longl;√第三章數(shù)據(jù)描述162.顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)一般形式:(類型名)(表達(dá)式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6說明:強(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精度損失問題較高類型向較低類型轉(zhuǎn)換時可能發(fā)生語言程序設(shè)計C√173.4運算符和表達(dá)式C運算符算術(shù)運算符:(+-*/%++--)關(guān)系運算符:(<<===>>=!=)邏輯運算符:((!&&||)位運算符:(<<>>~|^&)賦值運算符:(=及其擴(kuò)展)條件運算符:(?:)逗號運算符:(,)指針運算符:(*&)求字節(jié)數(shù):(sizeof)強(qiáng)制類型轉(zhuǎn)換:(類型)分量運算符:(.->)下標(biāo)運算符:([])其它:(()-)語言程序設(shè)計第三章數(shù)據(jù)描述C√18學(xué)習(xí)運算符應(yīng)注意:運算符功能與運算量關(guān)系要求運算量個數(shù)要求運算量類型運算符優(yōu)先級別結(jié)合方向結(jié)果的類型關(guān)系運算、邏輯運算、條件運算留到第五章中學(xué)習(xí)語言程序設(shè)計第三章數(shù)據(jù)描述C√19算術(shù)運算符和表達(dá)式

(1)基本算術(shù)運算符:

+-*/%結(jié)合方向:從左向右優(yōu)先級:----->*/%----->+-

(2)(3)(4)

說明:“-”可為單目運算符時,右結(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=

1

5%1=

05.5%2()語言程序設(shè)計第三章數(shù)據(jù)描述C√20(2)自增、自減運算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)例j=3;k=++j;j=3;k=j++;j=3;printf(“%d”,++j);j=3;printf(“%d”,j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;j=3;k=(j++)+(j++)+(j++);//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=4語言程序設(shè)計第三章數(shù)據(jù)描述C//k=9,j=6(tc)√第三章數(shù)據(jù)描述21自增、自減運算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)說明:++--不能用于常量和表達(dá)式,如5++,(a+b)++++--結(jié)合方向:自右向左優(yōu)先級:-++-------->*/%----->+-

(2)(3)(4)例-i++-(i++)i=3;printf(“%d”,-i++);//-3

例j+++k;(j++)+k;書寫程序時應(yīng)加上必要的括號例-i++i=3;printf(“%d”,-i++);語言程序設(shè)計第三章數(shù)據(jù)描述C√第三章數(shù)據(jù)描述221、i=1時,(++i)+(++i)+(++i)的值為12,i=4;2、i=1時,(i++)+(i++)+(i++)的值為3,i=4;3、i=1時,(i++)+(++i)+(i++)的值為6,i=4,4、i=1時,(i++)+(++i)+(++i)的值為3,i=4;5、i=1時,(++i)+(++i)+(i++)的值為9,i=4;6、i=1時,(i++)+(i++)+(++i)的值為6,i=4。第三章數(shù)據(jù)描述232.賦值運算符和表達(dá)式簡單賦值運算符符號:=格式:變量標(biāo)識符=表達(dá)式作用:將一個數(shù)據(jù)(常量或表達(dá)式)賦給一個變量復(fù)合賦值運算符種類:+=-=*=/=%=《=》=&=^=|=含義:exp1op=exp2

exp1=exp1opexp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例a=3;d=func();c=d+2;語言程序設(shè)計第三章數(shù)據(jù)描述C√第三章數(shù)據(jù)描述24說明:結(jié)合方向:自右向左優(yōu)先級:14左值必須是變量,不能是常量或表達(dá)式賦值表達(dá)式的值與變量值相同,且可嵌套賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達(dá)式值自動轉(zhuǎn)換成其左邊變量的類型例3=x-2*y;a+b=3;例

floatf;inti;i=10;f=i;則

f=10.0例inti;i=2.56;//結(jié)果i=2;例: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語言程序設(shè)計第三章數(shù)據(jù)描述C25說明:結(jié)合方向:自右向左優(yōu)先級:14左值必須是變量,不能是常量或表達(dá)式賦值表達(dá)式的值與變量值相等,且可嵌套賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達(dá)式值自動轉(zhuǎn)換成其左邊變量的類型例:a=12;a+=a-=a*a例:inta=2;a%=4-1;a+=a*=a-=a*=3;//a=-264等價于a=a+(a=a-(a*a))//a=0等價于a=a+(a=a*(a=a-(a=a*3)))語言程序設(shè)計C√26類型的賦值轉(zhuǎn)換:賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達(dá)式值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論