>> Gjuha 1: Le të shkruaj një program që bën të përdoruesit për emrat dhe
shtëpitë e tre studentë.
Tani, për të ruajtur ato emra dhe shtëpi ne mund të përdorin, çfarë, gjashtë variablave.
Tre stringjet për emrat, dhe një tjetër tre vargjet për shtëpitë,
por ne tashmë e dimë që ne mund të pastër deri se kodi duke përdorur vargjeve në vend të kësaj,
për shembull një grup i madhësisë 3 për tre emra, dhe një tjetër grup të
Madhësia 3 për shtëpitë.
Por kjo rezulton ne mund të pastër këtë ide më tej akoma, dhe në fakt të mbajtur ato të
emrat dhe shtepi bashke, kështu që një Emri i studentit dhe shtëpia e tij ose të saj
përmblidhen disi, në mënyrë që të flasin, në të njëjtën variabël.
>> Për ta bërë këtë, edhe pse, ne kemi nevojë për të deklaruar vetë lloji tonë të të dhënave, vetë lloji tonë në C,
se autorët e C nuk ka domosdoshmërisht mendojnë për vjet më parë.
Për ta bërë këtë, ne mund të përdorim fjalën kyçe typedef, së bashku me
struct tjetër fjalen.
Le të bëjmë një vështrim.
Brenda structs.h, unë kam tashmë marrë filluar nga
duke përfshirë edhe bibliotekën CS50.
Unë jam i ardhshëm do të tipit e strukturës typedef, dhe pastaj një mbajtëse kaçurrel.
Brenda e struct, unë jam duke shkuar për specifikon se një student do të ketë një
string quajtur emrin, dhe një tjetër string quhet shtëpi.
Unë jam duke shkuar për të mbyllur më pas formatimin e teksteve kaçurrel e mia, dhe të përcaktojë se emri i
ky lloj i ri e të dhënave do të jetë studenti.
Me fjalë të tjera, me anë të këtij sintaksë kam deklaruar një lloj të ri të dhënave të mi
se nuk ka ekzistuar një moment më parë, dhe brenda e këtij lloji të të dhënave janë dy të dhëna të
fields ose anëtarët e të dhënave, e quajtur emrin, e quajtur shtëpi, dy prej të cilave
janë të tipit string.
>> Le tani përdorin këtë lloj në një program aktual.
Në structs0.c, unë kam marrë në mënyrë të ngjashme veten duke filluar me disa
Kodi Boilerplate, dhe unë jam tani do të përdorin këto të dhëna
shkruani nxënës, si më poshtë.
Unë jam duke e parë duke shkuar për të deklaruar një grup i studentëve tipit, unë do
telefononi nxënësit array -
shumësi -
dhe unë do të specifikojë se madhësia e tij do të jetë tre, e cila, njoftim, është vlera e
Studentët e vazhdueshme -
në të gjitha kryeqytetet -
që unë kam shpallur këtu, më parë në dosjen.
Le tani iterate gjatë atyre tre studentët, dhe të menjëhershëm të përdoruesit për
emrat dhe shtëpitë e tyre.
>> për int i merrni 0, i është më pak se kaq konstante, i + +.
Dhe tani në brendësi të trupit të kësaj për loop, unë jam duke shkuar për të shkruar diçka
si emri i studentit.
Unë jam atëherë do të ketë në fakt që Emri i studentit nga specifikuar
Nxënësit kllapa i.
Me fjalë të tjera unë dua që studenti i-th në grup të quajtur studentëve, por tani
Unë dua të të marrë në se i-th studentit emrin, dhe për të bërë këtë, unë jam duke shkuar për të përdorur
. operatori, në mënyrë që të marrë në një brenda specifik fushën e struct.
Kështu që unë të specifikojë studentëve kllapa i. Emrin merr vlerën e kthimit të getString ().
Ndërkohë, unë jam duke shkuar për të shtypur jashtë diçka të ngjashme, duke thënë studentit
shtëpi, dhe tani unë jam duke shkuar për të specifikuar se fusha studentët shtëpi i-th
do të marrë vlerën e kthimit të një tjetër thirrje për të getString ().
>> Tani le të bëjë diçka me këto tre Emrat dhe shtëpi të studentëve,
diçka e thjeshtë si shtypje secili në një fjali.
për int i merrni 0, përsëri i është më pak se studentë, i + +, printf "% s është% s.
backslash n ", dhe tani më lejoni të vihet në prizë vlerat e këtyre dy fushave,
Nxënësit kllapa i. emrin, presje, Nxënësit kllapa i. shtëpi, në afërsi
Paren, pikëpresje.
>> Dhe tani kam nevojë për të bërë një gjë.
Në fund të këtij file, kam nevojë për të të lirë kujtesës që është ndarë
prapaskenë nga GetSring (), e cila natyrisht quan malloc, në mënyrë që të
përgatitja e kujtesës për vargjet lloje përdorues.
Por kjo për të është e thjeshtë.
për Int i marrë 0, i është më pak se studentë, i + +, dhe brenda trupit të
këtë për lak, unë jam thjesht duke shkuar për të ofrojnë falas nxënës kllapa i. emrin,
dhe studentët pa kllapa i. shtëpi.
>> Tani, ne kemi përdorur në mënyrë të qartë për tre sythe në këtë program, kur me të vërtetë unë
mund të ketë përdorur vetëm një të tillë, por kjo është vetëm për hir të demonstratës së, në mënyrë që
ne mund të specifikojë në tre të dallueshme hapa saktësisht se çfarë ne jemi duke bërë.
Ne jemi duke e parë duke marrë një emër dhe një shtëpi për secilin nga nxënësit, ne jemi më pas
shtypjen nga emri dhe nga shtëpia për secili prej tre nxënës, dhe
atëherë ne jemi duke shkuar për në kujtesë përdorur nga çdo e studentëve.
Por sigurisht që ne mund të kemi kombinuar kjo në një më e madhe për lak.
>> Le tani të shpëtuar, përpilojnë, dhe të drejtuar këtë program.
bëjnë structs 0. / structs 0, studentit emrin, le të ofrojë Davidin, ai do të jetojë
në Mather House, emri i studentit, le të thonë Lauren, ajo do të jetojnë në Leverett
House, emri i studentit, Rob, ai do të jetojnë në Kirkland House.
Dhe në të vërtetë, Davidi është në Mather, Lauren është në Leverett,
dhe Rob është në Kirkland.