歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

《其他數(shù)據(jù)類型》PPT課件.ppt

  • 資源ID:11501989       資源大?。?span id="nkdrsbl" class="font-tahoma">291.50KB        全文頁數(shù):54頁
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號:
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

《其他數(shù)據(jù)類型》PPT課件.ppt

第6章其他數(shù)據(jù)類型,學(xué)習(xí)目標(biāo),結(jié)構(gòu)體的定義與使用結(jié)構(gòu)體與指針共用體的定義與使用枚舉類型的定義與使用typedef定義數(shù)據(jù)類型位運(yùn)算規(guī)則,6.1結(jié)構(gòu)體,引入:數(shù)據(jù)的基本類型:整、實(shí)、字符。數(shù)組是構(gòu)造類型:每個(gè)元素為同一類型,有些問題僅用基本類型和數(shù)組來描述是無法實(shí)現(xiàn)的?,舉例:如學(xué)生情況表,這些數(shù)據(jù)類型雖不相同,但它們卻是有機(jī)的整體,若將它們分別定義,則難以反映它們之間的內(nèi)在聯(lián)系。如何解決呢?用結(jié)構(gòu)體。,結(jié)構(gòu)體是一種構(gòu)造數(shù)據(jù)類型用途:把不同類型的數(shù)據(jù)組合成一個(gè)整體,又稱自定義數(shù)據(jù)類型結(jié)構(gòu)體類型定義,struct結(jié)構(gòu)體類型名類型標(biāo)識符成員名;類型標(biāo)識符成員名;,成員類型可以是基本型或構(gòu)造型,struct是關(guān)鍵字,不能省略,合法標(biāo)識符,可根據(jù)情況省略,6.1.1結(jié)構(gòu)體類型的定義,Structstudentintnum;charname20;charsex;intage;floatscore;charaddr30;,結(jié)構(gòu)體類型定義,描述結(jié)構(gòu)的組織形式,不分配內(nèi)存,以上語句的作用是:定義了一個(gè)名為student的結(jié)構(gòu)體類型,它具有以下結(jié)構(gòu):,6.1.2結(jié)構(gòu)體變量,(1)結(jié)構(gòu)體類型變量的聲明間接法:先聲明結(jié)構(gòu)體類型再定義變量名,struct結(jié)構(gòu)體名類型標(biāo)識符成員名;類型標(biāo)識符成員名;struct結(jié)構(gòu)體名變量名表列;,直接法:在聲明結(jié)構(gòu)體類型的同時(shí)定義變量,struct結(jié)構(gòu)體名類型標(biāo)識符成員名;類型標(biāo)識符成員名;.變量名表列;,structstudentintnum;charname20;charsex;intage;floatscore;charaddr30;stu1,stu2;,structintnum;charname20;charsex;intage;floatscore;charaddr30;stu1,stu2;,省去結(jié)構(gòu)體類型名,用無名結(jié)構(gòu)體直接定義變量只能一次。,說明:1.結(jié)構(gòu)體類型與結(jié)構(gòu)體變量概念不同2.結(jié)構(gòu)體可嵌套,sturctdateintmonth;intday;intyear;,structstudentintnum;charname20;charsex;structdatebirthday;floatscore;charaddr30;student1,student2;,說明:3.結(jié)構(gòu)體成員名與程序中變量名可相同,不會混淆(2)結(jié)構(gòu)體變量的引用:結(jié)構(gòu)體變量.成員如:student1.num=1;strcpy(student1.name,“ZhangHua");student1.sex=M;student1.birthday.year=1980,如果某成員本身又是一個(gè)結(jié)構(gòu)體類型,則要用若干個(gè)成員運(yùn)算符,一級一級找到最低一級的成員。成員運(yùn)算符“.”的結(jié)合性為從左到右。如:student1.birthday.year結(jié)構(gòu)體變量的成員可以像普通變量一樣進(jìn)行各種運(yùn)算。例如:student1.birthday.day+;sum=student1.score+5;,可以引用結(jié)構(gòu)體變量成員的地址,也可以引用結(jié)構(gòu)體變量的地址。如:,struct結(jié)構(gòu)體類型名類型標(biāo)識符成員名;類型標(biāo)識符成員名;.;struct結(jié)構(gòu)體名結(jié)構(gòu)體變量=初始數(shù)據(jù);,structssintnum;charname20;charsex;intage;charaddr30;structssstu1=112,“WangLin”,M,19,“200BeijingRoad”;,(3)結(jié)構(gòu)體變量的初始化,形式二:,struct結(jié)構(gòu)體類型名類型標(biāo)識符成員名;類型標(biāo)識符成員名;.結(jié)構(gòu)體變量=初始數(shù)據(jù);,structssintnum;charname20;charsex;intage;charaddr30;stu1=112,“WangLin”,M,19,“200BeijingRoad”;,結(jié)構(gòu)體類型名ss可以省略,(4)求結(jié)構(gòu)體變量占用內(nèi)存的大小求變量或類型說明符占用內(nèi)存大小可以使用sizeof運(yùn)算符。sizeof是單目運(yùn)算符,其功能是求出變量或類型說明符所占的內(nèi)存空間的字節(jié)數(shù)。使用的一般形式為:sizeof(變量或類型說明符);,charstr20;structdateintyear,month,day;today;structaddresscharname30,street40,city20;unsignedlongintzip;wang;printf("char:%dt",sizeof(char);printf("str:%dt",sizeof(str);printf("date:%dt",sizeof(structdate);printf("wang:%dn",sizeof(wang);,6.1.3結(jié)構(gòu)體數(shù)組,(1)定義結(jié)構(gòu)體數(shù)組:三種形式,形式一:structstudentintnum;charname20;charsex;intage;structstudentstu2;,形式二:structstudentintnum;charname20;charsex;intage;stu2;,形式三:structintnum;charname20;charsex;intage;stu2;,(2)結(jié)構(gòu)體數(shù)組的初始化,structintnum;charname20;charsex;intage;stu.=.,.,.;,(3)結(jié)構(gòu)體數(shù)組元素、成員引用引用方式:結(jié)構(gòu)體數(shù)組名下標(biāo).成員名,structstudentintnum;charname20;charsex;intage;str3;,stu1.age+;,strcpy(stu0.name,”ZhaoDa”);,#include#includestructpersoncharname20;intcount;lead3="Li",0,"Zhang",0,"Wang",0;voidmain()inti,j;charleader_name20;for(i=1;i<=10;i+)/10張選票scanf("%s",leader_name);for(j=0;j<3;j+)/每張選票與3個(gè)候選人姓名對比if(strcmp(leader_name,leadj.name)=0)leadj.count+;for(i=0;i成員名,注意:”.“用于結(jié)構(gòu)體變量訪問成員而“->”用于結(jié)構(gòu)體指針變量訪問成員。使用中要注意兩者的優(yōu)先級與結(jié)合性問題。,p->n得到p指向的結(jié)構(gòu)體變量中的成員n的值。p->n+得到p指向的結(jié)構(gòu)體變量中的成員n的值,用完該值后使它加1。+p->n得到p指向的結(jié)構(gòu)體變量中的成員n的值使之加1(先加)。,構(gòu)造數(shù)據(jù)類型,也叫聯(lián)合體幾個(gè)不同類型的變量共占一段內(nèi)存(相互覆蓋)定義形式,6.3共用體,union共用體類型名類型標(biāo)識符成員名;類型標(biāo)識符成員名;.;,除去關(guān)鍵字,其形式和結(jié)構(gòu)體定義一致,uniondatacharch;inti;floatf;,uniondatainti;charch;floatf;a,b;,uniondatainti;charch;floatf;uniondataa,b,c,*p,d3;,共用體變量的定義:,由于是共用一段內(nèi)存,因此:共用體變量任何時(shí)刻只有一個(gè)成員存在共用體變量定義分配內(nèi)存長度是最長成員所占字節(jié)數(shù),共用體變量引用,uniondatainti;charch;floatf;uniondataa,b,c,*p,d3;,a.i,a.ch,a.fp->i,p->ch,p->f(*p).i,(*p).ch,(*p).fp->i,p->ch,p->fd0.i,d0.ch,d0.f,共用體變量名.成員名(*共用體指針名).成員名共用體指針名->成員名,注意:共用體變量中起作用的成員是最后一次存放的成員共用體變量的地址和它的各成員的地址都是同一地址。不能引用共用體變量,只能引用其成員不能在定義共用體變量時(shí)初始化可以用一個(gè)共用體變量為另一個(gè)變量賦值,unioninti;charch;floatf;a;a=1;(),a.i=1;a.ch=a;a.f=1.5;printf(“%d”,a.i);(編譯通過,運(yùn)行結(jié)果不對),unioninti;charch;floatf;a=1,a,1.5;(),floatx;unioninti;charch;floatf;a,b;a.i=1;a.ch=a;a.f=1.5;b=a;()x=a.f;(),union/定義共用體并說明共用體變量mixlongi;intk;charii;chars4;mix;mix.i=0 x12345678;printf("mix.i=%lxn",mix.i);printf("mix.k=%xn",mix.k);printf("mix.ii=%xn",mix.ii);printf("mix.s0=%xtmix.s1=%xn",mix.s0,mix.s1);printf("mix.s2=%xtmix.s3=%xn",mix.s2,mix.s3);,例6.8分析以下程序的運(yùn)行結(jié)果。,變量的各成員同時(shí)存在,任一時(shí)刻只有一個(gè)成員存在,結(jié)構(gòu)體與共用體區(qū)別:存儲方式不同聯(lián)系:兩者可相互嵌套,6.4枚舉類型,概念:“枚舉”是指將變量的值一一列舉出來,變量的取值只限于列舉出來的值的范圍。定義:enum枚舉類型名取值表;變量定義:enumcolourRed,Blue,Yellow,White;enumcolourc1,c2;c1,c2為枚舉型變量,其值可以取括號中的任意一個(gè)。c1=Yellow;()c2=White;()c1=Black;()c2=2;(),說明(1)對枚舉元素按常量處理,故稱枚舉常量。枚舉常量是有值的,編譯時(shí)按定義時(shí)的順序依次置為0,1,2,在上面的定義中,枚舉元素的值分別為:Red=0,Blue=1,Yellow=2,White=3。(2)不能對枚舉常量賦值,要改變枚舉常量的值只能在定義時(shí)由程序指定。例如:enumcolourRed=10,Blue=0,Yellow,White;則這時(shí)Red=10,Blue=0,Yellow=1,White=2。當(dāng)定義枚舉變量enumcolourc1,c2;后,若給枚舉變量賦值:c1=Red;則枚舉變量c1中的值為10c2=White;則枚舉變量c2中的值為2。,6.5用typedef定義類型,功能:用自定義名字為已有數(shù)據(jù)類型命名形式:typedeftypename;,類型定義語句關(guān)鍵字,已有數(shù)據(jù)類型名,用戶定義的類型名,若有:typedefintINTEGER;typedeffloatREAL;則:INTEGERi,j;等價(jià)于inti,j;REALpai;等價(jià)于floatpai;,typedef常用于結(jié)構(gòu)體類型的定義:typedefstructintmonth;intday;intyear;DATE;聲明新類型名DATE,它代表上面指定的一個(gè)結(jié)構(gòu)體類型。DATEbirthday,*p;,類型定義后,與已有類型一樣使用,typedef也可用于數(shù)組和指針類型的定義:typedefintARR20;ARRa,b,d;等價(jià)于:inta20,b20,d20;typedefint*point;pointp1,p2;等價(jià)于:int*p1,*p2;,說明:1.typedef沒有創(chuàng)造新數(shù)據(jù)類型2.typedef是定義類型,不能定義變量3.typedef與define不同4.typedef可以嵌套,typedefstructclubcharname20;intsize;intyear;GROUP;typedefGROUP*PG;PGpclub;,GROUP為結(jié)構(gòu)體類型,PG為指向GROUP的指針類型,等價(jià)于:structclubcharname20;intsize;intyear;*pclub;,6.6位運(yùn)算及位字段,位運(yùn)算符和位運(yùn)算位運(yùn)算舉例,6.6.1位運(yùn)算符和位運(yùn)算,前面介紹的各種運(yùn)算都是以字節(jié)作為最基本位進(jìn)行的。但在很多系統(tǒng)程序中常要求在位(bit)一級進(jìn)行運(yùn)算或處理。語言提供了位運(yùn)算的功能,這使得語言也能像匯編語言一樣用來編寫系統(tǒng)程序。按位與a=a<>):運(yùn)算規(guī)則:a=a>>n將a中所有位向右移動n位。作用:相當(dāng)于除法運(yùn)算。每右移一位相當(dāng)于除以2。注意數(shù)的符號問題(即正負(fù)的問題)對于無符號數(shù)(正數(shù))右移時(shí)高位補(bǔ)以0。對于有符號數(shù),高位為0(正數(shù))右移時(shí)高位補(bǔ)以0。對于有符號數(shù),高位為1(負(fù)數(shù))時(shí):右移時(shí)高位補(bǔ)以0,稱之為“邏輯位移”。右移時(shí)高位補(bǔ)以1,稱之為“算術(shù)位移”。TC采用“算術(shù)位移”,高位補(bǔ)以1。,7、不同長度的數(shù)據(jù)進(jìn)行位運(yùn)算時(shí)的規(guī)則規(guī)則:如果兩個(gè)不同長度的數(shù)據(jù)(例如char型和int型)進(jìn)行位運(yùn)算,系統(tǒng)將會對二者進(jìn)行處理:先將兩個(gè)運(yùn)算數(shù)按右端對齊,再將較短的一個(gè)運(yùn)算數(shù)往高位擴(kuò)充,即無符號數(shù)和正整數(shù)左側(cè)用0補(bǔ)齊;負(fù)數(shù)左側(cè)用1補(bǔ)齊,最后按位進(jìn)行位運(yùn)算。,8、位運(yùn)算的復(fù)合賦值運(yùn)算符:ascanf("%o",將要取的49位移到最右端,即將a右移4位,設(shè)置一個(gè)低6位全為1,其余全為0的數(shù)0:000000000000:111111111110<<6:11111000000(0<成員名。數(shù)組元素的類型為結(jié)構(gòu)的數(shù)組稱為結(jié)構(gòu)數(shù)組。,結(jié)構(gòu)體定義允許嵌套,結(jié)構(gòu)體中也可用共用體作為成員,形成結(jié)構(gòu)體和共用體的嵌套。共用體與結(jié)構(gòu)體類似,區(qū)別在于共用體各個(gè)成員共享同一片內(nèi)存區(qū)域。位運(yùn)算是語言的一種特殊運(yùn)算功能,它是以二進(jìn)制位為單位進(jìn)行運(yùn)算的。位運(yùn)算符只有邏輯運(yùn)算和移位運(yùn)算兩類。位運(yùn)算符可以與賦值符一起組成復(fù)合賦值符。如shorta;unionuwordu=2.5;/*錯誤*/,使用位運(yùn)算符時(shí)應(yīng)注意:如同表達(dá)式a+2不能改變a的值一樣,a>兩邊必須都是整型數(shù),否則非法。如a<<2.0是錯誤的。不同長度的變量進(jìn)行位運(yùn)算時(shí),系統(tǒng)會自動右對齊,而左端的不齊部分,會按最高位進(jìn)行擴(kuò)展。,

注意事項(xiàng)

本文(《其他數(shù)據(jù)類型》PPT課件.ppt)為本站會員(tia****nde)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!