SPEAKER 1: Pieņemsim uzrakstīt programmu, kas liek lietotājam attiecībā uz nosaukumiem un nami trīs studenti. Tagad, lai saglabātu šos nosaukumus un mājas mēs varētu izmantot, ko, seši mainīgie. Trīs stīgas nosaukumus, un vēl trīs stīgas mājās, bet mēs jau zinām, ka mēs varam sakopt šis kods, izmantojot bloki vietā, piemēram, masīvs lieluma 3 Trīs vārdi, un vēl masīvs izmērs 3 par mājām. Bet izrādās, mēs varam tīrīt to uz augšu vēl joprojām, un faktiski saglabāt tos nosaukumi un mājas kopā, lai studenta vārdu un viņa vai viņas mājas ir kaut kas iekapsulēti, tāpēc, lai runā, uz tā paša mainīgā lieluma. Lai to izdarītu, lai gan, mums ir nepieciešams atzīt mūsu pašu datu tipu, mūsu pašu tips C, ka autori C nebija obligāti domāju, ka pirms gadiem. Lai to paveiktu, mēs varam izmantot atslēgvārdu typedef, kopā ar citi atslēgvārds struktūrai. Pieņemsim to apskatīt. Iekšpusē structs.h, es esmu jau gotten sācis ieskaitot CS50 bibliotēkā. Es esmu blakus gatavojas rakstīt typedef struktūrai, un tad cirtaini lencēm. Iekšpusē struktūrai, es esmu gatavojas norādīt, ka students ir stīgu sauc vārdu, un vēl stīgu sauc māja. Es esmu gatavojas, lai pēc tam aizvērt cirtaini bikšturi, un norāda, ka vārds šī jaunā datu tips ir students. Citiem vārdiem sakot, izmantojot šo sintaksi es esmu pasludināja jaunu datu tipu mana , kas nepastāvēja pirms brīža, un iekšpusē šo datu tipu divu datu lauki vai datu locekļi, vienu sauc vārds, viens sauc house, kas abi ir tipa virknes. Pieņemsim tagad var izmantot šāda veida jo faktiskā programmā. In structs0.c, es esmu līdzīgi gotten pats sākās jau ar dažām tekstveidnes kodu, un es esmu tagad gatavojas izmantot šo informāciju tipa students, šādi. Es esmu pirmo reizi gatavojas pasludināt masīvs tipa students, es ņemšu zvaniet masīva studentiem - daudzskaitlī - un es ņemšu norādīt, ka tās lielums būs trīs, kas, paziņojums, ir vērtība konstante studentiem - visās galvaspilsētās - ka es esmu deklarēts šeit, agrāk failā. Pieņemsim tagad atkārtot pa šiem trim studenti, un atgādinās lietotājam par viņu vārdi un mājas. par int i saņemt 0, i ir mazāk nekā konstante, i + +. Un tagad iekšpusē ķermeņa šis cilpa, es esmu gatavojas izdrukāt kaut ko piemēram, studenta vārdu. Es esmu tam gatavojas faktiski iegūtu, ka studenta vārdu, norādot studentiem Bracket i. Citiem vārdiem sakot, es gribu i-students in masīvs sauc studenti, bet tagad Es vēlos saņemt tajā i-studenta vārdu, un tas ir jādara, es esmu gatavojas izmantot . operators, lai iegūtu at specifiska joma iekšpusē struktūrai. Tāpēc es norādīt studentiem kronšteins i. Nosaukumu izpaužas atgriezto vērtību GetString (). Tajā pašā laikā, es esmu gatavojas izdrukāt kaut kas līdzīgs, sakot studenta māju, un tagad es esmu gatavojas, lai precizētu ka i-studentiem māja jomā ir iespēja saņemt atgriezto vērtību vēl viens aicinājums GetString (). Tagad kaut ko darīt ar šīm trim studentu vārdi un mājas, kaut ko vienkāršu, piemēram, drukāšanas katrs veic teikumā. Int i get 0, atkal i ir mazāks nekā studenti, i + +, printf "% s ir% s. slīpsvītra n ", un tagad ļaujiet man spraudni vērtības šajās divās jomās, studentiem Bracket i. vārdu, komatu, studentiem Bracket i. māja, netālu paren, semikols. Un tagad man ir nepieciešams darīt vēl viena lieta. Apakšā šo failu, man ir nepieciešams, lai atbrīvotu atmiņu, kas tika piešķirta aizkulisēs ar GetSring (), kas Protams prasa malloc, lai piešķirt atmiņu stīgām lietotājs veidiem. Bet tas ir vienkārši. Int i iegūst: 0, i ir mazāks nekā studenti, i + +, un iekšpusē ķermeņa šis cilpas, es esmu tikai gatavojas nodrošina bezmaksas studentiem kronšteinu i. nosaukums, un bezmaksas studentu Bracket i. māja. Tagad mēs esam nepārprotami lieto trīs cilpas šajā programmā, ja tiešām es varēja tikai izmantot vienu, bet tas ir tikai demonstrēšanai dēļ, lai mēs varam norādīt trīs atsevišķos soļi, ko mēs īsti darām. Mēs vispirms iegūt nosaukumu un māju attiecībā uz katru no studentu, mēs tam izdrukāt nosaukumu un māju katra no trim studentiem, un tad mēs ejam, lai atbrīvotu atmiņu katra no studenti. Bet, protams, mēs varētu esam apvienot to vienā lielāks par cilpu. Pieņemsim tagad glābt, apkopot, un palaist šo programmu. padara structs 0. / structs 0, studenta nosaukums, pieņemsim sniegt Dāvidu, viņš dzīvo in Mather namā, studenta vārds, pieņemsim saka Lauren, viņa būs dzīvot Leverett Māja, studenta vārds, Rob, viņš dzīvo Kirkland House. Un tiešām, Dāvids ir Mather, Lauren ir Leverett, un Rob ir Kirkland.