>> SPEAKER 1: Írjunk egy programot, amely kéri a felhasználót, hogy a nevek és
házak három diák.
Most, hogy tárolja ezeket a neveket és házak tudtuk használni, ami hat változó.
Három stringet a nevét, és egy másik három húrok a házak,
de azt már tudjuk, hogy tisztítsák meg a kód használatával tömbök helyett,
például egy tömb méretű, 3 a három nevet, és egy másik tömb
méret 3-as ház.
De kiderül, tudunk tiszta ezt fel még ennél is tovább, és valóban tartani azokat
nevek és házak együtt, úgy, hogy a hallgató nevét és az ő háza
valahogy zárt, így a beszél, az ugyanazt a változót.
>> Ehhez azonban meg kell nyilatkozni Saját adattípus, a saját típusú C,
hogy a szerzők a C nem feltétlenül Szerintem évvel ezelőtt.
Ehhez tudjuk használni a kulcsszó typedef, valamint a
más kulcsszó struct.
Vessünk egy pillantást.
Belül structs.h, én már ütött indította
beleértve a CS50 könyvtár.
Én vagyok a következő majd írja typedef struct, majd a zárójel.
Belül a struct, fogok meghatározza, hogy a hallgató egy
karakterlánc hívott nevét, és egy másik karakterlánc nevű ház.
Megyek majd zárja be a kapcsos zárójelek, és adja meg, hogy a név
Az új adattípus legyen diák.
Más szóval, ez a szintaktikai keresztül tettem kijelentette, egy új adattípus saját
hogy nem létezik egy pillanattal ezelőtt, és belsejében adattípushoz két adat
mezők vagy adattag, egy úgynevezett nevet, az egyik az úgynevezett ház, amelyek egyaránt
a string típusú.
>> Nézzük most ezt a típusú egy aktuális program.
A structs0.c, én is hasonlóan ütött magam megkezdődött néhány
boilerplate kódot, és én vagyok most fogja használni az adatokat
típusú diák, az alábbiak szerint.
Én először megyek, hogy állapítsa meg a tömb típusú diák, én
hívja fel a tömb tanulók -
többes szám -
és én majd adja meg, hogy a mérete lesz három, ami, értesítést, az értéke
az állandó diákok -
Minden fővárosban -
hogy én már kijelentette itt, korábban a fájlt.
Nézzük most végighaladni a három diákok, és figyelmezteti a felhasználót a
nevüket és házak.
>> az int kapok 0, i kisebb mint az állandó, i + +.
És most belsejében a test ezt loop, megyek, hogy nyomtassa ki valamit
mint a diák nevét.
Én majd megy, hogy valóban kap, hogy a hallgató neve megadásával
diákok zárójelbe i.
Vagyis azt akarjuk, hogy a i-edik diák a tömb nevezett diákok, de most
Azt akarom, hogy az, hogy az i-edik diák nevet, és ezt fogom használni
a. operátor, annak érdekében, hogy egy speciális területén belül a struktúra.
Így határozza meg a diákok zárójelbe i. Név megkapja a visszatérési értéke getString ().
Közben fogok kinyomtatni valami hasonló, mondván diák
házat, és most megyek adja hogy az i-edik diák house terén
kell, hogy a visszatérési értéket egy másik hívás getString ().
>> Most valami ezzel a három tanulók nevét és házak,
valami egyszerű, mint a nyomtatás Minden ki egy mondatban.
az int i kap 0, megint kevesebb diákok, i + +, printf "% s:% s.
backslash n ", és most hadd dugja be értékeit ezen a két területen,
diákok zárójelbe i. nevét, vessző, diákok zárójelbe i. ház, közel
paren, pontosvessző.
>> És most azt kell tennie, még egy dolog.
Alján a fájl, azt kell szabad memória, amit kiosztott
a színfalak mögött GetSring (), amely Természetesen hívások malloc, annak érdekében, hogy
memóriát a húrok a felhasználó beír.
De ez az egyszerű.
az int kapok 0, i kevesebb, mint diákok, i + +, és a testben a
Ez a for ciklus, én csak fog ingyenes hallgatók konzol i. nevét,
és ingyenes a diákok zárójelbe i. házat.
>> Most már egyértelműen használt három a hurok ebben a programban, ha tényleg azt
Lehet, hogy csak használt ilyet, de ez csak a bemutató kedvéért, hogy a
tudjuk meg három különböző lépéseket pontosan mit csinálunk.
Mi először kap egy nevet és egy ház mind a diákok, mi majd
kinyomtatásával a nevét és a házat mind a három diák, és
akkor megyünk a szabad memória által használt egyes diákok.
De biztosan tudtuk volna össze ez a az egyik nagyobb, a hurok.
>> Nézzük most menteni, fordítani, és futtassa ezt a programot.
hogy Struktúrák 0-ra. / struktúrákat 0, tanuló név, menjünk biztosít David, meg fog élni
a Mather House, hallgató nevét, nézzük mondjuk Lauren, ő majd élni Leverett
House, hallgató nevét, Rob, meg fog él Kirkland House.
És valóban, Dávid van Mather, Lauren van Leverett,
és Rob van Kirkland.