資源描述:
《《構(gòu)造數(shù)據(jù)類型》PPT課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第7章構(gòu)造數(shù)據(jù)類型C數(shù)據(jù)類型指針類型空類型void定義類型typedef構(gòu)造類型枚舉類型enum數(shù)組結(jié)構(gòu)體struct共用體union基本類型字符類型char實(shí)型單精度型float雙精度型double整型短整型short長(zhǎng)整型long整型int語(yǔ)言程序設(shè)計(jì)第七章構(gòu)造數(shù)據(jù)類型C只能定義單一的數(shù)據(jù)類型,反映事物單一屬性第7章:構(gòu)造數(shù)據(jù)類型學(xué)習(xí)的意義如定義學(xué)生成績(jī):floatscore;能定義復(fù)雜的數(shù)據(jù)類型,反映事物多個(gè)屬性如定義學(xué)生信息:structSTU{charno[9];//學(xué)號(hào)charname[12
2、];//姓名charsex;//性別floatscore;//成績(jī)}student;構(gòu)造數(shù)據(jù)類型豐富了C語(yǔ)言對(duì)數(shù)據(jù)信息的處理能力。離開了構(gòu)造數(shù)據(jù)類型,很多信息的描述是無(wú)法進(jìn)行定義,更無(wú)法進(jìn)行處理的。計(jì)算機(jī)中的信息表示更多是由構(gòu)造數(shù)據(jù)類型來(lái)定義的,象《數(shù)據(jù)結(jié)構(gòu)》課程中的鏈表、樹、圖等可以更好地理解數(shù)據(jù)庫(kù)中的記錄的含義,為C++語(yǔ)言中類的概念的理解提供了幫助。學(xué)習(xí)目標(biāo)熟練掌握結(jié)構(gòu)體、共用體和枚舉數(shù)據(jù)類型的定義方法;熟練掌握結(jié)構(gòu)體、共用體和枚舉變量的定義和引用方法;掌握結(jié)構(gòu)數(shù)組的定義及其應(yīng)用;掌握指向結(jié)構(gòu)的指
3、針的概念及其應(yīng)用;了解線性鏈表的創(chuàng)建、插入節(jié)點(diǎn)、刪除節(jié)點(diǎn)和撤銷節(jié)點(diǎn)的算法;掌握利用構(gòu)造數(shù)據(jù)類型作為函數(shù)參數(shù)和返回值的函數(shù)定義方法;語(yǔ)言程序設(shè)計(jì)第七章構(gòu)造數(shù)據(jù)類型C學(xué)習(xí)內(nèi)容構(gòu)造數(shù)據(jù)類型概述結(jié)構(gòu)體結(jié)構(gòu)體類型的定義結(jié)構(gòu)體變量的定義和引用結(jié)構(gòu)體變量的賦值簡(jiǎn)化結(jié)構(gòu)體類型名結(jié)構(gòu)體數(shù)組線性鏈表共用體共用體類型的定義共用體變量的定義和引用共用體變量的賦值位域枚舉類型變量的定義和引用構(gòu)造數(shù)據(jù)類型應(yīng)用綜合舉例本章小結(jié)語(yǔ)言程序設(shè)計(jì)第七章構(gòu)造數(shù)據(jù)類型C7.1結(jié)構(gòu)體語(yǔ)言程序設(shè)計(jì)第七章構(gòu)造數(shù)據(jù)類型C結(jié)構(gòu)體是一種構(gòu)造數(shù)據(jù)類型用途:把
4、不同類型的數(shù)據(jù)組合成一個(gè)整體-------自定義數(shù)據(jù)類型引入結(jié)構(gòu)體的好處:加強(qiáng)數(shù)據(jù)項(xiàng)之間的聯(lián)系如學(xué)生的基本信息,包括學(xué)號(hào)、姓名、性別、年齡、班級(jí)、成績(jī)等數(shù)據(jù)項(xiàng)。這些數(shù)據(jù)項(xiàng)描述了一個(gè)學(xué)生的幾個(gè)不同側(cè)面。nonamesexageclassnograde獨(dú)立的變量表示:數(shù)據(jù)項(xiàng)之間無(wú)關(guān)聯(lián)nonamesexageclassnograde結(jié)構(gòu)體變量表示:數(shù)據(jù)項(xiàng)為一個(gè)整體charno[9];//學(xué)號(hào)charname[20];//姓名charsex;//性別unsignedintage;//年齡unsignedintc
5、lassno;//班級(jí)floatgrade;//成績(jī)語(yǔ)言程序設(shè)計(jì)第七章構(gòu)造數(shù)據(jù)類型C1、結(jié)構(gòu)體類型的定義struct[結(jié)構(gòu)體類型名]{數(shù)據(jù)類型名1成員名1;數(shù)據(jù)類型名2成員名2;……數(shù)據(jù)類型名n成員名n;};struct是關(guān)鍵字,不能省略合法標(biāo)識(shí)符可省:無(wú)名結(jié)構(gòu)體成員類型可以是基本型或構(gòu)造型以分號(hào);結(jié)尾例1:structStudent_Info{charno[9];//學(xué)號(hào)charname[20];//姓名charsex;//性別unsignedintage;//年齡unsignedintclassno
6、;//班級(jí)floatgrade;//成績(jī)};例2:structDate{intyear;//年intmonth;//月intday;//日};語(yǔ)言程序設(shè)計(jì)第七章構(gòu)造數(shù)據(jù)類型C在結(jié)構(gòu)體中數(shù)據(jù)類型相同的成員,既可逐個(gè)、逐行分別定義,也可合并成一行定義,就象一次定義多個(gè)變量一樣。structStudent_Info{charno[9];//學(xué)號(hào)charname[20];//姓名charsex;//性別unsignedintage;//年齡unsignedintclassno;//班級(jí)floatgrade;//
7、成績(jī)};structStudent_Info{charno[9],name[20],sex;unsignedintage,classno;floatgrade;};structDate{intyear;//年intmonth;//月intday;//日};structDate{intyear,month,day;};注意:結(jié)構(gòu)類型只是用戶自定義的一種數(shù)據(jù)類型,用來(lái)定義描述結(jié)構(gòu)的組織形式,不分配內(nèi)存,只有用它來(lái)定義某個(gè)變量時(shí),才會(huì)為該變量分配結(jié)構(gòu)類型所需要大小的內(nèi)存單元。所占內(nèi)存的大小是它所包含的成員所占
8、內(nèi)存大小之和。structStudent_Info{charno[9],name[20],sex;unsignedintage,classno;floatgrade;};structStudent_Infostudent;例:語(yǔ)言程序設(shè)計(jì)第七章構(gòu)造數(shù)據(jù)類型C2、結(jié)構(gòu)體變量的定義和引用struct結(jié)構(gòu)體類型名{數(shù)據(jù)類型名1成員名1;……數(shù)據(jù)類型名n成員名n;};struct結(jié)構(gòu)體類型名變量名列表;結(jié)構(gòu)體變量的定義間接定義法:先定義結(jié)構(gòu)類型,再