資源描述:
《大學(xué)基礎(chǔ)教程第七章課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、C++大學(xué)基礎(chǔ)教程第7章其它自定義數(shù)據(jù)類型北京科技大學(xué)2021/8/231北京科技大學(xué)C++語言不僅有豐富的基本數(shù)據(jù)類型,而且允許用戶自己定義數(shù)據(jù)類型。2021/8/232北京科技大學(xué)7.1枚舉型數(shù)據(jù)類型(不要求)7.2結(jié)構(gòu)型數(shù)據(jù)類型7.3聯(lián)合型數(shù)據(jù)類型(不要求)第7章C++其他自定義數(shù)據(jù)類型2021/8/233北京科技大學(xué)7.2結(jié)構(gòu)類型結(jié)構(gòu)變量的定義結(jié)構(gòu)成員的訪問結(jié)構(gòu)指針結(jié)構(gòu)數(shù)組2021/8/234北京科技大學(xué)結(jié)構(gòu)型數(shù)據(jù)類型(簡稱結(jié)構(gòu)類型)把現(xiàn)實生活中意義密切相關(guān)的一組數(shù)據(jù)組合成一個整體,即由各種數(shù)據(jù)類型(可以是基本數(shù)據(jù)類型或已聲明的自定
2、義數(shù)據(jù)類型)的數(shù)據(jù)組成一個集合,稱為結(jié)構(gòu)類型。7.2結(jié)構(gòu)類型2021/8/235北京科技大學(xué)結(jié)構(gòu)的聲明形式如下:struct結(jié)構(gòu)類型名{數(shù)據(jù)類型說明符1成員名1;數(shù)據(jù)類型說明符2成員名2;┇數(shù)據(jù)類型說明符n成員名n;};7.2結(jié)構(gòu)類型2021/8/236北京科技大學(xué)例如:structstudent{longnum;//學(xué)號charname[20];//姓名intage;//年齡floatscore;//成績};7.2結(jié)構(gòu)類型2021/8/237北京科技大學(xué)定義student類型的變量:students1;結(jié)構(gòu)類型的變量所占的存儲空間是結(jié)構(gòu)中所有成
3、員所占空間的總和圓點操作符訪問形式:結(jié)構(gòu)變量名.成員名例如:cout<usingnamespacestd;structstudent{l
4、ongnum;charname[20];charsex;intage;}stu={20041118,"LiLi",'F',18};voidmain(){cout<usingnamespacestd;structdate{intyear;intmonth;intday;};structweather{datetoday;doubl
5、etemp;doublewind;};2021/8/2311北京科技大學(xué)例7.3訪問帶有結(jié)構(gòu)體類型的結(jié)構(gòu)體成員voidmain(){weathertoday_weather={2004,11,30,10.0,3.1};cout<6、dl;}2021/8/2312北京科技大學(xué)屬于同一結(jié)構(gòu)類型的各個變量之間可以相互賦值,這一點和數(shù)組不同,C++規(guī)定,不能直接進(jìn)行數(shù)組名的賦值,因為數(shù)組名是一個常量,而結(jié)構(gòu)類型的變量可以賦值。students1,s2;s1=s2;不同結(jié)構(gòu)的變量不允許相互賦值,即使這兩個變量可能具有同樣的成員。structgraduatestudent{…..};graduatestudentgstu;gstu=stu;//錯誤7.2結(jié)構(gòu)類型2021/8/2313北京科技大學(xué)定義變量時,我們可以定義指向int型的指針變量,類似的,可以有指向新定義的結(jié)構(gòu)型數(shù)據(jù)類型的指
7、針變量??梢詫⒔Y(jié)構(gòu)變量的地址賦給結(jié)構(gòu)指針,使結(jié)構(gòu)指針的指向確定。使用取地址“&”操作,得到結(jié)構(gòu)變量的地址,這個地址就是結(jié)構(gòu)的第一個成員的地址。structstudent{longnum;charname[20];charsex;intage;}stu={20041118,"LiLi",'F',18};Student*ps=&stu;結(jié)構(gòu)類型與指針2021/8/2314北京科技大學(xué)結(jié)構(gòu)類型與指針使用new操作在堆中給結(jié)構(gòu)指針分配空間student*ps=newstudent;用結(jié)構(gòu)指針訪問結(jié)構(gòu)成員時,用箭頭操作符代替原來的點操作符cout<8、>score;cout<<(*ps).score;2021/8/2315北京科技大學(xué)例7.4結(jié)構(gòu)指針的定義和使用#include