2 00:00:00,000 --> 00:00:02,760 >> SIARADWR 1: Dewch i ysgrifennu rhaglen sy'n annog y defnyddiwr ar gyfer enwau a 3 00:00:02,760 --> 00:00:04,700 tai o dri myfyriwr. 4 00:00:04,700 --> 00:00:08,840 Nawr, er mwyn storio enwau a tai hynny gallem ddefnyddio, beth, chwe newidynnau. 5 00:00:08,840 --> 00:00:12,260 Tri llinynnau am enwau, ac un arall tri dannau am y tai, 6 00:00:12,260 --> 00:00:16,560 ond rydym eisoes yn gwybod y gallwn lanhau cod hwnnw trwy ddefnyddio araeau yn lle hynny, 7 00:00:16,560 --> 00:00:20,220 er enghraifft amrywiaeth o faint 3 ar gyfer y dri enw, ac amrywiaeth arall o 8 00:00:20,220 --> 00:00:22,110 maint 3 am y tai. 9 00:00:22,110 --> 00:00:25,870 Ond mae'n troi allan y gallwn glanhau hyn i fyny ymhellach o hyd, ac mewn gwirionedd yn cadw y rhai 10 00:00:25,870 --> 00:00:30,520 enwau a thai at ei gilydd, fel bod enw'r myfyriwr a'i dš 11 00:00:30,520 --> 00:00:34,940 wedi'u cynnwys rhywsut, felly i siarad, i mewn i'r un newidyn. 12 00:00:34,940 --> 00:00:39,095 >> I wneud hyn, fodd bynnag, mae angen i ddatgan ein math data hunain, mae ein math hunain yn C, 13 00:00:39,095 --> 00:00:42,660 nad yw awduron C oedd o reidrwydd yn meddwl o flynyddoedd yn ôl. 14 00:00:42,660 --> 00:00:45,630 Er mwyn gwneud hyn gallwn ddefnyddio'r gair allweddol typedef, ynghyd â'r 15 00:00:45,630 --> 00:00:47,200 strwythur gair allweddol eraill. 16 00:00:47,200 --> 00:00:48,160 Gadewch i gymryd golwg. 17 00:00:48,160 --> 00:00:50,650 Y tu mewn o structs.h, rydw i wedi eisoes gotten a ddechreuwyd gan 18 00:00:50,650 --> 00:00:52,560 gan gynnwys y llyfrgell CS50. 19 00:00:52,560 --> 00:00:57,640 Rydw i'n nesaf yn mynd i deipio typedef strwythur, ac yna Brace cyrliog. 20 00:00:57,640 --> 00:01:01,370 Tu mewn i'r strwythur, dw i'n mynd i nodi y bydd myfyriwr yn cael 21 00:01:01,370 --> 00:01:04,960 llinyn a elwir yn enw, ac un arall llinyn o'r enw tš. 22 00:01:04,960 --> 00:01:08,430 Rydw i'n mynd i wedyn yn cau fy braces cyrliog, ac yn nodi bod enw'r 23 00:01:08,430 --> 00:01:11,420 Bydd y math hwn o ddata newydd yn fyfyriwr. 24 00:01:11,420 --> 00:01:15,550 Mewn geiriau eraill, trwy cystrawen hwn rhaid i mi datgan math data newydd o fy mhen fy hun 25 00:01:15,550 --> 00:01:19,910 nad oedd yn bodoli funud yn ôl, a y tu mewn o'r math hwn o ddata yn ddau data 26 00:01:19,910 --> 00:01:24,270 gaeau neu aelodau data, un o'r enw enw, un tš o'r enw, y ddau ohonynt 27 00:01:24,270 --> 00:01:25,630 o fath llinyn. 28 00:01:25,630 --> 00:01:27,690 >> Gadewch i ni yn awr yn defnyddio'r math hwn mewn rhaglen go iawn. 29 00:01:27,690 --> 00:01:30,210 30 00:01:30,210 --> 00:01:34,090 Yn structs0.c, rwyf wedi gotten yn yr un modd fy hun wedi dechrau yn barod gyda rhai 31 00:01:34,090 --> 00:01:36,999 cod boilerplate, ac rwy'n yn awr mynd i ddefnyddio'r data hwn 32 00:01:36,999 --> 00:01:39,100 deipio myfyriwr, fel a ganlyn. 33 00:01:39,100 --> 00:01:42,450 Rydw i'n mynd gyntaf i ddatgan amrywiaeth o myfyriwr math, 'n annhymerus' 34 00:01:42,450 --> 00:01:43,920 ffoniwch y myfyrwyr amrywiaeth - 35 00:01:43,920 --> 00:01:44,630 lluosog - 36 00:01:44,630 --> 00:01:49,360 a byddaf yn nodi y bydd ei faint yn tri, sydd, rhybudd, yw gwerth 37 00:01:49,360 --> 00:01:50,880 y MYFYRWYR gyson - 38 00:01:50,880 --> 00:01:51,890 yn yr holl lythrennau - 39 00:01:51,890 --> 00:01:54,930 fy mod i wedi datgan i fyny yma, yn gynharach yn y ffeil. 40 00:01:54,930 --> 00:01:58,280 Gadewch i ni yn awr ailadrodd dros gyfnod o dair y rhai myfyrwyr, ac yn annog y defnyddiwr ar gyfer 41 00:01:58,280 --> 00:02:00,050 eu henwau a thai. 42 00:02:00,050 --> 00:02:05,422 >> ar gyfer int fi gael 0, fi yn llai na hynny gyson, i + +. 43 00:02:05,422 --> 00:02:08,600 Ac yn awr tu mewn i'r corff hyn ar gyfer dolen, dw i'n mynd i argraffu rhywbeth 44 00:02:08,600 --> 00:02:11,470 debyg i enw myfyriwr. 45 00:02:11,470 --> 00:02:14,890 Yna yr wyf i'n mynd i gael mewn gwirionedd fod Enw'r myfyriwr trwy nodi 46 00:02:14,890 --> 00:02:17,290 myfyrwyr braced i. 47 00:02:17,290 --> 00:02:21,550 Mewn geiriau arall yr wyf am i'r myfyriwr i-fed yn yr arae o'r enw myfyrwyr, ond erbyn hyn 48 00:02:21,550 --> 00:02:25,340 Rwyf am gael ar y i-fed myfyriwr enw, ac er mwyn gwneud hyn, yr wyf i'n mynd i ddefnyddio 49 00:02:25,340 --> 00:02:30,160 yr. gweithredwr, er mwyn cael ar tu mewn maes penodol o'r strwythur. 50 00:02:30,160 --> 00:02:37,100 Felly, yr wyf yn nodi myfyrwyr braced i. Enw cael y gwerth dychwelyd GetString (). 51 00:02:37,100 --> 00:02:40,310 Yn y cyfamser, yr wyf i'n mynd i'w hargraffu rhywbeth tebyg, gan ddweud myfyriwr 52 00:02:40,310 --> 00:02:45,410 tš, ac yn awr yr wyf i'n mynd i bennu bod y cae myfyrwyr ty i-fed 53 00:02:45,410 --> 00:02:49,480 Bydd cael y gwerth dychwelyd alwad arall i GetString (). 54 00:02:49,480 --> 00:02:52,350 >> Nawr, gadewch i ni wneud rhywbeth gyda thri hyn enwau a thai myfyrwyr, 55 00:02:52,350 --> 00:02:56,230 rhywbeth syml fel argraffu pob allan mewn brawddeg. 56 00:02:56,230 --> 00:03:07,580 ar gyfer int i gael 0, unwaith eto i yn llai na myfyrwyr, i + +, printf "% s yn% s. 57 00:03:07,580 --> 00:03:12,600 slaes n ", ac yn awr gadewch i mi plwg yn gwerthoedd y ddau faes, 58 00:03:12,600 --> 00:03:19,055 myfyrwyr braced i. enw, coma, myfyrwyr braced i. dš, yn agos 59 00:03:19,055 --> 00:03:21,290 paren, hanner colon. 60 00:03:21,290 --> 00:03:23,020 >> Ac yn awr mae angen i mi wneud un peth arall. 61 00:03:23,020 --> 00:03:26,600 Ar waelod y ffeil, mae angen i fi rhad ac am ddim y cof a ddyrannwyd 62 00:03:26,600 --> 00:03:30,290 y tu ôl i'r llenni gan GetSring (), sy'n wrth gwrs yn galw malloc, er mwyn 63 00:03:30,290 --> 00:03:32,500 dyrannu cof ar gyfer y tannau y mathau o ddefnyddwyr. 64 00:03:32,500 --> 00:03:35,720 Ond i hyn yn syml. 65 00:03:35,720 --> 00:03:42,610 ar gyfer int fi gael 0, fi yn llai na myfyrwyr, i + +, ac y tu mewn i'r corff 66 00:03:42,610 --> 00:03:48,670 hon ar gyfer dolen, rwy'n dim ond yn mynd i darparu myfyrwyr braced rhad ac am ddim i. enw, 67 00:03:48,670 --> 00:03:52,300 a myfyrwyr am ddim braced i. tš. 68 00:03:52,300 --> 00:03:55,620 >> Nawr, rydym wedi defnyddio glir tri ar gyfer dolenni yn y rhaglen hon, pan mewn gwirionedd yr wyf yn 69 00:03:55,620 --> 00:03:58,800 allai fod wedi defnyddio dim ond un, ond mae hyn yn dim ond er mwyn arddangos, fel bod 70 00:03:58,800 --> 00:04:02,850 gallwn nodi mewn tair gwahanol camau beth yn union rydym yn ei wneud. 71 00:04:02,850 --> 00:04:06,120 Rydym yn cael enw a thš gyntaf gyfer pob un o'r myfyrwyr, rydym yn yna 72 00:04:06,120 --> 00:04:08,900 argraffu enw a y tš am pob un o'r tri myfyriwr, a 73 00:04:08,900 --> 00:04:11,910 yna rydym yn mynd i ryddhau'r cof a ddefnyddir gan bob un o'r myfyrwyr. 74 00:04:11,910 --> 00:04:15,310 Ond yn sicr y gallai rydym wedi cyfuno hyn yn un fwy ar gyfer ddolen. 75 00:04:15,310 --> 00:04:18,650 >> Gadewch i ni yn awr yn arbed, crynhoi, a rhedeg y rhaglen hon. 76 00:04:18,650 --> 00:04:26,850 gwneud structs 0. / structs 0, myfyriwr enw, gadewch i ni ddarparu David, bydd yn byw 77 00:04:26,850 --> 00:04:31,580 yn Mather House, enw'r myfyriwr, gadewch i ni dweud Lauren, bydd hi'n byw yn Leverett 78 00:04:31,580 --> 00:04:36,590 Tš, enw'r myfyriwr, Rob, fe annhymerus ' yn byw yn Kirkland House. 79 00:04:36,590 --> 00:04:39,440 Ac yn wir, mae David yn Mather, Lauren yn Leverett, 80 00:04:39,440 --> 00:04:40,810 a Rob yn Kirkland. 81 00:04:40,810 --> 00:04:43,425