第6章結(jié)構(gòu)體與枚舉-ppt課件_第1頁
第6章結(jié)構(gòu)體與枚舉-ppt課件_第2頁
第6章結(jié)構(gòu)體與枚舉-ppt課件_第3頁
第6章結(jié)構(gòu)體與枚舉-ppt課件_第4頁
第6章結(jié)構(gòu)體與枚舉-ppt課件_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、6 61 1 構(gòu)造體類型變量的定義、初始化構(gòu)造體類型變量的定義、初始化方法及援用方法及援用6 62 2 構(gòu)造體數(shù)組構(gòu)造體數(shù)組 6 63 3 枚舉類型枚舉類型 6 64 typedef 4 typedef 教學(xué)目的教學(xué)目的: : 1 1 掌握構(gòu)造體及其變量的定義、初始化掌握構(gòu)造體及其變量的定義、初始化方法及援用;方法及援用; 2 2 掌握枚舉類型變量的定義及援用;掌握枚舉類型變量的定義及援用; 3 3了解了解 typedef typedef 的作用的作用 。 教學(xué)重點(diǎn)教學(xué)重點(diǎn): : 1 1 構(gòu)造體的根本概念、構(gòu)造類型及變構(gòu)造體的根本概念、構(gòu)造類型及變量的定義、構(gòu)造數(shù)組;量的定義、構(gòu)造數(shù)組; 2

2、2 枚舉類型的根本概念、枚舉類型的根本概念、 typedef typedef 的的根本概念根本概念. . 教學(xué)難點(diǎn)教學(xué)難點(diǎn): : 枚舉類型的運(yùn)用枚舉類型的運(yùn)用6.1.1 6.1.1 構(gòu)造體類型變量的定義構(gòu)造體類型變量的定義6.1.2 6.1.2 構(gòu)造體類型變量的初始化構(gòu)造體類型變量的初始化6.1.3 6.1.3 構(gòu)造體類型變量的援用構(gòu)造體類型變量的援用一、構(gòu)造體定義的普通方式:一、構(gòu)造體定義的普通方式:struct 構(gòu)造體名構(gòu)造體名 成員表列成員表列 ; 成員表列的寫法:類型標(biāo)識(shí)符成員表列的寫法:類型標(biāo)識(shí)符 成員名成員名1.這只是定義一種類型的方法,尚未定義變量。這只是定義一種類型的方法,尚未

3、定義變量。2.struct 關(guān)鍵詞關(guān)鍵詞(保管字保管字),表示定義一種構(gòu)造體類型。,表示定義一種構(gòu)造體類型。二、構(gòu)造變量的定義二、構(gòu)造變量的定義有三種方法可用來定義構(gòu)造體變量:有三種方法可用來定義構(gòu)造體變量:例:例: struct student int num; char name20; char sex; int age; float score; char addr30;struct student x1, x2; 類型標(biāo)識(shí)符類型標(biāo)識(shí)符 2. 2. 在定義構(gòu)造體類型的同時(shí)定義變量:在定義構(gòu)造體類型的同時(shí)定義變量:定義方式定義方式 struct struct 構(gòu)造體名構(gòu)造體名 成員表列成員

4、表列 變量名表列;變量名表列;例:例:struct student struct student int num; int num; char name20; char name20; char sex; char sex; int age; int age; char addr30; char addr30; x1, x2; x1, x2;3. 3. 直接定義構(gòu)造類型變量直接定義構(gòu)造類型變量定義方式定義方式 structstruct 成員表列成員表列 變量名表列;變量名表列;不出現(xiàn)構(gòu)造體類型名不出現(xiàn)構(gòu)造體類型名如:如:structstruct int num int numchar name

5、20;char name20;char sex;char sex;int age;int age;char addr30;char addr30; x1, x2; x1, x2;6.1.2 6.1.2 構(gòu)造體變量的初始化構(gòu)造體變量的初始化 struct student x1=8906, Li Ming , M, 85.5 struct student x1=8906, Li Ming , M, 85.5;一、先定義構(gòu)造,在定義構(gòu)造變量時(shí)對(duì)每個(gè)成員賦初一、先定義構(gòu)造,在定義構(gòu)造變量時(shí)對(duì)每個(gè)成員賦初值值如:如:struct studentstruct student unsigned No; un

6、signed No;char name20;char name20;char sex;char sex;float score;float score; ; 假設(shè)假設(shè) x1 的起的起始地址為始地址為2000,那么那么 x1 在內(nèi)存中在內(nèi)存中占有的存儲(chǔ)單元占有的存儲(chǔ)單元為:為:共用共用2929個(gè)字節(jié)的個(gè)字節(jié)的延續(xù)單元延續(xù)單元8906No2000201920192021name20LiMingM85.502019sexscore20226.1.2 6.1.2 構(gòu)造體變量的初始化構(gòu)造體變量的初始化二、構(gòu)造定義與變量定義及初始化合二為一:二、構(gòu)造定義與變量定義及初始化合二為一: struct exp

7、int a; float b; char yn8; x=1234, 56. 7, test; 但不能這樣寫:但不能這樣寫: struct exp int a=1234; float b=56.7; char yn8=test; x; x;6.1.2 6.1.2 構(gòu)造體變量的初始化構(gòu)造體變量的初始化6.1.3 6.1.3 構(gòu)造體變量的援用構(gòu)造體變量的援用 如:如:x1x1為為struct studentstruct student型變量,那型變量,那么么 x1.No: x1.No: 表示表示x1x1的學(xué)號(hào)的學(xué)號(hào) : : 表示表示x1x1的名字的名字 訪問構(gòu)造變量本質(zhì)上

8、是援用其成員訪問構(gòu)造變量本質(zhì)上是援用其成員一、圓點(diǎn)運(yùn)算符一、圓點(diǎn)運(yùn)算符有兩種運(yùn)算符可訪問構(gòu)呵斥員有兩種運(yùn)算符可訪問構(gòu)呵斥員1. 1. 只能用變量的成員,不可用構(gòu)造變量名直只能用變量的成員,不可用構(gòu)造變量名直接運(yùn)算。接運(yùn)算。2. 2. 每一個(gè)成員的作用與其同類型的簡單變量每一個(gè)成員的作用與其同類型的簡單變量的援用一樣。的援用一樣。6.1.3 6.1.3 構(gòu)造體變量的援用構(gòu)造體變量的援用二、箭頭運(yùn)算符:二、箭頭運(yùn)算符: 例:例:struct student struct student char name 10; char sex; int age; float score; char addr2

9、0; x1;struct student p;6.1.3 6.1.3 構(gòu)造體變量的援用構(gòu)造體變量的援用那么那么p為構(gòu)造指針變量,它可用來存放為構(gòu)造指針變量,它可用來存放student型型變量的地址變量的地址令令 p=&x1; 那么那么 p為為x1的首地址的首地址.namesexaddrpx1agescore訪問構(gòu)呵斥員:訪問構(gòu)呵斥員:pname 表示x1的姓名;page 表示x1的年齡;pname 等價(jià)于 (*p).namepage 等價(jià)于 (*p).age6.1.3 6.1.3 構(gòu)造體變量的援用構(gòu)造體變量的援用 (2) 用指針變量用指針變量 (p).成員名成員名 (p).num (3

10、) 用指向運(yùn)算符用指向運(yùn)算符成員名成員名 p num (1) 構(gòu)造體變量名構(gòu)造體變量名.成員名成員名 x1.num留意:指針變量留意:指針變量p必需是構(gòu)造指針型,必需是構(gòu)造指針型,且有且有p=&x1;援用構(gòu)造變量中的成員有三種方法:援用構(gòu)造變量中的成員有三種方法:6.1.3 6.1.3 構(gòu)造體變量的援用構(gòu)造體變量的援用例 struct int num; char name20; char sex; int age; stu =,;構(gòu)造體數(shù)組援用構(gòu)造體數(shù)組援用援用方式:援用方式: 構(gòu)造體數(shù)組名構(gòu)造體數(shù)組名 下標(biāo)下標(biāo).成員名成員名 struct student int num; char

11、name20; char sex; int age; str3;stu1.age+;strcpy(,ZhaoDa);1. 枚舉類型的定義: “枚舉是指將變量一切能夠的取值一一列舉出來,變量的取值只限于列舉出來的常量。 枚舉類型的聲明的普通方式如下 :枚舉類型名以及枚舉常量為標(biāo)識(shí)符,遵照標(biāo)識(shí)符的取名規(guī)那么。在定義一個(gè)枚舉類型時(shí),定義了多個(gè)常量,供枚舉類型變量取值,稱此常量為枚舉常量。當(dāng)沒給各枚舉常量指定值時(shí),其值依次默以為0、1、2、;在定義枚舉類型時(shí),也可運(yùn)用賦值號(hào)另行指定枚舉常量的值。 enum 枚舉類型名 枚舉常量1, 枚舉常量2, 枚舉常量n;枚舉!枚舉!枚舉類型的定義

12、:枚舉類型的定義:例例1 1: enum weekday SUN, MON, TUE, WED, THU, FRI, enum weekday SUN, MON, TUE, WED, THU, FRI, SAT SAT ; 定義了定義了7 7個(gè)枚舉常量以及枚舉類型個(gè)枚舉常量以及枚舉類型weekdayweekday。枚舉常量具。枚舉常量具有默許的整數(shù)與之對(duì)應(yīng):有默許的整數(shù)與之對(duì)應(yīng):SUNSUN的值為的值為0 0、MONMON的值為的值為1 1、TUETUE為為2 2、SATSAT為為6 6。例例2 2: enum city Beijing,Shanghai,Tianjin=5,Chongqing

13、enum city Beijing,Shanghai,Tianjin=5,Chongqing; 枚舉常量枚舉常量BeijingBeijing的值為的值為0 0,ShanghaiShanghai的值為的值為1 1,TianjinTianjin的值指定為的值指定為5 5。對(duì)于指定值后面的沒有指定值的枚舉常量,。對(duì)于指定值后面的沒有指定值的枚舉常量,編譯器會(huì)將前一個(gè)常量值加編譯器會(huì)將前一個(gè)常量值加1(1(下一個(gè)整數(shù)下一個(gè)整數(shù)) )賦給它,所以賦給它,所以ChongqingChongqing的值為的值為6 6。枚舉類型的定義闡明枚舉類型的定義闡明: :枚舉類型定義了以后就可以運(yùn)用枚舉常量、運(yùn)用用枚舉類

14、型來枚舉類型定義了以后就可以運(yùn)用枚舉常量、運(yùn)用用枚舉類型來定義變量,定義枚舉變量的方法與定義其它變量的方法一樣。定義變量,定義枚舉變量的方法與定義其它變量的方法一樣。 例如:例如: enum city city1, city2; enum city city1, city2; city city1, city2; city city1, city2; 用兩種方法定義了用兩種方法定義了city1city1、city2city2兩個(gè)枚舉類型的變量名。兩個(gè)枚舉類型的變量名。枚舉類型變量也可以在定義枚舉類型的同時(shí)定義枚舉類型變量也可以在定義枚舉類型的同時(shí)定義 例例 enum city Beijing,

15、Shanghai,Tianjin=5,Chongqing enum city Beijing,Shanghai,Tianjin=5,Chongqing city1, city2city1, city2; 在定義枚舉類型的同時(shí)定義枚舉類型變量可以省略枚舉類型名在定義枚舉類型的同時(shí)定義枚舉類型變量可以省略枚舉類型名. . 例如:例如: enum Beijing,Shanghai,Tianjin=5,Chongqing enum Beijing,Shanghai,Tianjin=5,Chongqing city1, city2city1, city2;枚舉類型的運(yùn)用:枚舉類型的運(yùn)用:用枚舉類型建立枚

16、舉變量后就可以對(duì)枚舉變量實(shí)施賦值以及進(jìn)展其它運(yùn)算用枚舉類型建立枚舉變量后就可以對(duì)枚舉變量實(shí)施賦值以及進(jìn)展其它運(yùn)算了,對(duì)枚舉變量進(jìn)展賦值,其值要求為同一枚舉類型。否那么,在編了,對(duì)枚舉變量進(jìn)展賦值,其值要求為同一枚舉類型。否那么,在編譯時(shí)出錯(cuò)。譯時(shí)出錯(cuò)。 例如例如: weekday d1,d2,d3,d4;: weekday d1,d2,d3,d4; d1=SUN; d1=SUN; d2=6; / d2=6; /錯(cuò)誤錯(cuò)誤 d3=Shanghai; /d3=Shanghai; /錯(cuò)誤錯(cuò)誤 其中對(duì)其中對(duì)d2d2所賦之值是整數(shù)所賦之值是整數(shù)6 6,不是枚舉常量;可以采用將一個(gè)整,不是枚舉常量;可以采用

17、將一個(gè)整型值強(qiáng)迫轉(zhuǎn)換成同類型的枚舉常量賦給枚舉變量:型值強(qiáng)迫轉(zhuǎn)換成同類型的枚舉常量賦給枚舉變量:枚舉常量、枚舉類型的變量可進(jìn)展算術(shù)運(yùn)算、關(guān)系運(yùn)算。枚舉常量、枚舉類型的變量可進(jìn)展算術(shù)運(yùn)算、關(guān)系運(yùn)算。 對(duì)枚舉類型實(shí)施算術(shù)、關(guān)系運(yùn)算時(shí),枚舉值轉(zhuǎn)換成整型值參與運(yùn)對(duì)枚舉類型實(shí)施算術(shù)、關(guān)系運(yùn)算時(shí),枚舉值轉(zhuǎn)換成整型值參與運(yùn)算,結(jié)果為整型值。所以,假設(shè)要將結(jié)果賦給枚舉變量,還要將結(jié)果算,結(jié)果為整型值。所以,假設(shè)要將結(jié)果賦給枚舉變量,還要將結(jié)果轉(zhuǎn)換成枚舉值。轉(zhuǎn)換成枚舉值。 例如:例如:d1=d1+2; /d1=d1+2; /是錯(cuò)誤的,由于結(jié)果為是錯(cuò)誤的,由于結(jié)果為intint型。型。 需求將它強(qiáng)迫轉(zhuǎn)換成枚舉型:

18、需求將它強(qiáng)迫轉(zhuǎn)換成枚舉型: d1=(weekday)(d1+2);d1=(weekday)(d1+2);枚舉類型的運(yùn)用:枚舉類型的運(yùn)用: 枚舉常量、枚舉類型的變量可直接進(jìn)展各種方式的關(guān)系運(yùn)算。枚舉常量、枚舉類型的變量可直接進(jìn)展各種方式的關(guān)系運(yùn)算。 例如:例如: if(city1=3) if(city1=3) ; if(city2=Beijing)if(city2=Beijing); if(Shanghai=1);if(Shanghai=1); if(city1SUN); if(city1SUN);枚舉類型變量不能直接進(jìn)展輸入枚舉類型變量不能直接進(jìn)展輸入 例如:例如: cind1; /cind1

19、; /錯(cuò)誤錯(cuò)誤留意:枚舉常量是常量,不是變量,所以不能對(duì)枚舉常量進(jìn)展賦值。 例如: 在上例中不能進(jìn)展賦值 Shanghai=Beijing;枚舉常量的值不是列舉的字符串,其值為整數(shù)。編譯器對(duì)賦給枚舉變量的對(duì)象(數(shù))進(jìn)展類型檢查,如類型不相符那么發(fā)出警告。 當(dāng)類型相 同,而值超出此類枚舉類型枚舉常量范圍時(shí),也是正常的。/* 程序名:程序名:p5_1.cpp * 功能:功能: 枚舉類型的運(yùn)用,輸入城市代號(hào),輸出城市稱號(hào)枚舉類型的運(yùn)用,輸入城市代號(hào),輸出城市稱號(hào) */#includeusing namespace std;enum city Beijing,Shanghai,Tianjin=6,Chongqing;void main() int n; coutI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論