C語言的基本數(shù)據(jù)類型與表達式.ppt
《C語言的基本數(shù)據(jù)類型與表達式.ppt》由會員分享,可在線閱讀,更多相關(guān)《C語言的基本數(shù)據(jù)類型與表達式.ppt(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第2章C語言的基本數(shù)據(jù)類型與表達式,2.1C語言的基本數(shù)據(jù)類型2.2常量與變量2.3運算符與表達式2.4數(shù)據(jù)類型轉(zhuǎn)換,教學目的和基本要求:,要求學生清楚數(shù)據(jù)類型與變量、常量的關(guān)系,掌握各種常量的性質(zhì)和定義,掌握表達式中各種運算符的功能和特點,明白產(chǎn)生副作用的原因,了解數(shù)據(jù)類型的相互轉(zhuǎn)換規(guī)則。,教學重點:,數(shù)據(jù)類型、常量定義,運算符與表達式。,存取數(shù)據(jù)必須先確定數(shù)據(jù)的編碼方式、存儲格式和所占的存儲長度,C語言中把這三者結(jié)合起來,給出幾種固定的形式,這些形式就是最基本的數(shù)據(jù)類型。,2.1C語言的基本數(shù)據(jù)類型,為什么要設(shè)置數(shù)據(jù)類型?,在計算機中使用一定長度的存儲單元(通常是字節(jié)的倍數(shù))來存儲數(shù)據(jù)。,存儲的編碼方式有:原碼、反碼、補碼、ASCII碼。。。存儲的存儲格式有:定點型、浮點型。。。,其中,用于存儲數(shù)據(jù)的存儲單元的長度決定了數(shù)據(jù)取值范圍的大小。,2.1.1數(shù)據(jù)類型概述,本章中將對基本類型中的前三類進行介紹和學習。,變量:指以標識符為名字,其值可以改變的量。,在學習各種數(shù)據(jù)類型之前,我們先簡單了解一下常量和變量的概念。后面的章節(jié)中將會詳細介紹。,常量:指在程序運行中,其數(shù)值不能被改變的量。,變量代表計算機內(nèi)存中的某一存儲空間,變量的類型決定了該存儲空間的長度和其中存放數(shù)據(jù)的編碼方式及存儲格式。變量的類型也決定了該存儲空間中存放數(shù)據(jù)的數(shù)據(jù)形式和取值范圍。,*八進制的數(shù)碼范圍為0~7;018?*十六進制的數(shù)碼除了數(shù)字0~9外,還使用英文字母a~f(或A~F)表示10~15。如:0 x1e√,,注意!,2.1.2整數(shù)類型,1、整型常量:,(1)十進制形式:與數(shù)學上的整數(shù)表示相同;例如:12,-100,0(2)八進制形式:在數(shù)碼前加數(shù)字0;例如:012=1*81+2*80=10(十進制)(3)十六進制形式:在數(shù)碼前加0X(數(shù)字0和字母X)。例如:0 x12=1*161+2*160=18(十進制),如TurboC中,有short(2字節(jié))≤int(2字節(jié))≤long(4字節(jié))關(guān)鍵字所占位數(shù)取值范圍short16-32768~32767unsignedshort160~65535int16-32768~32767unsigned160~65535long32-2147483648~2147483647unsignedlong320~4294967295,2、整型變量的分類:,根據(jù)數(shù)據(jù)所占的存儲長度的不同分為:int、short、long;同樣存儲長度的數(shù)據(jù)又分unsigned、signed;故可組合出六種類型。,3、整型變量的值域:,由機器中數(shù)據(jù)的存儲長度決定,思考:inta=20000,b=20000,c;c=a+b;c的值為多少?如果c定義為long型是否能解決問題?,2、實型變量的分類及值域:關(guān)鍵字字節(jié)數(shù)取值范圍精度(位)float43.410-38~3.410387double81.710-308~1.71030815,注意,,2.1.3實數(shù)類型,1、常量:(1)十進制小數(shù)形式:由數(shù)字和小數(shù)點組成;例如:3.4,4.,.3。(2)指數(shù)形式:“十進制小數(shù)”+“e(或E)”+“十進制數(shù)整數(shù)”。例如:12.5e-6表示12.510-6。,?小數(shù)點不能單獨出現(xiàn);0.√.0√.??e或E的兩邊必須有數(shù),且其后面必須為整數(shù);如:6E0.2?e5?,字符形式功能\n換行\(zhòng)t橫向跳格\b退格\r回車\\反斜杠字符\’單引號字符\ddd8進制數(shù)表示的ASCII碼對應(yīng)的字符\xhh16進制數(shù)表示的ASCII碼對應(yīng)的字符,2.1.4字符類型,1、常量:(1)用單引號括起來的一個字符;如:‘A’、‘1’、’?’等。(2)用單引號括起來的由反斜杠(\)引導(dǎo)的轉(zhuǎn)義字符。,4、字符串常量:是用一對雙引號括起來的字符序列。注意:每個字符串的后面都有一個‘\0’結(jié)束符。如:“SHANGHAI”,“AbcdeFGHijk”,“Howareyou”。,注意,‘\’‘√‘\\‘√‘’‘?‘\‘?‘a(chǎn)’與“a”的區(qū)別。,,例如:字符A的ASCII碼為:65D(十進制)=41H(十六進制)=101Q(八進制)∴字符A可以表示為‘A’、’\x41’、’\101’。,2、字符型變量的分類:char和unsignedchar;,3、值域(字符型可參與數(shù)學運算,也可看成一種一字節(jié)的整型變量)每個字符型數(shù)據(jù)在內(nèi)存中占一個字節(jié);包括ASCII字符表中的所有字符(可顯示字符和非顯示字符)。,2.2.1常量與符號常量?常量是指在程序運行中,其數(shù)值不能被改變的量。?常量又可分為直接常量和符號常量。,2.2常量與變量,120、-100、0;0120、072;0 xFFFF、0 x1e、0X28AF,0XED4;120L,200L;長整型常量3.14、-3.1、5.12E-6;a、#、\n、\101;099、12f、0 xg、48EA;019.5、1e-08;實型常量只能用十進制形式表示2.1E10.2、E-6、6.4E+4.8、E9;"changsha"、"+++\\?ab";\、\p、、ab;,1、直接常量:是在程序中直接引用的數(shù)據(jù)。,請判斷這些常量正確與否:,定義形式:#define標識符常量數(shù)據(jù)例如:#definePI3.14159在程序預(yù)處理時,凡是出現(xiàn)標識符PI的地方都將用數(shù)據(jù)3.14159來替換。如:2*2.3*PI就等價于2*2.3*3.14159。,?變量是指以標識符為名字,其值可以改變的量。?變量代表計算機內(nèi)存中的某一存儲空間,該存儲空間中存放的數(shù)據(jù)就是變量的值。?在同一程序塊中,變量不能被重復(fù)定義。?使用變量時必須“先定義,后使用”。,2、符號常量是用標識符來表示一個數(shù)據(jù);在程序不能給它賦值。,2.2.2變量與變量定義,2、變量賦初值在定義變量的同時給變量一個初始值。,注意,inta=5,b=3;√inta=b=c=3;?inta,b,c;a=b=c=3;√,,例如:inta,b,c;floatx,y;charc1,c2;或intc1,c2;定義變量就是在內(nèi)存中劃出一塊相應(yīng)類型的存儲空間存放該變量的值。,main(){intx,y,z,w;/*定義x,y,z,w為整型變量*/unsignedintk;/*定義k為無符號整型變量*/x=10;y=-20;k=30;z=x+k;w=y+k;printf(“x+k=%d,y+k=%d\n”,z,w);},例2-1整型變量定義及賦初值,程序運行結(jié)果為:x+k=40,y+k=10,3、變量的作用域變量根據(jù)作用域的不同可分為局部變量和全局變量,根據(jù)存儲方式的不同可分為靜態(tài)存儲變量和動態(tài)存儲變量,這些我們將在第六章中詳細介紹。,在數(shù)學里當多個運算符一起組成一個表達式時,我們規(guī)定了優(yōu)先級(先乘除后加減)和結(jié)合規(guī)則(從左至右)。同樣,在C語言中,我們也規(guī)定了每個運算符的結(jié)合規(guī)則及運算符之間的優(yōu)先級。,2.3運算符與表達式,運算符:就是表示某種運算功能的符號。按操作功能運算符大致可分為:算術(shù)運算符、關(guān)系運算符、邏輯運算符、賦值運算符、條件運算符、逗號運算符以及按位運算符等。,表達式:是由操作數(shù)和運算符組成的序列。如:1+2*3-4、3>5-7、a=b%2等都是C語言中的表達式。,,下面分類介紹各種運算符:,%(取余)(注意:取余運算的操作數(shù)只能是整數(shù),且結(jié)果的符號與前一操作數(shù)的符號相同),2.3.1算術(shù)運算符與算術(shù)表達式,1、運算符+(加):3+4、+3-(減):3-5、-5*(乘):3*5/(除):5/2、5.0/2(注意,此二種形式,結(jié)果不同),5%3的值為2;-5%3的值為-2;5%(-3)的值為2;-5%(-3)的值為-2;12.3%3若a%b的結(jié)果為0,則有a能被b整除,,2、算術(shù)表達式用算術(shù)運算符和括符將操作數(shù)連接起來的式子。優(yōu)先級:()*、/、%+、-結(jié)合性:從左至右;表達式的值:數(shù)值型(int、long、unsigned、float、double);,,,例如:已知:floata=2.0;intb=6,c=3;求解:a*b/c-1.5+’a’+fabs(-5)=?,,,,,,,floata=2.0;intb=6,c=3;a*b/c-1.5+’a’+fabs(-5),,,,,,,,12.0/3,5,4.0-1.5,2.5+97(int),99.5+5,104.5(double),思考inta=1,b=2;表達式a/b+3的結(jié)果是多少?inta=10000,b=30000;表達式a+b的結(jié)果是多少?如何修改?,,等價于:j=i;i++;所以i的值為4,j的值為3,等價于:i++;j=i;所以i的值為4,j的值為4,(1)i=3;j=i++;(2)i=3;j=++i;,自增與自減運算符(++、--),?++i,--i:使用之前使i的值增1(或減1);,?i++,i--:使用之后使i的值增1(或減1);,分析下面幾種情況中i與j的值:,,當++、--不與其他運算符混合使用時,++i與i++都等價于i=i+1,--i與i--都等價于i=i-1,如:i=2;j=-i++;求執(zhí)行完這兩句后i與j的值分別是多少,特殊的:設(shè)i=3,j=4,k=i+++j,k=i=j=,結(jié)合性:自右至左。,分析:“++”與”-“是同優(yōu)先級,且都高于“=”按結(jié)合規(guī)則,等價于:j=-(i++);結(jié)果:i的值為3,j的值為-2。,再看幾個例子:如:設(shè)i=3,k=(i++)+(i++)+(i++)k=i=,9,6,如:設(shè)a=3,b=(a++)+(a++)b=a=,6,5,設(shè)a=3,b=(++a)+(a++)b=a=,8,5,設(shè)a=3,b=(a++)+(++a)b=a=,8,5,設(shè)a=3,b=(++a)+(++a)b=a=,10,5,7,4,4,例如:(1)x=(y=12)/4(2)x=y=12/4(3)x=(y=12/4)(4)(x=y)=12/4,2.3.2賦值運算符與賦值表達式,1、賦值運算符=(執(zhí)行功能:把=右邊的表達式的值,存入=左邊的變量對應(yīng)的存儲空間,即給此變量賦值)3=2+1a=a+2,?,√,2、賦值表達式:用賦值運算符將變量和表達式連接起來的式子?形式:=?求值規(guī)則:將“=”右邊表達式的值賦給左邊的變量。?優(yōu)先級:!>算術(shù)>關(guān)系>y=(a=4,b=5,a+b);y=(a=4,b=5),a+b;y=a=(4,b=5),a+b;,4,5,4,9,4,5,9,9,4,5,9,5,5,5,5,10,?形式有兩種:sizeof變量名sizeof(類型名)?結(jié)果為整型數(shù)。,inta;floatx;printf(“%d,%d”,sizeofa,sizeofx);printf(“%d,%d”,sizeof(int),sizeof(float));以上兩個printf語句結(jié)果均為。,例如,2、求字節(jié)運算符:sizeof?作用:求得變量或某種數(shù)據(jù)類型所需的字節(jié)數(shù)。,2,4,?求值規(guī)則:先求解表達式1的值若為真(非0),求解表達式2,并把表達式2的值作為整個條件表達式的值若為假(0),求解表達式3,并把表達式3的值作為整個條件表達式的值,2.3.4條件運算符?和:,它們與三個操作數(shù)組組成三元運算。?形式為:?:,?優(yōu)先級:邏輯>條件>賦值,?結(jié)合性:自右至左;,又如:y=x>10?x/10:x>0?x:-x當x的值為整型的15時,表達式的結(jié)果為:當x的值為整型的5時,表達式的結(jié)果為:,1,5,例如:intmax,a=5,b=3;max=a>b?a:b求max的值,max的值為5,◆C語言允許整型、實型、字符型數(shù)據(jù)進行混合運算。◆有3種轉(zhuǎn)換方式:自動轉(zhuǎn)換、賦值轉(zhuǎn)換和強制轉(zhuǎn)換。2.4.1類型自動轉(zhuǎn)換,2.4數(shù)據(jù)類型轉(zhuǎn)換,,特點:由數(shù)值存儲位數(shù)少的向多的轉(zhuǎn)換;整型向?qū)嵭娃D(zhuǎn)換!操作數(shù)為相同類型的不轉(zhuǎn)換,仍取原類型,特別注意此時可能帶來的錯誤!,intx=2;floaty=1.6;charc=‘A’;則:c+1/x*y==,例如,,charc=68.5;printf(“%c”,c);,65(int)+0(int)*1.6(float),65(float),2.4.2賦值轉(zhuǎn)換◆在賦值時將賦值符右邊值的類型轉(zhuǎn)換成與其左邊變量類型一致的類型。,◆有下列幾種情況:(1)將整型數(shù)據(jù)賦給單、雙精度變量時,數(shù)值不變。(2)實型整型(字符型):去掉小數(shù)部分;,(3)字符型整型:字符型數(shù)據(jù)只占一個字節(jié),而整型變量占兩個字節(jié),因此將字符數(shù)據(jù)放入到整型變量低8位中,整型變量高8位視計算機系統(tǒng)處理有符號量或無符號量兩種不同情況,分別在高8位補上1或補上0。(4)將帶符號的整型數(shù)據(jù)(int)賦給longint型數(shù)據(jù)變量時,要進行符號擴展。(5)將unsignedint型數(shù)據(jù)賦給longint型數(shù)據(jù)變量時,不存在符號擴展,只需將高位補0即可。,,例如:inta=2,b=5;floatx=4.4;則有:表達式結(jié)果b/a(float)b/a(float)(b/a)(int)x%a+x(int)x%(a+x),2.4.3強制類型轉(zhuǎn)換◆形式:(類型名)(表達式)◆強制類型轉(zhuǎn)換時,得到所需類型的中間變量,原來變量的類型不會改變。,2,2.5,2.0,4.4,,- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語言 基本 數(shù)據(jù)類型 表達式
鏈接地址:http://m.jqnhouse.com/p-11495355.html