Upload
sacha-conrad
View
23
Download
0
Embed Size (px)
DESCRIPTION
| 12 結構與列舉型態. 12.1 建立與使用結構. | struct 與結構宣告定義. 12.1.1 建立結構. struct stname { type1 membername1 ; type2 membername2 ; … typen membernamen ; } ;. struct 關鍵字表示即將宣告一個自訂的結構型態 stname 為新建立的結構型態識別名稱 大括弧內逐一列舉結構成員的資料型態與成員名稱 結構的宣告最後以「 ; 」做結尾。. | . 引用結構型態 >>. 12.1 建立與使用結構. - PowerPoint PPT Presentation
Citation preview
C 語言入門經典 引用結構型態 >> |
| struct 與結構宣告定義12.1 建立與使用結構
12.1.1 建立結構
struct stname{
type1 membername1 ;type2 membername2 ;…typen membernamen ;
} ;
• struct 關鍵字表示即將宣告一個自訂的結構型態• stname 為新建立的結構型態識別名稱• 大括弧內逐一列舉結構成員的資料型態與成員名稱• 結構的宣告最後以「 ; 」做結尾。
C 語言入門經典 定義結構處理表格 >> << struct 與結構宣告定義
|引用結構型態
struct stname sta ;
sta.membername1 ;
• sta 被宣告為 stname 結構變數• 透過 sta 存取其中定義的成員
• 引用 stname 結構的第 1 個成員 membername1
12.1 建立與使用結構
12.1.1 建立結構
C 語言入門經典
5
4
3
2
1
初始化結構 >> << 定義結構處理表格
6
|範例 : 結構示範
title:VB 2008ISBN:123-456-789-00-11price:550pages:600author:Tom
12.1 建立與使用結構
12.1.1 建立結構
C 語言入門經典 範例:結構成員初始化 >> << 範例:結構示範
|初始化結構12.1 建立與使用結構
12.1.2 初始化結構成員
struct book b1={"VB 2008", "123-456-789-00-11",
550,600,"Tom"};
C 語言入門經典
3
2
1
結構陣列語法 >> << 結構定義與宣告同時完成
|範例:結構指定
title:VB 2008 ISBN:123-456-789-00-11 price:550 pages:600 author:Tom
12.1 建立與使用結構
12.1.2 初始化結構成員
C 語言入門經典 範例:結構陣列 >> << 範例:結構指定
|結構陣列語法12.1 建立與使用結構
12.1.3 結構陣列
struct book books[6] ;
books[0].title
• 變數 books 是一個 book 結構的陣列• 可以儲存 6 筆書籍資料
• 取得 books 結構陣列中,第 1 個 book 結構的 title 成員
C 語言入門經典
3
2
1
範例:結構型態引數 >> << 範例:全域結構
|結構型態引數宣告12.2 結構型態與函數
void funname(struct stname sb){
…}
• struct 關鍵字宣告• stname 是結構名稱• sb 是結構變數
C 語言入門經典
5
4
3
2
1
範例: typedef 示範 >> << 範例:回傳結構型態
6
7
8
9
10
11
12
| typedef12.3 定義型態名稱
void showStruct(struct book sb){
…}
typedef datatype typename ;
typedef struct book KBOOK ;
• 結構命名冗長麻煩
• typedef 關鍵字定義自訂的型態• datatype 是資料型態名稱• typename 為自訂的型態名稱
C 語言入門經典
3
2
1
typedef 與型態名稱宣告 >> << typedef
|範例: typedef 示範
VB 2008 680
title:VB 2008 ,pages:680
12.3 定義型態名稱
C 語言入門經典 巢狀 struct >> << 範例: typedef 示範
| typedef 與型態名稱宣告
typedef struct book{
char title[24] ;int price ;
} kbook ;
12.3 定義型態名稱
• 以 typedef 關鍵字定義結構
• 最後一行指定 kbook 為結構名稱
C 語言入門經典 範例:巢狀式結構 >> << typedef 與型態名稱宣告
|巢狀 struct12.4 巢狀式結構
struct st{
struct nestst smember1 ;…
} ;
• st 是一個結構
• nestst 亦是一個結構,它是 st 的成員
C 語言入門經典
4
3
2
1
巢狀結構初始化 >> << 巢狀 struct
|範例:巢狀式結構
computer:C language,123456789comic:Spider-Man,1122334455
6
5
12.4 巢狀式結構
C 語言入門經典 宣告結構指標 >> << 範例:巢狀式結構
|巢狀結構初始化
struct lib libbooks ={
{"Java","j123456789"},{"Super-Man","s1122334455"}
} ;
12.4 巢狀式結構
C 語言入門經典
5
4
3
2
1
指標結構 >> << 巢狀結構初始化
|宣告結構指標12.5 指標與結構
12.5.1 結構指標
struct xtype *stptname ;
•struct 表示要宣告一個 struct 型態的指標•xtype 為這個結構的型態名稱
C 語言入門經典
5
4
3
2
1
範例:指標與結構 >> << 宣告結構指標
6
7
8
9
10
11
12
|指標結構
struct book{
char title[24] ;char ISBN[18] ;int price ;
}
struct book *bb = &books ;
• b 是 book 型態的指標變數• b 儲存 book 結構的位址資訊 &books
b->title
•「 -> 」 取代 「 . 」 即可存取其中的 title 成員
12.5 指標與結構
12.5.1 結構指標
C 語言入門經典 結構型態陣列宣告 >> << 指標結構
|範例:指標與結構
books 位址: 0240FF20title=C languageISBN=11-22-33-44-55price=590
C language11-22-33-44-55
590 5
4
3
2
1
6
7
8
12.5 指標與結構
12.5.1 結構指標
C 語言入門經典
5
4
3
2
1
指標與結構陣列 >> << 範例:指標與結構
6
7
8
9
10
11
12
|結構型態陣列宣告12.5 指標與結構
12.5.2 結構陣列與指標
struct book books[6] ;
• Struct 表示用來儲存結構
• books 本身的值是第一個元素的位址
C 語言入門經典
5
4
3
2
1
列舉宣告 >> << 結構型態陣列宣告
|指標與結構陣列12.5 指標與結構
12.5.2 結構陣列與指標
books 位址: 0240FF00
title=C languageISBN=11-22-33-44-55price=590title=JavaISBN=123456789price=650
C 語言入門經典 宣告列舉型態變數 >> << 指標與結構陣列
|列舉宣告12.6 列舉
enum ename{
ec1 ,ec2 ,…ecn
} ;
• enum 宣告列舉關鍵字, ename 是列舉的識別名稱• 大括弧內部的 ec1 等項目則是整數型態的列舉常數名稱• 列舉常數的第一個成員為 0 ,接下來逐一遞增• ec1 代表 0 , ec2 代表 1 ,以下類推• 列舉常數的值無法被更改。
4
3
2
1
12.6.1 建立列舉
C 語言入門經典 範例:列舉示範 >> << 列舉宣告
|宣告列舉型態變數
enum ename evar ;evar=ec1 ;
• evar 是一個列舉型態變數
12.6 列舉
12.6.1 建立列舉
C 語言入門經典 範例:列舉設定 >> << 範例:列舉值比對
|列舉變數的宣告12.6 列舉
12.6.2 列舉常數的設定
enum week{
mon,tue,wed,thu,fri,sat,sun
} week1,week2;
• week1 以及 week2 均是 week 列舉變數
C 語言入門經典 範例:列舉初始化設定 >> << 範例:列舉設定
|初始化取代預設值
enum week{
mon=100,tue=200,…sun=700
}
12.6 列舉
12.6.2 列舉常數的設定