資源描述:
《結(jié)構(gòu)體和共用體》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、結(jié)構(gòu)體與共用體第十一章§10.1結(jié)構(gòu)體及其類型定義已介紹的數(shù)據(jù)類型:簡(jiǎn)單變量、數(shù)組、指針。例:建立學(xué)生檔案每一個(gè)學(xué)生的:學(xué)號(hào)(intnum)姓名(charname[20])性別(charsex)年齡(intage)存在的問題:難以處理一些較復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。成績(jī)(floatscore)地址(charaddr[30])C程序可將上述數(shù)據(jù)的集合定義為一種結(jié)構(gòu)體類型:structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}上述定義中:stru
2、ct–––關(guān)鍵詞(保留字),表示定義一種結(jié)構(gòu)體類型。結(jié)構(gòu)體定義的一般形式:struct結(jié)構(gòu)體名{成員表列};成員表列:類型標(biāo)識(shí)符成員名以上僅說明了定義一種類型的方法,尚未定義變量。strudent–––結(jié)構(gòu)體名如:structexp{inttimes;charflag;floatmeter;}結(jié)構(gòu)體名成員表列§10.2定義結(jié)構(gòu)體變量一、先定義結(jié)構(gòu)體類型再定義結(jié)構(gòu)體變量三種方法可用來定義結(jié)構(gòu)體變量:structstudentx1,x2;則x1,x2為student結(jié)構(gòu)型變量,x1,x2可存放student類型數(shù)據(jù)。例:stru
3、ctstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}類型標(biāo)識(shí)符例:structstudent{intnum;charname[20];charsex;intage;charaddr[30];}x1,x2;定義形式struct結(jié)構(gòu)體名{成員表列}變量名表列;二、在定義結(jié)構(gòu)體類型的同時(shí)定義變量:定義形式struct{成員表列}變量名表列;不出現(xiàn)結(jié)構(gòu)體類型名三、直接定義結(jié)構(gòu)類型變量如:struct{intnumcharname[20];char
4、sex;intage;charaddr[30];}x1,x2;A)structstudent{intnum;floatage;};structstudentstd1;以下對(duì)結(jié)構(gòu)體類型變量的定義中不正確的是:B)structstudent{intnum;floatage;}std1;D)struct{intnum;floatage;}std1;C)struct{intnum;floatage;}student;structstudentstd1;?1.類型名與變量名是不同的概念2.允許成員名又為另一個(gè)已定義的結(jié)構(gòu)型變量3.每一
5、個(gè)成員地位如同該類型的變量4.成員名與程序中的變量名可相同但意義不同幾點(diǎn)說明:一個(gè)嵌套定義的例子:structdate{intmonth;intday;intyear;}structstudent{intnum;charname[20];charsex;intage;structdatebirthday;charaddr[30];}x1,x2;x1或x2numnamesexagebirthdaymonthdayyearaddr§10.3結(jié)構(gòu)體類型變量的引用如:x1為student型變量,則x1.num:表示x1的學(xué)號(hào)x1.n
6、ame:表示x1的名字x1.birthday.day:表示x1的出生日1.只能用成員,不可用結(jié)構(gòu)體變量名直接運(yùn)算2.每一個(gè)分量的引用與其同類型的簡(jiǎn)單變量的引用相同。引用結(jié)構(gòu)體變量實(shí)質(zhì)上為引用其成員用分量運(yùn)算符.優(yōu)先級(jí)最高§10.4結(jié)構(gòu)體變量的初始化structstudentx1={8906,"LiMing",'M’,25,8,3,1928,"YuLushan123"}與其它變量的初始化完全一樣,結(jié)構(gòu)體變量在定義時(shí)可初始化:關(guān)于結(jié)構(gòu)體變量的幾點(diǎn)說明:1.結(jié)構(gòu)體變量不是一個(gè)簡(jiǎn)單變量,它的值是由許多個(gè)基本數(shù)據(jù)組成。2.在內(nèi)存中占有
7、一段連續(xù)的存儲(chǔ)單元3.占有的連續(xù)存儲(chǔ)單元大小取決于成員的數(shù)據(jù)類型如:structexp{inta;floatb;charyn[8];}structexpx={1234,56.7,"text"}若x的起始地址為2000,則x在內(nèi)存中占有的存儲(chǔ)單元為:共用14個(gè)字節(jié)的連續(xù)單元123456.7test