結(jié)構(gòu)體與共用體

結(jié)構(gòu)體與共用體

ID:38289984

大?。?9.50 KB

頁數(shù):6頁

時間:2019-06-07

結(jié)構(gòu)體與共用體_第1頁
結(jié)構(gòu)體與共用體_第2頁
結(jié)構(gòu)體與共用體_第3頁
結(jié)構(gòu)體與共用體_第4頁
結(jié)構(gòu)體與共用體_第5頁
資源描述:

《結(jié)構(gòu)體與共用體》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、第11章結(jié)構(gòu)體與共用體本章主要考查結(jié)構(gòu)體類型、結(jié)構(gòu)體變量、結(jié)構(gòu)體數(shù)組、結(jié)構(gòu)體指針的定義和引用方法,結(jié)構(gòu)體類型變量的特點,以及共用體及枚舉類型的概念、定義和引用,并掌握己有類型定義別名的方法。一、考試要點1、結(jié)構(gòu)體(1)結(jié)構(gòu)體類型的定義結(jié)構(gòu)是一種“構(gòu)造”而成的數(shù)據(jù)類型,在使用之前必須先定義,然后才可能用來定義相應(yīng)的變量、數(shù)組等。定義如下:struct結(jié)構(gòu)名{成員列表;};例如:structstd{intnum;charname[10];floatsco;};定義的該結(jié)構(gòu)類型之后,這種類型在內(nèi)存中所占間為所有成員所占內(nèi)存之和。(2)結(jié)構(gòu)類型的說明說明結(jié)構(gòu)體變量有以下3種

2、方法:方法一:先定義結(jié)構(gòu)體,再說明結(jié)構(gòu)體變量structstd{intnum;charname[10];floatsco;};structstdstu1,stu2;方法二:在定義結(jié)構(gòu)體的同時說明結(jié)構(gòu)體變量structstd{intnum;charname[10];floatsco;}stu1,stu2;方法三:直接說明結(jié)構(gòu)變量struct{intnum;charname[10];floatsco;}stu1,stu2;(3)結(jié)構(gòu)變量的引用結(jié)構(gòu)變量成員的表示一般形式為:結(jié)構(gòu)變量名.成員名如:stu1.sco若成員本身又是一個結(jié)構(gòu),則必須逐級找到最低級的成員才可以使用,

3、一般形式為:外層結(jié)構(gòu)變量.外層成員名.內(nèi)層成員名如:stu1.birth.year(4)結(jié)構(gòu)變量和賦值和初始化結(jié)構(gòu)變量的賦值即是給各個成賦值,可用輸入輸出語句來實現(xiàn)。結(jié)構(gòu)變量的初始化是指在結(jié)構(gòu)變量說明的同時,給它的各個成員賦初值,初始化的格式為:struct結(jié)構(gòu)名{結(jié)構(gòu)成員列表;}結(jié)構(gòu)變量={初始數(shù)據(jù)表};(5)結(jié)構(gòu)指針變量的說明和使用結(jié)構(gòu)指針的說明形式為:struct結(jié)構(gòu)名*結(jié)構(gòu)指針變量名結(jié)構(gòu)指針變量訪問結(jié)構(gòu)變量各個成員的一般形式為:(*結(jié)構(gòu)指針變量).成員名或結(jié)構(gòu)指針變量->成員2、共用體(1)共用體類型的定義和共用體變量的說明其定義方法為:union共用體名{

4、成員表;};如:unionunit{intclass;charoffice[10];};共用體類型在內(nèi)存中所占空間等于成員中占空間最大的。共用體變量的說明的方法與結(jié)構(gòu)體變量的說明方法相同。(2)共用體類型變量的賦值和使用形式為:共用體變量.成員名3.枚舉類型枚舉類型的定義形式為:enum枚舉名{枚舉值表;};枚舉類型變量的說明與結(jié)構(gòu)體和共用體相同。4.類型定義符typedef用typedef來給已知類型取別名。如:typedefintINTEGER這樣,inta,b;與INTEGERa,b;的功能是一樣的.二、典型例題分析例10.1設(shè)有結(jié)構(gòu)體及其數(shù)組和指針變量的定義

5、語句struct{intx;}y[2],*p=y;則下列表達式中不能正確表示結(jié)構(gòu)體成員的是()(2005年1月份安徽省計算機水平考試二級《C語言程序設(shè)計》試題)A)(*p).xB)*(p+1).xC)y[0].xD)(&y[1])->x答案:B解析:.優(yōu)先級高于*,因此B相當于*((p+1).x),而p+1為地址,不能使用.來引用結(jié)構(gòu)體成員,則B錯誤例10.2以下語句中,指針p的data域正確的引用方式為()typedefstructmode{intdata;structnode*lchild,*rchild;}Btree;Btree*p;(2005年12月份安徽省

6、計算機水平考試二級《C語言程序設(shè)計》試題)A)p.dataB)p->dataC)(*p)->dataD)p[data]答案:B解析:p為指向Btree的指針,則引用data域方法為p->data例10.3unionstu{intI;floatt;inta[4]}x;則x在內(nèi)存中占用的字節(jié)數(shù)是()(2006年6月份安徽省計算機水平考試二級《C語言程序設(shè)計》試題)A)2B)4C)8D)14答案:C解析:int為2個字節(jié),float為4個字節(jié),數(shù)組a為4*2=8個字節(jié),union類型的變量所占字節(jié)數(shù)即為最長的域所占字節(jié)數(shù)。例10.4如有以下定義structperson{c

7、harname[9];intage;};structpersonclass[10]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16};根據(jù)上述定義,能輸出字母M的語句是()(2007年1月份安徽省計算機水平考試二級《C語言程序設(shè)計》試題)A)printf(“%c”,class[3].name);B)printf(“%c”,class[3].name[1]);C)printf(“%c”,class[2].name[1]);D)printf(“%c”,class[2].name[0]);答案:D解析:John和17為

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。