第7章結(jié)構(gòu)體、共同體和枚舉類(lèi)型_第1頁(yè)
第7章結(jié)構(gòu)體、共同體和枚舉類(lèi)型_第2頁(yè)
第7章結(jié)構(gòu)體、共同體和枚舉類(lèi)型_第3頁(yè)
第7章結(jié)構(gòu)體、共同體和枚舉類(lèi)型_第4頁(yè)
第7章結(jié)構(gòu)體、共同體和枚舉類(lèi)型_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、3第第7章章 結(jié)構(gòu)體、共用體和枚舉類(lèi)型結(jié)構(gòu)體、共用體和枚舉類(lèi)型7.17.1結(jié)構(gòu)體結(jié)構(gòu)體7.27.2共用體共用體7.37.3枚舉類(lèi)型枚舉類(lèi)型7.47.4typedeftypedef4& 結(jié)構(gòu)體是一種結(jié)構(gòu)體是一種構(gòu)造構(gòu)造數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型& 用途:把用途:把不同類(lèi)型不同類(lèi)型的數(shù)據(jù)組合成一個(gè)整體的數(shù)據(jù)組合成一個(gè)整體 -自定義自定義數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型struct 結(jié)構(gòu)體名結(jié)構(gòu)體名 類(lèi)型類(lèi)型1 成員名成員名1; 類(lèi)型類(lèi)型2 成員名成員名2; .;成員類(lèi)型可以是基本型或構(gòu)造型struct是是關(guān)鍵字關(guān)鍵字, ,不能省略不能省略合法標(biāo)識(shí)符可省:無(wú)名結(jié)構(gòu)體7.1.1結(jié)構(gòu)體類(lèi)型聲明結(jié)構(gòu)體類(lèi)型聲明7.1

2、7.1 結(jié)構(gòu)體結(jié)構(gòu)體 結(jié)構(gòu)體類(lèi)型聲明結(jié)構(gòu)體類(lèi)型聲明5例例 struct student int num; char name20; char sex; int age; float score; ; 結(jié)構(gòu)體類(lèi)型定義描述結(jié)構(gòu)的組織形式,不分配內(nèi)存struct student應(yīng)作為一個(gè)類(lèi)型整體,應(yīng)作為一個(gè)類(lèi)型整體,num,name20等都只是其中的成員,且等都只是其中的成員,且struct及及“”后的后的“;”不能省略。不能省略。7.17.1 結(jié)構(gòu)體結(jié)構(gòu)體6例例住宿表住宿表 structaccommod charname20; /*姓名姓名*/ charsex;/*性別性別*/ char job4

3、0; /*職業(yè)職業(yè)*/ int age; /*年齡年齡*/ long number; /*身份證號(hào)碼身份證號(hào)碼*/;7.17.1 結(jié)構(gòu)體結(jié)構(gòu)體77.1.2結(jié)構(gòu)體變量的定義結(jié)構(gòu)體變量的定義1.先定義結(jié)構(gòu)體類(lèi)型,再定義結(jié)構(gòu)體變量先定義結(jié)構(gòu)體類(lèi)型,再定義結(jié)構(gòu)體變量n一般形式:一般形式: struct 結(jié)構(gòu)體名結(jié)構(gòu)體名 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名;成員名; 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名;成員名; .;struct 結(jié)構(gòu)體名結(jié)構(gòu)體名 變量名表列變量名表列;structstudent intnum; charname20; charsex; intage; floatscore;structstuden

4、tstudent1,student2;7.17.1 結(jié)構(gòu)體結(jié)構(gòu)體82.定義結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體變量定義結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體變量 struct struct 結(jié)構(gòu)體名結(jié)構(gòu)體名 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名;成員名; 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名;成員名; . 變量名表列變量名表列;例例 struct student int num; char name20; char sex; int age; float score; student1,student2;7.17.1 結(jié)構(gòu)體結(jié)構(gòu)體93.直接定義結(jié)構(gòu)體變量直接定義結(jié)構(gòu)體變量structstruct 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名;成員

5、名; 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名;成員名; . 變量名表列變量名表列;例例 struct intnum; charname20; charsex; intage; floatscore; student1,student2;用用無(wú)名結(jié)構(gòu)體無(wú)名結(jié)構(gòu)體直接定義直接定義變量變量只能一次只能一次7.17.1 結(jié)構(gòu)體結(jié)構(gòu)體107.1.3結(jié)構(gòu)體變量的引用結(jié)構(gòu)體變量的引用引用規(guī)則引用規(guī)則n 結(jié)構(gòu)體變量結(jié)構(gòu)體變量不能整體引用不能整體引用, ,只能引用變量只能引用變量成員成員引用方式:引用方式: 結(jié)構(gòu)體變量名結(jié)構(gòu)體變量名. .成員名成員名如果結(jié)構(gòu)體變量類(lèi)型相同,可以將一個(gè)結(jié)如果結(jié)構(gòu)體變量類(lèi)型相同,可以將一個(gè)結(jié)

6、構(gòu)體變量賦值給另一個(gè)結(jié)構(gòu)體變量構(gòu)體變量賦值給另一個(gè)結(jié)構(gòu)體變量結(jié)構(gòu)體嵌套時(shí)結(jié)構(gòu)體嵌套時(shí)逐級(jí)引用逐級(jí)引用例例;student2=student1; 例:例:stu1.birthday.day=23;stu1.birthday.month=8;stu1.birthday.year=2003;7.17.1 結(jié)構(gòu)體結(jié)構(gòu)體117.1.4結(jié)構(gòu)體變量的使用結(jié)構(gòu)體變量的使用1 1、 結(jié)構(gòu)體變量的初始化結(jié)構(gòu)體變量的初始化與其他類(lèi)型變量一樣,對(duì)結(jié)構(gòu)體變量也可以在定義時(shí)進(jìn)行初始與其他類(lèi)型變量一樣,對(duì)結(jié)構(gòu)體變量也可以在定義時(shí)進(jìn)行初始化賦值,但附在變量后面的一組數(shù)據(jù)須用花括號(hào)括起來(lái),其順化賦值,但附在變量后面的一組數(shù)據(jù)須

7、用花括號(hào)括起來(lái),其順序應(yīng)與結(jié)構(gòu)體中的成員順序保持一致。序應(yīng)與結(jié)構(gòu)體中的成員順序保持一致。例例 struct student intnum; charname20; charsex; intage; floatscore; student1 =11301,Zhang San,F(xiàn),19,496.5;7.17.1 結(jié)構(gòu)體結(jié)構(gòu)體127.17.1 結(jié)構(gòu)體結(jié)構(gòu)體n2、同一種類(lèi)型的結(jié)構(gòu)體變量之間可直接賦值、同一種類(lèi)型的結(jié)構(gòu)體變量之間可直接賦值可以將一個(gè)結(jié)構(gòu)體變量作為一個(gè)整體賦給另一個(gè)具可以將一個(gè)結(jié)構(gòu)體變量作為一個(gè)整體賦給另一個(gè)具有相同類(lèi)型的結(jié)構(gòu)體變量。有相同類(lèi)型的結(jié)構(gòu)體變量。例:例:student2=stu

8、dent1;3 3、結(jié)構(gòu)體變量的輸入輸出、結(jié)構(gòu)體變量的輸入輸出不允許對(duì)結(jié)構(gòu)體變量進(jìn)行不允許對(duì)結(jié)構(gòu)體變量進(jìn)行整體整體的輸入輸出。的輸入輸出。如:如:scanf(%d,%s,%c,%d,%f,&student1);/*錯(cuò)錯(cuò)*/ printf(%d,%s,%c,%d,%f,student1); /*錯(cuò)錯(cuò)*/134. 對(duì)成員變量可以象普通變量一樣進(jìn)行各種操作。對(duì)成員變量可以象普通變量一樣進(jìn)行各種操作。 例:例: student1.num=11301; scanf(%s,&); student2.score=student2.score+1; printf(%f

9、,student2.score);7.1 7.1 結(jié)構(gòu)體結(jié)構(gòu)體147.17.1 結(jié)構(gòu)體結(jié)構(gòu)體struct studentint num;int age;float score;stu;void main() printf(Enter num,age,score:);scanf(%d,%d,%f,&stu.num,&stu.age,&stu.score);printf(num:%d,age:%d,score:%.1fn,stu.num,stu.age,stu.score);程序運(yùn)行過(guò)程:程序運(yùn)行過(guò)程:Enter num,age,score:1001,19,98.5 num

10、:1001,age:19,score:98.5例:輸入一個(gè)學(xué)生的一組數(shù)據(jù),然后輸出。例:輸入一個(gè)學(xué)生的一組數(shù)據(jù),然后輸出。分析:用成員運(yùn)算符引用結(jié)構(gòu)體成員。分析:用成員運(yùn)算符引用結(jié)構(gòu)體成員。151.結(jié)構(gòu)體數(shù)組的定義結(jié)構(gòu)體數(shù)組的定義形式一形式一: : struct student int num; char name20; char sex; int age; ;struct student stu2;形式二形式二: : struct student int num; char name20; char sex; int age; stu2;形式三形式三: struct int num; cha

11、r name20; char sex; int age; stu2;numnamesexagenumnamesexagestu0stu125B7.1.5結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體數(shù)組7.17.1 結(jié)構(gòu)體結(jié)構(gòu)體16引用方式:引用方式: 結(jié)構(gòu)體數(shù)組名結(jié)構(gòu)體數(shù)組名下標(biāo)下標(biāo).成員名成員名 struct student int num; char name20; char sex; int age; str3;stu1.age+;strcpy(,“ZhangSan”);2.結(jié)構(gòu)體數(shù)組元素的引用結(jié)構(gòu)體數(shù)組元素的引用7.17.1 結(jié)構(gòu)體結(jié)構(gòu)體177.27.2共用體共用體7.2.1共用體類(lèi)型聲明共用體

12、類(lèi)型聲明&構(gòu)造數(shù)據(jù)類(lèi)型構(gòu)造數(shù)據(jù)類(lèi)型&用途:使幾個(gè)不同類(lèi)型的變量共占一段內(nèi)存用途:使幾個(gè)不同類(lèi)型的變量共占一段內(nèi)存(相互覆蓋相互覆蓋)union 共用體類(lèi)型名共用體類(lèi)型名 類(lèi)型類(lèi)型1 成員名成員名1; 類(lèi)型類(lèi)型2 成員名成員名2; .;例例 union data int i; char ch; float f; ;類(lèi)型定義類(lèi)型定義不分配內(nèi)存不分配內(nèi)存187.2.2共用體變量定義共用體變量定義形式二形式二: : union data int i; char ch; float f; a,b;fchifchiab形式一形式一: : union data int i; char ch;

13、 float f; ; union data a,b;形式三形式三: : union int i; char ch; float f; a,b;共用體變量分配內(nèi)存,長(zhǎng)度=最長(zhǎng)成員所占字節(jié)數(shù)共用體變量任何時(shí)刻只有一個(gè)成員存在7.27.2共用體共用體197.2.3共用體變量的引用共用體變量的引用引用方式:引用方式: 共用體變量名共用體變量名. .成員名成員名引用規(guī)則引用規(guī)則n不能引用共用體變量,只能不能引用共用體變量,只能引用其成員引用其成員n共用體變量中起作用的成員是共用體變量中起作用的成員是最后一次存放的成員最后一次存放的成員n可以用一個(gè)共用體變量為另一個(gè)共用體變量賦值可以用一個(gè)共用體變量為另

14、一個(gè)共用體變量賦值n共用體變量的地址和它的各個(gè)成員的地址相同共用體變量的地址和它的各個(gè)成員的地址相同n共用體變量不能作函數(shù)參數(shù),函數(shù)的返回值也不共用體變量不能作函數(shù)參數(shù),函數(shù)的返回值也不能是共用體類(lèi)型能是共用體類(lèi)型n共用體類(lèi)型和結(jié)構(gòu)體類(lèi)型可以相互嵌套,共用體共用體類(lèi)型和結(jié)構(gòu)體類(lèi)型可以相互嵌套,共用體中成員可以為數(shù)組,甚至還可以定義共用體數(shù)組中成員可以為數(shù)組,甚至還可以定義共用體數(shù)組7.27.2共用體共用體207.37.3枚舉類(lèi)型枚舉類(lèi)型7.3.1枚舉類(lèi)型的聲明枚舉類(lèi)型的聲明&枚舉數(shù)據(jù)類(lèi)型枚舉數(shù)據(jù)類(lèi)型,指這種類(lèi)型變量的取值只能限于事前指這種類(lèi)型變量的取值只能限于事前已經(jīng)一一列舉出來(lái)的值的

15、范圍已經(jīng)一一列舉出來(lái)的值的范圍 enum 枚舉類(lèi)型名枚舉類(lèi)型名 枚舉常量名枚舉常量名1,枚舉常量名,枚舉常量名2. ;例例 enum weekday sun, mon, tue, wed, thu, fri, sat; 217.3.2枚舉類(lèi)型變量的定義枚舉類(lèi)型變量的定義形式二:形式二: enum weekday sun, mon, tue, wed, thu, fri, sat week1,week2 ; 形式一:形式一: enum weekday sun, mon, tue, wed, thu, fri, sat; enum weekday week1,week2;形式三:形式三: enum sun, mon, tue, wed, thu, fri, sat week1,week2 ; 7.37.3枚舉類(lèi)型枚舉類(lèi)型227.47.4用用typedeftypedef定義類(lèi)型定義類(lèi)型typedef的概念的概念&功能:用自定義名字為已有數(shù)據(jù)類(lèi)型命名功能:用自定義名字為已有數(shù)據(jù)類(lèi)型命名& 類(lèi)型定義簡(jiǎn)單形式:類(lèi)型定義簡(jiǎn)單形式: typedeftypedeftypetypename;name;例例 typedef int INTEGER;例例 typedef float REAL;類(lèi)型定義后類(lèi)型定義后, ,與已有類(lèi)型一樣使用與已有類(lèi)型一樣使用例例 INTEGER a,b

溫馨提示

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

評(píng)論

0/150

提交評(píng)論