




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
自定義數(shù)據(jù)結構1第一頁,共二十五頁,編輯于2023年,星期一結構體定義:將不同種類型的數(shù)據(jù)有序地組合在一起,構造出一個新的數(shù)據(jù)類型,這種形式稱為結構體。結構體是多種類型組合的數(shù)據(jù)類型。2第二頁,共二十五頁,編輯于2023年,星期一struct結構體名{成員列表};structstudent{intnum;charname[20];charsex;charaddr[30];};結構體名關鍵字不同數(shù)據(jù)類型組成的成員分號不能少3第三頁,共二十五頁,編輯于2023年,星期一定義結構體類型變量的方法一、先定義結構體類型再定義變量名structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudent
student1,student2;結構體類型名變量1變量2結構體類型只是一種數(shù)據(jù)類型,不占內存空間,只有定義結構體類型變量時才開辟內存空間。?到底這個結構體占用多大內存呢?#pragmapack(1)4第四頁,共二十五頁,編輯于2023年,星期一
typedefstructstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}STUDENT;
STUDENTstudent1,student2;typedef的用法5第五頁,共二十五頁,編輯于2023年,星期一二、在定義類型的同時定義變量structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;struct結構體名
{
成員列表}變量名列表;緊接著定義變量6第六頁,共二十五頁,編輯于2023年,星期一2、在編譯時,僅對變量分配空間,不對類型分配空間。1、結構體類型的變量在內存依照其成員的順序順序排列,所占內存空間的大小是其全體成員所占空間的總和。3、對結構體中各個成員可以單獨引用、賦值,其作用與變量等同。格式:變量名.成員名
student1.num7第七頁,共二十五頁,編輯于2023年,星期一4、結構體的成員可以是另一個結構體類型。structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];
structdate
birthday;};成員類型成員名5、成員名可以與程序中的變量名相同,二者分占不同的內存單元,互不干擾。例如,在程序中仍可以定義變量
intnum;8第八頁,共二十五頁,編輯于2023年,星期一結構體類型變量的引用1、不能對結構體變量整體賦值或輸出,只能分別對各個成員引用。cin>>student1;cin>>student1.num;student1.num=100;可以將一個結構體變量整體賦給另外一個相同類型的結構體變量。student2=student1;2、嵌套的結構體變量必須逐層引用。student1.birthday.day=25;3、結構體變量中的成員可以同一般變量一樣進行運算。student1.birthday.day++;student1.score+=60;錯誤必須用成員名引用9第九頁,共二十五頁,編輯于2023年,星期一對局部變量類型的結構體變量初始化voidmain(void){structstudent{longintnum;charname[20];charsex;charaddr[30];}student1={901031,“LiLin”,‘M’,“123BeijingRoad”}; cout<<<<endl;輸出:LiLin對變量初始化,一一賦值10第十頁,共二十五頁,編輯于2023年,星期一關于結構類型變量的使用,說明以下幾點:1、同類型的結構體變量之間可以直接賦值。這種賦值等同于各個成員的依次賦值。2、結構體變量不能直接進行輸入輸出,它的每一個成員能否直接進行輸入輸出,取決于其成員的類型,若是基本類型或是字符數(shù)組,則可以直接輸入輸出。3、結構體變量可以作為函數(shù)的參數(shù),函數(shù)也可以返回結構體的值。當函數(shù)的形參與實參為結構體類型的變量時,這種結合方式屬于值調用方式,即屬于值傳遞。11第十一頁,共二十五頁,編輯于2023年,星期一結構體數(shù)組結構體數(shù)組中的每個元素都是一個結構體類型的變量,其中包括該類型的各個成員。數(shù)組各元素在內存中連續(xù)存放。結構體實際例子:TCP報頭12第十二頁,共二十五頁,編輯于2023年,星期一一、結構體數(shù)組的定義structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstu[30];structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu[30];直接定義13第十三頁,共二十五頁,編輯于2023年,星期一二、結構體數(shù)組的初始化structstudent{intnum;charname[20];charsex;}stu[3]={{1011,"LiLin",'M'},{1012,"WangLan",'F'},{1013,"LiuFang",'F'};14第十四頁,共二十五頁,編輯于2023年,星期一共用體C++語言中,允許不同的數(shù)據(jù)類型使用同一存儲區(qū)域,即同一存儲區(qū)域由不同類型的變量共同表示。這種數(shù)據(jù)類型就是共用體。union共用體名{成員列表;}變量列表;uniondata{inti;charch;floatf;}a,b,c;uniondataa,b,c;這幾個成員在共用體變量中存放在同一地址,相互覆蓋,其長度為最長的成員的長度。15第十五頁,共二十五頁,編輯于2023年,星期一共用體變量的引用不能整體引用共用體變量,只能引用變量中的成員。a.i表示為整型a.ch表示為字符型a.f表示為符點型16第十六頁,共二十五頁,編輯于2023年,星期一共用體變量的特點1、共用體的空間在某一時刻只有一個成員在起作用。2、共用體變量中的值是最后一次放入的值。3、共用體變量不能在定義時賦初值。4、共用體變量不能作為函數(shù)的參數(shù)或函數(shù)值,但可使用指向共用體的指針變量。5、共用體可以作為結構的成員,結構體也可以作為共用體的成員。17第十七頁,共二十五頁,編輯于2023年,星期一unionun{inti;doubley;};structst{chara[10];unionunb;};cout<<sizeof(structst)<<endl;18第十八頁,共二十五頁,編輯于2023年,星期一unionun
{shortinta;
charc[2];
}w;
w.c[0]=‘A’;w.c[1]=‘a’;
cout<<oct<<w.a<<endl;
cout<<dec<<w.a<<endl;低字節(jié)低地址高字節(jié)高地址‘a’‘A’w.c[1]w.c[0]2000H2001H輸出:0605010110000101000001aA為65a為9719第十九頁,共二十五頁,編輯于2023年,星期一voidmain(void){unionEXAMPLE{struct{intx,inty;}in;inta,b;}e;e.a=1;e.b=2;e.in.x=e.a*e.a;e.in.y=e.b+e.b;cout<<e.in.x<<‘\t’<<e.in.y<<endl;}inxyabb1248輸出:4820第二十頁,共二十五頁,編輯于2023年,星期一枚舉類型如果一個變量只有幾種可能的值,可以定義為枚舉類型。枚舉類型就是將變量的值一一列舉出來,變量的值僅限于列舉出來的值的范圍內。21第二十一頁,共二十五頁,編輯于2023年,星期一enumweekday{sun,mon,tue,wed,thu,fri,sat};enumweekdayworkday,weekend;workday和weekend值只能是sun到sat其中之一。enum{sun,mon,tue,wed,thu,fri,sat}workday,weekend;其中sun,mon,....,sat稱為枚舉元素或枚舉常量,為用戶定義的標識符,所代表的意義由用戶決定,在程序中體現(xiàn)出來。數(shù)據(jù)類型可能取的值變量另一種定義變量的方法22第二十二頁,共二十五頁,編輯于2023年,星期一1、枚舉元素為常量,不可賦值運算。sun=0;mon=1;2、在定義枚舉類型的同時,編譯程序按順序給每個枚舉元素一個對應的序號,序號從0開始,后續(xù)元素依次加1。enumweekday{sun,mon,tue,wed,thu,fri,sat};0,1,2,3,4,5,63、可以在定義時人為指定枚舉元素的序號值。enumweekday{sun=9,mon=2,tue,wed,thu,fri,sat};9,2,3,4,5,6,74、只能給枚舉變量賦枚舉值,若賦序號值必須進行強制類型轉換。day=mon;day=1;day=(enumweekday)1;23第二十三頁,共二十五頁,編輯于2023年,星期一5、枚舉元素可以用來進行比較判斷。if(workday==mon)if(workday>sun)6、枚舉值可以進行加減一個整數(shù)n的運算,得到其前后第n個元素的值。workday=sun;workday=(week)(wo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版二年級語文下冊期末達標測試卷(模擬沖刺)(含答案)
- 湖南省岳陽市臨湘市2024-2025學年高三下學期入學考試物理試題(含答案)
- 2025年軍隊文職人員招聘之軍隊文職政治學能力提升試卷A卷附答案
- 2023年遼寧省中考地理試卷(含答案)
- 2021-2022學年廣東省廣州四中教育集團七年級(下)期中數(shù)學試卷(含答案)
- 護師房顫考試題及答案
- 2025年法律知識競賽判斷題庫及答案
- 智能能源管理平臺開發(fā)合作協(xié)議
- 工業(yè)制造業(yè)技術創(chuàng)新成果展示表
- 高科技辦公環(huán)境設備使用表格
- JBT 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術規(guī)程
- 2024年北京控股集團有限公司招聘筆試參考題庫含答案解析
- DB32T 4353-2022 房屋建筑和市政基礎設施工程檔案資料管理規(guī)程
- 切削液配制記錄表
- 梁單元的幾何非線性有限元法PPT
- 電廠粉煤灰儲灰場施工組織設計(DOC89頁)
- 單晶爐熱場結構ppt課件
- 《廣告學概論》教案
- 健康教育護理服務質量評價標準
- [合同協(xié)議]車輛掛靠協(xié)議書
- MT_T 1175-2019 輸送瓦斯用鋼管_(高清版)
評論
0/150
提交評論