版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章結構體與共用體學習目標掌握結構體類型的基本概念、結構體類型變量的定義及簡單應用?;菊莆战Y構體類型變量參與函數(shù)調用的方法。了解鏈表,動態(tài)存儲空間的申請與釋放了解共用體的概念主要內容鏈表8.2鏈表一.動態(tài)存儲管理C語言提供了一些內存管理函數(shù),可以按需要動態(tài)地分配內存空間1.開辟內存空間函數(shù)malloc()
函數(shù)的原型為:
void*malloc(int);
一般調用形式:
(類型說明符*)malloc(size);功能:在內存的動態(tài)存儲區(qū)中開辟一塊長度為size字節(jié)的連續(xù)區(qū)域,size是一個正整數(shù)返回值:開辟內存區(qū)域的首地址,該地址的類型為“void*”類型,即不確定的指針類型例如:
char*pc; pc=(char*)malloc(100);表示開辟100個字節(jié)的內存空間開辟空間的首地址強制轉換為“char*”型注意:malloc()函數(shù)并不能初始化所分配的內存空間,開辟的內存空間一般都是隨機數(shù)2.開辟內存空間函數(shù)calloc()函數(shù)原型為:
void*calloc(int,int);一般調用形式:
(類型說明符*)calloc(n,size);功能:在內存動態(tài)存儲區(qū)中分配n塊長度為size字節(jié)的連續(xù)內存區(qū)域;返回值:開辟區(qū)域的首地址;“(類型說明符*)”用于函數(shù)返回值的強制類型轉換calloc()函數(shù)與malloc()函數(shù)的區(qū)別
calloc()一次可以分配n塊區(qū)域,每塊區(qū)域的長度都為size個字節(jié)。例如:structstu*ps;
ps=(structstu*)calloc(2,sizeof(structstu));sizeof(structstu)是求structstu型結構體數(shù)據(jù)的長度功能:按structstu的長度分配2塊連續(xù)的內存區(qū)域,并將該內存區(qū)域的首地址強制轉換為structstu結構體指針類型,并將該地址賦給指針變量ps。calloc()函數(shù)與malloc()函數(shù)的區(qū)別
calloc()函數(shù)會將所開辟內存空間中的每一位都初始化為零,malloc()函數(shù)并不能初始化所分配的內存空間。為字符類型或整數(shù)類型的元素分配內存,那么這些元素將保證會被初始化為0為指針類型的元素分配內存,那么這些元素通常會被初始化為空指針NULL為實型數(shù)據(jù)分配內存,則這些元素會被初始化為浮點型的零3.釋放內存空間函數(shù)free()該函數(shù)的調用形式:
free(ptr);功能:釋放指針變量ptr所指向的內存空間,該空間是由malloc()或calloc()函數(shù)開辟的。二.鏈表簡介鏈表是一種動態(tài)的進行存儲分配的數(shù)據(jù)結構。圖表示了一種最簡單的鏈表結構:單向鏈表。頭指針一個結點數(shù)據(jù)域指針域單向鏈表結構首結點首結點:存放第一個有效數(shù)據(jù)的結點頭結點:頭結點的數(shù)據(jù)類型和首結點相同頭結點是首結點前面的那個結點頭結點并不存放有效數(shù)據(jù)設置頭結點的目的是為了方便對鏈表的操作結點結構體類型定義如下structnode
//結點類型名{
chardata;
//數(shù)據(jù)域structnode*next; //指針域
};如存儲學生相關的信息的結點定義structStuNode{
charnum[10];
//學號charname[20]; //姓名floatscore; //分數(shù)structStuNode*next;
//指針域};對鏈表的基本操作有建立鏈表、輸出鏈表、查找結點、插入結點和刪除結點等。1.建立鏈表建立單向鏈表的主要步驟:讀取數(shù)據(jù)、申請存放新結點的存儲空間、將數(shù)據(jù)存入結點空間、將新結點添加到鏈表中,重復上述操作直至結束。三.鏈表的基本操作2.輸出整個鏈表輸出整個鏈表即從鏈表的頭指針開始,按順序依次訪問鏈表中的各個數(shù)據(jù)結點,每訪問到一個數(shù)據(jù)結點時就將該結點數(shù)據(jù)域中的內容輸出。當訪問到鏈表中的最后一個結點時,由于其指針域為空,所以可依此作為條件結束輸出?!纠?-9】建立并輸出一個學生數(shù)據(jù)的單向鏈表。學生數(shù)據(jù)包括:學號、姓名和成績。3.查找結點從鏈表的頭指針開始,按順序依次訪問鏈表中的各個數(shù)據(jù)結點,查找關鍵字與當前結點數(shù)據(jù)域中內容,相等則查找成功,輸出;如不等則移動指針查看下一結點。如訪問到最后一個結點時仍未找到,則結束查找,提示不存在。4.插入結點開辟新結點用指針s指向,并將要插入的數(shù)據(jù)data存入新結點空間的數(shù)據(jù)域中,插入過程如圖
s->next=p->next;
p->next
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市商品管理及驗收制度
- 濟寧模特禮儀培訓
- 右江區(qū)四塘鎮(zhèn)里蘭鄉(xiāng)村振興光伏發(fā)電項目(重大變動)環(huán)境影響報告表
- 流行病學課件報告
- 樹狀圖求概率教學課件
- 2024-2025學年山西省臨汾市部分學校高二下學期期中考試歷史試題(C卷)(解析版)
- 2024-2025學年江蘇省鹽城市七校聯(lián)考高二上學期期中考試歷史試題(解析版)
- 2026年工程建造師專業(yè)技術課程測試模擬題及答案
- 2026年銀行從業(yè)者金融產品與服務知識考試題目及答案詳解
- 2026年軟件測試工程師面試題測試用例設計與執(zhí)行
- 江蘇省蘇州市2026屆高三上學期期末考試英語試卷(含音頻)
- 四川能投綜合能源有限責任公司員工公開招聘筆試備考試題及答案解析
- 2025福建省安全員C證考試(專職安全員)題庫附答案
- 中國話語體系中的國際傳播話語創(chuàng)新策略分析課題申報書
- 高標準基本農田建設項目監(jiān)理工作總結報告
- 消防知識培訓宣傳課件
- 病理科醫(yī)療安全風險培訓課件
- 2025-2026學年通-用版英語 高一上學期期末試題(含聽力音頻答案)
- 高考英語3500詞分類整合記憶手冊(含完整中文釋義)
- 2025年新疆公務員《行政職業(yè)能力測驗》試題及答案
- 中醫(yī)護理案例分享
評論
0/150
提交評論