Presentation is loading. Please wait.

Presentation is loading. Please wait.

|12 結構與列舉型態.

Similar presentations


Presentation on theme: "|12 結構與列舉型態."— Presentation transcript:

1 |12 結構與列舉型態

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

3 |引用結構型態 struct stname sta ; sta.membername1 ; sta 被宣告為 stname 結構變數
12.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 |範例:結構示範 title:VB 2008 ISBN:123-456-789-00-11 price:550 pages:600
12.1 建立與使用結構 |範例:結構示範 建立結構 title:VB 2008 ISBN: price:550 pages:600 author:Tom 6 5 4 3 2 1 << 定義結構處理表格    初始化結構 >>

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

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

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

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

10 |結構陣列語法 struct book books[6] ; books[0].title 變數 books 是一個 book 結構的陣列
12.1 建立與使用結構 |結構陣列語法 結構陣列 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 建立與使用結構 |範例:全域結構 全域結構 << 範例:結構陣列    結構型態引數宣告 >>

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

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

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

16 |typedef void showStruct(struct book sb) { … } 結構命名冗長麻煩
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 |範例:typedef 示範 title:VB 2008 ,pages:680 VB 2008 680 12.3 定義型態名稱 3 2 1

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

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

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

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

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

23 「->」 取代 「.」 即可存取其中的 title 成員
12.5 指標與結構 |指標結構 結構指標 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 |範例:指標與結構 books 位址:0240FF20 title=C language ISBN=11-22-33-44-55
12.5 指標與結構 |範例:指標與結構 結構指標 8 7 C language 6 590 books 位址:0240FF20 title=C language ISBN= price=590 5 4 3 2 1 << 指標結構    結構型態陣列宣告 >>

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

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

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

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

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

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

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

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

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

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


Download ppt "|12 結構與列舉型態."

Similar presentations


Ads by Google