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.