1 00:00:00,000 --> 00:00:02,670 >> [Teema muusika] 2 00:00:02,670 --> 00:00:11,834 3 00:00:11,834 --> 00:00:13,365 >> SPEAKER 1: Tere, kõigile. 4 00:00:13,365 --> 00:00:14,365 Tere tulemast tagasi lõik. 5 00:00:14,365 --> 00:00:15,700 6 00:00:15,700 --> 00:00:18,700 Lovely päev out-- mis on põhjus, miks ma olen kindel on vaid neli teist siin 7 00:00:18,700 --> 00:00:21,180 ja mitte meie tavaline pakk. 8 00:00:21,180 --> 00:00:22,670 Ma olen haige sel nädalavahetusel. 9 00:00:22,670 --> 00:00:24,294 Nii et mul ei ole Starbursti kutid. 10 00:00:24,294 --> 00:00:26,400 Ja ma köhima kohutavalt kogu selle. 11 00:00:26,400 --> 00:00:27,790 Nii lihtsalt kannavad minuga. 12 00:00:27,790 --> 00:00:30,624 Ma lähen tõesti proovida ja saada läbi selle esimese, 13 00:00:30,624 --> 00:00:32,290 aga enne on mul köha rünnak. 14 00:00:32,290 --> 00:00:33,410 15 00:00:33,410 --> 00:00:37,390 Aga lihtsalt olla lihtsalt mind vähe bit-- see on kõik, mida ma küsida. 16 00:00:37,390 --> 00:00:39,370 17 00:00:39,370 --> 00:00:44,289 >> Nii et meie tegevuskava today-- lihtsalt reminder-- oma viktoriin on järgmisel nädalal. 18 00:00:44,289 --> 00:00:46,830 Ma ütlesin, et see viimane nädal nii, et see ei kuulnud off valve. 19 00:00:46,830 --> 00:00:47,954 Nii et ma olen teile meelde uuesti. 20 00:00:47,954 --> 00:00:49,180 Järgmisel nädalal oma viktoriini. 21 00:00:49,180 --> 00:00:52,730 Selleks, järgmisel nädalal lõik on palju 22 00:00:52,730 --> 00:00:55,180 of-- ma püüan ja töötada mõned läbi. 23 00:00:55,180 --> 00:00:58,130 Nii et kui te poisid võiksid aidake mind välja saates mind 24 00:00:58,130 --> 00:01:00,990 asjad, et sa oled mugav koos, et olete mures, 25 00:01:00,990 --> 00:01:03,530 teemasid, mida sooviksite jaoks mulle katmiseks, et oleks tore. 26 00:01:03,530 --> 00:01:05,740 Ma võin proovida ja teha neile meie jagu järgmisel nädalal 27 00:01:05,740 --> 00:01:11,540 või saata teile lisamaterjali või prep et te ei pruugi saada mujal. 28 00:01:11,540 --> 00:01:12,150 >> Yeah! 29 00:01:12,150 --> 00:01:13,520 Üha rohkem inimesi on tulemas! 30 00:01:13,520 --> 00:01:17,320 Ma arvasin, ma tegin, et halvasti viimase nädalal, et keegi ei taha tagasi tulla? 31 00:01:17,320 --> 00:01:18,065 Ma kardan. 32 00:01:18,065 --> 00:01:18,892 33 00:01:18,892 --> 00:01:21,100 Nii teiste kolme asja et me läheme üle 34 00:01:21,100 --> 00:01:24,850 on ümbersuunamine, faili I / O ja siis viiteid ja dünaamiline mälu. 35 00:01:24,850 --> 00:01:29,160 Olen kindel, et sa oled kõik super põnevil pointers-- igaühe lemmik teema 36 00:01:29,160 --> 00:01:31,310 nii lihtne aru saada. 37 00:01:31,310 --> 00:01:33,130 Ma olen kindel, et te poisid kõik said aru, eks? 38 00:01:33,130 --> 00:01:39,510 >> Nii asjad kõigepealt, redirection-- see on põhimõtteliselt ainult viis 39 00:01:39,510 --> 00:01:42,920 kontrollida, kuidas te sisend asjad oma programmi 40 00:01:42,920 --> 00:01:44,606 kuidas sa väljund asju oma programmi. 41 00:01:44,606 --> 00:01:46,980 Peamisi viise, et te poisid on suheldes ta 42 00:01:46,980 --> 00:01:51,650 on lihtsalt läbi standard välja Teie Print Screen siin. 43 00:01:51,650 --> 00:01:55,940 Kuid on viise pipe-- nagu me näeme siin 44 00:01:55,940 --> 00:01:58,980 on üks meie words-- liiki toru, et teave 45 00:01:58,980 --> 00:02:02,850 või et andmed faili fail. 46 00:02:02,850 --> 00:02:05,820 See on lihtsalt erinevad viisid asju oma programmi 47 00:02:05,820 --> 00:02:10,681 ja läbi oma programmi, selle asemel, lihtsalt nende trükkimise sellele ekraanile 48 00:02:10,681 --> 00:02:12,430 või kirjutades asju käsurealt. 49 00:02:12,430 --> 00:02:13,760 50 00:02:13,760 --> 00:02:18,030 >> Nii et esimene on väike suurem kui katus. 51 00:02:18,030 --> 00:02:22,085 Nii output-- ta lihtsalt saadab väljundi faili asemel ekraani. 52 00:02:22,085 --> 00:02:23,620 53 00:02:23,620 --> 00:02:29,500 Nii et kui sul oli midagi, mis trükitud "Hello, world!" ekraanile, 54 00:02:29,500 --> 00:02:32,400 kui paned selle asemel et output.text, et 55 00:02:32,400 --> 00:02:35,220 loob see fail nimega output.text. 56 00:02:35,220 --> 00:02:38,550 Ja kui sa seda avada, siis see öelda "Hello, world!" sinna. 57 00:02:38,550 --> 00:02:41,410 See võib olla super kasulik kui teil on ton vigu 58 00:02:41,410 --> 00:02:43,430 tegelikult, nagu me näeme seda. 59 00:02:43,430 --> 00:02:46,810 Kui sa kaks kelku, siis see prindi veateateid. 60 00:02:46,810 --> 00:02:52,090 >> Nii et kui sul on probleem koostamine, see on palju vigu 61 00:02:52,090 --> 00:02:56,770 ja te saate takerdunud üritab sirvimiseks oma käsurida 62 00:02:56,770 --> 00:02:59,110 läbi kõik need, saate lihtsalt neid printida faili, 63 00:02:59,110 --> 00:03:02,130 avada see fail, nii et sul saad nende vahel liikuda lihtsam. 64 00:03:02,130 --> 00:03:05,160 Ma tegelikult kasutatakse, et palju, kui ma olin silumine 65 00:03:05,160 --> 00:03:07,970 minu 181 psets masina õppimist. 66 00:03:07,970 --> 00:03:10,000 Nii et see võib olla super kasulik hiljem. 67 00:03:10,000 --> 00:03:18,370 Samuti on kasulik, kui teil on olemas programm et äkki tekitab raamatukogu 68 00:03:18,370 --> 00:03:20,430 või tekitavad mõned komplekt stringe, ja sa 69 00:03:20,430 --> 00:03:22,846 pead suutma näha, et see tekitama neid õigesti. 70 00:03:22,846 --> 00:03:23,860 71 00:03:23,860 --> 00:03:25,160 See on viis, kuidas seda teha. 72 00:03:25,160 --> 00:03:28,280 >> Nii et kui sa neid printida faili, siis saab kergemini neid läbi, eks? 73 00:03:28,280 --> 00:03:30,930 Versus üritab kerima läbi oma käsurida. 74 00:03:30,930 --> 00:03:32,740 75 00:03:32,740 --> 00:03:35,820 Ja siis üks asi on tähele panna on, et vaid suurem 76 00:03:35,820 --> 00:03:40,090 kui katus, kui te kirjutate faili, mis on juba exists-- 77 00:03:40,090 --> 00:03:44,990 nii nagu siis, kui me jooksime see esimene aega, me paneme selle output.text, 78 00:03:44,990 --> 00:03:49,970 ja siis me pidime teise programmi et trükitud seda programmi kaks 79 00:03:49,970 --> 00:03:54,250 ja tegi rohkem kui output.text, ta kirjutab selle-- nii 80 00:03:54,250 --> 00:03:56,715 kirjutada, mis oli kunagi et faili alustada. 81 00:03:56,715 --> 00:03:57,720 82 00:03:57,720 --> 00:04:00,750 >> Nii et kui sa tahad lisada faili, nagu me näeme siin, 83 00:04:00,750 --> 00:04:04,779 sa lihtsalt teha kaks üle märke. 84 00:04:04,779 --> 00:04:05,820 Ja see lisab ta. 85 00:04:05,820 --> 00:04:06,750 Ta ei kirjuta seda. 86 00:04:06,750 --> 00:04:09,770 Nii et kui teil on vaja kasutada mitut programmide ja omamoodi hoida 87 00:04:09,770 --> 00:04:13,170 lugu, mida kõik need on tagastamise teile faili 88 00:04:13,170 --> 00:04:14,190 see on viis, kuidas seda teha. 89 00:04:14,190 --> 00:04:17,231 Kui sa ei hooli, mida teie faili ja see lasti üle kirjutada, 90 00:04:17,231 --> 00:04:19,204 võid lihtsalt kasutada ühe üle. 91 00:04:19,204 --> 00:04:20,600 Kas on mõtet kõigile? 92 00:04:20,600 --> 00:04:23,205 93 00:04:23,205 --> 00:04:31,140 >> Sihtrühm: Like dot kärpida hello suurem kui väljund dot tekst, nagu kaks korda, 94 00:04:31,140 --> 00:04:34,030 see lihtsalt näitab ainult väljundis dot teksti teise AEG_ 95 00:04:34,030 --> 00:04:34,810 >> SPEAKER 1: Õigus. 96 00:04:34,810 --> 00:04:40,450 Seega oleks põhimõtteliselt ainult täiesti kirjutada, mis oli seal alustada. 97 00:04:40,450 --> 00:04:44,260 Kui see fail siin, output.text juba 98 00:04:44,260 --> 00:04:48,230 olemas, põhimõtteliselt mida iganes sa helistada et taas ühe suurema 99 00:04:48,230 --> 00:04:51,920 kui sa ei saa lihtsalt mõelda nagu nagu see asendatakse faili. 100 00:04:51,920 --> 00:04:54,824 Like, kui sa oled säästes Word dokument ja sa salvestada nii, 101 00:04:54,824 --> 00:04:57,365 ja hoiate sama nime, ja see täiesti kirjutab it-- 102 00:04:57,365 --> 00:04:58,680 see on sama asi. 103 00:04:58,680 --> 00:05:00,380 104 00:05:00,380 --> 00:05:03,550 Igaüks on mingeid küsimusi lihtsalt kirjutamine faili? 105 00:05:03,550 --> 00:05:05,051 106 00:05:05,051 --> 00:05:05,550 Awesome. 107 00:05:05,550 --> 00:05:11,440 >> Nii et ilmselt, kui sa vastupidine nool suunas, seda saab teha panus. 108 00:05:11,440 --> 00:05:13,090 109 00:05:13,090 --> 00:05:19,960 Nii et kui te poisid olid nagu Caesar või VISIONEER 110 00:05:19,960 --> 00:05:23,195 ja siis tuli sisend midagi, teil oli käsurea argument 111 00:05:23,195 --> 00:05:24,960 et tegelikult input ta. 112 00:05:24,960 --> 00:05:27,410 See on veel üks võimalus seda teha. 113 00:05:27,410 --> 00:05:30,520 Nii et selle asemel, et oodata jaoks käsureale 114 00:05:30,520 --> 00:05:33,800 nagu siis, kui sa palusid oma postitust Caesar või VISIONEER, 115 00:05:33,800 --> 00:05:36,490 kui teil on olnud tekstifaili mis oli sõnum 116 00:05:36,490 --> 00:05:38,280 võid lihtsalt kirjuta see et. 117 00:05:38,280 --> 00:05:44,930 >> Nii et kui see oli nagu täpp kärpida Caesar 3 alla nool sisestada teksti, mis 118 00:05:44,930 --> 00:05:47,240 on oma sõnum, et läheks just fine. 119 00:05:47,240 --> 00:05:51,310 120 00:05:51,310 --> 00:05:54,020 Kui teie Caesar programm tegelikult küsitakse kasutajalt, 121 00:05:54,020 --> 00:05:57,360 see on juba see, sest tipitud see fail. 122 00:05:57,360 --> 00:05:58,830 See on lihtsalt veel üks viis. 123 00:05:58,830 --> 00:06:02,445 Just vastupidine output-- lihtsalt sisend oma andmed. 124 00:06:02,445 --> 00:06:04,570 125 00:06:04,570 --> 00:06:06,680 >> Ja siis viimane on toru. 126 00:06:06,680 --> 00:06:07,780 Nii et see on päris lahe. 127 00:06:07,780 --> 00:06:09,890 Sest see võimaldab teil võtab toodangu üks 128 00:06:09,890 --> 00:06:13,695 programmi ja pane see sisend teise programmi. 129 00:06:13,695 --> 00:06:15,250 130 00:06:15,250 --> 00:06:18,630 Ma ei tea, kas keegi teist mängitakse dešifreerida 131 00:06:18,630 --> 00:06:20,590 et CS50 võib olla teile, kuid see oleks 132 00:06:20,590 --> 00:06:27,380 võimaldab teil võtta mõned proovi esitada, kirjuta see oma krüpteerimist, 133 00:06:27,380 --> 00:06:30,350 ja siis sealt kirjutad et oma dekodeerimiseks 134 00:06:30,350 --> 00:06:32,470 veendumaks, et see osutus sama. 135 00:06:32,470 --> 00:06:34,050 Nii et see on nagu kolm-viis silmus. 136 00:06:34,050 --> 00:06:38,400 137 00:06:38,400 --> 00:06:39,423 Mine seda. 138 00:06:39,423 --> 00:06:41,785 >> Sihtrühm: Kui programm on mitu sisendit, 139 00:06:41,785 --> 00:06:47,646 kas on võimalik öelda seda, mida sisend kasutada tekstifaili või väljundi? 140 00:06:47,646 --> 00:06:49,325 >> SPEAKER 1: See on mitu sisendit. 141 00:06:49,325 --> 00:06:52,190 142 00:06:52,190 --> 00:07:00,430 Ükskõik faili oma input-- kui see on küsib sisendi esimest korda, see on 143 00:07:00,430 --> 00:07:03,240 kavatse endale, ma arvan, et see on läheb toru kogu toimikule. 144 00:07:03,240 --> 00:07:03,979 145 00:07:03,979 --> 00:07:07,145 Nii et kui teil on mitu sisendit, sa oled saab olema torustiku mitu faili. 146 00:07:07,145 --> 00:07:08,190 147 00:07:08,190 --> 00:07:12,390 Nii et kui sa palud sõnumeid kolm korda oma koodi, 148 00:07:12,390 --> 00:07:15,230 sa lähed tuleb panna kolmes erinevas faile. 149 00:07:15,230 --> 00:07:15,980 Ja see läheb hulluks. 150 00:07:15,980 --> 00:07:18,188 Ja sa ei pea muretsema, et just nüüd. 151 00:07:18,188 --> 00:07:19,150 Aga see idee. 152 00:07:19,150 --> 00:07:20,680 153 00:07:20,680 --> 00:07:26,822 >> Nii et jah, toru on lihtsalt väljund ühe Programm kasutab sisendiks teistele. 154 00:07:26,822 --> 00:07:27,665 Igaüks hea on? 155 00:07:27,665 --> 00:07:28,565 156 00:07:28,565 --> 00:07:29,065 Külm. 157 00:07:29,065 --> 00:07:30,170 158 00:07:30,170 --> 00:07:30,932 OK. 159 00:07:30,932 --> 00:07:32,890 Sa ilmselt ei ole teha liiga palju seda. 160 00:07:32,890 --> 00:07:35,670 Aga sa peaksid aru saama kuidas saab seda kasutada. 161 00:07:35,670 --> 00:07:38,910 Ja seal on mõned juhtumid, võiksite seda kasutada. 162 00:07:38,910 --> 00:07:44,590 >> Nii faili I / O- Ma tean, mida sa oled saying-- oleme harjunud lugemine 163 00:07:44,590 --> 00:07:50,500 ja kirjutame meie ekraanil seal, mis on standardiks ja standard välja. 164 00:07:50,500 --> 00:07:54,370 Ja see, mida kutid on olnud teeme algusest klassi siin. 165 00:07:54,370 --> 00:07:58,220 Aga sa võid ka lugeda ja kirjutada faile mis on kõik faili I / O- nii faili sisend, 166 00:07:58,220 --> 00:07:59,850 väljund on kõik see seisab. 167 00:07:59,850 --> 00:08:00,930 168 00:08:00,930 --> 00:08:04,360 Nii et see põhimõtteliselt tähendab, et saate salvestada oma andmed nüüd. 169 00:08:04,360 --> 00:08:08,460 >> Kui sa lihtsalt printida kuni ekraan, see on põhimõtteliselt läinud, eks? 170 00:08:08,460 --> 00:08:12,507 Niipea, kui te teete "Tere maailm "ja run" Hello world " 171 00:08:12,507 --> 00:08:14,090 see prindib "Hello world" ekraanile. 172 00:08:14,090 --> 00:08:16,370 Aga sa ei saa tõesti midagi ta sealt. 173 00:08:16,370 --> 00:08:18,950 Kui teil salvestada tekstifaili fail, siis äkki 174 00:08:18,950 --> 00:08:22,789 teil on andmeid, et sa oled lubatud manipuleerida või panna see fail 175 00:08:22,789 --> 00:08:24,080 või panna see programm hiljem. 176 00:08:24,080 --> 00:08:26,370 177 00:08:26,370 --> 00:08:29,290 Üheks põhjuseks miks me seda teeme, on lihtsalt 178 00:08:29,290 --> 00:08:31,560 kui viis andmete salvestamiseks hilisemaks kasutamiseks. 179 00:08:31,560 --> 00:08:34,790 180 00:08:34,790 --> 00:08:37,279 >> Mul on paar sammu siia lihtsalt jalgsi läbi standard 181 00:08:37,279 --> 00:08:39,450 I / O. Esimeses etapis, siis on vaja luua viide 182 00:08:39,450 --> 00:08:43,480 failile kõik mütsid FAIL star faili. 183 00:08:43,480 --> 00:08:45,740 Nii et loob kursor faili. 184 00:08:45,740 --> 00:08:48,080 185 00:08:48,080 --> 00:08:49,650 Niisiis soovite avada. 186 00:08:49,650 --> 00:08:52,940 Ja sa ütled, sõna otseses mõttes, lihtsalt faili võrdub fopen. 187 00:08:52,940 --> 00:08:57,400 Ja see läheb tagasi kursor faili lihtsalt avada. 188 00:08:57,400 --> 00:08:59,610 189 00:08:59,610 --> 00:09:01,460 Ma nägin paar teist Poisid tööajal. 190 00:09:01,460 --> 00:09:07,400 >> Aga üks asi, on mäletada viiteid 191 00:09:07,400 --> 00:09:10,409 võivad olla mõned aadress või null, eks? 192 00:09:10,409 --> 00:09:12,700 Kui me kunagi juhtum, kus midagi saab tagasi null, 193 00:09:12,700 --> 00:09:14,990 Mida me peame tegema enne kui me kunagi seda kasutada? 194 00:09:14,990 --> 00:09:16,220 195 00:09:16,220 --> 00:09:19,000 Meil on vaja kontrollida, kas see on null või mitte, eks? 196 00:09:19,000 --> 00:09:23,600 Kuna mõned teist võis küsimus kus iganes objekti 197 00:09:23,600 --> 00:09:26,110 oli tagastata Breakout oli null. 198 00:09:26,110 --> 00:09:28,170 Üritasid teostada mõne funktsiooni ta. 199 00:09:28,170 --> 00:09:29,770 Ja arvuti saidi heita. 200 00:09:29,770 --> 00:09:30,725 Õigus? 201 00:09:30,725 --> 00:09:33,640 Vean kihla, et paari sa võis selles küsimuses. 202 00:09:33,640 --> 00:09:38,890 >> Nii fopen, fopen on kas tagasi kursor faili 203 00:09:38,890 --> 00:09:41,200 või kui midagi läheb valesti, see läheb tagasi null. 204 00:09:41,200 --> 00:09:45,980 Nii et teil on alati vaja vaadata et ta ei ole tagastatud null 205 00:09:45,980 --> 00:09:47,880 enne kui proovite midagi muud. 206 00:09:47,880 --> 00:09:49,110 207 00:09:49,110 --> 00:09:51,974 See on nagu standard paradigma et sa lähed vaja siin. 208 00:09:51,974 --> 00:09:54,390 Kui seal kunagi juhus, et midagi võib naasta null, 209 00:09:54,390 --> 00:09:56,590 veenduge, et see ei enne jätkamist. 210 00:09:56,590 --> 00:09:58,911 Muidu sa lähed saada armas saidi vigu. 211 00:09:58,911 --> 00:10:00,410 Ja keegi meeldib tegeleda need. 212 00:10:00,410 --> 00:10:03,180 213 00:10:03,180 --> 00:10:06,410 >> Nii nagu me näeme siin, esimene argument on lihtsalt faili asukoht. 214 00:10:06,410 --> 00:10:09,380 Kui seda faili ei ole olemas, see saab luua, et fail. 215 00:10:09,380 --> 00:10:10,713 Ja see on lihtsalt saab olema tühi. 216 00:10:10,713 --> 00:10:10,789 217 00:10:10,789 --> 00:10:13,080 Ja siis teine ​​argument on režiim, mis sa tahad. 218 00:10:13,080 --> 00:10:14,610 Kas me tahame, et lugeda selle faili? 219 00:10:14,610 --> 00:10:15,560 Kas sa tahad kirjutada seda? 220 00:10:15,560 --> 00:10:16,476 Kas sa tahad lisada? 221 00:10:16,476 --> 00:10:17,600 222 00:10:17,600 --> 00:10:20,670 Nii et tegelikult ma lihtsalt said-- Kui faili ei ole olemas 223 00:10:20,670 --> 00:10:23,400 ja sa üritad lugeda see, et see saab visata viga. 224 00:10:23,400 --> 00:10:26,890 Kui faili name-- meeldib kui file.text veel ei ole 225 00:10:26,890 --> 00:10:29,250 ja sa tahad kirjutada ta loob see 226 00:10:29,250 --> 00:10:33,110 tühi fail nimega file.text teile. 227 00:10:33,110 --> 00:10:36,612 Ja kui sa tahad lisada, mida peaks tegema sama asja. 228 00:10:36,612 --> 00:10:38,081 Kas on mõtet? 229 00:10:38,081 --> 00:10:40,580 Kui sa üritad lugeda faili, mis ei ole veel olemas, 230 00:10:40,580 --> 00:10:41,590 see saab visata viga. 231 00:10:41,590 --> 00:10:44,340 Vastasel juhul loob faili sulle seda, mida sa tahad seda. 232 00:10:44,340 --> 00:10:45,970 233 00:10:45,970 --> 00:10:46,470 Külm. 234 00:10:46,470 --> 00:10:47,510 235 00:10:47,510 --> 00:10:48,880 Nüüd saame lugeda faili. 236 00:10:48,880 --> 00:10:52,570 Ja see on lihtsalt selline läheb läbi erinevate funktsioonide 237 00:10:52,570 --> 00:10:58,980 et meil on faili I / O. See tahe vaja selle nädala pset, 238 00:10:58,980 --> 00:11:00,505 kui ma õigesti mäletan. 239 00:11:00,505 --> 00:11:02,880 Jah, täiesti saab vajalik selle nädala pset. 240 00:11:02,880 --> 00:11:04,260 241 00:11:04,260 --> 00:11:07,010 Nii fgetc naaseb järgmise sümboli. 242 00:11:07,010 --> 00:11:08,350 243 00:11:08,350 --> 00:11:10,300 fgets lihtsalt tagastab rida teksti. 244 00:11:10,300 --> 00:11:11,790 245 00:11:11,790 --> 00:11:14,610 Ta naaseb midagi kuni uus rida ja see murdub. 246 00:11:14,610 --> 00:11:15,950 247 00:11:15,950 --> 00:11:18,700 Nii fread loeb teatud baitide arv ja kohad neid 248 00:11:18,700 --> 00:11:20,700 massiivi, mis on midagi, mida võiks 249 00:11:20,700 --> 00:11:25,485 tahad teha uuesti size-- võib olla kasulik. 250 00:11:25,485 --> 00:11:26,550 251 00:11:26,550 --> 00:11:29,290 >> Mitu inimest lugenud pset spec, muide? 252 00:11:29,290 --> 00:11:30,980 253 00:11:30,980 --> 00:11:32,261 OK. 254 00:11:32,261 --> 00:11:32,760 [Kuuldamatu] 255 00:11:32,760 --> 00:11:35,380 256 00:11:35,380 --> 00:11:36,580 >> SPEAKER 1: OK. 257 00:11:36,580 --> 00:11:37,530 Hea küll. 258 00:11:37,530 --> 00:11:41,940 Kindlasti lugege selle-- see on lõbus pset. 259 00:11:41,940 --> 00:11:51,320 Sa saad taastada kustutatud mälu card-- tõesti põnev, kui see töötab. 260 00:11:51,320 --> 00:11:54,100 Aga kindlasti lugemist alustada seda. 261 00:11:54,100 --> 00:11:56,280 Tule räägi minuga, kui teil on küsimusi selle kohta. 262 00:11:56,280 --> 00:11:59,290 >> OK, nii nagu ma ütlesin, fread loeb teatud baitide arvu. 263 00:11:59,290 --> 00:12:01,340 264 00:12:01,340 --> 00:12:03,590 See on mingi teatud number et sa lähed, et seada. 265 00:12:03,590 --> 00:12:05,990 266 00:12:05,990 --> 00:12:08,260 Ja siis fseek lihtsalt liigub teatud asendis. 267 00:12:08,260 --> 00:12:11,150 Nii et äkki sa ei hooli umbes järgmise 10 baiti. 268 00:12:11,150 --> 00:12:12,880 Sa tahad liikuda edasi. 269 00:12:12,880 --> 00:12:14,030 Sa ei hooli neist. 270 00:12:14,030 --> 00:12:16,280 Te soovite lugeda algusega kell bait 11. 271 00:12:16,280 --> 00:12:18,252 fseek võimaldab teil seda teha. 272 00:12:18,252 --> 00:12:20,710 Nii et see võimaldab sul olla valikuline kohta, mida sa loed. 273 00:12:20,710 --> 00:12:25,880 Kuna fgetc, fgets ja fread loetuks alates teatud kohas failis. 274 00:12:25,880 --> 00:12:27,260 275 00:12:27,260 --> 00:12:35,090 >> Viis mõelda on see, kui see Meie fail, kui te esimest korda avada, 276 00:12:35,090 --> 00:12:41,140 sa pead seda seisukohta faili mis algab alguses. 277 00:12:41,140 --> 00:12:45,040 Iga kord, kui helistate fgetc, fgetf või fread, 278 00:12:45,040 --> 00:12:48,875 see saab alata Selles asendis marker. 279 00:12:48,875 --> 00:12:51,340 280 00:12:51,340 --> 00:12:55,245 Oletame, et sa tahad, et lugeda see patakas mälu siin. 281 00:12:55,245 --> 00:12:56,300 282 00:12:56,300 --> 00:12:57,960 Sa ei saa lihtsalt helistada. 283 00:12:57,960 --> 00:13:02,430 Sa pead otsima siin ja siis loe sealt 284 00:13:02,430 --> 00:13:06,540 või lugeda, saab või GETC, sõltuvalt sellest, mida sa tahad. 285 00:13:06,540 --> 00:13:09,310 Nii püüab lihtsalt võimaldab teil jätke osi mälus. 286 00:13:09,310 --> 00:13:11,590 Ja see on ainult kuidas sa ei jäta asju 287 00:13:11,590 --> 00:13:14,012 ilma nende lugemine oma puhvris. 288 00:13:14,012 --> 00:13:15,470 Kas on mõtet kõigile? 289 00:13:15,470 --> 00:13:21,110 290 00:13:21,110 --> 00:13:24,780 >> Loomulikult, seal on palju paralleelselt siin-- 291 00:13:24,780 --> 00:13:27,780 Meie toodangu või sisend ümbersuunamine, olete lugema ja kirjutama. 292 00:13:27,780 --> 00:13:31,800 Nii fputc lihtsalt kirjutab iseloomu arvesse fail. 293 00:13:31,800 --> 00:13:33,655 fputs kirjutab joon. 294 00:13:33,655 --> 00:13:35,030 295 00:13:35,030 --> 00:13:37,420 Fprintf prindib vormindatud väljund. 296 00:13:37,420 --> 00:13:41,190 Nii et kui teil on sakid, või ruumi või tühi-tähi. 297 00:13:41,190 --> 00:13:44,180 Ja siis fwrite kirjutab mõned baidimassiiv faili. 298 00:13:44,180 --> 00:13:48,860 Seega on see samamoodi fwrite ja fread on analoogsed 299 00:13:48,860 --> 00:13:57,550 opposites-- fgets, fputs ja siis fputc ja fgetc-- palju 300 00:13:57,550 --> 00:14:00,710 hull, kiire asju. 301 00:14:00,710 --> 00:14:05,300 >> Just sellist hoida seda handy-- sul on eri aegadel 302 00:14:05,300 --> 00:14:08,680 kus äkki sa lihtsalt tahad üks märk korraga. 303 00:14:08,680 --> 00:14:09,890 Ehk soovid terve rida. 304 00:14:09,890 --> 00:14:14,320 Oma sõnastik pset-- mis on kahes psets, 305 00:14:14,320 --> 00:14:19,690 Ma usun, et me anname teile kogu sõnaraamatuga teksti formaat 306 00:14:19,690 --> 00:14:22,252 mis on iga sõna joonega eraldatud. 307 00:14:22,252 --> 00:14:24,210 Nii et kui sa tahad, et lugeda üks sõna korraga, 308 00:14:24,210 --> 00:14:31,769 milline võiks te kasutate, kui sa loed ja nad kõik on eraldatud uute liinide 309 00:14:31,769 --> 00:14:33,310 ja tahad lihtsalt üks sõna korraga? 310 00:14:33,310 --> 00:14:35,320 311 00:14:35,320 --> 00:14:36,040 >> Sihtrühm: fgets 312 00:14:36,040 --> 00:14:36,748 >> SPEAKER 1: Õigus. 313 00:14:36,748 --> 00:14:39,960 Fgets-- sest mis tagastab kõik, mis on ühel real. 314 00:14:39,960 --> 00:14:42,750 Ja kui iga sõna on oma oma rida, saame kasutada fgets. 315 00:14:42,750 --> 00:14:44,511 316 00:14:44,511 --> 00:14:45,010 Külm. 317 00:14:45,010 --> 00:14:47,290 Kas on mõtet, kõigile? 318 00:14:47,290 --> 00:14:48,020 Cool? 319 00:14:48,020 --> 00:14:50,020 Jah, me ei kavatse saada lõbus osa koos suunanäitajaks 320 00:14:50,020 --> 00:14:51,728 väga kiiresti, kui sa saada teha mõned math. 321 00:14:51,728 --> 00:14:52,776 Ja see saab olema suur. 322 00:14:52,776 --> 00:14:55,690 323 00:14:55,690 --> 00:14:57,740 >> Viimati step-- sulgeda fail. 324 00:14:57,740 --> 00:15:01,090 Nii palju asju siin üks meie paradigmad 325 00:15:01,090 --> 00:15:03,550 on, kui ta saab tagasi null, kontrollige null. 326 00:15:03,550 --> 00:15:06,160 Kui avate midagi, Sa parem sulgeda. 327 00:15:06,160 --> 00:15:10,419 OK, nii et sa ei teinud, kuni olete teha, kui olete sulgenud. 328 00:15:10,419 --> 00:15:12,585 Selline nagu see ei ole enam kuni rasv on daam laulab. 329 00:15:12,585 --> 00:15:14,130 See on nagu sulgedes oma faili. 330 00:15:14,130 --> 00:15:16,860 331 00:15:16,860 --> 00:15:19,190 Nagu ta ütleb siin, just korrata, alati 332 00:15:19,190 --> 00:15:21,750 avage fail enne oled lugemist või kirjutamist. 333 00:15:21,750 --> 00:15:24,450 Ja alati sulgeda, kui olete avanud seda. 334 00:15:24,450 --> 00:15:25,460 Kõik korras? 335 00:15:25,460 --> 00:15:25,960 Külm. 336 00:15:25,960 --> 00:15:26,835 >> Nii et siin on üks näide. 337 00:15:26,835 --> 00:15:29,250 338 00:15:29,250 --> 00:15:34,330 Nii tiny-- Ma ei tea, kas te poisid on näha, et väga hästi. 339 00:15:34,330 --> 00:15:36,805 Kui me vaid võiks suurendada heledust kuidagi. 340 00:15:36,805 --> 00:15:40,430 341 00:15:40,430 --> 00:15:45,030 Las ma tegelikult seda teha, kui suudan. 342 00:15:45,030 --> 00:15:48,020 343 00:15:48,020 --> 00:15:51,470 OK, kutid ei saa tõesti näha, et üldse saab? 344 00:15:51,470 --> 00:15:52,905 OK, me ei kavatse seda teha, siis. 345 00:15:52,905 --> 00:16:35,094 346 00:16:35,094 --> 00:16:35,594 [Kuuldamatu] 347 00:16:35,594 --> 00:16:56,670 348 00:16:56,670 --> 00:16:58,605 >> Ma eeldan, et see on palju parem vaadata. 349 00:16:58,605 --> 00:17:17,330 350 00:17:17,330 --> 00:17:19,455 Kas keegi näha, kus mu hiir läks on küsimus? 351 00:17:19,455 --> 00:17:22,837 Ah, seal see on-- mis võitleb! 352 00:17:22,837 --> 00:17:48,910 353 00:17:48,910 --> 00:17:49,520 >> OK. 354 00:17:49,520 --> 00:17:53,845 Põhimõtteliselt kutid peaks olema lahke idee, mida see teeb. 355 00:17:53,845 --> 00:17:56,740 356 00:17:56,740 --> 00:17:57,600 See ei ole täiuslik. 357 00:17:57,600 --> 00:17:58,851 358 00:17:58,851 --> 00:18:02,425 Aga ma pigem seletada kui kulutada rohkem aega püüdnud seda vormindada korralikult. 359 00:18:02,425 --> 00:18:03,610 360 00:18:03,610 --> 00:18:07,280 Põhimõtteliselt, kui sa näed siin, alustame fail lahti. 361 00:18:07,280 --> 00:18:09,620 Ja meil on mõned andmebaasi faili, et me oleme 362 00:18:09,620 --> 00:18:12,300 avamine, mis ütleb, et see on meie õpilastele. 363 00:18:12,300 --> 00:18:14,020 Ja me ei kavatse kirjutada seda. 364 00:18:14,020 --> 00:18:15,060 365 00:18:15,060 --> 00:18:17,720 Nii et loomulikult, tagasi null. 366 00:18:17,720 --> 00:18:19,650 Seega peame kontrollima null. 367 00:18:19,650 --> 00:18:22,930 Ja siis kui see ei ole null, me läheme läbi. 368 00:18:22,930 --> 00:18:25,660 Ja nagu näete, me oleme silmukoiminen siit läbi. 369 00:18:25,660 --> 00:18:26,960 On õpilastele. 370 00:18:26,960 --> 00:18:30,520 Õpilased on hash defineeritud kui kolm. 371 00:18:30,520 --> 00:18:34,060 Ja mida me teeme on meil printimise faili, eks? 372 00:18:34,060 --> 00:18:36,975 Mida me printida meie faili? 373 00:18:36,975 --> 00:18:47,040 374 00:18:47,040 --> 00:18:48,906 >> Sihtrühm: hinded mis on massiivi? 375 00:18:48,906 --> 00:18:49,680 >> SPEAKER 1: Jah. 376 00:18:49,680 --> 00:18:50,980 Skoori, mis on array-- täpselt. 377 00:18:50,980 --> 00:18:53,050 Nii avame andmebaasi faili, mis 378 00:18:53,050 --> 00:18:56,040 Eeldan, on mingisugune palgaastmed andmebaasis. 379 00:18:56,040 --> 00:19:01,100 Ja me lihtsalt väljatrükk hinded iga õpilane, et fail. 380 00:19:01,100 --> 00:19:02,140 Cool? 381 00:19:02,140 --> 00:19:02,640 Väga hea. 382 00:19:02,640 --> 00:19:03,811 383 00:19:03,811 --> 00:19:04,310 Awesome. 384 00:19:04,310 --> 00:19:05,100 OK. 385 00:19:05,100 --> 00:19:06,950 Lähme tagasi mina-- 386 00:19:06,950 --> 00:19:08,646 >> Sihtrühm: Mul on kiire küsimus. 387 00:19:08,646 --> 00:19:11,570 Kas printf mitte silmus? 388 00:19:11,570 --> 00:19:12,870 See on lihtsalt selles, kui loop? 389 00:19:12,870 --> 00:19:14,370 SPEAKER 1: Ei, see on silmus. 390 00:19:14,370 --> 00:19:16,150 391 00:19:16,150 --> 00:19:18,810 Ma ei näe oma hiirt väga hästi siin. 392 00:19:18,810 --> 00:19:21,359 Nii et ma olen hädas formaat, mis korralikult. 393 00:19:21,359 --> 00:19:22,525 See tuleks keskjooks välja läinud. 394 00:19:22,525 --> 00:19:23,610 395 00:19:23,610 --> 00:19:25,130 See peaks olema siin. 396 00:19:25,130 --> 00:19:26,605 See on see, mis on teie jaoks silmus. 397 00:19:26,605 --> 00:20:10,680 398 00:20:10,680 --> 00:20:11,180 Ei. 399 00:20:11,180 --> 00:20:12,160 Nüüd on ilus. 400 00:20:12,160 --> 00:20:16,720 Nii see on, kuidas see peaks olema-- välja eest, et viimane sulg, et ma rahuldamata. 401 00:20:16,720 --> 00:20:17,220 OK. 402 00:20:17,220 --> 00:20:19,491 Kas on mõtet kõigile? 403 00:20:19,491 --> 00:20:19,990 OK. 404 00:20:19,990 --> 00:20:23,750 Me läheme edasi liikuda et järgmine asi then-- 405 00:20:23,750 --> 00:20:26,180 mis, tegelikult, sa lähed vaja näha koodi. 406 00:20:26,180 --> 00:20:28,370 Nii et ma olen lihtsalt läheb kopeerida selle üle just nüüd. 407 00:20:28,370 --> 00:20:31,500 408 00:20:31,500 --> 00:20:32,000 OK. 409 00:20:32,000 --> 00:20:35,110 Nii et ma lähen näitan kutid on see kood. 410 00:20:35,110 --> 00:20:38,240 Ja ma tahan, et sa proovida ja joonis saada, mis see peaks tegema. 411 00:20:38,240 --> 00:20:49,740 412 00:20:49,740 --> 00:20:52,480 >> Nii et antud selle-- võta minut või nii. 413 00:20:52,480 --> 00:20:54,440 Proovige ja nuputada, mis toimub siin. 414 00:20:54,440 --> 00:21:58,840 415 00:21:58,840 --> 00:21:59,570 >> Kõik ideed? 416 00:21:59,570 --> 00:22:08,180 417 00:22:08,180 --> 00:22:12,470 >> Me teame, et meil on vähemalt kaks argumente käsurida, eks? 418 00:22:12,470 --> 00:22:16,270 Eeldan, millest üks saab olema et [kuuldamatu] Meie programm on 419 00:22:16,270 --> 00:22:17,530 ja siis midagi muud. 420 00:22:17,530 --> 00:22:19,980 Sest kui [kuuldamatu] on vähem kui kaks, siis kisa neid. 421 00:22:19,980 --> 00:22:21,140 Õigus? 422 00:22:21,140 --> 00:22:25,300 Ja kasutamise, tundub see saab olema mingisugune fail. 423 00:22:25,300 --> 00:22:26,260 Me kõik oleme nõus, et see on? 424 00:22:26,260 --> 00:22:29,110 425 00:22:29,110 --> 00:22:31,570 Nii et nüüd, milline on loop teed? 426 00:22:31,570 --> 00:22:32,570 Mis läheb läbi? 427 00:22:32,570 --> 00:22:35,000 428 00:22:35,000 --> 00:22:36,449 >> Sihtrühm: Kõik failid. 429 00:22:36,449 --> 00:22:37,240 SPEAKER 1: Täpselt. 430 00:22:37,240 --> 00:22:39,650 See läheb läbi kõik failid, mis me oleme sisend olemas. 431 00:22:39,650 --> 00:22:40,720 432 00:22:40,720 --> 00:22:46,040 Nii et iga fail, see on avades mõned string seal. 433 00:22:46,040 --> 00:22:47,560 See avab selle faili. 434 00:22:47,560 --> 00:22:48,060 Õigus? 435 00:22:48,060 --> 00:22:49,140 436 00:22:49,140 --> 00:22:52,380 Ja see lugemine see. 437 00:22:52,380 --> 00:22:53,420 438 00:22:53,420 --> 00:22:55,540 Muidugi, kontrollides, kas see on null. 439 00:22:55,540 --> 00:22:57,220 Ja siis on see trükkimiseks. 440 00:22:57,220 --> 00:23:01,460 Kui see on null, see on lihtsalt meile et see ei ole fail, mis on olemas. 441 00:23:01,460 --> 00:23:04,290 Sest mäletan, koos Loe meie fail on olemas. 442 00:23:04,290 --> 00:23:04,810 Õigus? 443 00:23:04,810 --> 00:23:06,870 Mis kirjutada ja lisab, sa ei pääse ta. 444 00:23:06,870 --> 00:23:08,970 Aga lugeda, meie fail on olemas. 445 00:23:08,970 --> 00:23:10,430 446 00:23:10,430 --> 00:23:13,330 >> Ja siis, kui see on olemas, mida me siin teeme? 447 00:23:13,330 --> 00:23:14,810 448 00:23:14,810 --> 00:23:15,780 Lihtsalt alustada siin. 449 00:23:15,780 --> 00:23:18,815 Mis see on do-- see esimene märk. 450 00:23:18,815 --> 00:23:20,960 451 00:23:20,960 --> 00:23:21,790 Mida ta teeb? 452 00:23:21,790 --> 00:23:24,100 Ta saab ühe märgi, eks? 453 00:23:24,100 --> 00:23:25,400 Nii et mida see teeb? 454 00:23:25,400 --> 00:23:26,775 Läheb esimene märk. 455 00:23:26,775 --> 00:23:28,860 456 00:23:28,860 --> 00:23:30,200 Keegi teab EOF? 457 00:23:30,200 --> 00:23:31,170 >> Sihtrühm: Faili lõpp? 458 00:23:31,170 --> 00:23:32,680 >> SPEAKER 1: lõpp file-- täpselt. 459 00:23:32,680 --> 00:23:35,310 Nii et see läheb läbi minna kogu fail, eks? 460 00:23:35,310 --> 00:23:36,710 461 00:23:36,710 --> 00:23:40,780 Ja siis see saab uuendada poolt saada iga järgneva iseloomu. 462 00:23:40,780 --> 00:23:41,565 Õigus? 463 00:23:41,565 --> 00:23:43,636 Ja mida see teeb? 464 00:23:43,636 --> 00:23:44,760 Sihtrühm: Haara et in-- 465 00:23:44,760 --> 00:23:46,741 466 00:23:46,741 --> 00:23:49,170 >> SPEAKER 1: Putchar pildid oma ekraanisäästja. 467 00:23:49,170 --> 00:23:50,867 468 00:23:50,867 --> 00:23:51,950 [Kuuldamatu] iseloomu. 469 00:23:51,950 --> 00:23:54,300 Ja siis, kui ta [kuuldamatu] see fail sulgeda. 470 00:23:54,300 --> 00:23:57,370 >> Sihtrühm: Kas sa ei pea [? teine? ?] 471 00:23:57,370 --> 00:23:59,005 >> SPEAKER 1: Mitte tingimata. 472 00:23:59,005 --> 00:24:01,480 Ma mõtlen, et see on mingi vaikimisi antud. 473 00:24:01,480 --> 00:24:06,780 Kuna see käib küll, niikaua see ei saagi seda, sa oled hea. 474 00:24:06,780 --> 00:24:07,940 475 00:24:07,940 --> 00:24:10,250 Ma mõtlen see on ilmselt hea tava teha muud. 476 00:24:10,250 --> 00:24:15,755 Aga muidu ei ole alati vajalik eriti 477 00:24:15,755 --> 00:24:17,610 kui sul on midagi nagu kasum, mis on 478 00:24:17,610 --> 00:24:20,640 tähendab, et antud juhul, kui see saak see on teie programm läheb lõpuks 479 00:24:20,640 --> 00:24:21,850 ja see ei saa kunagi seda. 480 00:24:21,850 --> 00:24:23,030 481 00:24:23,030 --> 00:24:29,190 See on rohkem, et juhul, kui sa oled ei pruugi naasmist midagi. 482 00:24:29,190 --> 00:24:31,370 Sest kui see ei olnud tagastamise midagi, 483 00:24:31,370 --> 00:24:34,430 see tähendaks, et kui see oleks tõsi, Ülejäänud see veel kestab. 484 00:24:34,430 --> 00:24:36,138 Ja sel juhul sa tahaks vale. 485 00:24:36,138 --> 00:24:38,240 Kui see tagastamise ja oma programmi lõpetamist, 486 00:24:38,240 --> 00:24:41,960 muidu ei ole vaja kõiki ajal, sõltuvalt kontekstist. 487 00:24:41,960 --> 00:24:43,084 488 00:24:43,084 --> 00:24:44,375 Jacob, kas teil on küsimusi? 489 00:24:44,375 --> 00:24:46,100 Sihtrühm: Jah. 490 00:24:46,100 --> 00:24:49,300 Seega ei fgetc saada järgmine märk? 491 00:24:49,300 --> 00:24:50,734 Kuidas iseloomu suurendada? 492 00:24:50,734 --> 00:24:51,400 SPEAKER 1: Jah. 493 00:24:51,400 --> 00:24:52,774 Nii fgetc saab järgmise sümboli. 494 00:24:52,774 --> 00:24:54,140 495 00:24:54,140 --> 00:24:56,866 Sa ei mõtle seda nagu C ++ mõnes mõttes. 496 00:24:56,866 --> 00:24:58,350 >> Sihtrühm: Mis oli EOF? 497 00:24:58,350 --> 00:25:00,877 >> SPEAKER 1: EOF on faili lõppu. 498 00:25:00,877 --> 00:25:03,960 See on lihtsalt marker, mis annab teada, et sa oled lõpuks oma faili. 499 00:25:03,960 --> 00:25:06,742 Nii et see on trükkimineku oma standard välja. 500 00:25:06,742 --> 00:25:08,950 Ja siis see saab sulgeda faili, kui see on tehtud. 501 00:25:08,950 --> 00:25:10,700 Ja siis lähme Järgmise faili, eks? 502 00:25:10,700 --> 00:25:12,660 Nii et üldine, mida see programm teeb? 503 00:25:12,660 --> 00:25:15,402 504 00:25:15,402 --> 00:25:16,090 >> [Kuuldamatu] 505 00:25:16,090 --> 00:25:16,900 >> SPEAKER 1: Jah. 506 00:25:16,900 --> 00:25:18,770 See lihtsalt printida kõike. 507 00:25:18,770 --> 00:25:23,270 Nii et kui te kutid on kunagi kasutatud CAT ja siis nimi mõned file-- 508 00:25:23,270 --> 00:25:26,240 Ma ei tea, kas keegi teist on kunagi teinud, et oma terminal. 509 00:25:26,240 --> 00:25:29,630 Aga kui te olete kunagi kasutada käsk CAT-- C-A-T-- 510 00:25:29,630 --> 00:25:31,880 ja siis mis iganes faili teil on there-- see 511 00:25:31,880 --> 00:25:37,260 prindib välja oma terminal, mis võib olla super mugav asju. 512 00:25:37,260 --> 00:25:38,746 Ma kasutan seda palju. 513 00:25:38,746 --> 00:25:40,120 Kas on mõtet kõigile? 514 00:25:40,120 --> 00:25:41,480 515 00:25:41,480 --> 00:25:42,100 Cool? 516 00:25:42,100 --> 00:25:46,530 >> OK, nii et teie ülesanne now-- kas ise või koos ümbritsevate inimeste sina-- 517 00:25:46,530 --> 00:25:54,930 on lihtsalt kirjutada lihtne programm et lihtsalt kirjutada "Hello, world!" 518 00:25:54,930 --> 00:25:56,255 välja failina. 519 00:25:56,255 --> 00:26:00,215 >> [Kuuldamatu] 520 00:26:00,215 --> 00:26:56,210 521 00:26:56,210 --> 00:26:57,040 >> [Kuuldamatu] 522 00:26:57,040 --> 00:26:59,248 >> SPEAKER 1: ma olin nagu, ei Mina, et halvasti eelmisel nädalal? 523 00:26:59,248 --> 00:27:00,201 524 00:27:00,201 --> 00:27:01,492 Ma ei usu, et see oli halb. 525 00:27:01,492 --> 00:27:02,479 526 00:27:02,479 --> 00:27:03,520 Ma olen õnnelik, et sa oled kõik siin. 527 00:27:03,520 --> 00:27:04,655 See tegelikult teeb mind õnnelikuks. 528 00:27:04,655 --> 00:27:07,565 529 00:27:07,565 --> 00:27:10,160 Ma olen tüdruk lihtsaid naudinguid. 530 00:27:10,160 --> 00:27:11,688 Ma lihtsalt meeldib, kui mu lõik käib. 531 00:27:11,688 --> 00:27:13,830 532 00:27:13,830 --> 00:27:18,270 Nii et ma lihtsalt saada see algas kutid, nii et saame koodi koos. 533 00:27:18,270 --> 00:27:22,290 Mulle ei meeldi, pannes kõigile kohapeal, kui sa tahad olla. 534 00:27:22,290 --> 00:27:26,486 535 00:27:26,486 --> 00:27:30,086 >> Sihtrühm: viktoriini teha meil on kirjutada programm? 536 00:27:30,086 --> 00:27:33,260 >> SPEAKER 1: Te võite paluda koostada lihtsat programmid käsitsi. 537 00:27:33,260 --> 00:27:35,940 538 00:27:35,940 --> 00:27:36,590 Yup. 539 00:27:36,590 --> 00:27:38,510 >> Sihtrühm: Viktoriin on järgmisel nädalal, eks? 540 00:27:38,510 --> 00:27:40,108 >> SPEAKER 1: Viktoriin on järgmisel kolmapäeval. 541 00:27:40,108 --> 00:27:40,855 542 00:27:40,855 --> 00:27:43,730 See tähendab, et seal on ilus [? CSE?] liigitamiseks pool hiljem, mis 543 00:27:43,730 --> 00:27:50,390 tähendab, et sa saad oma skoori tagasi, et night-- mis kell? 544 00:27:50,390 --> 00:27:50,890 Kes teab? 545 00:27:50,890 --> 00:27:51,973 Aga see, et öösel. 546 00:27:51,973 --> 00:28:02,020 547 00:28:02,020 --> 00:28:02,855 >> Hea küll. 548 00:28:02,855 --> 00:28:04,250 Kuidas me tahame alustada seda? 549 00:28:04,250 --> 00:28:07,964 550 00:28:07,964 --> 00:28:09,630 Ma annan sulle hint-- algab see. 551 00:28:09,630 --> 00:28:11,455 >> Sihtrühm: Sa pead faili avamiseks. 552 00:28:11,455 --> 00:28:12,250 >> SPEAKER 1: Jah. 553 00:28:12,250 --> 00:28:14,060 Nii et mida sa tahad nimetame seda? 554 00:28:14,060 --> 00:28:16,150 Kas sa tahad seda kutsuda "fail"? 555 00:28:16,150 --> 00:28:17,480 Teeme selle lihtsaks. 556 00:28:17,480 --> 00:28:26,752 Nii fopen-- mis on meie väljund test saab olema? 557 00:28:26,752 --> 00:28:36,130 Kõne see "Tere". 558 00:28:36,130 --> 00:28:37,810 Ja mis on meie režiimis? 559 00:28:37,810 --> 00:28:39,764 560 00:28:39,764 --> 00:28:41,055 Mida me teeme selle faili? 561 00:28:41,055 --> 00:28:42,676 562 00:28:42,676 --> 00:28:43,500 >> Sihtrühm: Loe. 563 00:28:43,500 --> 00:28:44,401 564 00:28:44,401 --> 00:28:44,900 Kirjutamine. 565 00:28:44,900 --> 00:28:46,191 SPEAKER 1: Me kirjutame seda. 566 00:28:46,191 --> 00:28:47,360 567 00:28:47,360 --> 00:28:47,860 Armas. 568 00:28:47,860 --> 00:28:50,330 569 00:28:50,330 --> 00:28:52,860 OK, nii et me peame seda faili nüüd. 570 00:28:52,860 --> 00:28:54,920 571 00:28:54,920 --> 00:28:56,212 Mida me peame tegema? 572 00:28:56,212 --> 00:28:57,420 Sihtrühm: Kontrolli, kas see on null. 573 00:28:57,420 --> 00:28:59,820 SPEAKER 1: Kontrolli, kas see on null-- täpselt. 574 00:28:59,820 --> 00:29:01,980 See, mida ma tahaksin kuulda. 575 00:29:01,980 --> 00:29:05,930 See peaks olema automaatne, eriti päris palju sellest punktist edasi. 576 00:29:05,930 --> 00:29:07,530 577 00:29:07,530 --> 00:29:10,950 Kui hakkad segfaulting, siis ilmselt ei kontrollinud for null kusagil. 578 00:29:10,950 --> 00:29:12,480 Üheksa korda kümnest, see on saab olema sinu viga. 579 00:29:12,480 --> 00:29:15,400 Nii et kui sa võiksid lihtsalt saada harjumus alati kontrollida, kas see on null, 580 00:29:15,400 --> 00:29:18,150 Sinu elu saab olema kena ja easy-- või lihtsamaks. 581 00:29:18,150 --> 00:29:19,480 >> Nii et vaadata, kas see on null. 582 00:29:19,480 --> 00:29:21,200 583 00:29:21,200 --> 00:29:24,820 Nii et kui see ei ole null, mis on see, mis paugu võrdub 584 00:29:24,820 --> 00:29:26,784 means-- ei null-- see on kehtiv. 585 00:29:26,784 --> 00:29:27,700 Mida me tahame teha? 586 00:29:27,700 --> 00:29:29,750 587 00:29:29,750 --> 00:29:31,570 Me lihtsalt tahame, et printida et see fail, eks? 588 00:29:31,570 --> 00:29:32,923 Niisiis, mida me saame kasutada? 589 00:29:32,923 --> 00:29:34,092 >> Sihtrühm: Fprintf 590 00:29:34,092 --> 00:29:36,800 >> SPEAKER 1: Fprintf-- armas. 591 00:29:36,800 --> 00:29:38,150 592 00:29:38,150 --> 00:29:44,000 Ja fprintf võtab kaks arguments-- kus see läheb ja mida me tahame trükkida. 593 00:29:44,000 --> 00:29:45,820 Mis on esimene? 594 00:29:45,820 --> 00:29:46,570 Kus see läheb? 595 00:29:46,570 --> 00:29:47,490 >> Sihtrühm: Fail. 596 00:29:47,490 --> 00:29:48,785 >> SPEAKER 1: See saab esitada. 597 00:29:48,785 --> 00:29:49,784 598 00:29:49,784 --> 00:29:50,950 Ja mida me tahame trükkida? 599 00:29:50,950 --> 00:29:52,900 600 00:29:52,900 --> 00:29:58,065 "Hello, world!" 601 00:29:58,065 --> 00:29:58,565 Hea küll. 602 00:29:58,565 --> 00:30:03,670 Meil on üks viimase asi-- teine ​​suur paradigma siin. 603 00:30:03,670 --> 00:30:04,479 604 00:30:04,479 --> 00:30:05,145 Sihtrühm: Sule. 605 00:30:05,145 --> 00:30:05,853 SPEAKER 1: Sule. 606 00:30:05,853 --> 00:30:09,990 607 00:30:09,990 --> 00:30:10,540 Seal sa lähed. 608 00:30:10,540 --> 00:30:13,384 >> Sihtrühm: Kas see juhtub kui fail on null? 609 00:30:13,384 --> 00:30:15,050 SPEAKER 1: Ei, see on, kui see ei ole null. 610 00:30:15,050 --> 00:30:16,881 Sihtrühm: Oh, kui see on not-- OK. 611 00:30:16,881 --> 00:30:21,728 612 00:30:21,728 --> 00:30:25,410 Sest fopen ja seejärel kaks argumenti, et sisse minna, 613 00:30:25,410 --> 00:30:27,655 mida see esimene argument tähendab jälle? 614 00:30:27,655 --> 00:30:30,392 >> SPEAKER 1: argument nagu faili nimi 615 00:30:30,392 --> 00:30:31,350 et sa tahad minna. 616 00:30:31,350 --> 00:30:36,020 Nii et pärast seda jookseb, siis oleks mõned faili nimega "tere" 617 00:30:36,020 --> 00:30:38,320 et oli "Hello, world" sees. 618 00:30:38,320 --> 00:30:38,820 See on kõik. 619 00:30:38,820 --> 00:30:39,500 Lihtsalt nime. 620 00:30:39,500 --> 00:30:42,685 621 00:30:42,685 --> 00:30:48,650 >> Sihtrühm: Ja kuna see on kirjutamine, faili ei pea juba olemas. 622 00:30:48,650 --> 00:30:49,675 Kas see, mida sa ütlesid? 623 00:30:49,675 --> 00:30:50,410 >> SPEAKER 1: Õigus. 624 00:30:50,410 --> 00:30:50,910 Täpselt. 625 00:30:50,910 --> 00:30:53,110 626 00:30:53,110 --> 00:30:55,839 Kui "Tere" failina veel ei ole, see on 627 00:30:55,839 --> 00:30:58,380 kavatse luua fail nimega Tere "ja kirjutada selle eest ise. 628 00:30:58,380 --> 00:30:59,631 629 00:30:59,631 --> 00:31:03,610 >> Sihtrühm: Kui sa räägid programmi kirjutas faili 630 00:31:03,610 --> 00:31:08,075 miks sa kirjutad "fail" asemel faili nimi ja fprintf-- 631 00:31:08,075 --> 00:31:13,600 >> SPEAKER 1: Kuna antud juhul on meil et suur FILE-- kõik caps-- star, 632 00:31:13,600 --> 00:31:14,260 faili. 633 00:31:14,260 --> 00:31:17,370 Nii et see on kursor faili mis sa räägid. 634 00:31:17,370 --> 00:31:19,930 See on nii, et me lihtsalt vaadake seda. 635 00:31:19,930 --> 00:31:24,850 Nii et kui te ei mõtle file-- ahaa, 636 00:31:24,850 --> 00:31:31,271 saame kasutada see-- fail siit viitab avamine "Tere" 637 00:31:31,271 --> 00:31:32,145 ja lasta tal kirjutada. 638 00:31:32,145 --> 00:31:34,728 >> Sihtrühm: Kas paneme "Tere" asemel [? lihtsalt?] f faili? 639 00:31:34,728 --> 00:31:40,160 SPEAKER 1: Ei, sest "Tere" peab olema avatud ja kirjutatav. 640 00:31:40,160 --> 00:31:41,820 641 00:31:41,820 --> 00:31:45,980 Faili siin on nagu tähis, mis ütleb OK, me 642 00:31:45,980 --> 00:31:49,190 on see file-- hello-- et me vaatame. 643 00:31:49,190 --> 00:31:50,680 See on avatud. 644 00:31:50,680 --> 00:31:52,140 Ja me kirjutame seda. 645 00:31:52,140 --> 00:31:55,130 Kui kasutate ainult "Tere" mis on kapseldatud seda. 646 00:31:55,130 --> 00:31:56,846 Nii see läheb närvi. 647 00:31:56,846 --> 00:31:58,590 648 00:31:58,590 --> 00:32:00,300 Ma mõtlen, et sa oleks võinud nimeks. 649 00:32:00,300 --> 00:32:03,960 Sa oleks võinud teha faili star "Tere", võrdub see. 650 00:32:03,960 --> 00:32:07,840 Aga mõte on selles, et sa vaja faili star pointer, et 651 00:32:07,840 --> 00:32:09,281 saaks kasutada neid funktsioone. 652 00:32:09,281 --> 00:32:11,280 Sihtrühm: Kas sa teeksid fail, star, fail "Tere" 653 00:32:11,280 --> 00:32:13,113 või sa pead panema esitada star, fail on? 654 00:32:13,113 --> 00:32:16,330 SPEAKER 1: Sa võiksid teha faili, star, "Tere." 655 00:32:16,330 --> 00:32:19,790 Seda saab muuta, et mis iganes nime sa tahad. 656 00:32:19,790 --> 00:32:22,114 See on täiesti meelevaldne mis see nimi on. 657 00:32:22,114 --> 00:32:23,179 658 00:32:23,179 --> 00:32:24,220 Saate nimi see midagi. 659 00:32:24,220 --> 00:32:25,501 660 00:32:25,501 --> 00:32:28,020 Nimeta see sõitvate spagetid, kui sa tahad. 661 00:32:28,020 --> 00:32:29,690 >> Sihtrühm: Mis on "w" jutumärkides eest? 662 00:32:29,690 --> 00:32:31,540 >> SPEAKER 1: "w" on lihtsalt režiimi. 663 00:32:31,540 --> 00:32:33,170 Nii et me kirjutame seda faili. 664 00:32:33,170 --> 00:32:34,410 665 00:32:34,410 --> 00:32:35,320 Igaühel on hea? 666 00:32:35,320 --> 00:32:36,227 Selge? 667 00:32:36,227 --> 00:32:36,981 Jah. 668 00:32:36,981 --> 00:32:40,365 >> Sihtrühm: Nii et kui ta kirjutab seda fail, kuhu me siis teada, et faili? 669 00:32:40,365 --> 00:32:43,820 >> SPEAKER 1: See oleks sama kataloog, kus asute. 670 00:32:43,820 --> 00:32:45,650 671 00:32:45,650 --> 00:32:48,880 Kui oled pset kolm ja sa jooksed selle sees oma pset 672 00:32:48,880 --> 00:32:52,600 kolm kausta saab olema Selle faili nimega "Tere." 673 00:32:52,600 --> 00:32:53,160 Cool? 674 00:32:53,160 --> 00:32:53,757 Igaühel on hea? 675 00:32:53,757 --> 00:32:55,840 Mul on tunne, nagu sa oled kõik saada see, mis on suurepärane. 676 00:32:55,840 --> 00:32:57,290 677 00:32:57,290 --> 00:32:57,790 OK. 678 00:32:57,790 --> 00:33:05,960 Niisiis tagasi minu slide show-- Ma armastan, kui asjad töötavad. 679 00:33:05,960 --> 00:33:08,674 OK, pointers-- Kas te põnevil? 680 00:33:08,674 --> 00:33:09,465 Osuti on suured. 681 00:33:09,465 --> 00:33:11,581 682 00:33:11,581 --> 00:33:13,580 Nad võtavad natuke wrap oma pea ümber. 683 00:33:13,580 --> 00:33:15,288 See on minu teine ​​aasta õpetamise näpunäiteid. 684 00:33:15,288 --> 00:33:16,850 Ja ma arvan, et ma lõpuks sain aru. 685 00:33:16,850 --> 00:33:18,650 Nii et kui sa vaeva, et see on OK. 686 00:33:18,650 --> 00:33:19,940 687 00:33:19,940 --> 00:33:24,070 Nagu ma enne ütlesin, joonistus pilte aitab palju asju CS, 688 00:33:24,070 --> 00:33:27,400 nii palju kui ma arvan, et inimesed kipuvad arvan, oh, me oleme arvuti. 689 00:33:27,400 --> 00:33:28,399 Me peaksime lihtsalt koodi. 690 00:33:28,399 --> 00:33:30,190 Ei-- joonistus pilte tõesti teid aidata. 691 00:33:30,190 --> 00:33:32,773 Ja ma tõesti kutsun teid üles kasutusele võtta oma kindergartner pool 692 00:33:32,773 --> 00:33:35,010 ja tuua välja värvipliiatsid või markerid ja viigiga. 693 00:33:35,010 --> 00:33:36,110 Sest see aitab teid. 694 00:33:36,110 --> 00:33:39,380 Ja kui sa näed mind tööajal, ma veavad hunniku paberit 695 00:33:39,380 --> 00:33:41,580 pliiatsid joonistus asju teha. 696 00:33:41,580 --> 00:33:44,370 >> Nii et eriti pointers-- joonistada pilte. 697 00:33:44,370 --> 00:33:47,970 Ja ma olen kindel, et me oleme tegelikult läheb joonistus mõned pildid ka siin. 698 00:33:47,970 --> 00:33:51,270 >> Nii kutid kõik sai näha Binky, see lahe claymation asi. 699 00:33:51,270 --> 00:33:54,720 Ja me arvame, et see on tõesti naljakas, kui ta lahvatab kamp tükki. 700 00:33:54,720 --> 00:33:56,280 701 00:33:56,280 --> 00:33:57,755 See on mingi koomiline leevendust klassis. 702 00:33:57,755 --> 00:34:02,140 703 00:34:02,140 --> 00:34:05,900 C [kuuldamatu] see suur võime saaks kontrollida mälu. 704 00:34:05,900 --> 00:34:10,090 Ja see on üks neist asjadest, mis tegelikult muudab nii võimas keel. 705 00:34:10,090 --> 00:34:13,469 Aga suur vägi suur vastutus. 706 00:34:13,469 --> 00:34:16,230 Ja hull asju võib juhtuda kui sa ei ole ettevaatlik. 707 00:34:16,230 --> 00:34:18,560 Nii et kui te kasutate suunanäitajaks, sa tahad teha 708 00:34:18,560 --> 00:34:21,440 kindel, et sa tõesti aru täpselt, mida sa teed. 709 00:34:21,440 --> 00:34:25,530 Loodetavasti järgmisel natuke aeg aitab teil tõesti aru 710 00:34:25,530 --> 00:34:27,850 suunanäitajaks, kuidas neid kasutada, ja kuidas neid töödelda. 711 00:34:27,850 --> 00:34:29,170 712 00:34:29,170 --> 00:34:33,460 >> Nii memory-- ma olen kindel, et me oleme näinud seda skeemi enne. 713 00:34:33,460 --> 00:34:38,540 Nii et see on lihtsalt skeem kuidas asjad võivad olla salvestatud mällu. 714 00:34:38,540 --> 00:34:43,145 Nii et sa põhimõtteliselt on need suur massiive üks bait plokid 715 00:34:43,145 --> 00:34:46,000 on see, mis meil on siin-- kerge sammuga üks iga kord. 716 00:34:46,000 --> 00:34:51,810 See on hex [kuuldamatu] nii kaheksa-bit plokke. 717 00:34:51,810 --> 00:34:55,510 Ja iga plokk on seotud mõned kuueteistkümnendsüsteemis aadress. 718 00:34:55,510 --> 00:34:58,750 Nii et kui sa oled kunagi näha 0x, et lihtsalt notating 719 00:34:58,750 --> 00:35:00,670 et see on kuueteistkümnendsüsteemis aadress. 720 00:35:00,670 --> 00:35:03,970 Võite arvata, see tähendab, Mõnes aadressi mälus. 721 00:35:03,970 --> 00:35:06,935 Me räägime mälu aadressid Kui näed kuueteistkümnendsüsteemis. 722 00:35:06,935 --> 00:35:10,420 723 00:35:10,420 --> 00:35:14,630 >> Meil on ints on muutujad, ujukid on muutujad, mis salvestavad. 724 00:35:14,630 --> 00:35:16,260 Nii ints pood ints. 725 00:35:16,260 --> 00:35:17,430 Ujub pood hõljub. 726 00:35:17,430 --> 00:35:20,260 Nii et meil on ka viidad et salvestada mällu aadressi. 727 00:35:20,260 --> 00:35:21,660 See on omamoodi kaardistamine. 728 00:35:21,660 --> 00:35:24,240 Osuti on eranditult mälu aadresse. 729 00:35:24,240 --> 00:35:25,780 730 00:35:25,780 --> 00:35:27,292 Nii et see on nagu sinu tüüpi seal. 731 00:35:27,292 --> 00:35:29,550 732 00:35:29,550 --> 00:35:34,470 Teie seade on 32-bitine, mis tähendab, et teie mälu aadress on neli baiti. 733 00:35:34,470 --> 00:35:37,830 Seega igasugused pointer, et teil on Samuti saab olema neli baiti. 734 00:35:37,830 --> 00:35:43,200 Või muidu, kui see on neli baiti, mälu on neli baiti. 735 00:35:43,200 --> 00:35:44,790 Osuti pood mälu. 736 00:35:44,790 --> 00:35:46,430 Seetõttu nad neli baiti. 737 00:35:46,430 --> 00:35:48,460 Cool-- tahan kindlustada, et. 738 00:35:48,460 --> 00:35:50,120 739 00:35:50,120 --> 00:35:52,220 >> Sa peaksid saama koomiline nüüd. 740 00:35:52,220 --> 00:35:55,040 Ma ei tea, kui palju te on XKCD fännid, aga ma armastan XKCD. 741 00:35:55,040 --> 00:35:55,780 See on tore. 742 00:35:55,780 --> 00:35:57,290 743 00:35:57,290 --> 00:35:57,790 >> Hea küll. 744 00:35:57,790 --> 00:36:01,640 Nii et luua pointers-- nagu ma ütlesin, see on päris palju just nagu midagi muud. 745 00:36:01,640 --> 00:36:02,930 Sul on tüüp. 746 00:36:02,930 --> 00:36:04,050 Sul on nimi. 747 00:36:04,050 --> 00:36:04,810 Õigus? 748 00:36:04,810 --> 00:36:10,410 See, mis meil on olemas. [? Hex?] Täht tähendab, et see on osuti, 749 00:36:10,410 --> 00:36:12,250 ja siis mida iganes sa tahad seda kutsuda. 750 00:36:12,250 --> 00:36:15,770 Nii et tüüp on mida saab salvestada. 751 00:36:15,770 --> 00:36:16,850 752 00:36:16,850 --> 00:36:17,990 Kõik korras? 753 00:36:17,990 --> 00:36:24,350 Samamoodi, et kui me teeme ints, me teame, et me hoidmiseks int seal. 754 00:36:24,350 --> 00:36:25,990 755 00:36:25,990 --> 00:36:30,280 Mis pointer, see omab mälu aadress. 756 00:36:30,280 --> 00:36:34,240 Aga mida see tähendab selle-- siin, kus joonistus läheb tarvis minema. 757 00:36:34,240 --> 00:36:36,170 758 00:36:36,170 --> 00:36:45,980 Nii antud juhul on meil mõned value-- oletame neli. 759 00:36:45,980 --> 00:36:49,306 Neli on aadressil üks. 760 00:36:49,306 --> 00:36:49,805 OK? 761 00:36:49,805 --> 00:36:51,550 762 00:36:51,550 --> 00:36:56,170 >> See esimene tähendab siin et see kursor 2x. 763 00:36:56,170 --> 00:36:56,740 Õigus? 764 00:36:56,740 --> 00:36:57,628 See on mõned osuti x. 765 00:36:57,628 --> 00:36:58,852 766 00:36:58,852 --> 00:37:00,940 x võib olla midagi, mis iganes. 767 00:37:00,940 --> 00:37:01,960 768 00:37:01,960 --> 00:37:05,130 Ükskõik x on-- ütleme x on neli. 769 00:37:05,130 --> 00:37:07,280 See saab salvestada mälu aadress siia. 770 00:37:07,280 --> 00:37:12,260 Nii int, star, x-ist on see mõne muu pesa memory-- 771 00:37:12,260 --> 00:37:13,590 kes teab, mis see on. 772 00:37:13,590 --> 00:37:15,430 Aga see läheb salvestada aadress siia. 773 00:37:15,430 --> 00:37:27,040 Nii et see oleks like-- antud juhul Ükskõik, 774 00:37:27,040 --> 00:37:32,630 hoitakse 0x1-- iganes on salvestatud aadressil, et meie pointer omab 775 00:37:32,630 --> 00:37:35,280 on mängu üles mida oleme määratud. 776 00:37:35,280 --> 00:37:40,330 Nii on 0x1, antud juhul on see x. 777 00:37:40,330 --> 00:37:42,500 778 00:37:42,500 --> 00:37:49,340 See on võimalik ainult kunagi int kui me kasutame seda. 779 00:37:49,340 --> 00:37:52,950 >> Samamoodi, kui meil on teine ​​1y, olenemata 780 00:37:52,950 --> 00:37:59,130 aadress on salvestatud y on olla char-- sama asja z. 781 00:37:59,130 --> 00:38:05,840 Samamoodi, kui sa proovida ja teha intx võrdub 0,4, 782 00:38:05,840 --> 00:38:09,275 see läheb kisa teie ja nagu ei ole, sa ütlesid, et tahtsid int. 783 00:38:09,275 --> 00:38:10,525 See peaks olema int. 784 00:38:10,525 --> 00:38:11,900 Stop üritab teha seda sularahaga. 785 00:38:11,900 --> 00:38:14,150 >> Seega, las asjad olla, mida nad tahavad olla. 786 00:38:14,150 --> 00:38:15,159 787 00:38:15,159 --> 00:38:16,200 Las asjad olla nemad ise. 788 00:38:16,200 --> 00:38:19,380 789 00:38:19,380 --> 00:38:23,450 Nii suur asi on lihtsalt mis tahes tüüpi pointer 790 00:38:23,450 --> 00:38:26,101 see tähendab, et see on ainus asi, mida saab salvestada seal. 791 00:38:26,101 --> 00:38:26,600 OK? 792 00:38:26,600 --> 00:38:27,910 793 00:38:27,910 --> 00:38:31,160 Mis praktikas, nagu ka Möödunud nädalal kõik 794 00:38:31,160 --> 00:38:32,817 Tundub tõesti selline abstraktne. 795 00:38:32,817 --> 00:38:34,150 Me teeme mõned praktikas. 796 00:38:34,150 --> 00:38:36,760 Tuleb mõttekam. 797 00:38:36,760 --> 00:38:44,580 >> Nii viitamine ja dereferencing-- see väga oluline, et saada need sirged. 798 00:38:44,580 --> 00:38:46,630 Mul on veel värskendada iga nüüd ja siis. 799 00:38:46,630 --> 00:38:48,450 Ja ma olen nagu ootama, kus üks ma tahan? 800 00:38:48,450 --> 00:38:56,080 Nii-märk on tegelikult annab te viite või aadress. 801 00:38:56,080 --> 00:39:00,100 Nii et ta naaseb aadress mälu muutuva säilitatakse. 802 00:39:00,100 --> 00:39:01,170 803 00:39:01,170 --> 00:39:07,020 Nii see läheb tegelikult su juurde tagasi kuueteistkümnendsüsteemis, samas dereferencing see 804 00:39:07,020 --> 00:39:10,641 tegelikult annan teile andmed, mis on salvestatud on. 805 00:39:10,641 --> 00:39:11,140 OK? 806 00:39:11,140 --> 00:39:12,680 807 00:39:12,680 --> 00:39:16,060 Nii et me ei kavatse vaadata näiteks tõesti kiire, või tegelikult järgmisena. 808 00:39:16,060 --> 00:39:18,050 809 00:39:18,050 --> 00:39:19,150 >> OK. 810 00:39:19,150 --> 00:39:21,790 Nii et me peame mõtlema tõesti hoolikalt selle kohta. 811 00:39:21,790 --> 00:39:23,860 Nii et siin on meil mingi täisarvu x. 812 00:39:23,860 --> 00:39:26,485 Ma lähen, et proovida ja teha seda välja minule võimeid. 813 00:39:26,485 --> 00:39:30,230 814 00:39:30,230 --> 00:39:32,410 Nii et me ei kavatse on see pesa x. 815 00:39:32,410 --> 00:39:35,850 816 00:39:35,850 --> 00:39:37,315 Ja see hoidmine viis. 817 00:39:37,315 --> 00:39:38,640 818 00:39:38,640 --> 00:39:40,090 Selle aadress on 0x4. 819 00:39:40,090 --> 00:39:41,920 820 00:39:41,920 --> 00:39:43,160 Cool? 821 00:39:43,160 --> 00:39:44,100 Kõik hea. 822 00:39:44,100 --> 00:39:45,470 >> Nüüd on meil see pointer. 823 00:39:45,470 --> 00:39:46,916 824 00:39:46,916 --> 00:39:47,990 See oli siin. 825 00:39:47,990 --> 00:39:52,130 826 00:39:52,130 --> 00:39:57,560 Ja ampersand annab meile aadressi midagi. 827 00:39:57,560 --> 00:40:00,780 Niisiis, käesoleval juhul on see aadress x. 828 00:40:00,780 --> 00:40:01,875 Mis on aadress x? 829 00:40:01,875 --> 00:40:05,660 830 00:40:05,660 --> 00:40:12,590 04-- ja see osuti on 0x08. 831 00:40:12,590 --> 00:40:14,490 832 00:40:14,490 --> 00:40:14,990 Cool? 833 00:40:14,990 --> 00:40:16,570 834 00:40:16,570 --> 00:40:21,570 Nii saate mõtlema pointer, 04, vaid juhib siin. 835 00:40:21,570 --> 00:40:22,840 836 00:40:22,840 --> 00:40:25,740 Ja need nn viiteid sest kui saame rohkem sellesse, 837 00:40:25,740 --> 00:40:28,450 sa lähed, et näha, osutades asju. 838 00:40:28,450 --> 00:40:31,470 Ja üks plokk osutab teise plokk teeb palju rohkem mõtet. 839 00:40:31,470 --> 00:40:32,760 840 00:40:32,760 --> 00:40:33,890 Nii et siin on kaks. 841 00:40:33,890 --> 00:40:38,230 Ja siis on meil mõned koopia, mis on what-- 0x0c. 842 00:40:38,230 --> 00:40:41,290 843 00:40:41,290 --> 00:40:43,420 Ja see läheb dereference meie pointer. 844 00:40:43,420 --> 00:40:46,790 >> Mida see ütleb on OK, siin on meie pointer. 845 00:40:46,790 --> 00:40:53,090 Väärtust ta salvestab on 0x04, Ja mis ta ütleb, on minna sellele aadressile 846 00:40:53,090 --> 00:40:54,300 ja ütle mulle, milline on ta. 847 00:40:54,300 --> 00:40:55,520 848 00:40:55,520 --> 00:40:57,710 Nii et tegelikult mida see nool läheb. 849 00:40:57,710 --> 00:40:58,750 850 00:40:58,750 --> 00:41:01,280 Sa ei mõtle seda nagu oma tähe. 851 00:41:01,280 --> 00:41:05,410 Nii et OK, kui me teeme star, see tähendab järgida. 852 00:41:05,410 --> 00:41:06,810 Mine sellele aadressile. 853 00:41:06,810 --> 00:41:11,430 Ja see on põhimõtteliselt ainult järgmine see nool sellele mälu patakas. 854 00:41:11,430 --> 00:41:15,380 Ja anna meile, mis on see, mis on 5. 855 00:41:15,380 --> 00:41:18,840 See on põhjus, miks meie koopia võrdub 5. 856 00:41:18,840 --> 00:41:20,120 Kas on mõtet? 857 00:41:20,120 --> 00:41:22,769 Kas keegi mind vaja läbida et uuesti või aeglasemalt? 858 00:41:22,769 --> 00:41:24,560 Sa tahad minna läbi veel üks kord? 859 00:41:24,560 --> 00:41:25,060 OK. 860 00:41:25,060 --> 00:41:27,549 861 00:41:27,549 --> 00:41:28,840 Me läheme tõmmata uuesti. 862 00:41:28,840 --> 00:41:31,930 863 00:41:31,930 --> 00:41:37,205 Kui hakkame me kõik ühel meelel oleme mõned patakas mälu, mis on muutuv 864 00:41:37,205 --> 00:41:40,890 x, et me seame võrdne 5. 865 00:41:40,890 --> 00:41:42,910 Me ei kontrolli, kui see on mälu. 866 00:41:42,910 --> 00:41:45,520 Nii et see koht on lihtsalt meelevaldselt määratud. 867 00:41:45,520 --> 00:41:47,770 868 00:41:47,770 --> 00:41:48,731 Hea on? 869 00:41:48,731 --> 00:41:49,230 OK. 870 00:41:49,230 --> 00:41:50,420 871 00:41:50,420 --> 00:41:53,330 Siis me initsialiseerida pointer int. 872 00:41:53,330 --> 00:41:56,900 Sellepärast see on lubatud osutada x, sest meil on int siin. 873 00:41:56,900 --> 00:42:00,840 Meil on teine ​​patakas mälu, sest see pointer 874 00:42:00,840 --> 00:42:03,485 on muutuja nagu midagi muud. 875 00:42:03,485 --> 00:42:06,615 See on meelevaldselt määratud ruumi mälus. 876 00:42:06,615 --> 00:42:07,630 877 00:42:07,630 --> 00:42:10,830 Ja mida see salvestab on aadress x. 878 00:42:10,830 --> 00:42:13,200 Ampersand tähendab aadress x. 879 00:42:13,200 --> 00:42:14,575 Mis on aadress x? 880 00:42:14,575 --> 00:42:19,179 881 00:42:19,179 --> 00:42:20,614 >> Sihtrühm: See on zero-- 882 00:42:20,614 --> 00:42:21,280 SPEAKER 1: 0x04. 883 00:42:21,280 --> 00:42:24,350 884 00:42:24,350 --> 00:42:25,940 Nii then-- viimane. 885 00:42:25,940 --> 00:42:30,650 Meil on mõned copy-- uuesti lihtsalt üks muutuja. 886 00:42:30,650 --> 00:42:32,520 Nii et olgem määrata suvalise koha. 887 00:42:32,520 --> 00:42:35,260 888 00:42:35,260 --> 00:42:38,080 Ja meil on käivitatav meie pointer. 889 00:42:38,080 --> 00:42:42,490 Star tähendab minna aadress salvestatakse minu pointer. 890 00:42:42,490 --> 00:42:44,480 Ütle mulle, mis seal on. 891 00:42:44,480 --> 00:42:47,290 Nii aadress salvestatakse meie osuti on 0x04. 892 00:42:47,290 --> 00:42:49,070 893 00:42:49,070 --> 00:42:51,310 Nii et me läheme sellele aadressile. 894 00:42:51,310 --> 00:42:52,402 895 00:42:52,402 --> 00:42:54,590 See osutab, et aadress. 896 00:42:54,590 --> 00:42:57,481 Millest see mälu blokeerida? 897 00:42:57,481 --> 00:42:57,980 See on viis. 898 00:42:57,980 --> 00:42:59,210 899 00:42:59,210 --> 00:43:01,650 Nii see on, mida anname meie koopia. 900 00:43:01,650 --> 00:43:03,430 901 00:43:03,430 --> 00:43:04,860 Igaühel on hea? 902 00:43:04,860 --> 00:43:05,360 Külm. 903 00:43:05,360 --> 00:43:07,010 904 00:43:07,010 --> 00:43:08,330 Again-- pilte. 905 00:43:08,330 --> 00:43:19,750 906 00:43:19,750 --> 00:43:25,200 >> Nii jälgimise väärtused siin-- ma olen lase kutid mõtlema. 907 00:43:25,200 --> 00:43:26,550 908 00:43:26,550 --> 00:43:27,750 Saame veel üks pilt. 909 00:43:27,750 --> 00:43:31,260 Aga ma tahan, et sa proovida ja põhjus läbi selle ise ühe minuti. 910 00:43:31,260 --> 00:44:01,430 911 00:44:01,430 --> 00:44:04,149 >> Kuna nad ei anna meil näiteks aadress, 912 00:44:04,149 --> 00:44:06,940 Ma lihtsalt teha ampersand x-ist mis peaks aitama sõita koju. 913 00:44:06,940 --> 00:44:07,950 Ampersand tähendab aadress. 914 00:44:07,950 --> 00:44:09,540 915 00:44:09,540 --> 00:44:12,360 >> Nii et esimene, igaüks minna esimese rea. 916 00:44:12,360 --> 00:44:15,690 Mõned x kogumi five-- mõned juhuslik pesa mälu. 917 00:44:15,690 --> 00:44:17,660 918 00:44:17,660 --> 00:44:23,200 Int star osuti on võrdne aadressil x, õigus? 919 00:44:23,200 --> 00:44:28,180 Int star pointer loob see plokk, nõuab see pointer, 920 00:44:28,180 --> 00:44:30,650 ja omistab selle aadress x. 921 00:44:30,650 --> 00:44:32,750 922 00:44:32,750 --> 00:44:34,230 Ma olen kohutav sümboliga. 923 00:44:34,230 --> 00:44:36,460 924 00:44:36,460 --> 00:44:40,550 >> Nüüd, mida me teeme on ütleme OK, on ​​käivitatav meie pointer. 925 00:44:40,550 --> 00:44:42,760 Nii et me läheme OK, mis on meie osuti? 926 00:44:42,760 --> 00:44:44,820 See on ampersand x. 927 00:44:44,820 --> 00:44:49,400 Mine ampersand x ja ümber jaotada see. 928 00:44:49,400 --> 00:44:51,620 929 00:44:51,620 --> 00:44:57,480 >> Nüüd, ampersand x hakkab olema 35. 930 00:44:57,480 --> 00:45:01,540 931 00:45:01,540 --> 00:45:05,174 Nii et põhimõtteliselt, kui sa oled dereferencing lähete OK. 932 00:45:05,174 --> 00:45:07,090 Sa lähed joonistus pilte niimoodi. 933 00:45:07,090 --> 00:45:09,423 Sa lähed joonistus nooli üle, kus see on. 934 00:45:09,423 --> 00:45:16,030 Nii et minge sellele pesa mälu ja kas anna mulle see raha tagasi, ei muuda seda. 935 00:45:16,030 --> 00:45:21,620 Sel juhul, sest me oleme selles väärtus, me määrates, et see on 35. 936 00:45:21,620 --> 00:45:24,700 Arvestades, et viimase üks, kui te märkate, oleme 937 00:45:24,700 --> 00:45:27,680 olid määrates, mis oli siin midagi muud. 938 00:45:27,680 --> 00:45:30,450 939 00:45:30,450 --> 00:45:32,245 >> Nii et nad on selles awesome tabelis. 940 00:45:32,245 --> 00:45:35,000 941 00:45:35,000 --> 00:45:36,890 See ei ole nii halb. 942 00:45:36,890 --> 00:45:37,970 Te tööd selle kallal. 943 00:45:37,970 --> 00:45:39,640 Ma lähen seda välja tõmmata laual. 944 00:45:39,640 --> 00:45:41,306 Me läheme selle täita koos, eks? 945 00:45:41,306 --> 00:45:42,290 946 00:45:42,290 --> 00:45:45,530 Nii et haara paberit, ostke partner, tööle asuda. 947 00:45:45,530 --> 00:45:53,897 948 00:45:53,897 --> 00:45:55,605 Ma lähen, et saada suurem tükk kriiti. 949 00:45:55,605 --> 00:45:56,624 950 00:45:56,624 --> 00:45:58,150 Sest see saab olema palju. 951 00:45:58,150 --> 00:45:59,410 952 00:45:59,410 --> 00:45:59,910 OK. 953 00:45:59,910 --> 00:48:08,567 954 00:48:08,567 --> 00:48:09,150 PROFESSOR: OK. 955 00:48:09,150 --> 00:48:11,599 956 00:48:11,599 --> 00:48:12,890 Alustame esimeses reas. 957 00:48:12,890 --> 00:48:14,070 958 00:48:14,070 --> 00:48:16,970 Hakkame seal, siis poisid võib-olla läbi töötada veel. 959 00:48:16,970 --> 00:48:17,870 OK. 960 00:48:17,870 --> 00:48:19,810 võrdub b korda c, siis millised on? 961 00:48:19,810 --> 00:48:21,420 962 00:48:21,420 --> 00:48:23,260 See ei ole konksuga küsimus, ma luban. 963 00:48:23,260 --> 00:48:24,440 >> Õpilane: 4 korda 5. 964 00:48:24,440 --> 00:48:25,420 >> PROFESSOR: 4 korda 5. 965 00:48:25,420 --> 00:48:25,920 20. 966 00:48:25,920 --> 00:48:26,730 Mis on b? 967 00:48:26,730 --> 00:48:27,921 968 00:48:27,921 --> 00:48:28,420 Õpilane: 4. 969 00:48:28,420 --> 00:48:30,204 970 00:48:30,204 --> 00:48:31,043 >> PROFESSOR: Ja c? 971 00:48:31,043 --> 00:48:31,542 Õpilane: 5. 972 00:48:31,542 --> 00:48:32,083 PROFESSOR: 5. 973 00:48:32,083 --> 00:48:35,960 Ja siis see lihtsalt läheb tuleb ampersand, ampersand b, 974 00:48:35,960 --> 00:48:38,575 ampersand c, eks? 975 00:48:38,575 --> 00:48:39,728 976 00:48:39,728 --> 00:48:40,596 Pole paha. 977 00:48:40,596 --> 00:48:42,081 See on piisavalt lihtne. 978 00:48:42,081 --> 00:48:42,580 OK. 979 00:48:42,580 --> 00:48:44,300 Nii et järgmise üks. 980 00:48:44,300 --> 00:48:48,725 Võrdub korda c, juhul keegi oli tunne, et. 981 00:48:48,725 --> 00:48:49,812 982 00:48:49,812 --> 00:48:53,300 Kas igaüks tuttav koos korda võrdub? 983 00:48:53,300 --> 00:49:00,105 OK, kõik see means-- see on lühendvormina võrdub korda c. 984 00:49:00,105 --> 00:49:04,840 Võite seda teha rajoonis lisamisega, mille lahutamine. 985 00:49:04,840 --> 00:49:12,130 Seda saab teha võrdsete või pluss võrdub c tähendab võrdub pluss c, miinus võrdne 986 00:49:12,130 --> 00:49:15,190 c oleks võrdne miinus c. 987 00:49:15,190 --> 00:49:16,690 See on lihtsalt süntaktiline suhkur. 988 00:49:16,690 --> 00:49:19,380 989 00:49:19,380 --> 00:49:24,140 >> Niisiis, käesoleval juhul on võrdne korda c annaks meile mida? 990 00:49:24,140 --> 00:49:25,910 991 00:49:25,910 --> 00:49:28,186 Jällegi, ei ole konksuga küsimus. 992 00:49:28,186 --> 00:49:28,965 >> Õpilane: 100. 993 00:49:28,965 --> 00:49:29,300 >> PROFESSOR: 100. 994 00:49:29,300 --> 00:49:30,383 Kas midagi muutub? 995 00:49:30,383 --> 00:49:31,790 996 00:49:31,790 --> 00:49:32,290 Ei. 997 00:49:32,290 --> 00:49:37,380 998 00:49:37,380 --> 00:49:39,850 Võib-olla ma lõpuks saan parem minu sümboliga. 999 00:49:39,850 --> 00:49:42,047 >> Õpilane: OK, sorry, kuidas sa saad 100? 1000 00:49:42,047 --> 00:49:42,630 PROFESSOR: OK. 1001 00:49:42,630 --> 00:49:46,594 Nii on võrdne korda c, nii korda c. 1002 00:49:46,594 --> 00:49:48,510 Õpilane: Oh, te kasutate jaoks previous-- 1003 00:49:48,510 --> 00:49:49,135 PROFESSOR: Jah. 1004 00:49:49,135 --> 00:49:51,450 Nii et need on meie viimased väärtusi. 1005 00:49:51,450 --> 00:49:53,990 Need on, mida sa peaksid olema kasutades liigume alla, OK. 1006 00:49:53,990 --> 00:49:57,290 1007 00:49:57,290 --> 00:50:01,520 Niisiis, b on ainus asi, muutmine, eks? 1008 00:50:01,520 --> 00:50:02,910 Nii et olgem täitke kõik muu. 1009 00:50:02,910 --> 00:50:09,110 1010 00:50:09,110 --> 00:50:11,330 B. Mida b saab olema? 1011 00:50:11,330 --> 00:50:13,020 1012 00:50:13,020 --> 00:50:14,140 Olla või mitte olla. 1013 00:50:14,140 --> 00:50:18,680 1014 00:50:18,680 --> 00:50:20,240 Nii et mida see teeb? 1015 00:50:20,240 --> 00:50:21,605 Mis on täht pa teed? 1016 00:50:21,605 --> 00:50:23,280 1017 00:50:23,280 --> 00:50:25,350 >> Õpilane: Kood asukohast pa. 1018 00:50:25,350 --> 00:50:26,390 1019 00:50:26,390 --> 00:50:27,480 >> Õpilane: Ei, mitte päris. 1020 00:50:27,480 --> 00:50:29,470 Nii et see on d alles. 1021 00:50:29,470 --> 00:50:31,580 >> Õpilane: Nii b on käega väärtus aastas. 1022 00:50:31,580 --> 00:50:37,340 >> PROFESSOR: Jah, nii pa on aadressi, eks? 1023 00:50:37,340 --> 00:50:42,430 Nii, et see ütlus lahti, kus on salvestatud ja annavad sellele väärtust. 1024 00:50:42,430 --> 00:50:43,884 Mis on b? 1025 00:50:43,884 --> 00:50:44,425 Õpilane: 100. 1026 00:50:44,425 --> 00:50:46,534 PROFESSOR: 100. 1027 00:50:46,534 --> 00:50:47,450 Perfect. 1028 00:50:47,450 --> 00:50:49,879 OK, nii et arvuti on see, mis on muutumas. 1029 00:50:49,879 --> 00:50:51,170 Kõik muu jääb samaks. 1030 00:50:51,170 --> 00:50:57,160 1031 00:50:57,160 --> 00:50:58,620 Mis on arvuti saab olema? 1032 00:50:58,620 --> 00:51:00,770 1033 00:51:00,770 --> 00:51:01,580 Lihtne ülesanne. 1034 00:51:01,580 --> 00:51:03,520 1035 00:51:03,520 --> 00:51:05,990 PC on võrdne aastas ja mis on pa? 1036 00:51:05,990 --> 00:51:07,049 >> Õpilane: ampersand. 1037 00:51:07,049 --> 00:51:07,840 PROFESSOR: Perfect. 1038 00:51:07,840 --> 00:51:09,490 1039 00:51:09,490 --> 00:51:10,740 Nüüd me saada huvitav. 1040 00:51:10,740 --> 00:51:12,310 1041 00:51:12,310 --> 00:51:15,230 OK, olgem murda see maha. 1042 00:51:15,230 --> 00:51:21,110 Esiteks, milline on b korda c, sest see on lihtne osa see, eks? 1043 00:51:21,110 --> 00:51:22,360 B korda c on-- 1044 00:51:22,360 --> 00:51:23,320 >> Õpilane: 500. 1045 00:51:23,320 --> 00:51:28,880 >> PROFESSOR: Jah, nii mida see teeb, 1046 00:51:28,880 --> 00:51:33,705 kui see täht pb, mis on muutumas? 1047 00:51:33,705 --> 00:51:35,320 1048 00:51:35,320 --> 00:51:37,242 >> Õpilane: Mis on the-- 1049 00:51:37,242 --> 00:51:38,200 PROFESSOR: Mis on b? 1050 00:51:38,200 --> 00:51:41,340 Õpilane: Mis on ruum et pb osutab. 1051 00:51:41,340 --> 00:51:43,406 PROFESSOR: PB on suunatud mina-- 1052 00:51:43,406 --> 00:51:43,905 Õpilane: B. 1053 00:51:43,905 --> 00:51:46,740 PROFESSOR: B. Nii et ainus asi muutmine on b, eks. 1054 00:51:46,740 --> 00:51:50,800 Nii b korda c, 500. 1055 00:51:50,800 --> 00:51:52,367 Nii see on, mida muudab nüüd. 1056 00:51:52,367 --> 00:51:59,091 1057 00:51:59,091 --> 00:51:59,590 Külm. 1058 00:51:59,590 --> 00:52:00,340 1059 00:52:00,340 --> 00:52:00,840 Armas. 1060 00:52:00,840 --> 00:52:01,905 Te teete väga. 1061 00:52:01,905 --> 00:52:03,650 1062 00:52:03,650 --> 00:52:06,740 Olgu, murdes see maha. 1063 00:52:06,740 --> 00:52:08,050 1064 00:52:08,050 --> 00:52:09,630 C muutub, eks? 1065 00:52:09,630 --> 00:52:11,530 Nii saame täita kõik muu. 1066 00:52:11,530 --> 00:52:12,540 1067 00:52:12,540 --> 00:52:13,205 Vaatame. 1068 00:52:13,205 --> 00:52:19,125 1069 00:52:19,125 --> 00:52:19,625 OK. 1070 00:52:19,625 --> 00:52:21,420 1071 00:52:21,420 --> 00:52:24,740 Me teame, et c saab olema toode kaks numbrit, eks? 1072 00:52:24,740 --> 00:52:26,290 1073 00:52:26,290 --> 00:52:27,980 Mis kaks numbrit, kuigi? 1074 00:52:27,980 --> 00:52:28,970 >> Õpilane: ja c? 1075 00:52:28,970 --> 00:52:31,930 >> PROFESSOR: Nii on õige esimene. 1076 00:52:31,930 --> 00:52:34,385 Nii et me d viitamine p, eks? 1077 00:52:34,385 --> 00:52:35,390 1078 00:52:35,390 --> 00:52:42,870 P võrra, nii et me teame, et see saab olema 100 korda mis? 1079 00:52:42,870 --> 00:52:46,232 Times mida teeb arvuti käsk? 1080 00:52:46,232 --> 00:52:47,410 1081 00:52:47,410 --> 00:52:48,740 Punktid a. 1082 00:52:48,740 --> 00:52:55,038 Nii et 100 korda 100 on 10.000. 1083 00:52:55,038 --> 00:52:56,170 Kas see on mõistlik? 1084 00:52:56,170 --> 00:52:57,640 1085 00:52:57,640 --> 00:52:58,200 Külm. 1086 00:52:58,200 --> 00:53:00,500 Kodu venitada, poisid, viimane rida. 1087 00:53:00,500 --> 00:53:01,190 OK. 1088 00:53:01,190 --> 00:53:02,160 Mis muutuvas siin? 1089 00:53:02,160 --> 00:53:05,640 1090 00:53:05,640 --> 00:53:06,935 >> Õpilane: A. 1091 00:53:06,935 --> 00:53:09,435 PROFESSOR: A. Perfect, nii kõik muu võib jääda samaks. 1092 00:53:09,435 --> 00:53:16,210 1093 00:53:16,210 --> 00:53:16,710 OK. 1094 00:53:16,710 --> 00:53:17,970 Ja mida? 1095 00:53:17,970 --> 00:53:23,610 1096 00:53:23,610 --> 00:53:26,060 Nii et see on korda mis? 1097 00:53:26,060 --> 00:53:27,120 See on star pb. 1098 00:53:27,120 --> 00:53:29,750 1099 00:53:29,750 --> 00:53:34,490 Nii star pb tähendab siin pb, pb punkti b. 1100 00:53:34,490 --> 00:53:35,370 >> Õpilane: 500. 1101 00:53:35,370 --> 00:53:36,230 >> PROFESSOR: 500. 1102 00:53:36,230 --> 00:53:39,236 Nii et meil on 500 korda 100. 1103 00:53:39,236 --> 00:53:41,758 See on 50.000. 1104 00:53:41,758 --> 00:53:43,216 Huh! 1105 00:53:43,216 --> 00:53:45,646 Vaata seda. 1106 00:53:45,646 --> 00:53:47,982 >> Õpilane: Miks me peame ja c jaoks last-- 1107 00:53:47,982 --> 00:53:48,690 PROFESSOR: Vabandust. 1108 00:53:48,690 --> 00:53:50,080 Õpilane: Oh, OK. 1109 00:53:50,080 --> 00:53:51,600 PROFESSOR: Minu viga. 1110 00:53:51,600 --> 00:53:52,890 Palju kirjalikult. 1111 00:53:52,890 --> 00:53:53,917 1112 00:53:53,917 --> 00:53:54,500 Igaühel on hea? 1113 00:53:54,500 --> 00:53:55,630 1114 00:53:55,630 --> 00:53:56,660 Mitte liiga halb, eks? 1115 00:53:56,660 --> 00:53:58,490 Just võtab vähe kuigi läbi töötada. 1116 00:53:58,490 --> 00:54:01,080 Kui sa murda see maha, mõista, mida iga osa 1117 00:54:01,080 --> 00:54:03,197 viitab mina-- kui kõike on, 1118 00:54:03,197 --> 00:54:05,780 yes-- jaotada see, et vähe probleeme ja siis rekombineerumise, 1119 00:54:05,780 --> 00:54:07,345 ja mida saate teha mõned awesome asju. 1120 00:54:07,345 --> 00:54:08,970 Seal on vastused, kuid me tegime seda. 1121 00:54:08,970 --> 00:54:10,324 1122 00:54:10,324 --> 00:54:11,115 Pointer aritmeetika. 1123 00:54:11,115 --> 00:54:13,961 1124 00:54:13,961 --> 00:54:14,460 Ah. 1125 00:54:14,460 --> 00:54:15,510 Mu käed on kõik jahune. 1126 00:54:15,510 --> 00:54:17,970 Nii liitmisel või lahutamisel int korrigeerib pointer 1127 00:54:17,970 --> 00:54:21,890 suurusest tüüpi pointer. 1128 00:54:21,890 --> 00:54:22,940 1129 00:54:22,940 --> 00:54:28,390 Mäletan, kuidas iga tüüpi on erineva suurusega? 1130 00:54:28,390 --> 00:54:34,890 Nii nagu topelt või pika aja, kaheksa ja int on neli kuid char on üks. 1131 00:54:34,890 --> 00:54:38,360 >> Nii et mida sa teha tahad on-- üks asi meeles pidada 1132 00:54:38,360 --> 00:54:44,080 on just see, kui palju teie osuti väärtus tegelikult muudab 1133 00:54:44,080 --> 00:54:46,550 sõltub tüüpi pointer see on. 1134 00:54:46,550 --> 00:54:50,820 1135 00:54:50,820 --> 00:54:51,820 Igaüks hea on? 1136 00:54:51,820 --> 00:54:52,760 Kas ma saan kustutada seda? 1137 00:54:52,760 --> 00:54:53,440 Oleme hea? 1138 00:54:53,440 --> 00:54:53,940 Awesome. 1139 00:54:53,940 --> 00:55:01,020 1140 00:55:01,020 --> 00:55:07,501 >> Nii et kui meil on mõned pointer selle-- see on- ma olen 1141 00:55:07,501 --> 00:55:08,834 kavatse teha see int pointer. 1142 00:55:08,834 --> 00:55:10,610 1143 00:55:10,610 --> 00:55:12,760 See salvestab selle. 1144 00:55:12,760 --> 00:55:14,210 1145 00:55:14,210 --> 00:55:20,170 Kui ütlete pointer pluss üks, mida ta tegema hakkab 1146 00:55:20,170 --> 00:55:23,420 on, et see saab uuendada see suurus int 1147 00:55:23,420 --> 00:55:25,950 sest see on tüüpi pointer see on. 1148 00:55:25,950 --> 00:55:28,260 >> C-ga, kõik on väga range ja reguleeritud. 1149 00:55:28,260 --> 00:55:29,440 1150 00:55:29,440 --> 00:55:35,260 Int osuti läheb värskenduse palju ruumi int võtaks. 1151 00:55:35,260 --> 00:55:36,260 Int on neli baiti. 1152 00:55:36,260 --> 00:55:37,650 1153 00:55:37,650 --> 00:55:39,060 >> Mis oleks see muutuda? 1154 00:55:39,060 --> 00:55:40,876 1155 00:55:40,876 --> 00:55:44,390 Sa oled lihtsalt lisades neli peale seda. 1156 00:55:44,390 --> 00:55:50,040 Nüüd kursor oleks olema-- OK. 1157 00:55:50,040 --> 00:55:51,820 1158 00:55:51,820 --> 00:55:55,380 >> Nii et kui see oli char ja tegime pointer pluss üks, siis mis see oleks nüüd? 1159 00:55:55,380 --> 00:56:00,300 1160 00:56:00,300 --> 00:56:03,330 Kui see started-- teeseldes me started-- õige nüüd on 0x08. 1161 00:56:03,330 --> 00:56:04,850 1162 00:56:04,850 --> 00:56:10,850 Olgem nüüd öelda, et see oli char pointer, ja lisasime ühe. 1163 00:56:10,850 --> 00:56:11,850 Mida see muutuma? 1164 00:56:11,850 --> 00:56:14,989 1165 00:56:14,989 --> 00:56:16,030 Mitu baiti on char? 1166 00:56:16,030 --> 00:56:16,680 >> Sihtrühm: One. 1167 00:56:16,680 --> 00:56:17,304 >> SPEAKER 1: One. 1168 00:56:17,304 --> 00:56:18,309 Sihtrühm: Nii 0x09. 1169 00:56:18,309 --> 00:56:19,600 SPEAKER 1: Seega oleks üheksa. 1170 00:56:19,600 --> 00:56:22,571 1171 00:56:22,571 --> 00:56:23,820 Nii lihtsalt midagi meeles. 1172 00:56:23,820 --> 00:56:28,340 Just siis, kui sa lisada, et see ei ole lisades ühe, kui see char. 1173 00:56:28,340 --> 00:56:34,190 See lisades, kui palju baidid tüüpi, et ta on, 1174 00:56:34,190 --> 00:56:36,960 mis ongi meil see võrrand siin. 1175 00:56:36,960 --> 00:56:40,190 Nii et see on int korda suurem tüübi pointer. 1176 00:56:40,190 --> 00:56:42,850 1177 00:56:42,850 --> 00:56:44,730 >> Nii et meil on näiteks siin. 1178 00:56:44,730 --> 00:56:47,250 1179 00:56:47,250 --> 00:56:54,430 y määrati selle väärtuse, 0x4, kui me tegime y pluss võrdub üks. 1180 00:56:54,430 --> 00:56:56,830 Mis see on, mis on x, ei muutu. 1181 00:56:56,830 --> 00:56:58,610 Mida tähendab muudatus on see, mis on y. 1182 00:56:58,610 --> 00:57:04,980 Aadress salvestatakse y ajakohastatud neli sest seal on neli baiti int 1183 00:57:04,980 --> 00:57:06,097 ja see on int pointer. 1184 00:57:06,097 --> 00:57:07,290 1185 00:57:07,290 --> 00:57:07,790 >> Hea küll. 1186 00:57:07,790 --> 00:57:09,123 Nii et nüüd on meil veel üks ülesanne. 1187 00:57:09,123 --> 00:57:11,140 1188 00:57:11,140 --> 00:57:13,500 Seega on küsimus selles, milline saab printida. 1189 00:57:13,500 --> 00:57:36,710 1190 00:57:36,710 --> 00:57:37,650 Kõik ideed? 1191 00:57:37,650 --> 00:57:41,690 1192 00:57:41,690 --> 00:57:43,699 >> Sihtrühm: arv tähemärki õnnelik kass? 1193 00:57:43,699 --> 00:57:44,490 SPEAKER 1: Täpselt. 1194 00:57:44,490 --> 00:57:45,531 Nii nagu oma string. 1195 00:57:45,531 --> 00:57:47,302 1196 00:57:47,302 --> 00:57:48,260 Kas kõik said? 1197 00:57:48,260 --> 00:57:49,509 Kas me tahame kõndida läbi on? 1198 00:57:49,509 --> 00:57:50,300 1199 00:57:50,300 --> 00:57:52,010 >> Jah, OK. 1200 00:57:52,010 --> 00:57:57,385 Niisiis, mida me oleme siin-- I nagu seda nii palju. 1201 00:57:57,385 --> 00:57:59,340 Ma ei pea [Kuuldamatu] naeruväärselt. 1202 00:57:59,340 --> 00:58:01,690 >> Nii et meil on string siin õnnelik kass. 1203 00:58:01,690 --> 00:58:02,950 Armas. 1204 00:58:02,950 --> 00:58:05,080 Meil on mõned loendur me jälgida. 1205 00:58:05,080 --> 00:58:11,430 Nii et meil on mõned char * pointer et lihtsalt vahel on võrdne Str. 1206 00:58:11,430 --> 00:58:14,320 Mida see teeb, on see määrates mõned pointer 1207 00:58:14,320 --> 00:58:16,380 algust oma string. 1208 00:58:16,380 --> 00:58:19,840 Sest ma olen kindel, sest see mainiti loeng, 1209 00:58:19,840 --> 00:58:22,290 me oleme teile poisid seda andmetüüpi nimega string. 1210 00:58:22,290 --> 00:58:29,070 >> Aga tõesti stringid on lihtsalt massiivi of-- nagu char *. 1211 00:58:29,070 --> 00:58:32,330 See on kursor kamp tähemärki mis on külgnevas mällu. 1212 00:58:32,330 --> 00:58:33,680 1213 00:58:33,680 --> 00:58:36,280 Nii see lihtsalt seab ta võrdub iga string on 1214 00:58:36,280 --> 00:58:38,980 eristab kus tema esimene märk on. 1215 00:58:38,980 --> 00:58:42,710 Nii et see on lihtsalt, milles mingil hetkel võrdne stringi algust. 1216 00:58:42,710 --> 00:58:44,130 Igaüks hea on? 1217 00:58:44,130 --> 00:58:44,960 Külm. 1218 00:58:44,960 --> 00:58:49,840 >> Nii et see on dereferencing meie pointer. 1219 00:58:49,840 --> 00:58:53,760 Nii et see on tegelikult läheb annab meile raha sisse, 1220 00:58:53,760 --> 00:58:55,610 meie string, mis me räägime. 1221 00:58:55,610 --> 00:58:58,342 Ja me ütleme nii kaua, kui see ei ole null terminaator. 1222 00:58:58,342 --> 00:59:00,550 Nii et jätkame kuni saad kuni stringi lõpuni. 1223 00:59:00,550 --> 00:59:02,180 1224 00:59:02,180 --> 00:59:04,190 Uuenda oma kursorit ühe võrra. 1225 00:59:04,190 --> 00:59:09,250 Nii r, siis tegelikult värskendada ühe iga kord, sest see on paalia, 1226 00:59:09,250 --> 00:59:09,820 char *. 1227 00:59:09,820 --> 00:59:10,930 1228 00:59:10,930 --> 00:59:12,340 >> Nii et see läheb läbi minna. 1229 00:59:12,340 --> 00:59:13,290 See saab uuendada. 1230 00:59:13,290 --> 00:59:16,705 Nii et esimest korda sel jookseb, see saab olema siin h. 1231 00:59:16,705 --> 00:59:17,590 See saab uuendada. 1232 00:59:17,590 --> 00:59:18,185 >> See oleks. 1233 00:59:18,185 --> 00:59:21,310 See oleks p, y, ja nii edasi ja nii edasi. 1234 00:59:21,310 --> 00:59:22,300 Me uuendada counter. 1235 00:59:22,300 --> 00:59:26,160 Kui see jõuab lõpuks on see lihtsalt prindib, kui kaugele ta on saanud. 1236 00:59:26,160 --> 00:59:27,550 1237 00:59:27,550 --> 00:59:28,050 Jah. 1238 00:59:28,050 --> 00:59:31,475 >> Sihtrühm: Nii et see loeb ruumi kui üks, eks? 1239 00:59:31,475 --> 00:59:31,974 OK. 1240 00:59:31,974 --> 00:59:34,294 1241 00:59:34,294 --> 00:59:35,222 >> SPEAKER 1: Mõtle nii. 1242 00:59:35,222 --> 00:59:36,830 Kas see question-- 1243 00:59:36,830 --> 00:59:37,746 >> Sihtrühm: [kuuldamatu]. 1244 00:59:37,746 --> 00:59:37,968 1245 00:59:37,968 --> 00:59:38,884 >> SPEAKER 1: Ära muretse. 1246 00:59:38,884 --> 00:59:39,720 1247 00:59:39,720 --> 00:59:42,736 Seda ma teha. 1248 00:59:42,736 --> 00:59:47,710 Olgu, nii et üks asi, mida ma mõistma, et array, 1249 00:59:47,710 --> 00:59:51,736 saab ka seda ravida pointer, kuna massiivid on vaid 1250 00:59:51,736 --> 00:59:52,860 pidev laigud mälu. 1251 00:59:52,860 --> 00:59:53,970 1252 00:59:53,970 --> 00:59:56,380 >> Nii saab ravida samamoodi. 1253 00:59:56,380 --> 00:59:59,000 Saate neid töödelda koos suunanäitajaks ka. 1254 00:59:59,000 --> 01:00:04,770 Selle asemel teeb sellega juhul analoogne asi 1255 01:00:04,770 --> 01:00:07,490 oleks massiivi 0 võrdub 1. 1256 01:00:07,490 --> 01:00:08,760 1257 01:00:08,760 --> 01:00:15,210 >> Kuid samamoodi, string määratakse 1258 01:00:15,210 --> 01:00:18,740 alguseks kus tema esimene märk on, 1259 01:00:18,740 --> 01:00:22,270 massiivi määratakse kui selle esimene element on. 1260 01:00:22,270 --> 01:00:25,120 Sest me teame, et me oleme tagatud, et need 1261 01:00:25,120 --> 01:00:27,985 hakkavad olema pidev blokeerib mälu. 1262 01:00:27,985 --> 01:00:29,360 See, mis võimaldab meil seda teha. 1263 01:00:29,360 --> 01:00:31,193 Me teame, et nad on pidevalt blokeerib mälu. 1264 01:00:31,193 --> 01:00:32,230 1265 01:00:32,230 --> 01:00:36,500 >> Nii et selles asjas dereferencing lihtsalt massiiv, mis ütleb meile, 1266 01:00:36,500 --> 01:00:40,800 OK, mine algust Sinu massiiv, mis on siin. 1267 01:00:40,800 --> 01:00:42,640 Nii saab see võrdne ühe. 1268 01:00:42,640 --> 01:00:48,610 Ja sel juhul, sõltumata oma massiivi tüüp on, kui sa seda värskendada üks, 1269 01:00:48,610 --> 01:00:50,830 see on lihtsalt nagu ajakohastamine selle järgmisele indeks. 1270 01:00:50,830 --> 01:00:52,760 1271 01:00:52,760 --> 01:00:56,360 Seda saab teha, sest sa tean, mida teie massiivi. 1272 01:00:56,360 --> 01:00:59,770 Nii et ta teab, kui palju uuenda oma pointer poolt, 1273 01:00:59,770 --> 01:01:02,925 mida aadress uuendada seda nii et sa oled järgmisel pesa. 1274 01:01:02,925 --> 01:01:04,740 1275 01:01:04,740 --> 01:01:09,400 >> Nii et see on lihtsalt teistmoodi kirjutamise massiivi 0 võrdub 1 1276 01:01:09,400 --> 01:01:15,114 massiiv 1 võrdub 2, massiiv Rühma 2 võrdub 3. 1277 01:01:15,114 --> 01:01:16,780 See on lihtsalt üks viis sellest mõelda. 1278 01:01:16,780 --> 01:01:19,600 Sest nad on pidev blokeerib mälu 1279 01:01:19,600 --> 01:01:21,830 saab viidata neile kas poolt massiivi notation-- 1280 01:01:21,830 --> 01:01:24,390 mida ma isiklikult leida easier-- aga võibolla 1281 01:01:24,390 --> 01:01:27,347 Käsittelitpä see rangelt mälu aadresse. 1282 01:01:27,347 --> 01:01:28,930 Ja see on, kuidas sa teeks seda. 1283 01:01:28,930 --> 01:01:30,630 1284 01:01:30,630 --> 01:01:32,630 Liiki mitme samasuguse lahe asi, mida võiks teha 1285 01:01:32,630 --> 01:01:35,213 versus võibolla mitte midagi, mida sa oled tegelikult läheb rakendada. 1286 01:01:35,213 --> 01:01:36,960 1287 01:01:36,960 --> 01:01:38,630 >> Ma kasutan seda 61. 1288 01:01:38,630 --> 01:01:41,710 Te ilmselt ei pea muretsema liiga palju. 1289 01:01:41,710 --> 01:01:43,693 Aga kui sa oled huvitatud, võtta 61 järgmisel aastal. 1290 01:01:43,693 --> 01:01:45,269 1291 01:01:45,269 --> 01:01:46,560 Me oleme lõpusirgel poisid. 1292 01:01:46,560 --> 01:01:47,510 Ma tean, et see on pikk. 1293 01:01:47,510 --> 01:01:50,570 1294 01:01:50,570 --> 01:01:58,880 Dynamic Memory Allocation-- nii et me teame, et üks 1295 01:01:58,880 --> 01:02:01,790 asju, kui me rääkisime ajal meie esimene lõik koos, 1296 01:02:01,790 --> 01:02:04,560 me vaatasime swap funktsioon, kus oli 1297 01:02:04,560 --> 01:02:08,010 väljapoole meie peamine ülesanne. 1298 01:02:08,010 --> 01:02:14,370 Ja meil olid läbivad neid väärtusi mis olid tegelikult eksemplari. 1299 01:02:14,370 --> 01:02:20,570 >> Ja kui swap valmis täidesaatev, see lihtsalt vasakule virna. 1300 01:02:20,570 --> 01:02:22,830 Pea meeles, et meil on Kestab raami swap. 1301 01:02:22,830 --> 01:02:26,070 See jätab ja need väärtused jätan ta. 1302 01:02:26,070 --> 01:02:27,050 Ja nad olid läinud. 1303 01:02:27,050 --> 01:02:28,615 Me ei saanud midagi teha nendega ja olime kurb 1304 01:02:28,615 --> 01:02:29,989 sest me ei saa vahetada meie väärtusi. 1305 01:02:29,989 --> 01:02:31,070 1306 01:02:31,070 --> 01:02:36,560 >> Aga C, nagu ma mainisin, siis on palju võimu mälu. 1307 01:02:36,560 --> 01:02:43,310 Niisiis, mida saate teha, on teil võimalik eraldada asjad hunnik siin 1308 01:02:43,310 --> 01:02:46,830 mis jäävad sinna kuni sa neile öelda teisiti. 1309 01:02:46,830 --> 01:02:48,280 >> Nad on nagu hea lastele. 1310 01:02:48,280 --> 01:02:49,150 Nad seal viibida. 1311 01:02:49,150 --> 01:02:50,270 Nad ei jäta. 1312 01:02:50,270 --> 01:02:52,750 Nad seal, kuni olete nagu OK, võid minna ära. 1313 01:02:52,750 --> 01:02:55,920 >> Arvestades asjad virna, Kes-- nad on nagu ulakas lapsed. 1314 01:02:55,920 --> 01:02:59,160 Nad lihtsalt ära joosta, kui soovite seal olla ja siis nad on läinud. 1315 01:02:59,160 --> 01:03:00,160 Sa ei saa neid tagasi. 1316 01:03:00,160 --> 01:03:01,350 1317 01:03:01,350 --> 01:03:07,187 >> Nii hunnik on-- me ei kavatse rääkida malloc ja tasuta, mis 1318 01:03:07,187 --> 01:03:08,895 Ma olen kindel, et te poisid kuulnud loeng. 1319 01:03:08,895 --> 01:03:10,270 1320 01:03:10,270 --> 01:03:14,210 Ja see on põhimõtteliselt nii, on väga püsiv andmeid. 1321 01:03:14,210 --> 01:03:18,920 Nii saab hoida andmeid umbes nii kaua, kui soovite. 1322 01:03:18,920 --> 01:03:19,546 Mhm. 1323 01:03:19,546 --> 01:03:21,475 >> Sihtrühm: Kas sa define hunnik ja korstna? 1324 01:03:21,475 --> 01:03:24,030 Kas neile meeldib kohti panna asjad? 1325 01:03:24,030 --> 01:03:26,630 >> SPEAKER 1: Nii nad põhimõtteliselt lihtsalt-- nad 1326 01:03:26,630 --> 01:03:29,530 kuidas me nimetame lihtsalt mälu. 1327 01:03:29,530 --> 01:03:37,300 Nii hunnik on lihtsalt kohad, kus Mälu reserveeritakse dünaamiliselt 1328 01:03:37,300 --> 01:03:40,960 arvestades, korstna viitab rohkem korstnat raamid 1329 01:03:40,960 --> 01:03:45,950 mis on rohkem keskse funktsioone, mis on tegelikult töötab. 1330 01:03:45,950 --> 01:03:47,200 Sa tõesti ei ole kontrolli all. 1331 01:03:47,200 --> 01:03:50,690 >> Suur erinevus, pead kontroll üle hunnik, kui soovite. 1332 01:03:50,690 --> 01:03:52,710 Sul on vähem üle virna. 1333 01:03:52,710 --> 01:03:55,030 Stack sõltub funktsioone, mis on käivitatud, 1334 01:03:55,030 --> 01:03:58,320 ja millises järjekorras nad on joosta ja kuidas asjad tagasi. 1335 01:03:58,320 --> 01:04:01,290 Arvestades koos hunnik, kui me näeme, võib öelda, 1336 01:04:01,290 --> 01:04:06,639 OK, ma tahan, et see väärtus oleks umbes kuni ma öelda teisiti. 1337 01:04:06,639 --> 01:04:08,180 Sa ei tohi lahti saada. 1338 01:04:08,180 --> 01:04:09,300 Sa ei või seada tähtsamaks selle. 1339 01:04:09,300 --> 01:04:11,675 Sa lähed, et hoida seda umbes nii kaua, kui ma ütlen teile. 1340 01:04:11,675 --> 01:04:15,780 Sa saad olla ülemus kuhjas, arvestades, et stack-- võibolla kui sa 1341 01:04:15,780 --> 01:04:18,080 nagu finagle teed võite olla boss. 1342 01:04:18,080 --> 01:04:19,340 Aga mitte päris. 1343 01:04:19,340 --> 01:04:20,480 1344 01:04:20,480 --> 01:04:22,070 Ja tegelikult on see vaid mälestus. 1345 01:04:22,070 --> 01:04:24,260 See on lihtsalt erinevalt viidata mälu. 1346 01:04:24,260 --> 01:04:25,800 1347 01:04:25,800 --> 01:04:26,400 >> Külm. 1348 01:04:26,400 --> 01:04:28,630 Nii et, kuidas kontrollida oma mälu. 1349 01:04:28,630 --> 01:04:32,070 See on koos malloc, mis sa lähed, et saada kasutada. 1350 01:04:32,070 --> 01:04:37,100 Nii et see on lihtsalt lühike mälu eraldamisel. 1351 01:04:37,100 --> 01:04:38,459 See on kõik see on. 1352 01:04:38,459 --> 01:04:41,250 Seal on hunnik muud cool funktsioone, mis on alloc lõpus, 1353 01:04:41,250 --> 01:04:42,750 ja nad on eri asjad. 1354 01:04:42,750 --> 01:04:43,550 1355 01:04:43,550 --> 01:04:49,050 >> Nii et kui teil on vaja ladustamine mis vajab Kestab kauem oma praeguse funktsiooni, 1356 01:04:49,050 --> 01:04:51,010 et kui teie praegune funktsiooni jookseb minema, 1357 01:04:51,010 --> 01:04:55,774 sul on veel andmeid, mida sain seda, mida soovid kasutada malloc. 1358 01:04:55,774 --> 01:04:57,190 Mis sa initsialiseerida see hunnik. 1359 01:04:57,190 --> 01:05:00,140 Ja nagu ma ütlesin, ja hoida öeldes, siis hoian seda seal 1360 01:05:00,140 --> 01:05:03,050 kuni sa ütle teisiti, mis on tähtsam siin. 1361 01:05:03,050 --> 01:05:08,450 >> Nii et üks asi, mida tähele ja see on tavaliselt väga oluline, 1362 01:05:08,450 --> 01:05:13,620 on see, et Sizeof on super kasulik kasutada 1363 01:05:13,620 --> 01:05:16,440 sest sõltuvalt Masina näed, 1364 01:05:16,440 --> 01:05:22,470 see võib olla erinevas koguses mälu, et ta võtab. 1365 01:05:22,470 --> 01:05:26,870 Nii et sa alati tahad kasutada suurus nii et sa ei ole masin sõltuv, 1366 01:05:26,870 --> 01:05:30,300 nii, et oma koodi sõita iga masin. 1367 01:05:30,300 --> 01:05:32,360 >> Ja see on ainult osa kirjutamise hea koodi. 1368 01:05:32,360 --> 01:05:34,610 Kui see töötab üks masin, kuid mitte ühtegi teistega 1369 01:05:34,610 --> 01:05:36,440 kui kasulik oli oma programm? 1370 01:05:36,440 --> 01:05:38,420 Nii et tahad alati veenduge ning kasutada Sizeof. 1371 01:05:38,420 --> 01:05:41,306 >> Sihtrühm: Nii et nagu suurus 10 tolli [kuuldamatu]? 1372 01:05:41,306 --> 01:05:43,698 >> SPEAKER 1: See on suurus 10 ints. 1373 01:05:43,698 --> 01:05:44,197 yeah. 1374 01:05:44,197 --> 01:05:45,360 1375 01:05:45,360 --> 01:05:48,830 Nii et suurus ints tagasi kui palju üks int võtta. 1376 01:05:48,830 --> 01:05:51,530 Või suurus char, kuidas palju maksab üks char võtta. 1377 01:05:51,530 --> 01:05:54,150 Ja siis kui palju plokid selle sa tahad? 1378 01:05:54,150 --> 01:05:57,590 >> Nii et kui me tahame midagi et meil on võimalik salvestada 10 ints et. 1379 01:05:57,590 --> 01:06:00,240 Ja see töötab sõltumata masin, mis on lahe. 1380 01:06:00,240 --> 01:06:01,720 1381 01:06:01,720 --> 01:06:04,846 Niisiis, kuidas paljud bytes mis tegelikult annab teile? 1382 01:06:04,846 --> 01:06:06,190 Kiire matemaatika. 1383 01:06:06,190 --> 01:06:06,787 >> Sihtrühm: 40. 1384 01:06:06,787 --> 01:06:07,370 SPEAKER 1: 40. 1385 01:06:07,370 --> 01:06:07,869 Täpselt. 1386 01:06:07,869 --> 01:06:09,520 1387 01:06:09,520 --> 01:06:12,030 Nii et üks suur asi. 1388 01:06:12,030 --> 01:06:14,840 Pointer või malloc võib naasta null. 1389 01:06:14,840 --> 01:06:17,910 >> Nii et jällegi, alati kontrollida, et kas see tagastatakse null 1390 01:06:17,910 --> 01:06:19,620 Enne proovida ja midagi teha. 1391 01:06:19,620 --> 01:06:23,430 1392 01:06:23,430 --> 01:06:27,350 Kui püüad ja käivitatav see pointer nüüd, 1393 01:06:27,350 --> 01:06:29,720 see lihtsalt läheb segfault sest sa läksid ja püüdis 1394 01:06:29,720 --> 01:06:31,730 puudutada null, kui sa ei peaks olema. 1395 01:06:31,730 --> 01:06:34,000 Nii et alati kontrollida null. 1396 01:06:34,000 --> 01:06:36,075 Jällegi, kõik, mida saate teha. 1397 01:06:36,075 --> 01:06:38,300 1398 01:06:38,300 --> 01:06:39,720 >> See võib naasta null. 1399 01:06:39,720 --> 01:06:42,740 Seda saad tagasi null, kui sa oled kas läbi ruumi, või mingil põhjusel 1400 01:06:42,740 --> 01:06:44,350 ta sattus mälu viga. 1401 01:06:44,350 --> 01:06:45,890 1402 01:06:45,890 --> 01:06:47,510 Mõnikord lihtsalt tagastab null. 1403 01:06:47,510 --> 01:06:48,990 Nii et sa pead lihtsalt vaadake seda. 1404 01:06:48,990 --> 01:06:51,050 See on kõik see slide ütleb. 1405 01:06:51,050 --> 01:06:53,366 1406 01:06:53,366 --> 01:06:55,240 Ja siis, mis meil on siin on üleskutse vabastada. 1407 01:06:55,240 --> 01:07:00,550 Nii et samamoodi, et kui sa Faili avamiseks tuleb sulgeda fail, 1408 01:07:00,550 --> 01:07:04,340 kui te malloc mällu tuleb teil vabastada, et mälu. 1409 01:07:04,340 --> 01:07:06,530 Ja kutid saavad teha lahedaid asju. 1410 01:07:06,530 --> 01:07:09,624 >> Ja seal on programm, mida saab joosta kas sa oled kunagi lekib mälu. 1411 01:07:09,624 --> 01:07:11,040 Aga sa ei taha lekkima mälu. 1412 01:07:11,040 --> 01:07:11,820 See on tõesti halb. 1413 01:07:11,820 --> 01:07:13,191 1414 01:07:13,191 --> 01:07:15,020 Just segi ajama asju. 1415 01:07:15,020 --> 01:07:20,939 >> See on halb, et just nagu programmeerimine mõistlik disaini vallas. 1416 01:07:20,939 --> 01:07:22,980 Aga see on ka lihtsalt selline halb arvuti. 1417 01:07:22,980 --> 01:07:26,780 Nii lihtsalt tasuta asju kui sa malloc neid. 1418 01:07:26,780 --> 01:07:28,190 1419 01:07:28,190 --> 01:07:30,210 >> Te näete sümmeetria siin. 1420 01:07:30,210 --> 01:07:31,180 Super lihtne. 1421 01:07:31,180 --> 01:07:33,010 Just vabad ja siis Mis iganes on Sinu pointer, 1422 01:07:33,010 --> 01:07:34,843 mis iganes nime kursor on, ja see 1423 01:07:34,843 --> 01:07:36,710 hoolitseme vabastades seda sinu jaoks. 1424 01:07:36,710 --> 01:07:38,200 1425 01:07:38,200 --> 01:07:38,700 Külm. 1426 01:07:38,700 --> 01:07:40,410 1427 01:07:40,410 --> 01:07:42,530 >> Siis on meil see. 1428 01:07:42,530 --> 01:07:44,770 Nii et me lihtsalt läheb kõndida läbi selle programmi. 1429 01:07:44,770 --> 01:07:46,560 Ja siis poisid on tehtud. 1430 01:07:46,560 --> 01:07:50,240 >> Nii [kuuldamatu] lihtsalt peamine. 1431 01:07:50,240 --> 01:07:51,690 Nii et meil on mõned int * pointer. 1432 01:07:51,690 --> 01:07:53,648 Nii et meil on pointer et läheb hoidke ints. 1433 01:07:53,648 --> 01:07:54,500 1434 01:07:54,500 --> 01:07:56,170 Ja kui palju ints ta kavatseb hoida? 1435 01:07:56,170 --> 01:07:57,400 1436 01:07:57,400 --> 01:07:58,170 Lihtsalt üks. 1437 01:07:58,170 --> 01:07:59,400 1438 01:07:59,400 --> 01:08:01,100 Suurus int. 1439 01:08:01,100 --> 01:08:03,900 >> Me vaadata, kui osuti on null, sest see 1440 01:08:03,900 --> 01:08:06,130 on, me tahame öelda, ei tee midagi. 1441 01:08:06,130 --> 01:08:07,065 See on halb. 1442 01:08:07,065 --> 01:08:08,130 1443 01:08:08,130 --> 01:08:12,130 Nii et me trükkida mõni viga välja mälu, kõige sagedamini tagasi 1 1444 01:08:12,130 --> 01:08:14,260 kui kutid kasutatakse. 1445 01:08:14,260 --> 01:08:17,390 >> Ja siis on meil siin, meil dereference meie pointer. 1446 01:08:17,390 --> 01:08:22,840 Nii et see tähendab me ei kavatse hoida midagi asukohas meile antud. 1447 01:08:22,840 --> 01:08:24,350 1448 01:08:24,350 --> 01:08:30,830 Int * pointer või malloc, tagastab aadress, kus ta tühistas selle 1449 01:08:30,830 --> 01:08:31,750 mälu teile. 1450 01:08:31,750 --> 01:08:32,830 1451 01:08:32,830 --> 01:08:34,800 Nii et see on põhimõtteliselt andes sulle like-- kui te 1452 01:08:34,800 --> 01:08:38,149 mõtle kamp maja naabruses 1453 01:08:38,149 --> 01:08:40,640 mis sa tahad panna oma mööbel, malloc 1454 01:08:40,640 --> 01:08:43,850 on nagu OK, saad minna majja kolm. 1455 01:08:43,850 --> 01:08:45,800 Ja see annab sulle aadress maja kolm. 1456 01:08:45,800 --> 01:08:48,775 >> Nii et see just nüüd, see pointer kauplustes aadress 1457 01:08:48,775 --> 01:08:50,149 salvestab aadress oma maja. 1458 01:08:50,149 --> 01:08:51,470 1459 01:08:51,470 --> 01:08:54,640 * Ptr vahendid, OK, ma olen minu maja. 1460 01:08:54,640 --> 01:08:55,326 Külm. 1461 01:08:55,326 --> 01:08:56,580 Mul on vaja saada mõned täisarv. 1462 01:08:56,580 --> 01:08:59,229 >> Nii et sa palud, et keegi teile mööbel nüüd. 1463 01:08:59,229 --> 01:09:00,430 Nii saad mõned int. 1464 01:09:00,430 --> 01:09:05,100 Ja see paneb ta oma pointer kus see osutab. 1465 01:09:05,100 --> 01:09:08,670 >> Ja siis lihtsalt pildid läbi, siis kantakse kõikjal. 1466 01:09:08,670 --> 01:09:11,060 Ja veel alles. 1467 01:09:11,060 --> 01:09:15,649 Nii et see on nagu sa läksid sellele aadress ja sa nägid, mis oli seal. 1468 01:09:15,649 --> 01:09:17,120 1469 01:09:17,120 --> 01:09:17,630 Cool? 1470 01:09:17,630 --> 01:09:20,174 >> Ja siis muidugi me vabastada oma pointer. 1471 01:09:20,174 --> 01:09:21,590 Ärge unustage, et tasuta kursor. 1472 01:09:21,590 --> 01:09:22,933 Ära unusta, et kontrollida null. 1473 01:09:22,933 --> 01:09:24,349 Ärge unustage, et tasuta kursor. 1474 01:09:24,349 --> 01:09:27,270 Teil on kaks asja, mida mäletan see või et sa peaksid meeles pidama. 1475 01:09:27,270 --> 01:09:27,770 Jah. 1476 01:09:27,770 --> 01:09:31,590 Sihtrühm: [kuuldamatu] stuff niimoodi, char * s. 1477 01:09:31,590 --> 01:09:33,760 Miks me ei vabastama need? 1478 01:09:33,760 --> 01:09:34,529 >> SPEAKER 1: Hm? 1479 01:09:34,529 --> 01:09:36,450 >> Sihtrühm: Kas need nagu stringid? 1480 01:09:36,450 --> 01:09:39,160 Sa ütlesid, et stringid on nagu char * s, eks? 1481 01:09:39,160 --> 01:09:41,200 Nii et miks me ei tasuta stringid? 1482 01:09:41,200 --> 01:09:43,204 >> SPEAKER 1: Sa ainult vaba, kui sa oled mallocing. 1483 01:09:43,204 --> 01:09:44,620 Sihtrühm: Oh, kui sa mallocing. 1484 01:09:44,620 --> 01:09:47,399 SPEAKER 1: Nii malloc ja tasuta kahte asja 1485 01:09:47,399 --> 01:09:49,000 et sa peaksid alati koos. 1486 01:09:49,000 --> 01:09:51,630 f avatud, f lähedal, kaks asja siis peaks olema koos. 1487 01:09:51,630 --> 01:09:54,471 Neil kahel juhul kontrollige for null. 1488 01:09:54,471 --> 01:09:54,971 Jah. 1489 01:09:54,971 --> 01:09:57,130 >> Sihtrühm: Nii et tasuta on vaid võimaldades midagi muud 1490 01:09:57,130 --> 01:09:59,690 ladustatakse sinna pärast see programm on seda kasutanud? 1491 01:09:59,690 --> 01:10:01,946 >> SPEAKER 1: See on lihtsalt öeldes: OK, ma olen teinud seda. 1492 01:10:01,946 --> 01:10:03,320 Sul ei ole vaja, et hoida seda ümber. 1493 01:10:03,320 --> 01:10:05,340 1494 01:10:05,340 --> 01:10:08,190 Muidu arvuti lihtsalt meeldib proovida ja hoida seda seal. 1495 01:10:08,190 --> 01:10:10,910 Ja siis can't-- ta jookseb mällu küsimusi hiljem. 1496 01:10:10,910 --> 01:10:13,660 Tahad alati tasuta, sest ta ütleb arvuti, OK, ma olen 1497 01:10:13,660 --> 01:10:15,190 teha selle koha mälu. 1498 01:10:15,190 --> 01:10:17,190 Sul võib olla see tagasi minu jaoks kasutada hiljem. 1499 01:10:17,190 --> 01:10:19,250 1500 01:10:19,250 --> 01:10:20,500 Cool? 1501 01:10:20,500 --> 01:10:21,320 Jah. 1502 01:10:21,320 --> 01:10:26,950 >> Sihtrühm: Nii et me kasutasime% d lihtsalt sest kahekordne tuleb tagasi, 1503 01:10:26,950 --> 01:10:28,330 või miks on-- [kuuldamatu]. 1504 01:10:28,330 --> 01:10:30,170 1505 01:10:30,170 --> 01:10:31,620 >> Sihtrühm: Kas te kasutate% i? 1506 01:10:31,620 --> 01:10:32,760 >> SPEAKER 1: Võite kasutada% i. 1507 01:10:32,760 --> 01:10:35,052 1508 01:10:35,052 --> 01:10:36,135 Kõik viimase hetke küsimusi? 1509 01:10:36,135 --> 01:10:38,310 1510 01:10:38,310 --> 01:10:38,985 Lase käia. 1511 01:10:38,985 --> 01:10:40,610 Sihtrühm: Ma lihtsalt on kiire küsimus. 1512 01:10:40,610 --> 01:10:50,200 Nii PTR muutuv, see on-- sarnane, int * ptr = malloc, 1513 01:10:50,200 --> 01:10:54,142 See on lihtsalt öeldes see on osutades koht memory-- 1514 01:10:54,142 --> 01:10:55,600 SPEAKER 1: Kas sa tahad [kuuldamatu]? 1515 01:10:55,600 --> 01:10:58,050 Sihtrühm: --that on suurus of-- ei, see on OK. 1516 01:10:58,050 --> 01:11:01,292 Aga see on lihtsalt osutades koht mälu, mis on nagu neli baiti. 1517 01:11:01,292 --> 01:11:02,000 SPEAKER 1: Õigus. 1518 01:11:02,000 --> 01:11:03,030 1519 01:11:03,030 --> 01:11:07,070 Nii malloc suurus int ütleb, OK, ma lähen äravooluga 1520 01:11:07,070 --> 01:11:08,780 leida nelja baiti mälu teile. 1521 01:11:08,780 --> 01:11:10,700 Kui ta leiab, et neli baiti mälu, 1522 01:11:10,700 --> 01:11:14,030 annab sulle tagasi aadress kus see algab, 1523 01:11:14,030 --> 01:11:16,160 ja see, mida hoitakse aastal osuti või PTR. 1524 01:11:16,160 --> 01:11:17,510 1525 01:11:17,510 --> 01:11:18,010 Väga hea. 1526 01:11:18,010 --> 01:11:18,742 1527 01:11:18,742 --> 01:11:21,700 Te vaatate vähem segaduses, kui kõige inimesed, kui ma rääkida pointer, 1528 01:11:21,700 --> 01:11:23,670 nii et ma olen vist päris hea kohe. 1529 01:11:23,670 --> 01:11:24,520 >> Hea küll. 1530 01:11:24,520 --> 01:11:27,960 Nagu alati, kutid peaks olema kõik saanud oma pset2 klassid nüüdseks. 1531 01:11:27,960 --> 01:11:32,769 Ma tean, et on olnud mõningaid logisev asjad, kus ta ütleb, valem ei kehti 1532 01:11:32,769 --> 01:11:33,310 või midagi. 1533 01:11:33,310 --> 01:11:36,166 Kui te saate, et kõik Sinu klassid kehtivad minu poolel. 1534 01:11:36,166 --> 01:11:38,040 Nii et võin saata teile ekraanikuvasid oma klassid. 1535 01:11:38,040 --> 01:11:39,011 1536 01:11:39,011 --> 01:11:41,760 Lihtsalt andke mulle teada, kui ka siis, kui sa oled puuduvad kõik klassid või midagi 1537 01:11:41,760 --> 01:11:43,060 ei tundu loogiline. 1538 01:11:43,060 --> 01:11:43,720 Tulge minu juurde. 1539 01:11:43,720 --> 01:11:44,830 1540 01:11:44,830 --> 01:11:48,830 >> Ma olen super uhke teie üle poisid juba, et hoida see üles. 1541 01:11:48,830 --> 01:11:50,640 Ja on hea oma ülejäänud nädal. 1542 01:11:50,640 --> 01:11:53,440 Olen kindel, et ma näen mõned teie juures tööajal. 1543 01:11:53,440 --> 01:11:55,414