




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、本章內容提要7.1 結構體7.2 共用體7.3 枚舉類型7.4 typedef聲明7.1 結構體struct 結構體類型名成員類型1 成員名1;成員類型2 成員名2;成員類型n 成員名n;定義結構體類型的一般形式為:在定義結構體類型的同時定義變量7.1.1 結構體變量的定義、初始化及使用1結構體變量的定義struct 結構體類型名成員類型1 成員名1;成員類型2 成員名2;成員類型n 成員名n;變量名1,變量名2,變量名n;先定義結構體類型再定義變量struct 結構體類型名 變量名1,變量名2,變量名n;直接定義結構體變量struct成員類型1 成員名1;成員類型2 成員名2;成員類型n 成
2、員名n;變量名1,變量名2,變量名n;2結構體變量的初始化struct date int year; int month; int day;birthday1=1998,11,22,birthday2=2003,10,23;struct date int year; int month; int day;struct date birthday1=1998,11,22;date birthday2=2003,10,23;struct int year; int month; int day;birthday1=1998,11,22,birthday2=2003,10,23;3結構體變量的使用結
3、構體變量的運算具有相同類型的結構體變量可以進行賦值運算,但不能直接進行輸入/輸出。結構體成員的使用結構體變量名成員名例如:cout成員名7.1.2 結構體數組的定義、初始化及使用1結構體數組的定義struct date int year;int month;int day;birthday3;struct date int year;int month;int day;date birthday3;struct int year;int month;int day;birthday3;2結構體數組的初始化struct date int year; int month; int day;birt
4、hday3=1998,11,22,2003,10,23,2008,1,7;3結構體數組的使用結構體數組中的每個元素都是一個結構體類型數據。結構體數組是通過下標變量引用結構體成員的。7.1.3 指向結構體變量的指針定義一個指向結構體變量的指針,那么該指針的值是結構體變量所占內存段的起始地址。通過指向結構體變量的指針,可以引用結構體變量中的成員:指針變量名成員名;例如:struct date int year; int month; int day;birthday1,birthday2;date *p;/定義指向結構體類型date的指針pp=&birthday1;/將結構體變量的起始地址賦值給指
5、針pp-month=5; /通過指針引用結構體變量的成員,并為其賦值7.1.4 結構體作為函數參數值傳遞用結構體變量名作為函數的實參,將結構體變量中的內容全部順序傳遞給形參。若在函數調用期間,形參的內容發生改變,將不會影響主調函數中相對應的實參。地址傳遞用指向結構體變量的指針作為函數實參,將結構體變量的地址傳遞給形參。引用傳遞用結構體變量的引用變量作為函數參數。7.2 共用體union 共同體類型名成員類型1 成員名1;成員類型2 成員名2;成員類型n 成員名n;在定義結構體類型的同時定義變量7.2.1 共用體變量的定義與初始化例如:union data int a; float b; cha
6、r c;x=123;先定義結構體類型再定義變量例如:union data float b;int a;char c; data y=12.3;直接定義結構體變量例如:union char c; int a; float b; z=c;7.2.2 共用體變量的使用相同類型的共用體變量可以進行賦值運算,對共用體變量中的成員可以進行各種運算。共同體變量名成員名例如:x.a/引用共同體變量x中的整型成員ay.b/引用共同體變量x中的浮點型成員b7.3 枚舉類型如果一個變量只有有限個可能的取值,可以將這些值一一列舉出來,定義為枚舉類型。枚舉類型是由若干個常量組成的有限集合。enum 枚舉類型名枚舉常量列
7、表;例如:enum FruitAPPLE,ORANGE,PEAR,GRAPE,PEACH;枚舉元素是常量,其本身是有值的,如果枚舉常量在定義時沒有指定其對應的值,系統將按定義時的順序自動為它們賦值。例如:enum FruitAPPLE=1,ORANGE=2,PEAR=3,GRAPE=4,PEACH=5;enum FruitAPPLE=4,ORANGE=0,PEAR,GRAPE,PEACH;7.3.1 枚舉類型變量的定義與初始化可以在定義枚舉類型的同時定義枚舉類型變量并初始化。例如:enum FruitAPPLE,ORANGE,PEAR,GRAPE,PEACHf=PEACH; /定義枚舉變量f也
8、可以先定義枚舉類型,再定義枚舉變量并初始化。例如:enum FruitAPPLE,ORANGE,PEAR,GRAPE,PEACH;Fruit f1=ORANGE,f2; /定義2個枚舉變量f1和f2,并為f1賦初值7.3.2 枚舉類型變量的使用枚舉類型可以看作是一個整型常量的集合,枚舉變量的值為該枚舉類型定義中的某個常量的值。例如:enum FruitAPPLE,ORANGE,PEAR,GRAPE,PEACHf1;f1=ORANGE;coutGRAPE) /f1值為1,GRAPE值為3,故關系表達式的值為false枚舉變量可以與整型數據之間進行類型轉換,但不能將一個整型數據直接賦給一個枚舉型變
9、量,應先進行強制類型轉換使等號兩邊的類型相同才能賦值。例如:Fruit f2;f2=Fruit(2);/將序號為2的元素賦值給f2或f2=(Fruit)2;7.4 typedef聲明typedef聲明用于為已存在的數據類型定義一個新的類型名稱。typedef 類型名稱 類型標識符;例如:typedef int INTEGER;/用標識符INTEGER代替C+中的標準數據類型inttypedef struct/用DATE表示定義的結構體類型int year;int month;int day;DATE;DATE birthday;/用DATE定義結構體變量birthday另外,還可以用typed
10、ef為數組、指針等定義新的類型名稱。例如:typedef int COUNT10;/用COUNT定義長度為10的整型數組COUNT a;/定義長度為10的整型數組atypedef char *STRING;/定義STRING為字符指針STRING p;/用STRING定義字符指針變量ptypedef int (*MAX)(int a, int b);/定義MAX為指向函數的指針MAX p;/用MAX定義指針變量p綜合實例1 輸出教師信息/實例7-1.cpp#include union cf/共用體類型 char clname30;/所講課程int num;/論文數目;struct teache
11、rs/結構體類型 int num;/編號char name20;/姓名char zc;/職稱,教師為l,教授為punion cf x;/結構成員變量x為共用體類型,可變字段teach3;/定義結構體數組teachvoid main() int i;for(i=0;i3;i+) coutinput num:teachi.num;/輸入教師號coutinput name:;/輸入教師名字coutinput zc:teachi.zc;/輸入教師職稱if(teachi.zc=l) coutinput clnameteachi.x.clname;else if(teachi.zc=
12、p)/如果職稱是教授,則輸入論文數目。 coutinput thesis_num:teachi.x.num;else coutinput data errorendl;coutnumtnametzctclname/numendl;for(int j=0;j3;j+) tteachj.zct;if(teachj.zc=l)coutteachj.x.clnameendl;else if(teachj.zc=p)coutteachj.x.numendl;else coutdata errorendl;input num:1021input name
13、:陳杰input zc:pinput thesis_num:15input num:1022input name:方平input zc:l測試數據與運行結果:input clname:高等數學input num:1023input name:賈小亮input zc:linput clname:大學體育num name zc clname/num1021 陳杰 p151022 方平 l高等數學1023 賈小亮 l大學體育綜合實例2 輸出每種動物的信息/實例7-2.cpp#include struct BIRTHDAY/定義結構體類型BIRTHDAY int YEAR;int MONTH;int
14、DAY;enum COLORWHITE,BLACK,YELLOW;/定義枚舉類型COLORstruct ANIMAL/定義結構體類型ANIMAL float weight;BIRTHDAY birthday;COLOR color;cat,dog;/定義結構體變量cat和dogvoid GetColor(int c)/根據用戶輸入,輸出顏色信息 switch(c) case 0:coutWHITEendl;break;case 1:coutBLACKendl;break;case 2:coutYELLOWendl;break;void main() cat.weight=100;/為結構體變量
15、cat賦初值cat.birthday.YEAR=2009;cat.birthday.MONTH=8;cat.birthday.DAY=14;cat.color=(COLOR)2;/枚舉變量與整型數據之間進行類型轉換coutinput weight birthday(year month day) color endldog.weight;/為結構體變量dog賦初值cindog.birthday.YEAR;cindog.birthday.MONTH;cindog.birthday.DAY;int dcolor;cindcolor;dog.color=(COLOR)dcolor;/枚舉變量與整型數據之間進行類型轉換coutdog:endlweight:dog.weightendlbirthday:dog.birthday.YEAR.dog.birthday.MONTH.dog.birthday.DAYendlcolor:;GetColor(dog.color);coutcat:endlweight:cat.weightendlbirthday:cat.birthday.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中生在線學習互動性與學習效果的關系分析報告論文
- 藝術樓安全管理制度
- 花草魚養護管理制度
- 茶葉成品庫管理制度
- 隔離檢疫場管理制度
- 訪問控制與身份驗證
- 財務英語詞匯
- 2025年煙臺市中考地理試卷真題(含答案及解析)
- 大學生戀愛的常見問題與對策
- 自動監控驗收模版材料
- 商務西班牙語210句
- 裝修申請書模板
- 四川水電站建設用地地質災害危險性評估報告
- 上海市上海師大附中2023學年化學高二下期末調研模擬試題(含解析)
- Unit 10 I'd like some noodles Section A 1a-1c 第1課時-課件(共15張PPT)
- 鋼結構檢測專項方案(33頁)
- 變電站主接地網施工工藝流程及操作要點
- 表C.0.1 系統材料和設備進場檢查、系統線路設計檢查、安裝質量檢查記錄表
- 《牽手兩代——家長課程》小學六年級教案
- EN779-2012一般通風過濾器——過濾性能測定(中文版)
- 專利培訓課件--專利基礎知識
評論
0/150
提交評論