1 / 34

| 12 結構與列舉型態

| 12 結構與列舉型態. 12.1 建立與使用結構. | struct 與結構宣告定義. 12.1.1 建立結構. struct stname { type1 membername1 ; type2 membername2 ; … typen membernamen ; } ;. struct 關鍵字表示即將宣告一個自訂的結構型態 stname 為新建立的結構型態識別名稱 大括弧內逐一列舉結構成員的資料型態與成員名稱 結構的宣告最後以「 ; 」做結尾。. |  .  引用結構型態 >>. 12.1 建立與使用結構.

Download Presentation

| 12 結構與列舉型態

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. |12結構與列舉型態

  2. 12.1 建立與使用結構 |struct 與結構宣告定義 12.1.1 建立結構 struct stname { type1 membername1 ; type2 membername2 ; … typen membernamen ; } ; • struct 關鍵字表示即將宣告一個自訂的結構型態 • stname 為新建立的結構型態識別名稱 • 大括弧內逐一列舉結構成員的資料型態與成員名稱 • 結構的宣告最後以「;」做結尾。 |    引用結構型態 >>

  3. 12.1 建立與使用結構 |引用結構型態 12.1.1 建立結構 struct stname sta ; • sta 被宣告為 stname 結構變數 • 透過 sta 存取其中定義的成員 sta.membername1 ; • 引用 stname 結構的第 1 個成員 membername1 << struct 與結構宣告定義    定義結構處理表格 >>

  4. 12.1 建立與使用結構 |定義結構處理表格 12.1.1 建立結構 5 4 3 2 1 << 引用結構型態    範例:結構示範 >>

  5. 12.1 建立與使用結構 |範例:結構示範 12.1.1 建立結構 title:VB 2008 ISBN:123-456-789-00-11 price:550 pages:600 author:Tom 6 5 4 3 2 1 << 定義結構處理表格    初始化結構 >>

  6. 12.1 建立與使用結構 |初始化結構 12.1.2 初始化結構成員 struct book b1={ "VB 2008", "123-456-789-00-11", 550,600,"Tom"}; << 範例:結構示範    範例:結構成員初始化 >>

  7. 12.1 建立與使用結構 |範例:結構成員初始化 12.1.2 初始化結構成員 2 1 << 初始化結構    結構定義與宣告同時完成 >>

  8. 12.1 建立與使用結構 |結構定義與宣告同時完成 12.1.2 初始化結構成員 struct book b ; 3 2 1 << 範例:結構成員初始化    範例:結構指定 >>

  9. 12.1 建立與使用結構 |範例:結構指定 12.1.2 初始化結構成員 3 2 title:VB 2008 ISBN:123-456-789-00-11 price:550 pages:600 author:Tom 1 << 結構定義與宣告同時完成    結構陣列語法 >>

  10. 12.1 建立與使用結構 |結構陣列語法 12.1.3 結構陣列 struct book books[6] ; • 變數 books 是一個 book 結構的陣列 • 可以儲存 6 筆書籍資料 books[0].title • 取得 books 結構陣列中,第 1 個 book 結構的 title 成員 << 範例:結構指定    範例:結構陣列 >>

  11. 12.1 建立與使用結構 |範例:結構陣列 12.1.3 結構陣列 3 2 1 << 結構陣列語法    範例:全域結構 >>

  12. 12.1 建立與使用結構 |範例:全域結構 12.1.4 全域結構 << 範例:結構陣列    結構型態引數宣告 >>

  13. 12.2 結構型態與函數 |結構型態引數宣告 void funname(struct stname sb) { … } • struct 關鍵字宣告 • stname 是結構名稱 • sb 是結構變數 3 2 1 << 範例:全域結構    範例:結構型態引數 >>

  14. 12.2 結構型態與函數 |範例:結構型態引數 b 5 4 3 2 1 << 結構型態引數宣告    範例:回傳結構型態 >>

  15. 12.2 結構型態與函數 |範例:回傳結構型態 VB 2008 123-456-789-00-11 150 600 Tom << 範例:結構型態引數   typedef >>

  16. 12.3 定義型態名稱 |typedef void showStruct(struct book sb) { … } • 結構命名冗長麻煩 12 11 typedef datatype typename ; 10 9 • typedef 關鍵字定義自訂的型態 • datatype 是資料型態名稱 • typename 為自訂的型態名稱 8 7 6 5 4 3 typedef struct book KBOOK ; 2 1 << 範例:回傳結構型態    範例:typedef 示範 >>

  17. 12.3 定義型態名稱 |範例:typedef 示範 VB 2008 680 3 title:VB 2008 ,pages:680 2 1 << typedef typedef 與型態名稱宣告 >>

  18. 12.3 定義型態名稱 |typedef 與型態名稱宣告 typedef struct book { char title[24] ; int price ; } kbook ; • 以 typedef 關鍵字定義結構 • 最後一行指定 kbook 為結構名稱 << 範例:typedef 示範     巢狀 struct >>

  19. 12.4 巢狀式結構 |巢狀 struct struct st { struct nestst smember1 ; … } ; • st 是一個結構 • nestst 亦是一個結構,它是 st 的成員 << typedef 與型態名稱宣告    範例:巢狀式結構 >>

  20. 12.4 巢狀式結構 |範例:巢狀式結構 computer:C language,123456789 comic:Spider-Man,1122334455 6 5 4 3 2 1 << 巢狀 struct  巢狀結構初始化 >>

  21. 12.4 巢狀式結構 |巢狀結構初始化 struct lib libbooks = { {"Java","j123456789"}, {"Super-Man","s1122334455"} } ; << 範例:巢狀式結構    宣告結構指標 >>

  22. 12.5 指標與結構 |宣告結構指標 12.5.1 結構指標 struct xtype *stptname ; • struct 表示要宣告一個 struct 型態的指標 • xtype 為這個結構的型態名稱 5 4 3 2 1 << 巢狀結構初始化    指標結構 >>

  23. 12.5 指標與結構 |指標結構 12.5.1 結構指標 struct book { char title[24] ; char ISBN[18] ; int price ; } 12 11 10 struct book *b b = &books ; 9 8 7 • b 是 book 型態的指標變數 • b 儲存 book 結構的位址資訊 &books 6 5 4 b->title 3 2 • 「->」 取代 「.」 即可存取其中的 title 成員 1 << 宣告結構指標    範例:指標與結構 >>

  24. 12.5 指標與結構 |範例:指標與結構 12.5.1 結構指標 8 7 C language 11-22-33-44-55 6 books 位址:0240FF20 title=C language ISBN=11-22-33-44-55 price=590 590 5 4 3 2 1 << 指標結構    結構型態陣列宣告 >>

  25. 12.5 指標與結構 |結構型態陣列宣告 12.5.2 結構陣列與指標 struct book books[6] ; 12 • Struct 表示用來儲存結構 • books 本身的值是第一個元素的位址 11 10 9 8 7 6 5 4 3 2 1 << 範例:指標與結構    指標與結構陣列 >>

  26. 12.5 指標與結構 |指標與結構陣列 12.5.2 結構陣列與指標 books 位址:0240FF00 title=C language ISBN=11-22-33-44-55 price=590 title=Java ISBN=123456789 price=650 5 4 3 2 1 << 結構型態陣列宣告    列舉宣告 >>

  27. 12.6 列舉 |列舉宣告 12.6.1 建立列舉 enum ename { ec1 , ec2 , … ecn } ; • enum 宣告列舉關鍵字,ename 是列舉的識別名稱 • 大括弧內部的 ec1 等項目則是整數型態的列舉常數名稱 • 列舉常數的第一個成員為 0 ,接下來逐一遞增 • ec1 代表 0 ,ec2 代表 1 ,以下類推 • 列舉常數的值無法被更改。 4 3 2 1 << 指標與結構陣列    宣告列舉型態變數 >>

  28. 12.6 列舉 |宣告列舉型態變數 12.6.1 建立列舉 enum ename evar ; evar=ec1 ; • evar 是一個列舉型態變數 << 列舉宣告    範例:列舉示範 >>

  29. 12.6 列舉 |範例:列舉示範 12.6.1 建立列舉 0 1 2 3 4 5 6 w:4 4 3 2 1 << 宣告列舉型態變數    範例:列舉值比對 >>

  30. 12.6 列舉 |範例:列舉值比對 12.6.1 建立列舉 5 今天星期 六 4 3 2 1 << 範例:列舉示範    列舉變數的宣告 >>

  31. 12.6 列舉 |列舉變數的宣告 12.6.2 列舉常數的設定 enum week { mon,tue,wed,thu, fri,sat,sun } week1,week2; • week1 以及 week2 均是 week 列舉變數 << 範例:列舉值比對    範例:列舉設定 >>

  32. 12.6 列舉 |範例:列舉設定 12.6.2 列舉常數的設定 4 3 week1:4,week2:3 2 1 << 列舉變數的宣告    初始化取代預設值 >>

  33. 12.6 列舉 |初始化取代預設值 12.6.2 列舉常數的設定 enum week { mon=100, tue=200, … sun=700 } << 範例:列舉設定    範例:列舉初始化設定 >>

  34. 12.6 列舉 |範例:列舉初始化設定 12.6.2 列舉常數的設定 4 3 week1:300,week2:301 2 1 << 初始化取代預設值   |

More Related