2 00:00:00,000 --> 00:00:02,760 >> SPEAKER 1: Kirjoitetaan ohjelma, joka kysyy käyttäjältä nimet ja 3 00:00:02,760 --> 00:00:04,700 talot kolme opiskelijaa. 4 00:00:04,700 --> 00:00:08,840 Nyt, tallentaa ne nimet ja taloja voisimme käyttää, mitä, kuusi muuttujaa. 5 00:00:08,840 --> 00:00:12,260 Kolme jousille nimiä, ja toinen kolme jousille talot, 6 00:00:12,260 --> 00:00:16,560 mutta tiedämme jo, että voimme siivota että koodin avulla paneelit sen sijaan, 7 00:00:16,560 --> 00:00:20,220 esimerkiksi taulukon koko 3 kolme nimeä, ja toinen joukko 8 00:00:20,220 --> 00:00:22,110 koko 3 taloa. 9 00:00:22,110 --> 00:00:25,870 Mutta näyttää siltä, ​​voimme puhdistaa tämän ylös vielä pidemmälle, ja itse pitää nuo 10 00:00:25,870 --> 00:00:30,520 nimet ja talot yhteen, niin että opiskelijan nimi ja hänen talo 11 00:00:30,520 --> 00:00:34,940 jotenkin kapseloitu, niin puhua, samaan muuttujaan. 12 00:00:34,940 --> 00:00:39,095 >> Voit tehdä tämän, emme kuitenkaan tarvitse ilmoittaa oma tietotyyppi, meidän oma tyyppi C, 13 00:00:39,095 --> 00:00:42,660 että laatijat C ei välttämättä ajattele vuotta sitten. 14 00:00:42,660 --> 00:00:45,630 Voit tehdä tämän voimme käyttää avainsanan typedef yhdessä 15 00:00:45,630 --> 00:00:47,200 muun sanan struct. 16 00:00:47,200 --> 00:00:48,160 Katsotaanpa katsomaan. 17 00:00:48,160 --> 00:00:50,650 Sisältä structs.h, olen jo mennyt aloitti 18 00:00:50,650 --> 00:00:52,560 mukaan lukien CS50 kirjasto. 19 00:00:52,560 --> 00:00:57,640 Olen vieressä menossa kirjoittaa struct, ja sitten kihara ahdin. 20 00:00:57,640 --> 00:01:01,370 Sisällä struct, aion täsmennettävä, että opiskelija on 21 00:01:01,370 --> 00:01:04,960 string kutsutaan nimellä, ja toinen merkkijono kutsutaan talon. 22 00:01:04,960 --> 00:01:08,430 Aion sitten suljen aaltosulkeita, ja täsmennetään, että nimi 23 00:01:08,430 --> 00:01:11,420 tämä uusi tietotyyppi on opiskelija. 24 00:01:11,420 --> 00:01:15,550 Toisin sanoen tätä kautta syntaksin olen julisti uusi tietotyyppi omani 25 00:01:15,550 --> 00:01:19,910 jota ei ollut olemassa hetki sitten, ja sisäosat tietotyyppi on kaksi tietoja 26 00:01:19,910 --> 00:01:24,270 kenttiä tai datajäsenet, yksi nimeltään nimi, yksi nimeltään talo, jotka molemmat 27 00:01:24,270 --> 00:01:25,630 ovat tyyppiä string. 28 00:01:25,630 --> 00:01:27,690 >> Katsotaanpa nyt käyttää tätä tyyppiä vuonna varsinaisen ohjelman. 29 00:01:27,690 --> 00:01:30,210 30 00:01:30,210 --> 00:01:34,090 Vuonna structs0.c, olen samalla saanut itseäni alkoi jo joidenkin 31 00:01:34,090 --> 00:01:36,999 boilerplate koodia, ja olen nyt aio käyttää näitä tietoja 32 00:01:36,999 --> 00:01:39,100 Kirjoita opiskelija, seuraavasti. 33 00:01:39,100 --> 00:01:42,450 Olen ensimmäinen menossa julistaa joukko tyypin opiskelija, minä 34 00:01:42,450 --> 00:01:43,920 soita array opiskelijat - 35 00:01:43,920 --> 00:01:44,630 monikko - 36 00:01:44,630 --> 00:01:49,360 ja minä täsmennettävä, että sen koko on kolme, jotka, ilmoitus, on arvo 37 00:01:49,360 --> 00:01:50,880 jatkuva opiskelijat - 38 00:01:50,880 --> 00:01:51,890 kaikissa pääkaupungeissa - 39 00:01:51,890 --> 00:01:54,930 että olen julistanut tänne, aikaisemmin tiedoston. 40 00:01:54,930 --> 00:01:58,280 Katsotaanpa nyt kerrata yli nämä kolme opiskelijoita, ja pyytää käyttäjältä 41 00:01:58,280 --> 00:02:00,050 niiden nimet ja taloja. 42 00:02:00,050 --> 00:02:05,422 >> int i saada 0, i on pienempi kuin vakio, i + +. 43 00:02:05,422 --> 00:02:08,600 Ja nyt sisällä elin tätä silmukka, aion tulostaa jotain 44 00:02:08,600 --> 00:02:11,470 kuten opiskelijan nimeä. 45 00:02:11,470 --> 00:02:14,890 Olen sitten menee itse saada, että opiskelijan nimi määrittämällä 46 00:02:14,890 --> 00:02:17,290 opiskelijat Kiinnikettä I. 47 00:02:17,290 --> 00:02:21,550 Toisin sanoen haluan i. opiskelija array nimeltään opiskelijoita, mutta nyt 48 00:02:21,550 --> 00:02:25,340 Haluan saada tuohon i. opiskelijan nimi, ja tehdä tämän, aion käyttää 49 00:02:25,340 --> 00:02:30,160 . operaattori, saadakseen at erityisalan sisällä struct. 50 00:02:30,160 --> 00:02:37,100 Joten voin määritellä opiskelijoita Kiinnikettä I. Name saa palauttaa arvon getString (). 51 00:02:37,100 --> 00:02:40,310 Samaan aikaan, aion tulostaa jotain vastaavaa, sanoen opiskelijan 52 00:02:40,310 --> 00:02:45,410 talon, ja nyt aion määritellä että i. opiskelijoita talo alalla 53 00:02:45,410 --> 00:02:49,480 on saada palauttaa arvon toinen puhelu getString (). 54 00:02:49,480 --> 00:02:52,350 >> Nyt tehdään jotain näistä kolmesta opiskelijoiden nimiä ja taloja, 55 00:02:52,350 --> 00:02:56,230 jotain yksinkertaista, kuten tulostusta jokainen ulos lauseen. 56 00:02:56,230 --> 00:03:07,580 int i päästä 0, jälleen i on pienempi kuin opiskelijoita, i + +, printf "% s on% s. 57 00:03:07,580 --> 00:03:12,600 kenoviiva n ", ja nyt haluan kytkeä arvot näiden kahden aloilla, 58 00:03:12,600 --> 00:03:19,055 opiskelijat Kiinnikettä I. nimen, pilkku, opiskelijat Kiinnikettä I. talon lähellä 59 00:03:19,055 --> 00:03:21,290 kantatuote, puolipiste. 60 00:03:21,290 --> 00:03:23,020 >> Ja nyt minun täytyy tehdä yksi asia. 61 00:03:23,020 --> 00:03:26,600 Alareunassa olevan tiedoston, minun täytyy vapauttaa muistia, joka myönnettiin 62 00:03:26,600 --> 00:03:30,290 kulissien takana GetSring (), joka tietenkin vaatii malloc, jotta 63 00:03:30,290 --> 00:03:32,500 getopt jousille käyttäjä kirjoittaa. 64 00:03:32,500 --> 00:03:35,720 Mutta tämä on yksinkertainen. 65 00:03:35,720 --> 00:03:42,610 int i saada 0, i on pienempi kuin opiskelijoita, i + +, ja kehossa 66 00:03:42,610 --> 00:03:48,670 Tämän silmukan, olen vain menossa tarjota ilmainen opiskelijoille kiinnike i. nimen, 67 00:03:48,670 --> 00:03:52,300 ja vapaa opiskelijat Kiinnikettä I. talossa. 68 00:03:52,300 --> 00:03:55,620 >> Nyt olemme selvästi käytetty kolmea silmukoita tässä ohjelmassa, kun todella olen 69 00:03:55,620 --> 00:03:58,800 voinut vain käyttää yhtä, mutta tämä on vain esittelyn vuoksi, jotta 70 00:03:58,800 --> 00:04:02,850 voimme määritellä kolme eri vaiheet mitä teemme. 71 00:04:02,850 --> 00:04:06,120 Olemme ensin saada nimi ja talon kullekin opiskelijoita, olemme sitten 72 00:04:06,120 --> 00:04:08,900 tulostaa nimen ja talon kukin kolme opiskelijaa, ja 73 00:04:08,900 --> 00:04:11,910 Sitten aiomme vapauttaa muistia käyttää kunkin opiskelijoille. 74 00:04:11,910 --> 00:04:15,310 Mutta varmasti Olisimme voineet yhdistää tämän yhdeksi isompi silmukka. 75 00:04:15,310 --> 00:04:18,650 >> Katsotaanpa nyt tallentaa, kerätä, ja suorita tämä ohjelma. 76 00:04:18,650 --> 00:04:26,850 tehdä structs 0. / structs 0, opiskelijan nimi, nyt tarjota David, hän elää 77 00:04:26,850 --> 00:04:31,580 in Mather House, opiskelijan nimi, katsotaanpa sanoa Lauren, hän elää Leverett 78 00:04:31,580 --> 00:04:36,590 House, opiskelijan nimi, Rob, hän elää Kirkland House. 79 00:04:36,590 --> 00:04:39,440 Ja todellakin, David on Mather, Lauren on Leverett, 80 00:04:39,440 --> 00:04:40,810 ja Rob on Kirkland. 81 00:04:40,810 --> 00:04:43,425