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.