>> SPEAKER 1: Kirjoitetaan ohjelma, joka kysyy käyttäjältä nimet ja
talot kolme opiskelijaa.
Nyt, tallentaa ne nimet ja taloja voisimme käyttää, mitä, kuusi muuttujaa.
Kolme jousille nimiä, ja toinen kolme jousille talot,
mutta tiedämme jo, että voimme siivota että koodin avulla paneelit sen sijaan,
esimerkiksi taulukon koko 3 kolme nimeä, ja toinen joukko
koko 3 taloa.
Mutta näyttää siltä, ​​voimme puhdistaa tämän ylös vielä pidemmälle, ja itse pitää nuo
nimet ja talot yhteen, niin että opiskelijan nimi ja hänen talo
jotenkin kapseloitu, niin puhua, samaan muuttujaan.
>> Voit tehdä tämän, emme kuitenkaan tarvitse ilmoittaa oma tietotyyppi, meidän oma tyyppi C,
että laatijat C ei välttämättä ajattele vuotta sitten.
Voit tehdä tämän voimme käyttää avainsanan typedef yhdessä
muun sanan struct.
Katsotaanpa katsomaan.
Sisältä structs.h, olen jo mennyt aloitti
mukaan lukien CS50 kirjasto.
Olen vieressä menossa kirjoittaa struct, ja sitten kihara ahdin.
Sisällä struct, aion täsmennettävä, että opiskelija on
string kutsutaan nimellä, ja toinen merkkijono kutsutaan talon.
Aion sitten suljen aaltosulkeita, ja täsmennetään, että nimi
tämä uusi tietotyyppi on opiskelija.
Toisin sanoen tätä kautta syntaksin olen julisti uusi tietotyyppi omani
jota ei ollut olemassa hetki sitten, ja sisäosat tietotyyppi on kaksi tietoja
kenttiä tai datajäsenet, yksi nimeltään nimi, yksi nimeltään talo, jotka molemmat
ovat tyyppiä string.
>> Katsotaanpa nyt käyttää tätä tyyppiä vuonna varsinaisen ohjelman.
Vuonna structs0.c, olen samalla saanut itseäni alkoi jo joidenkin
boilerplate koodia, ja olen nyt aio käyttää näitä tietoja
Kirjoita opiskelija, seuraavasti.
Olen ensimmäinen menossa julistaa joukko tyypin opiskelija, minä
soita array opiskelijat -
monikko -
ja minä täsmennettävä, että sen koko on kolme, jotka, ilmoitus, on arvo
jatkuva opiskelijat -
kaikissa pääkaupungeissa -
että olen julistanut tänne, aikaisemmin tiedoston.
Katsotaanpa nyt kerrata yli nämä kolme opiskelijoita, ja pyytää käyttäjältä
niiden nimet ja taloja.
>> int i saada 0, i on pienempi kuin vakio, i + +.
Ja nyt sisällä elin tätä silmukka, aion tulostaa jotain
kuten opiskelijan nimeä.
Olen sitten menee itse saada, että opiskelijan nimi määrittämällä
opiskelijat Kiinnikettä I.
Toisin sanoen haluan i. opiskelija array nimeltään opiskelijoita, mutta nyt
Haluan saada tuohon i. opiskelijan nimi, ja tehdä tämän, aion käyttää
. operaattori, saadakseen at erityisalan sisällä struct.
Joten voin määritellä opiskelijoita Kiinnikettä I. Name saa palauttaa arvon getString ().
Samaan aikaan, aion tulostaa jotain vastaavaa, sanoen opiskelijan
talon, ja nyt aion määritellä että i. opiskelijoita talo alalla
on saada palauttaa arvon toinen puhelu getString ().
>> Nyt tehdään jotain näistä kolmesta opiskelijoiden nimiä ja taloja,
jotain yksinkertaista, kuten tulostusta jokainen ulos lauseen.
int i päästä 0, jälleen i on pienempi kuin opiskelijoita, i + +, printf "% s on% s.
kenoviiva n ", ja nyt haluan kytkeä arvot näiden kahden aloilla,
opiskelijat Kiinnikettä I. nimen, pilkku, opiskelijat Kiinnikettä I. talon lähellä
kantatuote, puolipiste.
>> Ja nyt minun täytyy tehdä yksi asia.
Alareunassa olevan tiedoston, minun täytyy vapauttaa muistia, joka myönnettiin
kulissien takana GetSring (), joka tietenkin vaatii malloc, jotta
getopt jousille käyttäjä kirjoittaa.
Mutta tämä on yksinkertainen.
int i saada 0, i on pienempi kuin opiskelijoita, i + +, ja kehossa
Tämän silmukan, olen vain menossa tarjota ilmainen opiskelijoille kiinnike i. nimen,
ja vapaa opiskelijat Kiinnikettä I. talossa.
>> Nyt olemme selvästi käytetty kolmea silmukoita tässä ohjelmassa, kun todella olen
voinut vain käyttää yhtä, mutta tämä on vain esittelyn vuoksi, jotta
voimme määritellä kolme eri vaiheet mitä teemme.
Olemme ensin saada nimi ja talon kullekin opiskelijoita, olemme sitten
tulostaa nimen ja talon kukin kolme opiskelijaa, ja
Sitten aiomme vapauttaa muistia käyttää kunkin opiskelijoille.
Mutta varmasti Olisimme voineet yhdistää tämän yhdeksi isompi silmukka.
>> Katsotaanpa nyt tallentaa, kerätä, ja suorita tämä ohjelma.
tehdä structs 0. / structs 0, opiskelijan nimi, nyt tarjota David, hän elää
in Mather House, opiskelijan nimi, katsotaanpa sanoa Lauren, hän elää Leverett
House, opiskelijan nimi, Rob, hän elää Kirkland House.
Ja todellakin, David on Mather, Lauren on Leverett,
ja Rob on Kirkland.