




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、6.1 指針類型指針類型 2000h2001h2ea0h2ea1ha=10 b=8內存 地址變量108指針變量p2=&b=2ea0h:3100h3101h3802h3803h2000h2ea0hp1=&a=2000h變量的指針變量變量的指針變量 6.2 數組類型數組類型數組的特點:數組的特點: (1) (1) 數組中的每一個元素均屬于同一類型,我們稱這種類數組中的每一個元素均屬于同一類型,我們稱這種類型為數組的基類型;型為數組的基類型; (2) (2) 每個數組中的元素個數一經確定后就保持不變,我們每個數組中的元素個數一經確定后就保持不變,我們稱它為數組的長度;稱它為數組的長度; (3) (3
2、) 數組中的每個元素均為變量,我們用數組下標來直接數組中的每個元素均為變量,我們用數組下標來直接訪問數組的元素;訪問數組的元素; (4) (4) 數組中的元素還允許是數組類型,從而產生二維數組數組中的元素還允許是數組類型,從而產生二維數組、多維數組等結構;、多維數組等結構; (5) (5) 在數組定義中,常量表達式的值雖然指出了數組元素在數組定義中,常量表達式的值雖然指出了數組元素的個數,但的個數,但cc編譯器不做越界檢查;編譯器不做越界檢查; (6) 數組名表示數組所用空間的首地址,也就是數組第數組名表示數組所用空間的首地址,也就是數組第0個元個元素的地址。是一個常量地址。素的地址。是一個常
3、量地址。一、一維數組的聲明一、一維數組的聲明 格式:類型格式:類型 數組名數組名常量表達式常量表達式;二、一維數組的引用與初始化二、一維數組的引用與初始化 . 25000 scores00 25002 scores01 25004 scores02 25006 scores10 25008 scores11 25010 scores12 . . . . 25298 scores492 . 五、二維數組元素的引用與初始化五、二維數組元素的引用與初始化引用形式:引用形式: 數組名數組名行下標行下標列下標列下標 /下標為整數類型的表達式下標為整數類型的表達式如:如:scores201=100;初始化
4、形式:存儲類別初始化形式:存儲類別 數據類型數據類型 數組名數組名常量常量1常量常量2=初值初值;如:如:static int s34=50,60,80,20,40,90,70,100,10;例例 矩陣行列互換。矩陣行列互換。exmatrix.c 1 2 3 4 1 5 9 5 6 7 8 2 6 10 9 10 11 12 3 7 11 4 8 12 六、指針與數組六、指針與數組在語言中,指針與數組之間的關系是十分密切的。指針類型變量可在語言中,指針與數組之間的關系是十分密切的。指針類型變量可以當作數組使用,數組類型變量也可以當作指針使用,即在語以當作數組使用,數組類型變量也可以當作指針使用
5、,即在語/6.4 結構體類型結構體類型一、概述一、概述 記錄型數據與結構體 一組相關的不同數據類型的數據項,可作一個整體來處一組相關的不同數據類型的數據項,可作一個整體來處理。理。pascal中稱中稱“記錄型記錄型”數據,數據,c中稱結構體類型數中稱結構體類型數據。與數組有明顯不同,數組要求其所有成員的類型、據。與數組有明顯不同,數組要求其所有成員的類型、長短一樣結構體類型和結構體變量長短一樣結構體類型和結構體變量。struct student int num; char name20; char sex; struct date birthday; float score; stu1, st
6、u2; struct date int month; int day; int year; 什么情形時適用結構體或數組什么情形時適用結構體或數組?二、定義結構體的類型和變量二、定義結構體的類型和變量 定義結構體類型 一般形式一般形式: 例 參見上頁struct 結構體類型名 分量1; 分量2; 分量3; : 分量: 分量又稱域或成員。 當分量是結構體時,形成定義時的嵌套。 定義結構體類型的變量定義結構體類型的變量 定義結構體變量 三種形式三種形式:1. 定義結構體的同時定義 例如前頁例。2. 先定義結構體,后定義結構體變量 例:struct stu . ; . struct stu st1,s
7、t2;3. 直接定義 例:struct . 變量名表; 在struct 后不出現結構體類型名三、三、 結構體變量的引用結構體變量的引用 結構體類型不是存儲數據的實體,即系統并不結構體類型不是存儲數據的實體,即系統并不是給它分配內存,它僅是一種數據類型,與是給它分配內存,它僅是一種數據類型,與int, char 類似類似,用來定義一種數據類型的變量;,用來定義一種數據類型的變量; 結構體類型變量才是存儲數據的實體,結構體結構體類型變量才是存儲數據的實體,結構體變量的分量具體分配存儲單元,等價于一組變變量的分量具體分配存儲單元,等價于一組變量。因此我們引用的是結構體變量。量。因此我們引用的是結構體
8、變量。 引用結構體變量只能通過引用結構體變量的分引用結構體變量只能通過引用結構體變量的分量(成員)實現(在量(成員)實現(在i/o時,賦值時等)。用時,賦值時等)。用“.”或或“-”引用。引用。 例如:例如:sum=st1.score+st2.score; 成員運算符(多級)成員運算符(多級) 例如:例如:age=1999-st1.birthday.year; _qc允許將一結構體變量的所有分量賦予同類允許將一結構體變量的所有分量賦予同類的另一變量。的另一變量。 例如:例如:st2=st1; 例 ex2stu1.c四、四、 結構體數組結構體數組 以某結構體類型也可以定義數組 例 按姓名查詢。e
9、x2stuarr.cstruct student int num; char name30; char sex; float score; stu30; 每個下標變量stui 都有結構體類型student 的各個分量; 下標變量的引用同變量。 五、五、 結構體類型的指針結構體類型的指針 指向結構體類型變量的指針 指向結構體類變量的指針就是該變量所占用的內存區段的首址。例 struct student int num; char name3; char sex; float score; st1,st2,st3; struct student *p=&st1; printf(“%d,%s”, s
10、t1.num, ); printf(“%d,%s”, (*p).num, (*p).name); printf(“%d,%s”, p-num, p-name);numnamesexscore: 2a00hst1p 指向結構體類型數組的指針 指向結構體類數組的指針就是該數組所占用的內存區段的首址。例 struct student int num; char name3; char sex; float score; st30=; struct student *p=st; for(p=st;pnum, p-name,p-sex,p-score);: 2a00hst0st1st2s
11、t3:2a0ah 2a14h2ae0hp指向結構體類型數據的指針一、指向結構體類型變量的指針例 打印通訊錄。()二、指向結構體數組的指針例用結構指針建立一個圖書檢索系統。按書名檢索。(exsearch.c)三、結構指針的使用例鏈表。鏈表的建立、遍歷、查找、插入、刪除操作。2021-10-8鏈表鏈表 00單向鏈表雙向鏈表02021-10-8鏈表鏈表為什么使用鏈表?1)不需要連續存儲空間,可利用內存碎片;2)插入刪除元素不需移動其它元素,處理速度快;3)動態分配存儲空間,不必以最大可能長度預定存儲空間, 且可以隨意擴充表的容量。動態分配存儲空間動態分配存儲空間(使用函數使用函數):該函數釋放由pt
12、r指向的內存區。ptr是最近一次調用calloc或malloc函數時返回的值。用結構體及結構體指針構造鏈表和鏈表操作用結構體及結構體指針構造鏈表和鏈表操作 (2) 鏈表的遍歷(輸出) 函數如下:2021-10-8鏈表鏈表 插入結點 刪除結點0單向鏈表2100h2100h2180h2010h2050h2050h2a02h2a02h2100h2180h0單向鏈表2100h2050h2a02h2010h2050h2100h2a02h2a02h 。 。例 返回指針值的函數定義 類型標示符 *函數名 ( 參數表 );例如: char *person ( char name , char sex); 函數
13、 person( ) 返回的指針指向 char 型量。 例 * 概念概念: 。指針數組 namename0name1name2name3“turbo c ”“ms c ”“quick c ”:“ansi c ”字符串 定義例1 &p&a25變量 a例2 。例2編寫一個ren(換名)程序。指向結構體類型數據的指針一、指向結構體類型變量的指針例 打印通訊錄。()二、指向結構體數組的指針例用結構指針建立一個圖書檢索系統。按書名檢索。(exsearch.c)三、結構指針的使用例鏈表。鏈表的建立、遍歷、查找、插入、刪除操作。2021-10-8made by lut2021-10-8 0000 0000 0000 0000 0000 0000 0000 0000 00000000 000010100000 0000 0000 0000 1111 1111 1111 1111
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 強化校園餐飲安全防護的有效措施與實踐路徑
- 2025年綠色建筑材料在綠色家居定制中的應用可行性分析報告
- 鋰電池電解質一體化項目實施方案(參考范文)
- 2025廣西農村投資集團有限公司公開招聘中層管理人員和業務骨干197人筆試參考題庫附帶答案詳解
- 2025年合肥東新融媒科技有限公司招聘5人筆試參考題庫附帶答案詳解
- 2025云南龍陵國有資產運營有限責任公司臨聘人員招聘30人筆試參考題庫附帶答案詳解
- 2025年工業互聯網平臺微服務架構性能監控報告:實時優化方案
- 地下采礦工程基礎設施建設實施方案(參考范文)
- 行政管理數字化轉型試題及答案
- 2025年市政工程歷史沿革試題及答案
- 2025年黃山市祁門文化旅游發展集團有限公司招聘5人筆試參考題庫附帶答案詳解
- 2025-2030中國植物蛋白行業市場發展趨勢與前景展望戰略研究報告
- 美容美發股東合同和合伙協議
- 2024年湖北省襄陽縣事業單位公開招聘醫療衛生崗筆試題帶答案
- 2025年內蒙古自治區赤峰市通遼市中考二模歷史試題(含答案)
- 2025-2030中國黑小麥行業深度分析及發展趨勢與投資戰略研究報告
- 《皮膚修復機制》課件
- 回訪崗管理制度
- 2025年北京龍雙利達知識產權代理有限公司招聘筆試參考題庫含答案解析
- 2025年醫院VTE防治培訓計劃
- 2025至2030年中國玻璃鋼夾砂給水管道市場分析及競爭策略研究報告
評論
0/150
提交評論