




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1一、本章需實現的系統功能二、枚舉類型2一、本章需實現的系統功能3學生成績記錄信息中沒有“性別屬性,如果需要在學生成績記錄信息中增加“性別屬性,如何表示“性別屬性?如何表示“一年的哪個季節”、“一周的星期幾等信息?解決思路:把要表示信息的可能取值一一列舉出來,即使用枚舉類型。4 修改學生成績記錄結構類型,增加一個成員“性別”,修改相應功能的程序代碼。 任務明確,全力以赴!任務明確,全力以赴!5二、枚舉類型6定義枚舉類型用enum開頭。其格式為:enum 枚舉類型名枚舉值表;枚舉值表中的各值稱為枚舉元素或枚舉常量,是用戶定義的標識符。例如定義一個枚舉類型enum weekday可以是:enum
2、weekday sun,mon,tue,wed,thu,fri,sat;其中sun、mon、.、sat是枚舉元素。7枚舉類型變量定義格式為:enum 枚舉類型名 變量名;如:enum weekday workday,week_end;workday和week_end被定義為枚舉變量,其值只能是sunsat之中的某個值。例如:workday=mon;week_end=sun;是正確的。當然,也可以直接定義枚舉變量,如: enum sun,mon,tue,wed,thu,fri,satworkday,week_end;8(1)枚舉元素是常量,不是變量,不能在程序中用賦值語句再對它賦值。例如對枚舉w
3、eekday的元素再作以下賦值: sun=5; mon=2; sun=mon; 都是錯誤的。(2)枚舉元素本身由系統定義了一個表示序號的數值,從0 開始順序定義為0,1,2。如在weekday中,sun值為0,mon值為1, ,sat值為6。(3)只能把枚舉元素賦予枚舉變量,不能把元素的數值直接賦予枚舉變量。如:a=sum;b=mon; 是正確的。而a=0;b=1; 是錯誤的。(4)枚舉類型定義時可以改變枚舉元素的值,如:enum weekday sun=7,mon=1,tue,wed,thu,fri,sat;枚舉元素sun為7,mon為1,以后順序加1,sat為6。9(5) 枚舉值可以用來作
4、判斷比較。如:if(workday=mon).if(workdaysun).枚舉值的比較規則是:按其在定義的順序號比較。如果定義時沒有人為指定,則第一個枚舉元素的值認作0。故mon大于sun,而sat大于fri。 10#include void main()enum weekday sun,mon,tue,wed,thu,fri,sat;enum weekday a,b,c;a=sun;b=mon;c=tue;printf(%d,%d,%d,a,b,c);該段程序運行的結果為:0,1,2共用類型共用類型&構造數據類型構造數據類型, ,也叫聯合體也叫聯合體&用途:使幾個不同類型的
5、變量共占一段內存用途:使幾個不同類型的變量共占一段內存( (相互覆蓋相互覆蓋) )&共用體類型定義共用體類型定義&定義形式:定義形式:union 共用體名共用體名 類型標識符類型標識符 成員名;成員名; 類型標識符類型標識符 成員名;成員名; .;例例 union data int i; char ch; float f; ;類型定義不分配內存類型定義不分配內存l 1. 1. 共用類型的定義共用類型的定義共用類型共用類型l 1. 1. 共用類型變量的定義共用類型變量的定義形式一形式一: : union data union data short i; short i; char
6、 ch; char ch; float f; float f; a,b,c; a,b,c;形式二形式二: : union data union data short i; short i; char ch; char ch; float f; float f; ; ;union data a,b,c;union data a,b,c;形式三形式三: : union union short i; short i; char ch; char ch; float f; float f; a,b,c; a,b,c;共用體變量定義分配內存,長度=最長成員所占字節數共用體變量任何時刻只有一個成員存在i
7、ichchf f共用類型共用類型例例7.97.9一個利用共用類型的實例。一個利用共用類型的實例。 / /* *lt7_9.clt7_9.c* */ /#include #include union data /union data /* *定義共用類型定義共用類型* */ / short a;short a;long b;long b;double c;double c;char d;char d;y; /y; /* *定義共用類型變量定義共用類型變量y y* */ /struct stud /struct stud /* *定義結構類型定義結構類型* */ / short i;short i
8、;long j;long j;double k;double k;char m;char m;stu; /stu; /* *定義結構類型變量定義結構類型變量* */ /main()main() printf(%d,%d,sizeof(union printf(%d,%d,sizeof(union data),sizeof(struct stud);data),sizeof(struct stud);y.b=0 x12345678;y.b=0 x12345678;printf(n%x, %lx, y.a, y.b);printf(n%x, %lx, y.a, y.b); 運行結果:運行結果:8
9、8,24245678,123456785678,123456787.2共用類型共用類型l 1. 1. 共用類型變量的定義共用類型變量的定義例例7.97.9解析:解析:程序在程序在VCVC中的運行結果證明了例中的結構類型的存儲空間中的運行結果證明了例中的結構類型的存儲空間2424)“大于其各成員字節數之和大于其各成員字節數之和1515);而共用類型的存儲);而共用類型的存儲空間為其最長的成員所占的字節數空間為其最長的成員所占的字節數8 8)。)。例例7.97.9在在Turbo CTurbo C中運行時,其結構類型大小為中運行時,其結構類型大小為1515,這說明,這說明VCVC和和Turbo CT
10、urbo C對結構體分配內存的處理有差別,這種差別對編程對結構體分配內存的處理有差別,這種差別對編程一般不會構成影響,讀者對這種差別有所了解即可。一般不會構成影響,讀者對這種差別有所了解即可。共用類型共用類型引用方式:引用方式:例例 a.i=1; a.ch=a; a.f=1.5; printf(“%d”,a.i); (編譯通過,運行結果不對編譯通過,運行結果不對) 引用規則引用規則不能引用共用體變量,只能引用其成員不能引用共用體變量,只能引用其成員共用體指針名共用體指針名-成員名成員名共用體變量名共用體變量名.成員名成員名(*共用體指針名共用體指針名).成員名成員名union data int i; char ch; float f; ;union data a,b,c,*p,d3;a.i a.ch a.fp-i p-ch p-f(*p).i (*p).ch (*p).fd0.i d0.ch d0.f共用體變量中起作用的成員是最后一次存放的成員共用體變量中起作用的成員是最后一次存放的成員例例 union int i; char ch; float f; a; a=1; () 不能在定義共用體變量時初始化不能在定義共用體變量時初始化例例 union int i;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件設計師考試知識點梳理試題及答案
- 突破難關的2025年軟件設計師考試試題答案
- 網絡工程師工作環境了解試題及答案
- 西方政治制度與全球治理體系的關系試題及答案
- 公共政策中的公平與效率辯證關系試題及答案
- 網絡連接的優化策略試題及答案
- 軟件設計師考試2025年的重點科目試題及答案
- 探索西方政治制度中的現代挑戰試題及答案
- 醫療器械國產化替代進程中的國際市場拓展與本土化策略報告(2025年)
- 軟件設計師工具應用及試題及答案的技巧
- word基礎入門公開課課件
- 綜合、專科醫院執業校驗標準
- 學習羅陽青年隊故事PPT在急難險重任務中攜手拼搏奉獻PPT課件(帶內容)
- 稀土元素的分離方法-icaredbd課件
- 四年級下數學課件-火車過橋-通用版
- 版式設計課件3,網格系統全攻略
- 船舶防臺風安全安全知識
- 國家開放大學《人文英語3》章節測試參考答案
- 用雙棱鏡干涉測光波(20149)
- 靜音房聲學設計方案
- 四年級滬教版語文下冊閱讀理解專項習題含答案
評論
0/150
提交評論