第9章自订型态–结构、联合和列举课件.ppt
《第9章自订型态–结构、联合和列举课件.ppt》由会员分享,可在线阅读,更多相关《第9章自订型态–结构、联合和列举课件.ppt(43页珍藏版)》请在三一办公上搜索。
1、第9章 自訂資料型態 結構、聯合和列舉,9-1 結構資料型態9-2 結構陣列9-3 指標與結構9-4 動態記憶體配置9-5 聯合與列舉資料型態9-6 建立C語言的新型態9-7 位元欄位,第9章 自訂資料型態 結構、聯合和列舉9-1 結構資料型,9-1 結構資料型態,9-1-1 結構的基礎9-1-2 結構宣告與基本使用9-1-3 巢狀結構9-1-4 結構與函數,9-1 結構資料型態9-1-1 結構的基礎,9-1-1 結構的基礎-說明,結構(Structures)是C語言的延伸資料型態,它和聯合、列舉都屬於自定資料型態(User-Defined Types),可以讓程式設計者自行在程式碼定義新的資
2、料型態。結構是由一或多個不同資料型態(當然也可以是相同資料型態)所組成的集合,然後使用一個新名稱來代表,新名稱是一個新的資料型態,我們可以使用此新資料型態來宣告結構變數。,9-1-1 結構的基礎-說明結構(Structures),9-1-1 結構的基礎-C語言的結構,C語言的結構如同資料庫的記錄,可以將複雜且相關的資料組合成一個記錄來方便存取。例如:圖形的點是由X軸和Y軸的座標(x,y)所組成,如下所示:struct point int x;int y;結構point可以代表圖形上的一個點的座標(x,y),當圖形是由數十到百點組成時,使用結構處理時,就能夠清楚分別哪一個x值是搭配哪一個y值的座
3、標。,9-1-1 結構的基礎-C語言的結構C語言的結構如同資料庫的,9-1-2 結構宣告與基本使用-語法,在C程式宣告結構是使用struct關鍵字來定義新的資料型態,其語法如下所示:struct 結構名稱 資料型態 變數1;資料型態 變數2;語法定義名為【結構名稱】的新資料型態,程式設計者可以使用C語言的命名原則替結構命名,在結構中宣告的變數稱為該結構的成員(Members)。,9-1-2 結構宣告與基本使用-語法在C程式宣告結構是使用s,9-1-2 結構宣告與基本使用-範例,例如:宣告學生資料的student結構,如下所示:struct student int stdId;char name
4、20;int mathScore;int englishScore;上述結構是由學號stdId、學生姓名name字元陣列的字串、數學成績mathScore和英文成績englishScore成員變數組成。,9-1-2 結構宣告與基本使用-範例例如:宣告學生資料的st,9-1-2 結構宣告與基本使用-宣告結構變數與初始值(說明),當宣告student結構後,因為結構是一種自訂型態,換句話說,我們就可以在程式碼使用新型態來宣告變數,其語法如下所示:struct 結構名稱 變數名稱;上述宣告使用struct關鍵字(C語言一定需要struct)開頭加上結構名稱來宣告結構變數,以student結構為例的結
5、構變數宣告,如下所示:struct student std1;struct student std2=9402,小龍女,65,88;struct student std3;,9-1-2 結構宣告與基本使用-宣告結構變數與初始值(說明),9-1-2 結構宣告與基本使用-宣告結構變數與初始值(圖例),例如:結構變數std2在等號之後使用大括號括起的內容依序是成員變數的初始值,如下圖所示:,9-1-2 結構宣告與基本使用-宣告結構變數與初始值(圖例),9-1-2 結構宣告與基本使用-結構與成員變數的運算,在建立好結構變數後,就可以使用.運算子存取結構成員變數的值,如下所示:std1.stdId=94
6、01;strcpy(std1.name,楊過);std1.mathScore=90;std1.englishScore=77;上述程式碼存取結構的成員變數,因為name是字串,所以使用strcpy()函數來指定成員變數值。ANSI-C語言支援結構變數的指定敘述,如下所示:std3=std2;,9-1-2 結構宣告與基本使用-結構與成員變數的運算在建立好,9-1-3 巢狀結構-說明,巢狀結構(Nested Structures)是在宣告的結構中擁有其他結構,如下所示:struct quiz int mathScore;int englishScore;struct student int std
7、Id;char name20;struct quiz score;,9-1-3 巢狀結構-說明巢狀結構(Nested Str,9-1-3 巢狀結構-存取結構變數,我們可以在宣告student結構變數時,指定結構的初值,如下所示:struct student std2=9402,小龍女,65,88;因為score是student結構的成員變數,所以在存取score結構的成員變數時,需要先存取結構變數score,然後才能存取成員變數mathScore和englishScore,如下所示:std1.score.math=90;std1.score.english=77;,9-1-3 巢狀結構-存取結
8、構變數我們可以在宣告studen,9-1-4 結構與函數-結構宣告,結構是一種自訂資料型態,所以結構變數不只可以作為函數參數,還可以作為函數的傳回值,如下所示:struct point int x;int y;上述結構擁有x和y共2個成員變數。,9-1-4 結構與函數-結構宣告結構是一種自訂資料型態,所以,9-1-4 結構與函數-函數宣告,接著建立函數指定點座標和計算位移,函數的原型宣告,如下所示:struct point setXY(int,int);struct point offset(struct point,int);上述2個函數的傳回值都是point結構,offset()函數使用p
9、oint結構作為參數,使用的是傳值呼叫。因為ANSI-C支援結構變數的指定敘述,所以可以將函數傳回值指定給其它結構變數,如下所示:p1=offset(p,10);,9-1-4 結構與函數-函數宣告接著建立函數指定點座標和計算,9-2 結構陣列-建立,結構陣列(Arrays of Structure)是結構資料型態的陣列。首先我們需要宣告結構,例如:宣告quiz結構,如下所示:struct quiz int mathScore;int englishScore;上述結構擁有2個成員變數,因為quiz是一種新資料型態,所以可以使用此型態建立一維陣列,如下所示:#define MAXSIZE 3st
10、ruct quiz studentsMAXSIZE;,9-2 結構陣列-建立結構陣列(Arrays of St,9-2 結構陣列-存取,因為結構陣列是一種陣列,所以存取陣列索引i元素結構的成員變數,如下所示:studentsi.mathScorestudentsi.englishScore,9-2 結構陣列-存取因為結構陣列是一種陣列,所以存取陣列索,9-3 指標與結構,9-3-1 結構的指標變數9-3-2 標準函式庫的tm日期/時間結構,9-3 指標與結構9-3-1 結構的指標變數,9-3-1 結構的指標變數-宣告,如同C語言其它資料型態的指標變數,指標也可以指向結構,我們可以建立指標變數指
11、向一個結構,如下所示:struct time int hours;int minutes;int seconds;因為指標需要指向結構變數的位址,所以需要先宣告結構變數,然後才能建立指向結構的指標,如下所示:struct time now,*ptr;,9-3-1 結構的指標變數-宣告如同C語言其它資料型態的指標,9-3-1 結構的指標變數-指定結構變數值,接著將結構指標指向結構,如下所示:ptr=,9-3-1 結構的指標變數-指定結構變數值接著將結構指標指向,9-3-2 標準函式庫的tm日期/時間結構-結構宣告,struct tm int tm_sec;/*秒:0-59*/int tm_min
12、;/*分:0-59*/int tm_hour;/*時:0-23*/int tm_mday;/*日:1-31*/int tm_mon;/*月:0-11*/int tm_year;/*年:從1900年起算*/int tm_wday;/*星期:從星期日起(0-6)*/int tm_yday;/*天數:從1/1日起算:0-365*/int tm_isdst;/*是否是日光節約時間,1是,0不是,-1不知*/;,9-3-2 標準函式庫的tm日期/時間結構-結構宣告stru,9-3-2 標準函式庫的tm日期/時間結構-常用的日期/時間函數,9-3-2 標準函式庫的tm日期/時間結構-常用的日期/時間,9-
13、4 動態記憶體配置,9-4-1 動態記憶體配置-malloc()和free()函數9-4-2 配置陣列的記憶體9-4-3 配置結構的記憶體,9-4 動態記憶體配置9-4-1 動態記憶體配置,9-4-1 動態記憶體配置-malloc()函數(說明),配置記憶體:malloc()函數在C語言程式碼呼叫malloc()函數,可以向作業系統取得一塊可用的記憶體空間,其說明如下表所示:,9-4-1 動態記憶體配置-malloc()函數(說明),9-4-1 動態記憶體配置-malloc()函數(語法),當程式需要配置size尺寸的記憶體空間時,因為函數傳回void通用型指標,所以需要加上型態迫換,將函數傳
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自订 结构 联合 列举 课件
链接地址:https://www.31ppt.com/p-2109633.html