




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、會計(jì)學(xué)1c語言第十二章語言第十二章(蘇小紅版蘇小紅版)動態(tài)數(shù)據(jù)結(jié)構(gòu)、動態(tài)鏈表第1頁/共60頁第2頁/共60頁第3頁/共60頁第4頁/共60頁第5頁/共60頁第6頁/共60頁第7頁/共60頁分配內(nèi)存不集中,尋址效率不高分配內(nèi)存不集中,尋址效率不高 對數(shù)組賦初值時(shí),易發(fā)生錯(cuò)位對數(shù)組賦初值時(shí),易發(fā)生錯(cuò)位 結(jié)構(gòu)顯得零散,不易管理結(jié)構(gòu)顯得零散,不易管理第8頁/共60頁第9頁/共60頁聲明了一個(gè)結(jié)構(gòu)體類型聲明了一個(gè)結(jié)構(gòu)體類型構(gòu)成結(jié)構(gòu)體的變量稱為結(jié)構(gòu)體的成員構(gòu)成結(jié)構(gòu)體的變量稱為結(jié)構(gòu)體的成員(Structure Member)結(jié)構(gòu)體的名字稱為結(jié)構(gòu)體標(biāo)簽結(jié)構(gòu)體的名字稱為結(jié)構(gòu)體標(biāo)簽(Structure Tag)第
2、10頁/共60頁結(jié)構(gòu)體模板結(jié)構(gòu)體模板(Structure Template)Dont forget the semicolon!第11頁/共60頁(1 1)先定義結(jié)構(gòu)體類型,再定義變量名)先定義結(jié)構(gòu)體類型,再定義變量名(2 2)在定義類型的同時(shí)定義變量)在定義類型的同時(shí)定義變量(3 3)直接定義結(jié)構(gòu)體變量(不指定結(jié)構(gòu)體標(biāo)簽)直接定義結(jié)構(gòu)體變量(不指定結(jié)構(gòu)體標(biāo)簽)第12頁/共60頁關(guān)鍵字關(guān)鍵字typedef為一種為一種已存在的已存在的類型定義一個(gè)類型定義一個(gè)別名別名,并未定義新類型,并未定義新類型STUDENT與與struct student類型是類型是同義詞同義詞第13頁/共60頁等價(jià)于等價(jià)于
3、等價(jià)于等價(jià)于第14頁/共60頁結(jié)構(gòu)體定義結(jié)構(gòu)體定義可以嵌套可以嵌套第15頁/共60頁第16頁/共60頁按結(jié)構(gòu)體的成員順序逐一對相應(yīng)成員進(jìn)行賦值按結(jié)構(gòu)體的成員順序逐一對相應(yīng)成員進(jìn)行賦值格式符格式符%02d中中2d前面的前導(dǎo)符前面的前導(dǎo)符0表示輸出數(shù)據(jù)時(shí),若左邊有多余位,則補(bǔ)表示輸出數(shù)據(jù)時(shí),若左邊有多余位,則補(bǔ)0第17頁/共60頁那么程序如何修改?兩個(gè)地址有何不同?兩個(gè)地址有何不同?第18頁/共60頁那么程序如何修改?結(jié)構(gòu)體成員的地址與該成員在結(jié)構(gòu)體中所處的位置及其所占內(nèi)存的字節(jié)數(shù)相關(guān)結(jié)構(gòu)體成員的地址與該成員在結(jié)構(gòu)體中所處的位置及其所占內(nèi)存的字節(jié)數(shù)相關(guān)結(jié)構(gòu)體變量的地址結(jié)構(gòu)體變量的地址&st
4、u2是該變量所占內(nèi)存空間的首地址是該變量所占內(nèi)存空間的首地址第19頁/共60頁nstruct = ?第20頁/共60頁事實(shí)上,所有數(shù)據(jù)類型在內(nèi)存中都是從事實(shí)上,所有數(shù)據(jù)類型在內(nèi)存中都是從地址開始存放的地址開始存放的且結(jié)構(gòu)所占的實(shí)際空間一般是按照機(jī)器字長對齊的且結(jié)構(gòu)所占的實(shí)際空間一般是按照機(jī)器字長對齊的不同的編譯器、平臺,對齊方式會有變化不同的編譯器、平臺,對齊方式會有變化結(jié)構(gòu)體變量的成員的存儲結(jié)構(gòu)體變量的成員的存儲是與機(jī)器相關(guān)的是與機(jī)器相關(guān)的具有特定數(shù)據(jù)類型的具有特定數(shù)據(jù)類型的也是與機(jī)器相關(guān)的也是與機(jī)器相關(guān)的所以一個(gè)結(jié)構(gòu)體在內(nèi)存中的存儲格式也是與機(jī)器相關(guān)的所以一個(gè)結(jié)構(gòu)體在內(nèi)存中的存儲格式也是與
5、機(jī)器相關(guān)的第21頁/共60頁第22頁/共60頁建立了數(shù)據(jù)庫中的多條記錄,每條對應(yīng)一個(gè)學(xué)生信息建立了數(shù)據(jù)庫中的多條記錄,每條對應(yīng)一個(gè)學(xué)生信息第23頁/共60頁第24頁/共60頁ptstu1成員成員1成員成員2成員成員3成員成員4成成員員5等價(jià)于等價(jià)于第25頁/共60頁ptstu1成員成員1成員成員2成員成員3成員成員4成成員員5第26頁/共60頁ptstu1成員成員1成員成員2成員成員3成員成員4成成員員5第27頁/共60頁等價(jià)于等價(jià)于等價(jià)于等價(jià)于ptstu30stu0stu1stu2stu3stu4stu5.stu29第28頁/共60頁ptstu30stu0stu1stu2stu3stu4st
6、u5.stu29第29頁/共60頁第30頁/共60頁struct date int year; int month; int day;void Func(struct date p) p.year = 2000; p.month = 5; p.day = 22;第31頁/共60頁struct date int year; int month; int day;void Func(struct date ) year = 2000; month = 5; day = 22;指針作函數(shù)形參指針作函數(shù)形參實(shí)參必須為地址值實(shí)參必須為地址值第32頁/共60頁struct date int year; i
7、nt month; int day; Func(struct date ) year = 2000; month = 5; day = 22; 第33頁/共60頁第34頁/共60頁第35頁/共60頁第36頁/共60頁第37頁/共60頁第38頁/共60頁第39頁/共60頁0 x0037b00第40頁/共60頁nsizeof(union number)取決于的那個(gè)成員變量0 x0037b00n同一內(nèi)存單元在每一瞬時(shí)只能存放其中一種類型的成員同一內(nèi)存單元在每一瞬時(shí)只能存放其中一種類型的成員n起作用的成員是起作用的成員是的成員,不能作為函數(shù)參數(shù)的成員,不能作為函數(shù)參數(shù)n不能進(jìn)行比較操作,只能對第一個(gè)成
8、員初始化不能進(jìn)行比較操作,只能對第一個(gè)成員初始化第41頁/共60頁第42頁/共60頁第43頁/共60頁n描述的是一組整型值的集合n用于當(dāng)某些量僅由有限個(gè)數(shù)據(jù)值組成時(shí) enum weeks SUN, MON, TUE, WED, THU, FRI, SAT; enum weeks today; enum response no, yes, none; enum response answer; today = TUE; answer = yes; enum response no = -1, yes = 1, none = 0; 其值為其值為2 2其值為其值為1 1第44頁/共60頁結(jié)構(gòu)體聲明時(shí)
9、不能包含本結(jié)構(gòu)體類型成員,結(jié)構(gòu)體聲明時(shí)不能包含本結(jié)構(gòu)體類型成員,系統(tǒng)將無法為這樣的結(jié)構(gòu)體類型分配內(nèi)存系統(tǒng)將無法為這樣的結(jié)構(gòu)體類型分配內(nèi)存 可包含指向本結(jié)構(gòu)體可包含指向本結(jié)構(gòu)體類型的指針變量類型的指針變量第45頁/共60頁datanextheaddatanextdatanextdataNULL第46頁/共60頁datanextheaddatanextdatanextdataNULL兩部分信息組成兩部分信息組成一個(gè)節(jié)點(diǎn)一個(gè)節(jié)點(diǎn)第47頁/共60頁datanextheaddatanextdatanextdataNULL數(shù)據(jù)域:存儲數(shù)據(jù)元素?cái)?shù)據(jù)域:存儲數(shù)據(jù)元素信息信息指針域:存儲直接后指針域:存儲直接后
10、繼的節(jié)點(diǎn)信息繼的節(jié)點(diǎn)信息n個(gè)節(jié)點(diǎn)鏈接成一個(gè)鏈表(因?yàn)橹话粋€(gè)指針域,故又稱線性鏈個(gè)節(jié)點(diǎn)鏈接成一個(gè)鏈表(因?yàn)橹话粋€(gè)指針域,故又稱線性鏈表或單向鏈表)表或單向鏈表)第48頁/共60頁data = Anodedata = Bnodedata = Cnodehead第49頁/共60頁headdatanext p(2) pr = ppr(3) pr-next = NULL第50頁/共60頁datanextp(2) pr = pheaddataprpr(3) pr-next = NULLnext第51頁/共60頁 datanextheaddatanext p第52頁/共60頁datanextdatanextdatanext pdatanext 第53頁/共60頁headdata p第54頁/共60頁headdatanext pdatanextdatanextdata第
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動合同轉(zhuǎn)讓合同
- 大型石材采購合同協(xié)議
- 液化氣購銷合同細(xì)則
- 財(cái)務(wù)管理咨詢服務(wù)合同例文
- 校園安保人員服務(wù)合同
- 重型起重機(jī)采購合同
- 工業(yè)機(jī)器人習(xí)題庫含答案
- 水利工程勞務(wù)分包:合同范本大全
- 電商產(chǎn)品代理銷售合同
- 練攤經(jīng)濟(jì)學(xué)課件
- 肩肘倒立公開課教案陳勇
- JJF 1603-2016(0.1~2.5)THz太赫茲光譜儀校準(zhǔn)規(guī)范
- 《民法典》-第二編 物權(quán)編-案例分析,解讀-3
- GB/T 1266-2006化學(xué)試劑氯化鈉
- 海岸動力學(xué)全冊配套完整課件
- 工作面防飛矸封閉式管理規(guī)定
- 纖維素酶活性的測定
- 干部人事檔案管理崗位培訓(xùn)的講義課件
- 驗(yàn)電接地環(huán)安裝規(guī)范
- 計(jì)算機(jī)監(jiān)控系統(tǒng)安裝單元工程質(zhì)量驗(yàn)收評定表
- 外墻干掛大理石施工方案(標(biāo)準(zhǔn)版)
評論
0/150
提交評論