版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Chapter9StructuresFangWangOutlines9.1StructureVariables9.2Structurename9.3ArraysandStructures29.1StructureVariablesStructuresareawaytogroupseveralrelatedvariablesintooneplace.Eachvariableinthestructureisknownasamemberofthestructure.Unlikeanarray,astructurecancontainmanydifferentdatatypes(int,float,char,etc.).Thepropertiesofastructurearedifferentfromthoseofanarray.Theelementsofastructure(itsmembers)aren’trequiredtohavethesametype.Themembersofastructurehavenames;toselectaparticularmember,wespecifyitsname,notitsposition.39.1StructureVariablesDeclaringStructureVariablesAstructureisalogicalchoiceforstoringacollectionofrelateddataitems.Adeclarationoftwostructurevariablesthatstoreinformationaboutstudents: structstudent{ intnumber; charname[25]; intage; }49.1StructureVariablesDeclaringStructureVariablesAbstractrepresentationsofastructure:Membervalueswillgointheboxeslater.5agestructstudent{ intnumber; charname[25]; intage; }Mike;structstudent{ intnumber; charname[25]; intage; };structstudent
Mike;struct{ intnumber; charname[25]; intage; }Mike;Structure1.Thestructureisdesignedbyusersthemselves;2.Itiscomposedofseveraldifferentbasicdatatypes;3.ItisadatatypeofC,whichisequivalenttointordoubletypes.69.1StructureVariablesDeclaringStructureVariablesThemembersofastructurearestoredinmemoryintheorderinwhichthey’redeclared.AppearanceofMikeAssumptions:Mikeislocatedataddress2000.Integersoccupyfourbytes.NAMEoccupies25bytes.Therearenogapsbetweenthemembers.7age9.1StructureVariablesInitializingStructureVariablesAstructuredeclarationmayincludeaninitializer: structstudent{ intnumber; charname[25]; intage; }Mike={202201,"MikePatrick",10}, Tom={202202,"TomdaVinci",15};AppearanceofMike
afterinitialization:8age202201MikePatrickage202202TomdaVinci159.1StructureVariablesOperationsonStructures--------name.memberToaccessamemberwithinastructure,wewritethenameofthestructurefirst,thenaperiod,thenthenameofthemember.StatementsthatdisplaythevaluesofMike’smembers: printf("number:
%d\n",
Mike.number); printf("name:
%s\n",
Mike.name); printf(“%d%s%d\n",
Tom.number,Tom.name,Tom.age);
202202TomdaVinci15
99.1StructureVariablesOperationsonStructuresThemembersofastructurearelvalues.Theycanappearontheleftsideofanassignmentorastheoperandinanincrementordecrementexpression:
Tom.number=258;
/*changesTom'snumber*/ Tom.age++;
/*incrementsTom'sage*/109.1StructureVariablesOperationsonStructuresTheperiodusedtoaccessastructurememberisactuallyaCoperator.Ittakesprecedence
overnearlyallotheroperators.Example:
scanf("%d",&Tom.age);
The.operatortakesprecedenceoverthe&operator,so&computestheaddressofTom.age.119.1StructureVariablesOperationsonStructuresTheothermajorstructureoperationisassignment:
Tom=Mike;TheeffectofthisstatementistocopyMike.numberintoTom.number,MintoT,andsoon.129.2StructurenameSupposethataprogramneedstodeclareseveralstructurevariableswithidenticalmembers.Weneedaname(“structuretag”)thatrepresentsastructure.139.2StructurenameDeclaringaStructureTagAstructuretagisanameusedtoidentifyaparticularkindofstructure.Thedeclarationofastructuretagnamedteacher: structteacher{ intnumber; charname[25]; charcourse[50]; };Notethatasemicolonmustfollowtherightbrace.149.2StructurenameDeclaringaStructureTagTheteacher
tagcanbeusedtodeclarevariables:
structteachert1,t2;Wecan’tdropthewordstruct:
teachert1,t2;/***WRONG***/
teacher
isn’tatypename;withoutthewordstruct,itismeaningless.159.2StructurenameDeclaringaStructureTagThedeclarationofastructuretagcanbecombinedwiththedeclarationofstructurevariables: structpart{ intnumber; charname[25]; inton_hand; }part1,part2;169.2StructureTypesDeclaringaStructureTagAllstructuresdeclaredtohavetypestruct
part
arecompatiblewithoneanother:
structpartpart1={528,"Diskdrive",10};
structpartpart2; part2=part1;
/*
legal;
both
parts
have
the
same
type
*/17Classassignment41:StructureCreateastructurecalledmyCountry#include<string.h>18structmyCountry//CreateastructurecalledmyCountry{charname[20];charlanguage[10];charlocation[10];intpopulation_billion;charunique_feature[100];};intmain(){//DeclareastructurevariableofmyCountrycalledChina
structmyCountryChina;strcpy(C,“P.R.China”);//AssignvaluestomembersofChinastrcpy(China.language,“Chinese”);strcpy(China.location,“Asia”);China.population_billion=14;strcpy(China.unique_feature,“Panda”);//Printvaluesprintf("%s\n%s\n%s\n%d\n%s\n",C,China.language,China.location,China.population_billion,China.unique_feature);return0;}9.2StructurenameStructuresasArgumentsandReturnValuesFunctionsmayhavestructuresasargumentsandreturnvalues.Afunctionwithastructureargument: voidprint_part(structpartp) { printf("Partnumber:%d\n",p.number); printf("Partname:%s\n",); printf("Quantityonhand:%d\n",p.on_hand); }Acallofprint_part: print_part(part1);199.2StructurenameStructuresasArgumentsandReturnValuesAfunctionthatreturnsapartstructure: structpartbuild_part(intnumber, constchar*name, inton_hand) { structpartp;
p.number=number; strcpy(,name); p.on_hand=on_hand; returnp; }Acallofbuild_part:
part1=build_part(528,"Diskdrive",10);209.3ArraysandStructuresArraysofStructuresThiskindofarraycanserveasasimpledatabase.Anarrayofpartstructurescapableofstoringinformationabout100parts:
structpartinventory[100];//庫存零件100個(gè)219.3ArraysandStructuresArraysofStructuresAccessingapartinthearrayisdonebyusingsubscripting:
inventory[i]Accessingamemberwithinapartstructurerequiresacombinationofsubscriptingandmemberselection:
inventory[i].number=883;Accessinga
溫馨提示
- 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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45013-2024精細(xì)陶瓷基片的熱疲勞試驗(yàn)方法
- 黃水瘡的臨床護(hù)理
- 《使用布局管理器》課件
- 頜骨膨隆的臨床護(hù)理
- 減鹽控壓培訓(xùn)課件
- 函數(shù)知識(shí)點(diǎn)復(fù)習(xí)課件
- 孕期肚子陣痛的健康宣教
- 孕期白帶黏稠的健康宣教
- 變應(yīng)性肉芽腫血管炎的健康宣教
- 絕經(jīng)的健康宣教
- 國家電投《新能源電站單位千瓦造價(jià)標(biāo)準(zhǔn)值(2024)》
- 小兒全麻患者術(shù)后護(hù)理
- 山東省臨沂市2023-2024學(xué)年高二上學(xué)期期末考試政治試題 含答案
- 黑龍江省哈爾濱市2023-2024學(xué)年八年級(jí)上學(xué)期語文期末模擬考試試卷(含答案)
- 2024至2030年不銹鋼水龍頭項(xiàng)目投資價(jià)值分析報(bào)告
- 風(fēng)險(xiǎn)投資協(xié)議書范本標(biāo)準(zhǔn)版
- 2024年百科知識(shí)競賽題庫及答案(共三套)
- JGJ-T490-2021鋼框架內(nèi)填墻板結(jié)構(gòu)技術(shù)標(biāo)準(zhǔn)
- 《高壓電動(dòng)機(jī)保護(hù)》PPT課件.ppt
- 在全市油氣輸送管道安全隱患整治工作領(lǐng)導(dǎo)小組第一次會(huì)議上的講話摘要
- 小學(xué)英語后進(jìn)生的轉(zhuǎn)化工作總結(jié)3頁
評(píng)論
0/150
提交評(píng)論