Download presentation
Presentation is loading. Please wait.
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
<< 初始化取代預設值 |
Similar presentations