1 00:00:00,000 --> 00:00:04,875 2 00:00:04,875 --> 00:00:05,750 ANDI PENG: Okei. 3 00:00:05,750 --> 00:00:08,240 Tere tulemast nädalal neli punkti. 4 00:00:08,240 --> 00:00:10,280 See on ilus päev siin New Haven 5 00:00:10,280 --> 00:00:14,370 nii et ma tõesti arvan, et hõre hajumist lapsed, et 6 00:00:14,370 --> 00:00:17,530 liitus minuga osa täna, aitäh. 7 00:00:17,530 --> 00:00:21,517 >> Nii kiiresti, lihtsalt enne kui me alustada, tänase päevakorra. 8 00:00:21,517 --> 00:00:23,600 Me ei lähe üle paari lühikese teateid. 9 00:00:23,600 --> 00:00:26,224 Meil on tõesti hull ajakava tulemas järgmise kahe nädala jooksul 10 00:00:26,224 --> 00:00:28,010 või nii, et me läheme üle, et. 11 00:00:28,010 --> 00:00:30,410 Teiseks, ma tean igaühe lemmik topic-- 12 00:00:30,410 --> 00:00:33,572 Ma olen kindel, et see sulas meelt ajal loeng, ärge muretsege, 13 00:00:33,572 --> 00:00:34,780 Ma ikka selline ei saa aru. 14 00:00:34,780 --> 00:00:35,444 Kõik on korras. 15 00:00:35,444 --> 00:00:36,110 See oli nali. 16 00:00:36,110 --> 00:00:37,450 Ma tegelikult ei saa aru. 17 00:00:37,450 --> 00:00:40,234 Aga ma veenduge, et kutid saavad seda ka. 18 00:00:40,234 --> 00:00:42,400 Nii et me läheme veeta tõesti, tõesti hea summa 19 00:00:42,400 --> 00:00:44,020 aega rääkinud pointer täna. 20 00:00:44,020 --> 00:00:47,012 Nagu näete, Candy jutt on suur täna. 21 00:00:47,012 --> 00:00:49,220 Me tõesti hoida selle-- Jah, see on õige. 22 00:00:49,220 --> 00:00:49,890 Jätkake kommi. 23 00:00:49,890 --> 00:00:51,556 Ma lähen edasi neid ümber kohe. 24 00:00:51,556 --> 00:00:55,150 25 00:00:55,150 --> 00:00:56,510 Ära muretse. 26 00:00:56,510 --> 00:00:59,570 Me läheme tõesti proovida hoida inimeste veresuhkru 27 00:00:59,570 --> 00:01:04,390 up, sest et aju läheb põlema mõned hapniku täna, sest viiteid 28 00:01:04,390 --> 00:01:05,652 on tõesti väga raske. 29 00:01:05,652 --> 00:01:08,360 Siis me ei kavatse rääkida mäluhaldus millist on 30 00:01:08,360 --> 00:01:09,487 samas vallas. 31 00:01:09,487 --> 00:01:11,570 Ja me ei kavatse liikuda edasi suunamine ja faili 32 00:01:11,570 --> 00:01:15,297 I / O, mis on vaid süntaks, kena asju, mida me peaksime rääkima. 33 00:01:15,297 --> 00:01:17,130 Ja siis lõpuks, ma olen läheb jälle proovida 34 00:01:17,130 --> 00:01:19,070 lahkuda, nagu 10, 15 minutit pset4. 35 00:01:19,070 --> 00:01:21,820 See on tingitud mõne päeva nii et me oleme läheb tõesti selline teile 36 00:01:21,820 --> 00:01:24,850 mõned kasulikke näpunäiteid kui te juba sai alguse sellest. 37 00:01:24,850 --> 00:01:26,141 Cool. 38 00:01:26,141 --> 00:01:26,640 OKEI. 39 00:01:26,640 --> 00:01:30,710 Nii mõned teated selle järgmiseks nädalaks. 40 00:01:30,710 --> 00:01:31,805 Hindamisviis. 41 00:01:31,805 --> 00:01:33,930 Ma ei tea tegelikult on Siinkohal, kui palju sa 42 00:01:33,930 --> 00:01:37,180 Poisid on tegelikult minu section-- sa OK seal? 43 00:01:37,180 --> 00:01:38,020 OKEI. 44 00:01:38,020 --> 00:01:40,150 Aga neile, kes on minu osa, 45 00:01:40,150 --> 00:01:42,180 Vaid paar kommenteerib mune. 46 00:01:42,180 --> 00:01:44,899 >> Esiteks, tõesti head tööd kommenteerides. 47 00:01:44,899 --> 00:01:47,940 Neile, kes ei kommenteeri, siis tean, kes sa oled, sest sa ilmselt 48 00:01:47,940 --> 00:01:50,610 sain mõned stiili punktid dinged sel nädalal. 49 00:01:50,610 --> 00:01:53,920 Lihtsalt veenduge, et kõik teie programme lisada paar kommentaari. 50 00:01:53,920 --> 00:01:56,960 Tõesti, stiil on väga lihtne saada õige punkte ulatus. 51 00:01:56,960 --> 00:01:58,710 Nii et me lihtsalt teha kindel, et sa oled selline 52 00:01:58,710 --> 00:02:03,770 lisada lühikirjeldus kõik Sinu programme, mida sa teed. 53 00:02:03,770 --> 00:02:09,190 >> Secondly-- see on suur probleem palju TAS möödunud week-- 54 00:02:09,190 --> 00:02:12,020 nii, et sa oled üleslaadimist õigesse kausta korrektselt 55 00:02:12,020 --> 00:02:13,370 nimega programme. 56 00:02:13,370 --> 00:02:16,820 Ja põhjus, miks me küsime seda on sest meil käigus hinde 57 00:02:16,820 --> 00:02:20,820 tegelikult käivitada skripti oma kood, mis laeb automaatselt 58 00:02:20,820 --> 00:02:24,780 kõik oma psets, jookseb õigsuse testid neid kõiki, 59 00:02:24,780 --> 00:02:27,550 ja siis laeb oma skoori otse gradebook. 60 00:02:27,550 --> 00:02:32,140 Kuid igal hetkel, kui te nimeks oma programmi valesti, 61 00:02:32,140 --> 00:02:34,510 see ajab kogu Programm kõigile. 62 00:02:34,510 --> 00:02:37,280 >> Ja nii õiguspärane, see ilus script 63 00:02:37,280 --> 00:02:40,260 et me oleme kirjutanud, et ei Kõik see meile täiesti 64 00:02:40,260 --> 00:02:43,070 jookseb kui sul ei ole oma programmi nimega õigesti. 65 00:02:43,070 --> 00:02:46,020 Nii lihtsalt üles laadida õige kausta, on need õiged andmed, 66 00:02:46,020 --> 00:02:47,372 ja siis elu on hea. 67 00:02:47,372 --> 00:02:49,080 Ma saan oma psets tagasi kutid varem 68 00:02:49,080 --> 00:02:51,110 sest ma saan hinne kiiresti. 69 00:02:51,110 --> 00:02:52,461 Jah. 70 00:02:52,461 --> 00:02:52,960 OKEI. 71 00:02:52,960 --> 00:02:57,870 Ja ka me ei kavatse rääkida about-- Yale on tõesti 72 00:02:57,870 --> 00:02:59,950 Veider ajakava nende järgmise kahe nädala jooksul. 73 00:02:59,950 --> 00:03:02,460 Nii et need kutid on Harvard, see ei kehti. 74 00:03:02,460 --> 00:03:05,585 Aga meile armas lapsed Yale'i meil midagi, mida nimetatakse sügisel break-- kahju, 75 00:03:05,585 --> 00:03:08,430 Harvard-- kus meil Viie päeva pealt kooli. 76 00:03:08,430 --> 00:03:12,270 Ja kuigi see on armas, see Selline messide up meie pset rütmi 77 00:03:12,270 --> 00:03:14,104 sest psets on tingitud neljapäeval, reedel. 78 00:03:14,104 --> 00:03:16,020 Ja kui me ei ole siin Neljapäeval, reedel, me 79 00:03:16,020 --> 00:03:18,640 ei ole töö kutid kavas neljapäeval, reedel. 80 00:03:18,640 --> 00:03:23,832 >> Mida me teeme on-- me oleme nagu 99% kindel, et see on see, mis juhtub, 81 00:03:23,832 --> 00:03:25,540 võib esineda muuta, kuid ma arvan, et see on 82 00:03:25,540 --> 00:03:28,460 subtle-- on läheme have-- sel nädalal on normaalne. 83 00:03:28,460 --> 00:03:32,130 Nii et meil on meie jagu Teisipäeviti järgneb tööaega 84 00:03:32,130 --> 00:03:35,190 kogu ülejäänud nädal ja siis pset4 on tingitud reedel. 85 00:03:35,190 --> 00:03:38,180 Siis, kui kutid kõik teame, kui Meeldetuletus kutid eelmisel nädalal, 86 00:03:38,180 --> 00:03:41,700 meil viktoriin 0 tulemas kolmapäeval. 87 00:03:41,700 --> 00:03:44,400 >> Ja nii on õpilane ise, Ma tean, et väga vähesed teist 88 00:03:44,400 --> 00:03:49,110 poisid tegelikult töötavad pset5 kaks päeva enne oma viktoriini. 89 00:03:49,110 --> 00:03:51,110 Nii et me läheme ilmselt lõpuks teeme tähendab, 90 00:03:51,110 --> 00:03:54,840 et esmaspäeva õhtul, me ei kavatse tegelikult, 5:30-07:00, 91 00:03:54,840 --> 00:03:59,970 on lühike ülevaade istungil teemasid. 92 00:03:59,970 --> 00:04:02,040 Selge, kas see on vaatab istungi või Q & A. 93 00:04:02,040 --> 00:04:04,650 See on mingisugune ülevaade vorm, kus me katta 94 00:04:04,650 --> 00:04:06,640 mõned teemad olulised kutid. 95 00:04:06,640 --> 00:04:09,886 >> Ja siis esmaspäeval ja teisipäeval ööd Selle nädala 8:00-11:00, 96 00:04:09,886 --> 00:04:11,260 me ei kavatse olla tööaega. 97 00:04:11,260 --> 00:04:14,500 Need tööaega toob kõige suurema tõenäoliselt rohkem just tulla, 98 00:04:14,500 --> 00:04:17,564 küsi ajutise töötaja oma küsimusi mis tahes mõisted oled segaduses, 99 00:04:17,564 --> 00:04:20,480 ja nad omamoodi minna üle teiega ja läbivaatamise mõisted viktoriini. 100 00:04:20,480 --> 00:04:22,920 Quiz 0, kui sa oled Esmaspäeval, kolmapäeval osas 101 00:04:22,920 --> 00:04:26,480 on kolmapäeva jooksul class-- kolmapäeval ajal klassis. 102 00:04:26,480 --> 00:04:29,530 Ja siis, kui sa oled Teisipäeval, neljapäeval osa, 103 00:04:29,530 --> 00:04:32,577 saab ka tunni ajal neljapäeval. 104 00:04:32,577 --> 00:04:34,410 Sa ei saa tõesti valida milline sa minna. 105 00:04:34,410 --> 00:04:35,640 Kui oled esmaspäeval, kolmapäeval, sa pead minema kolmapäeval. 106 00:04:35,640 --> 00:04:38,056 Kui oled teisipäeval, neljapäeval sa pead minema neljapäeval. 107 00:04:38,056 --> 00:04:42,277 Aga siis, et öösel, Meie armas töötajaid, siis 108 00:04:42,277 --> 00:04:45,360 on hiiglaslik viktoriin liigitamise poole mis me jõuame oma hinded sulle tagasi 109 00:04:45,360 --> 00:04:46,190 Sel ööl. 110 00:04:46,190 --> 00:04:46,900 Mis ajal? 111 00:04:46,900 --> 00:04:51,190 Ebaselge, kes teab, kuid see tagasi teile 24 tunni jooksul 112 00:04:51,190 --> 00:04:53,700 nii et kutid loodetavasti mõned tagasisidet reedel. 113 00:04:53,700 --> 00:04:55,870 >> Ja siis on meil tõesti hull nädal. 114 00:04:55,870 --> 00:05:00,330 Nii pset5 on üks raskem psets aastas. 115 00:05:00,330 --> 00:05:03,370 Nii kahju poisid. 116 00:05:03,370 --> 00:05:06,520 Mida me ei kavatse proovida teha, on meil plaanis teha 117 00:05:06,520 --> 00:05:08,380 mõned tegelikku toetust, et nädalavahetusel. 118 00:05:08,380 --> 00:05:12,970 Sest, nagu kutid näha, pset on tingitud enne langemist murda. 119 00:05:12,970 --> 00:05:16,760 Meil ei ole toetust kutid sügisel murda 120 00:05:16,760 --> 00:05:18,897 ja nii me tõesti selline tahan fraasi seda, 121 00:05:18,897 --> 00:05:21,230 lähme selle üle, kus, Teeme tõesti väga raske, 122 00:05:21,230 --> 00:05:25,380 Nende kahe järgmise nädala, saada see viktoriin ja lisada need kaks psets teha 123 00:05:25,380 --> 00:05:29,650 ja siis poisid on kena lõõgastav seitse päeva mõtlemata CS. 124 00:05:29,650 --> 00:05:33,750 >> Nii et selleks, et juhtuda, oleme ilmselt 125 00:05:33,750 --> 00:05:36,870 Liigutatav minu osa pühapäeva pärastlõunal. 126 00:05:36,870 --> 00:05:39,070 Tuleb filmitud seega pole mured, kui sa ei saa tulla. 127 00:05:39,070 --> 00:05:41,595 Aga online filmimine hakkab seal ja kättesaadav 128 00:05:41,595 --> 00:05:47,630 nii et teiega on pühapäeval, Esmaspäev, teisipäev, töö pset5. 129 00:05:47,630 --> 00:05:50,205 Ja siis on sügisel puruneda, ükski CS ja siis 130 00:05:50,205 --> 00:05:51,830 me tuleme tagasi ja tagasi lihvima. 131 00:05:51,830 --> 00:05:54,926 >> Aga see saab olema armas nädalas sügisel murda 132 00:05:54,926 --> 00:05:58,050 ja me tõesti tahame, et oleks stress tasuta kõigile võimalikult mis 133 00:05:58,050 --> 00:06:02,620 Seetõttu kolisime pset olla tingitud enne langemist murda, mitte pärast. 134 00:06:02,620 --> 00:06:07,601 Kuna it's-- ma mõtlen, et ma selline tunne nagu see vastuollu eesmärgiga võttes 135 00:06:07,601 --> 00:06:10,850 tähtaja pärast langust murda, kui seal on ei toeta niikuinii sügisel murda. 136 00:06:10,850 --> 00:06:14,670 Nii et see on rather-- ma arvan me tahaks pigem keskenduda nüüd. 137 00:06:14,670 --> 00:06:16,950 Kas kellelgi on küsimusi sellest ajakava? 138 00:06:16,950 --> 00:06:17,830 Midagi segane? 139 00:06:17,830 --> 00:06:18,330 Jah. 140 00:06:18,330 --> 00:06:20,944 >> Sihtrühm: Kas meil on veel loengu 21.? 141 00:06:20,944 --> 00:06:21,610 ANDI PENG: Jah. 142 00:06:21,610 --> 00:06:26,421 Nii 21., seal saab olema loeng, mis on live Harvardi. 143 00:06:26,421 --> 00:06:29,170 Ma ei tea, kui David on filmimine või kui ta on tegelikult õpetamiseks, 144 00:06:29,170 --> 00:06:32,430 kuid see saab olema saadaval Online kutid juurdepääsu. 145 00:06:32,430 --> 00:06:35,510 Nii lihtsalt veendumaks, et kitsenduse tund kuskil sügisel murda 146 00:06:35,510 --> 00:06:39,375 nii kutid ei saagi üles, et loeng. 147 00:06:39,375 --> 00:06:39,875 Jah? 148 00:06:39,875 --> 00:06:40,300 >> Sihtrühm: Jah. 149 00:06:40,300 --> 00:06:40,422 Vabandust. 150 00:06:40,422 --> 00:06:41,280 Ma sain siin couple-- 151 00:06:41,280 --> 00:06:41,640 >> ANDI PENG: Ära muretse. 152 00:06:41,640 --> 00:06:42,556 Siin, võta kommi. 153 00:06:42,556 --> 00:06:45,350 154 00:06:45,350 --> 00:06:47,800 >> Sihtrühm: Hei, Ma sain selle. 155 00:06:47,800 --> 00:06:53,869 Nii lihtsalt sulgege, mitte homme, vaid Kolmapäeval pärast, et meil on viktoriini. 156 00:06:53,869 --> 00:06:54,660 ANDI PENG: Õige. 157 00:06:54,660 --> 00:06:59,207 Sihtrühm: Ja see on- Mis formaadis viktoriini? 158 00:06:59,207 --> 00:06:59,790 ANDI PENG: Oh. 159 00:06:59,790 --> 00:07:03,870 Nii me saadame välja talle, et hõlmab kõiki, et põhjalikumalt. 160 00:07:03,870 --> 00:07:06,590 Aga sisuliselt see lihtsalt katab põhilised teemad on juba kaetud 161 00:07:06,590 --> 00:07:09,042 esimesel poolel poolel. 162 00:07:09,042 --> 00:07:12,250 Me peame toimuvad kohtumised ja küsimus ja vastused nii ei muretse selle pärast. 163 00:07:12,250 --> 00:07:14,107 Aga me minema üle, et liiga. 164 00:07:14,107 --> 00:07:16,940 Sihtrühm: Kas see saab olla, me tuua meie arvutid ja koodi there-- 165 00:07:16,940 --> 00:07:17,140 ANDI PENG: Ei 166 00:07:17,140 --> 00:07:20,130 See saab olema kutid kirjalikult ja küsimustele vastamine käsitsi. 167 00:07:20,130 --> 00:07:21,160 >> Sihtrühm: Oh. 168 00:07:21,160 --> 00:07:23,160 >> ANDI PENG: Nii anname välja tavade ja värki 169 00:07:23,160 --> 00:07:26,420 nii kutid tahavad olla minna tagasi kirjutada Mario käsitsi lihtsalt 170 00:07:26,420 --> 00:07:28,100 veendumaks, et poisid on idee, kuidas seda teha. 171 00:07:28,100 --> 00:07:29,933 Sest mõnikord, kui Sa kirjutad käsitsi teil 172 00:07:29,933 --> 00:07:32,656 unusta semikoolonid ja värki ja see on tõesti halb. 173 00:07:32,656 --> 00:07:34,156 Sihtrühm: Ei, et olla [kuuldamatu]? 174 00:07:34,156 --> 00:07:38,290 Like, te saate semikooloniga your-- 175 00:07:38,290 --> 00:07:40,270 >> ANDI PENG: Jah ja ei. 176 00:07:40,270 --> 00:07:43,170 Me räägime põhjalikumalt selle kohta, kuidas viktoriin paigutus on 177 00:07:43,170 --> 00:07:44,550 ja kuidas me kavatseme hinne. 178 00:07:44,550 --> 00:07:47,425 Aga põhimõtteliselt, lihtsalt tean, et Üldvormingu läheb sul 179 00:07:47,425 --> 00:07:49,930 poisid kas tõlgendades code-- vastates põhiküsimused. 180 00:07:49,930 --> 00:07:51,370 Kui ma küsisin teilt, mis on raamatukogu? 181 00:07:51,370 --> 00:07:53,450 Te peaksite teadma, mida teek teeb ja üles kirjutama. 182 00:07:53,450 --> 00:07:56,283 Või võib öelda, kirjutada programm, mis prindib Hello World ekraani. 183 00:07:56,283 --> 00:08:01,140 Te ei kirjuta, int main void printf hello world semikooloniga. 184 00:08:01,140 --> 00:08:01,908 Jah. 185 00:08:01,908 --> 00:08:04,398 >> Sihtrühm: Nii see ei lähe olla kuskil [kuuldamatu] 186 00:08:04,398 --> 00:08:05,900 raskusastmega probleemi seada? 187 00:08:05,900 --> 00:08:06,170 >> ANDI PENG: Ei 188 00:08:06,170 --> 00:08:06,380 Ei. 189 00:08:06,380 --> 00:08:07,046 Me won't-- yeah. 190 00:08:07,046 --> 00:08:10,030 Kirjutage tervikuna on Mängu 15. 20 minutiga, minna. 191 00:08:10,030 --> 00:08:12,120 Ei, see ei ole nii. 192 00:08:12,120 --> 00:08:12,801 Ei. 193 00:08:12,801 --> 00:08:13,342 Sihtrühm: OK. 194 00:08:13,342 --> 00:08:15,326 Nii et on kolmapäeval. 195 00:08:15,326 --> 00:08:19,017 Sel nädalal on meil ka on kõige raskem probleem seada? 196 00:08:19,017 --> 00:08:19,600 ANDI PENG: Ei 197 00:08:19,600 --> 00:08:22,970 Nii et probleem seada tõttu päev enne langemist murda. 198 00:08:22,970 --> 00:08:25,690 Schedule-- e-posti tegelikult saata 199 00:08:25,690 --> 00:08:27,232 20 minutit tagasi seoses kõigi käesoleva. 200 00:08:27,232 --> 00:08:28,689 Nii kutid lihtsalt vaadata oma e-kirju. 201 00:08:28,689 --> 00:08:29,430 See oleks seal. 202 00:08:29,430 --> 00:08:30,060 Jah. 203 00:08:30,060 --> 00:08:31,701 Ära muretse. 204 00:08:31,701 --> 00:08:32,200 Cool. 205 00:08:32,200 --> 00:08:34,900 206 00:08:34,900 --> 00:08:38,900 >> Iga üldised küsimused Teated, liigitamine, viktoriinid, 207 00:08:38,900 --> 00:08:41,659 Enne kui me sukelduda otse viiteid, mis tarbib 208 00:08:41,659 --> 00:08:45,060 enamus meie osa ajast täna? 209 00:08:45,060 --> 00:08:47,030 Cool. 210 00:08:47,030 --> 00:08:47,530 Hästi. 211 00:08:47,530 --> 00:08:50,905 Nii tegi kutid kõik vaatavad seda lovely-- Ma ei tea, mida nad nimetavad seda. 212 00:08:50,905 --> 00:08:53,490 Asi, kus claymation puhus ennast üles, sest see 213 00:08:53,490 --> 00:08:54,820 ei kasuta osuti õigesti. 214 00:08:54,820 --> 00:08:57,629 Noh, teie programm läheb ilmselt löök ise üles, kui sul 215 00:08:57,629 --> 00:08:59,170 ärge kasutage vihjeid õigesti ka. 216 00:08:59,170 --> 00:09:01,250 Nii et me kavatseme teha kindel, et ei juhtu. 217 00:09:01,250 --> 00:09:04,810 >> Täna me ei kavatse teha mõned pointer lõbus. 218 00:09:04,810 --> 00:09:08,970 Ma lähen üle asju nii ladusalt kui ma arvan 219 00:09:08,970 --> 00:09:10,790 on võimalik väike aja jooksul. 220 00:09:10,790 --> 00:09:14,592 Aga seal on lihtsalt nii palju, et katta et ma tõesti tahan teiega, 221 00:09:14,592 --> 00:09:17,300 kui te ei saa aru midagi, mitte ainult mulle edasi. 222 00:09:17,300 --> 00:09:18,580 Sest kui sa seda ei tee mõista midagi, 223 00:09:18,580 --> 00:09:21,329 sa oled ilmselt ei kavatse aru midagi ütlen pärast seda. 224 00:09:21,329 --> 00:09:23,310 Nii et palun mind peatada ja esitada küsimuse. 225 00:09:23,310 --> 00:09:25,380 Sest see igasugu lumepalle koos. 226 00:09:25,380 --> 00:09:27,800 Like, viiteid viivad mälu kujunevad muid asju. 227 00:09:27,800 --> 00:09:31,710 Ja kui sa ei saa aru, viiteid, mind peatada ja me sellest aru saada 228 00:09:31,710 --> 00:09:35,070 ja elu saab trahvi. 229 00:09:35,070 --> 00:09:35,680 >> Cool. 230 00:09:35,680 --> 00:09:39,050 Niisiis, kuidas paljud kutid loeng, kui David mainitud suunanäitajaks, 231 00:09:39,050 --> 00:09:42,050 Sinu aju selline muutus kaller-O? 232 00:09:42,050 --> 00:09:42,550 Jah. 233 00:09:42,550 --> 00:09:44,190 Väga hea. 234 00:09:44,190 --> 00:09:46,900 Me läheme püüdma de-kaller-O oma ajusid täna. 235 00:09:46,900 --> 00:09:50,300 Me läheme tõesti süstemaatiliselt läbida, mis täpselt osuti on, 236 00:09:50,300 --> 00:09:52,530 mida ta teeb ja kuidas me neid kasutada. 237 00:09:52,530 --> 00:09:56,620 >> Nii et kõik pointers-- nii tavaliselt koos muutujad 238 00:09:56,620 --> 00:10:00,920 Oleme kasutanud kodeerimine, nagu muutujaid nagu täisarvud või stringid 239 00:10:00,920 --> 00:10:04,790 või ujukite, nad on kõik sisuliselt väärtus, mis neile 240 00:10:04,790 --> 00:10:06,870 samuti aadress osutades, et väärtus. 241 00:10:06,870 --> 00:10:08,895 Nii et ma lähen juhtida seda kohe. 242 00:10:08,895 --> 00:10:14,270 243 00:10:14,270 --> 00:10:16,140 Meil on peaaegu mingit kriiti, kuid see on OK. 244 00:10:16,140 --> 00:10:25,550 >> Nii näiteks, tavaliselt nii, et me oleme 245 00:10:25,550 --> 00:10:30,860 kasutanud muutujad on loome muutuja nimi tüüpi int, olgem 246 00:10:30,860 --> 00:10:31,360 lihtsalt öelda. 247 00:10:31,360 --> 00:10:37,360 Nii et siin on meil int x ja me oleme initializing et int 50. 248 00:10:37,360 --> 00:10:42,390 Nii siin mäluploki meie arvutite oleme salvestatud number 50. 249 00:10:42,390 --> 00:10:46,170 Nii et kui osuti tulevad mängu on et arvuti itself-- nagu siin, 250 00:10:46,170 --> 00:10:48,880 füüsiliselt kõvaketas RAM minu computer-- 251 00:10:48,880 --> 00:10:51,147 see on ainult piiratud kogus mälu. 252 00:10:51,147 --> 00:10:53,980 Sa ei saa lihtsalt hoida hoidmiseks asju peal asju peal asju 253 00:10:53,980 --> 00:10:54,990 ja kõik nad on. 254 00:10:54,990 --> 00:10:59,570 >> Nii nii, et me dünaamiliselt jaotada mälu on võimalik säilitada, mida me tahame 255 00:10:59,570 --> 00:11:03,150 ja sellele juurde, on lastes suunanäitajaks. 256 00:11:03,150 --> 00:11:06,210 Seega kujutada oma mälu, eks. 257 00:11:06,210 --> 00:11:10,420 Kui see on RAM oma arvuti, siis on neid vähe bitti 258 00:11:10,420 --> 00:11:14,540 või plokkideks või baiti mälu misjärjekorras need on vaid väike 259 00:11:14,540 --> 00:11:18,120 plokid, mis on määratud läbi kõvakettale või RAM arvuti, 260 00:11:18,120 --> 00:11:21,950 ja iga nende plokid saate salvestada erinevaid asju. 261 00:11:21,950 --> 00:11:26,990 Nii näiteks üks massiivi selles näites 262 00:11:26,990 --> 00:11:29,984 siin on üks bait, mis on kuhu kuuluvad kaheksa biti. 263 00:11:29,984 --> 00:11:32,900 Number muutub sõltuvalt operatsioonisüsteemi arvuti. 264 00:11:32,900 --> 00:11:35,942 Näiteks, kui palju teil on kuulnud 32-bitine vs 64-bitise operatsioonisüsteemi 265 00:11:35,942 --> 00:11:36,441 süsteemid? 266 00:11:36,441 --> 00:11:37,070 Täpselt. 267 00:11:37,070 --> 00:11:38,860 >> Nii et kõik, mis on öelnud on see, et memory-- 268 00:11:38,860 --> 00:11:42,420 et viis, et arvuti juhib mälu on erinev. 269 00:11:42,420 --> 00:11:45,370 Mistõttu see on tõesti oluline mõista 270 00:11:45,370 --> 00:11:49,450 miks mälu toimib iseenesest pigem kui pöörata tähelepanu numbrid. 271 00:11:49,450 --> 00:11:52,400 Nii et me tõesti ei hooli kui suur see massiiv 272 00:11:52,400 --> 00:11:55,710 on meil vaja ainult hoolid kui suur on meil vaja int olla, 273 00:11:55,710 --> 00:11:58,350 kui suur on meile vaja string olla, kui suur on osuti? 274 00:11:58,350 --> 00:12:00,630 275 00:12:00,630 --> 00:12:01,130 OKEI. 276 00:12:01,130 --> 00:12:03,690 Nii et see saab olema palju raske, tihe teavet. 277 00:12:03,690 --> 00:12:07,005 Ma annan teile poisid Paar Comic Relief hetked siin. 278 00:12:07,005 --> 00:12:09,130 Te peaks kõik olema võimeline mõista seda nüüd. 279 00:12:09,130 --> 00:12:12,550 Kuna me teame, et osuti on aadressid, 280 00:12:12,550 --> 00:12:14,480 ja need on erinevad muutujad. 281 00:12:14,480 --> 00:12:14,980 OKEI. 282 00:12:14,980 --> 00:12:15,610 Cool. 283 00:12:15,610 --> 00:12:17,065 CS naljad on parim, jah? 284 00:12:17,065 --> 00:12:19,800 285 00:12:19,800 --> 00:12:23,450 >> Nii nii, et me läheme umbes luua pointer 286 00:12:23,450 --> 00:12:25,750 on väga spetsiifiline omamoodi süntaks. 287 00:12:25,750 --> 00:12:27,870 Nagu tekitamata tüüpi muutuja, see on 288 00:12:27,870 --> 00:12:30,240 saab olema konkreetne süntaktiline me kasutame, et luua seda. 289 00:12:30,240 --> 00:12:34,830 Nii et kui kuulutatakse igal pointer, osuti on lihtsalt essentially-- 290 00:12:34,830 --> 00:12:37,040 Ma arvan, et oluline osa suunanäitajaks on 291 00:12:37,040 --> 00:12:41,650 et arvestades, et muutuja on Nii väärtus ja aadress, 292 00:12:41,650 --> 00:12:44,100 osuti on aadress. 293 00:12:44,100 --> 00:12:45,740 Selle väärtus on aadress. 294 00:12:45,740 --> 00:12:48,120 Nii see on aadress salvestatakse erineval aadressil. 295 00:12:48,120 --> 00:12:49,120 Kui see loogiline. 296 00:12:49,120 --> 00:12:52,390 Me läheme üle selle üksikasjalikumalt, aga see on geneeriline vorm 297 00:12:52,390 --> 00:12:54,370 of miks--, kuidas printer on salvestatud. 298 00:12:54,370 --> 00:12:58,900 >> Nii nii, et loote pointer on tehes mis tahes tüüpi andmeid 299 00:12:58,900 --> 00:13:02,840 et osuti läheb olema viitamine ja then-- 300 00:13:02,840 --> 00:13:05,324 koos star-- ja seejärel nimi kursorit. 301 00:13:05,324 --> 00:13:07,240 Nii et siin, kui me tahtsime luua kursorit, et 302 00:13:07,240 --> 00:13:11,640 osutas täisarv, ja me tahtsin nimi pointer olla x, 303 00:13:11,640 --> 00:13:13,880 me teeks int star x. 304 00:13:13,880 --> 00:13:14,380 Jah? 305 00:13:14,380 --> 00:13:16,680 >> Sihtrühm: Ja nii, kui järgmine rida teile 306 00:13:16,680 --> 00:13:20,045 teha int x, siis kas int star x näitavad asukohast x 307 00:13:20,045 --> 00:13:21,170 sa määratlemisel hiljem? 308 00:13:21,170 --> 00:13:22,000 >> ANDI PENG: Tõesti hea küsimus. 309 00:13:22,000 --> 00:13:23,860 Me läheme üle selle paar libiseb hiljem. 310 00:13:23,860 --> 00:13:24,920 Jah. 311 00:13:24,920 --> 00:13:27,610 Ja siis sama asi char ja sama asi ujub. 312 00:13:27,610 --> 00:13:29,950 Lihtsalt tean, et sel hetkel oleme loonud pointer, 313 00:13:29,950 --> 00:13:32,470 me ei ole tegelikult esitatud see võrdse midagi veel. 314 00:13:32,470 --> 00:13:34,110 Me ei ole tegelikult viidatud seda. 315 00:13:34,110 --> 00:13:36,087 Sama siin, kui loote muutuja, 316 00:13:36,087 --> 00:13:39,420 olete loonud muutuja nimi, Te ei ole tegelikult väärtuse määramiseks ta. 317 00:13:39,420 --> 00:13:41,410 Sama asi siin. 318 00:13:41,410 --> 00:13:42,110 >> OKEI. 319 00:13:42,110 --> 00:13:44,670 Niisiis, kuidas me seatud väärtused viiteid? 320 00:13:44,670 --> 00:13:47,190 See on viitamine ja dereferencing. 321 00:13:47,190 --> 00:13:52,260 Nii nii, et saame viide varia-- osuti sisuliselt 322 00:13:52,260 --> 00:13:56,630 naaseme aadress mälu millest muutuva on salvestatud. 323 00:13:56,630 --> 00:14:02,550 Nii et kui mul oli pointer-- Ma joonistan seekord me saada järgmisele slaidile 324 00:14:02,550 --> 00:14:05,760 aga lihtsalt tean, et sisuliselt and-- ampersand 325 00:14:05,760 --> 00:14:10,240 ja variable-- kõik, et ei ei öelda aadress 326 00:14:10,240 --> 00:14:11,780 kus midagi salvestatud. 327 00:14:11,780 --> 00:14:15,730 Ja dereferencing on vastupidine Selle, mis on lihtsalt täht. 328 00:14:15,730 --> 00:14:18,950 Staar lihtsalt annab teile tegelik salvestatud andmed sellele aadressile. 329 00:14:18,950 --> 00:14:21,090 >> Nii et üks annab teile aadress hoitakse aadressi, 330 00:14:21,090 --> 00:14:23,945 Teisest annab teile tegelik salvestatud väärtus aadressil. 331 00:14:23,945 --> 00:14:25,820 Nii kaks neist saadi Teile erinevaid asju. 332 00:14:25,820 --> 00:14:27,755 333 00:14:27,755 --> 00:14:29,880 Taas slaidid kõik veebis, ei muretse 334 00:14:29,880 --> 00:14:33,200 kui te poisid ei saa kopeerida Selle alla ajas. 335 00:14:33,200 --> 00:14:36,330 >> Võtame pilk See näide siin. 336 00:14:36,330 --> 00:14:40,530 Nii on meil hiiglane mälu massiiv siin, eks? 337 00:14:40,530 --> 00:14:42,920 Kus me lihtsalt plokid mällu või baiti mälu, 338 00:14:42,920 --> 00:14:45,060 kus saame salvestada erinevaid asju. 339 00:14:45,060 --> 00:14:47,310 Ütleme nii, et need on aadress punkte mälu. 340 00:14:47,310 --> 00:14:51,350 Nii millal on - vaata 0x, kõik, mis ütleb teile, et 341 00:14:51,350 --> 00:14:52,930 see on kuueteistkümnendarvudega. 342 00:14:52,930 --> 00:14:56,310 Nagu te poisid kõik teame, numbrid võiks põhineda erinevatel alustel. 343 00:14:56,310 --> 00:14:58,770 Base 10 on, kuidas me tavaliselt tõlgendada numbrid. 344 00:14:58,770 --> 00:15:00,550 Seal on ka alust 2, mis on binaarne. 345 00:15:00,550 --> 00:15:03,366 Ja sel juhul, kuueteistkümnendsüsteemis on aluseks 16. 346 00:15:03,366 --> 00:15:06,240 See on lihtsalt teistmoodi öelda nullist 10-- või null üheksa 347 00:15:06,240 --> 00:15:10,904 ja siis ka A, B, C, D, E, F. Samuti viitab erinevate numbrite puhul. 348 00:15:10,904 --> 00:15:12,570 David läks üle selle loengu lühidalt. 349 00:15:12,570 --> 00:15:14,280 Kui Te olete segaduses, Google'ist. 350 00:15:14,280 --> 00:15:17,370 Seal tõesti Hõlpsasti õppida mida kuueteistkümnendkoodis on. 351 00:15:17,370 --> 00:15:19,510 Kõik see on tõesti asjakohased just nüüd on teie jaoks 352 00:15:19,510 --> 00:15:24,170 poisid teada, et kuueteistkümnendarve C 353 00:15:24,170 --> 00:15:27,090 ütleb sina-- et tavaliselt ütleb teile, et see kursor. 354 00:15:27,090 --> 00:15:29,150 Või see on aadress. 355 00:15:29,150 --> 00:15:33,310 >> Nii et näiteks siin, int x võrdub 5. 356 00:15:33,310 --> 00:15:36,350 Me luua integer-- sorry, tüüpi muutuja 357 00:15:36,350 --> 00:15:39,090 täisarv ja me initializing see 5. 358 00:15:39,090 --> 00:15:47,040 Nii et siin meie mälu pardal, saame näha, et x on aadressil 0x0 359 00:15:47,040 --> 00:15:50,550 ja väärtus, et sa oled salvestatud sees on 5. 360 00:15:50,550 --> 00:15:52,370 See peaks mõtet kõigile, eks? 361 00:15:52,370 --> 00:15:53,030 OKEI. 362 00:15:53,030 --> 00:15:56,520 >> Ja siis me oleme teinud II rida koodi 363 00:15:56,520 --> 00:16:00,290 on see, et oleme loonud osuti tüüpi int. 364 00:16:00,290 --> 00:16:02,750 Seda int star pointer teeb. 365 00:16:02,750 --> 00:16:07,320 Ja see võrdub, et ampersand x annab sulle aadressi midagi. 366 00:16:07,320 --> 00:16:12,120 Nii aadress x Selle näiteks on 0x0. 367 00:16:12,120 --> 00:16:15,630 Ja nii, et aadress on salvestatud, et kursor. 368 00:16:15,630 --> 00:16:17,360 Kas see mõtet kõigile? 369 00:16:17,360 --> 00:16:19,965 >> Nii arvavad see-- mõtle pointers-- siin 370 00:16:19,965 --> 00:16:24,780 Yale'i meil PO box süsteem kus igal õpilasel oleks posti 371 00:16:24,780 --> 00:16:26,960 aadress, kus võid minna keldrikorrusel LW 372 00:16:26,960 --> 00:16:30,492 ja te saate lihtsalt minna ja haarata mida iganes sa vajad, et aadress. 373 00:16:30,492 --> 00:16:32,450 Sama asi juhtub Siit arvutis. 374 00:16:32,450 --> 00:16:36,770 Sa pead need mälu baiti, et saab salvestada informatsiooni, 375 00:16:36,770 --> 00:16:39,529 kuid selleks, et teada, mis infoväljad 376 00:16:39,529 --> 00:16:42,570 match up, mida sa üritad leida ja kui teil on vaja viit, et 377 00:16:42,570 --> 00:16:43,740 ütleb teile, kuidas sinna minna. 378 00:16:43,740 --> 00:16:47,270 >> Nii näiteks on minu jaoks, minu postkast, Mul on konkreetne viiekohaline number. 379 00:16:47,270 --> 00:16:48,400 See on minu aadress. 380 00:16:48,400 --> 00:16:51,880 Nii et ma ei füüsiliselt minna mälu Võin vaadata aadressil, 381 00:16:51,880 --> 00:16:54,507 Ma ei saa minna, et PO box ja juurdepääsu andmetele sees. 382 00:16:54,507 --> 00:16:57,090 Kas see mõtet Everybody Arvuti on sisuliselt 383 00:16:57,090 --> 00:16:59,000 teeb täpselt sama asi. 384 00:16:59,000 --> 00:17:02,750 >> Nii et kõik pointer teeb on see, et see on lihtsalt luua mälu 385 00:17:02,750 --> 00:17:06,099 ja selle mälu andmed on tegelikult aadressi midagi muud. 386 00:17:06,099 --> 00:17:08,210 Siis võid minna ja leida seda. 387 00:17:08,210 --> 00:17:09,060 Igaüks hea? 388 00:17:09,060 --> 00:17:10,720 Igaüks hea minuga nii palju? 389 00:17:10,720 --> 00:17:11,360 OKEI. 390 00:17:11,360 --> 00:17:11,859 Cool. 391 00:17:11,859 --> 00:17:14,311 392 00:17:14,311 --> 00:17:14,810 Hästi. 393 00:17:14,810 --> 00:17:19,160 Nii peaaegu sama asi nagu enne. 394 00:17:19,160 --> 00:17:23,849 Seega peame esiteks muutuja nimetatakse x, kus case-- 395 00:17:23,849 --> 00:17:27,700 Ma lähen selle väärtuse muutmiseks 5. 396 00:17:27,700 --> 00:17:31,820 Ütleme lihtsalt aadressi Selle mälu on 0x0. 397 00:17:31,820 --> 00:17:33,070 00. 398 00:17:33,070 --> 00:17:33,570 Hea. 399 00:17:33,570 --> 00:17:35,320 >> Niisiis, meie teine koodirida, et me oleme 400 00:17:35,320 --> 00:17:41,210 kavatse luua pointer nimetatakse PTR pointer. 401 00:17:41,210 --> 00:17:45,760 Ja aadress, et lähme lihtsalt öelda, et on 0x01 mälu. 402 00:17:45,760 --> 00:17:48,280 Ja me tegelikult tahame store-- ampersand 403 00:17:48,280 --> 00:17:50,620 x annab sulle aadressi, mis x oli. 404 00:17:50,620 --> 00:17:53,990 Ja aadress x oli 0x00. 405 00:17:53,990 --> 00:17:57,300 Nii et see kursor nüüd tegelikult on aadress 406 00:17:57,300 --> 00:18:00,210 salvestatakse selle väärtus, mida x oli. 407 00:18:00,210 --> 00:18:01,700 Igaüks minuga nii palju? 408 00:18:01,700 --> 00:18:02,320 Cool. 409 00:18:02,320 --> 00:18:04,670 >> Ja siis, nii, et me kopeerida, et 410 00:18:04,670 --> 00:18:09,650 on, kui me tunnistada ja initsialiseerida teise ploki mälu tüüpi int. 411 00:18:09,650 --> 00:18:10,150 Õigus? 412 00:18:10,150 --> 00:18:11,130 See oleks int. 413 00:18:11,130 --> 00:18:14,130 See oleks nn koopia. 414 00:18:14,130 --> 00:18:17,120 Ja sa lähed get-- nii star pointer annab teile 415 00:18:17,120 --> 00:18:19,080 tegelikud andmed sellelt aadressilt. 416 00:18:19,080 --> 00:18:22,490 Ampersand annab sulle aadressi, star annab teile andmed. 417 00:18:22,490 --> 00:18:24,630 Nii et andmeid pointer. 418 00:18:24,630 --> 00:18:29,420 See osuti osutab 5. 419 00:18:29,420 --> 00:18:33,140 Ja nii see funktsioon siin-- staar pointer-- 420 00:18:33,140 --> 00:18:39,740 läheb, läheb kõik, mis on Ploki ja salvestab selle siin. 421 00:18:39,740 --> 00:18:41,730 Igaüks selge, kuidas see juhtus? 422 00:18:41,730 --> 00:18:45,490 >> Nii et kaks operaatorit õigus there-- ampersand ja star-- 423 00:18:45,490 --> 00:18:48,250 lihtsalt teha erinevaid asju kui kasutada viiteid. 424 00:18:48,250 --> 00:18:50,837 Üks saab teid aadressil üks saab teid tegelikku väärtust. 425 00:18:50,837 --> 00:18:53,670 Seega veenduge, et kui poisid on kodeerimine, et te ärge ajage kahe 426 00:18:53,670 --> 00:18:55,650 sest nad on väga erinevad. 427 00:18:55,650 --> 00:18:58,880 Siin on meil kena näide 0x01. 428 00:18:58,880 --> 00:19:01,207 See on tõesti kena väike number meeles pidada. 429 00:19:01,207 --> 00:19:03,040 Oma tegeliku arvuti sa lähed on 430 00:19:03,040 --> 00:19:06,740 hiiglaslik perse number, et on midagi see ei ole kena, ei ole meeldiv. 431 00:19:06,740 --> 00:19:08,280 See saab olema mingi prügi väärtus. 432 00:19:08,280 --> 00:19:10,920 Ja nii see läheb tõesti, tõesti segi ajama oma programme. 433 00:19:10,920 --> 00:19:12,670 See on väga oluline, kohe, et meil on 434 00:19:12,670 --> 00:19:16,150 põhialuste maas miks-- nagu, Mis on füüsiliselt juhtub siis, kui 435 00:19:16,150 --> 00:19:18,270 näed neid plokke koodi. 436 00:19:18,270 --> 00:19:19,120 Everyone-- jah? 437 00:19:19,120 --> 00:19:21,425 >> Sihtrühm: Nii int x võrdub int koopia? 438 00:19:21,425 --> 00:19:24,650 439 00:19:24,650 --> 00:19:34,970 >> ANDI PENG: Ei, sest sel juhul, int x-ist väärtus x-ist võrdub 5, eks? 440 00:19:34,970 --> 00:19:40,546 Ja siis int koopia võrdne 5. 441 00:19:40,546 --> 00:19:43,420 Nii et kui sa olid võrdsustada neid teineteist, sest nad on täisarvud, 442 00:19:43,420 --> 00:19:46,379 jah, nad TÕENE. 443 00:19:46,379 --> 00:19:49,670 Aga kui nad olid stringid mälu, nagu üks, mis Taavet tegi jooksul näiteks 444 00:19:49,670 --> 00:19:51,670 mis on erinev, sest nad viitamine 445 00:19:51,670 --> 00:19:54,920 aadressid kohti mälu ja nad vastaksid vale. 446 00:19:54,920 --> 00:20:00,070 >> Nii et siin oleks tõsi, sest sa oled otse võrrelda values-- integers-- 447 00:20:00,070 --> 00:20:02,240 kuid teised olete viitamine punkti. 448 00:20:02,240 --> 00:20:05,290 Kuna string on massiiv, ja all-- me räägime sellest later-- 449 00:20:05,290 --> 00:20:09,940 kuid massiiv on sisuliselt vaid kursor kamp tähemärki mälu. 450 00:20:09,940 --> 00:20:11,610 Nii et need on natuke erinevad. 451 00:20:11,610 --> 00:20:14,642 Aga sel juhul, jah, sa võiksid seda teha. 452 00:20:14,642 --> 00:20:17,354 >> Sihtrühm: Kas oskate selgitada aadressi koopia? 453 00:20:17,354 --> 00:20:18,020 ANDI PENG: Jah. 454 00:20:18,020 --> 00:20:20,030 Nii et Lihtsalt-- ma ei täida väärtus 455 00:20:20,030 --> 00:20:23,022 aga see on lihtsalt mingi suvaline muu prügi väärtus, et me ei hooli. 456 00:20:23,022 --> 00:20:25,730 Sest kui hakkate programmi sa mõistad, et me ei ole tegelikult 457 00:20:25,730 --> 00:20:28,150 tõesti huvita, mida tegelik aadressid, 458 00:20:28,150 --> 00:20:30,470 Me lihtsalt vaja teada Mis aadressidel. 459 00:20:30,470 --> 00:20:31,608 Jah. 460 00:20:31,608 --> 00:20:36,034 >> Sihtrühm: täht kõrval int kohta Teine rida, mis on erinev than-- 461 00:20:36,034 --> 00:20:36,700 ANDI PENG: Jah. 462 00:20:36,700 --> 00:20:39,015 Sihtrühm: --the dereferencing ja viitamine star? 463 00:20:39,015 --> 00:20:39,681 ANDI PENG: Jah. 464 00:20:39,681 --> 00:20:43,180 Nii autorid C- kes otsustasin kirjutada keeles C- 465 00:20:43,180 --> 00:20:44,200 ei olnud väga tark. 466 00:20:44,200 --> 00:20:46,830 Nad ei olnud väga tark üritab aru saada, miks me peaksime seda tegema. 467 00:20:46,830 --> 00:20:49,413 Kui see oli mulle, ma tahaksin kindlasti kasutada kahte erinevat märki. 468 00:20:49,413 --> 00:20:52,100 Aga nad otsustasid kasutada seesama. 469 00:20:52,100 --> 00:20:56,607 >> Nii tähe pärast int, mis ütleb arvutile 470 00:20:56,607 --> 00:20:58,190 et sa oled umbes luua pointer. 471 00:20:58,190 --> 00:21:00,820 Aga kui sa üritad apparent midagi-- teisisõnu, 472 00:21:00,820 --> 00:21:03,780 minna aadress ja tõmmake andmed somewhere-- 473 00:21:03,780 --> 00:21:05,070 star kasutatakse erinevalt. 474 00:21:05,070 --> 00:21:08,750 Nii kutid lihtsalt olema ettevaatlikud ei jama kaks kasutab. 475 00:21:08,750 --> 00:21:09,870 Cool. 476 00:21:09,870 --> 00:21:10,605 Jah? 477 00:21:10,605 --> 00:21:14,680 >> Sihtrühm: Nii lihtsalt kordama veenduge, et ma olen following-- 478 00:21:14,680 --> 00:21:16,252 >> ANDI PENG: Totally trahvi. 479 00:21:16,252 --> 00:21:20,491 >> Sihtrühm: --in vasakul pool et slide, me teeme midagi, mida me teame. 480 00:21:20,491 --> 00:21:23,124 Me kinnitame täisarv [Kuuldamatu], mis on võrdne 5. 481 00:21:23,124 --> 00:21:23,790 ANDI PENG: Jah. 482 00:21:23,790 --> 00:21:24,456 Sihtrühm: Right. 483 00:21:24,456 --> 00:21:28,960 Ja siis on meil int star asi ja mis ütleb, et OK, selline nagu me 484 00:21:28,960 --> 00:21:31,235 deklareeritud täisarv, nüüd me kuulutab pointer. 485 00:21:31,235 --> 00:21:32,110 ANDI PENG: õigesti. 486 00:21:32,110 --> 00:21:32,410 Õige. 487 00:21:32,410 --> 00:21:32,710 >> Sihtrühm: Right? 488 00:21:32,710 --> 00:21:33,870 Ja meie osuti on PTR. 489 00:21:33,870 --> 00:21:34,080 >> ANDI PENG: Yep. 490 00:21:34,080 --> 00:21:35,460 Nimi osuti on PTR. 491 00:21:35,460 --> 00:21:35,959 Pointer. 492 00:21:35,959 --> 00:21:39,000 Sihtrühm: Ja siis võrdub nx et lihtsalt ütleb C 493 00:21:39,000 --> 00:21:44,667 et ta tahab pääseda väärtus täisarv x-ist väärtust, et täisarv x 494 00:21:44,667 --> 00:21:45,800 määrati. 495 00:21:45,800 --> 00:21:49,050 >> ANDI PENG: Olge ettevaatlik sest ampersand x tegelikult 496 00:21:49,050 --> 00:21:53,120 ütleb sina-- arvuti, et sa tahad tõmmata aadressi, mis on x. 497 00:21:53,120 --> 00:21:56,350 Nii ampersand annab teile aadress, star annab teile raha. 498 00:21:56,350 --> 00:21:58,255 >> Sihtrühm: Nii et me tahame aadress. 499 00:21:58,255 --> 00:22:02,075 Oletame, et x oli at-- 500 00:22:02,075 --> 00:22:03,950 ANDI PENG: Me tegelikult tea, mis on x, õigus? 501 00:22:03,950 --> 00:22:06,790 Kuna me teame, et x was-- ma olen muutes selle üles, kuid ütleme nii, 502 00:22:06,790 --> 00:22:08,760 suvaliselt, see oli 0x00. 503 00:22:08,760 --> 00:22:09,590 Õigus? 504 00:22:09,590 --> 00:22:14,120 Saame teada, et aadress on 0x00, ja nii kui me läheme ja ampersand x, 505 00:22:14,120 --> 00:22:17,050 me teame, et see peaks hindama, et 0x00. 506 00:22:17,050 --> 00:22:20,810 Mistõttu me talletatud, et väärtusena meie pointer. 507 00:22:20,810 --> 00:22:21,924 Kas see on mõtet? 508 00:22:21,924 --> 00:22:22,832 >> Sihtrühm: Jah. 509 00:22:22,832 --> 00:22:28,057 Ja koopia läheb apparent ptr-- 510 00:22:28,057 --> 00:22:28,765 ANDI PENG: Right. 511 00:22:28,765 --> 00:22:30,473 Sihtrühm: --which on kursor, et me oleme 512 00:22:30,473 --> 00:22:35,220 teatas, et ütleb meile aadress täisarv x. 513 00:22:35,220 --> 00:22:36,160 >> ANDI PENG: Jah. 514 00:22:36,160 --> 00:22:39,272 >> Sihtrühm: Ja see Ühel juhul star PTR 515 00:22:39,272 --> 00:22:41,256 võrdub x, mis võrdub 5. 516 00:22:41,256 --> 00:22:42,744 >> ANDI PENG: Õige. 517 00:22:42,744 --> 00:22:44,728 >> Sihtrühm: Cool. 518 00:22:44,728 --> 00:22:49,382 Ja see on lihtsam viis saada et või on see ainus way-- 519 00:22:49,382 --> 00:22:51,840 ANDI PENG: Nii just nüüd ei tundu väga loogiline, et me 520 00:22:51,840 --> 00:22:54,690 kulutada kogu see aeg läheb see super keeruline asi, kui 521 00:22:54,690 --> 00:22:57,606 kõik me oleme teinud, on lihtsalt luua kaks täisarvud väärtusega 5, eks? 522 00:22:57,606 --> 00:22:58,900 See ei ole loogiline. 523 00:22:58,900 --> 00:23:03,060 Aga kui me läheme üle mälu eraldamise and-- jagame 524 00:23:03,060 --> 00:23:06,067 minna üle, miks see võib olla mugav ja kasulik hiljem. 525 00:23:06,067 --> 00:23:09,150 Usu mind, kui ma ütlen, et me ei ole lihtsalt luua nende omavoliline funktsioone teile 526 00:23:09,150 --> 00:23:11,340 poisid õppida, sest me oleme püüab jama teiega. 527 00:23:11,340 --> 00:23:14,550 Seal on tegelikult kasutab kõiki neid asju ja me räägime neist. 528 00:23:14,550 --> 00:23:14,950 >> Sihtrühm: Awesome. 529 00:23:14,950 --> 00:23:15,350 >> ANDI PENG: Jah. 530 00:23:15,350 --> 00:23:16,150 >> Sihtrühm: [kuuldamatu]. 531 00:23:16,150 --> 00:23:16,450 >> ANDI PENG: Hea küsimus. 532 00:23:16,450 --> 00:23:17,510 >> Sihtrühm: [kuuldamatu]. 533 00:23:17,510 --> 00:23:18,000 >> ANDI PENG: Ei ole. 534 00:23:18,000 --> 00:23:18,666 See tõesti ei ole. 535 00:23:18,666 --> 00:23:21,050 Sihtrühm: --two muutujad et ka võrdsed [kuuldamatu]. 536 00:23:21,050 --> 00:23:22,400 OKEI. 537 00:23:22,400 --> 00:23:23,070 >> ANDI PENG: Jah. 538 00:23:23,070 --> 00:23:23,570 OKEI. 539 00:23:23,570 --> 00:23:25,249 Enne kui ma liikuda, on kõik selge? 540 00:23:25,249 --> 00:23:26,790 Ma tean, et Taylor, sul on natuke hilja. 541 00:23:26,790 --> 00:23:27,490 See on OK. 542 00:23:27,490 --> 00:23:28,100 See on online. 543 00:23:28,100 --> 00:23:30,600 Sul vaadata esimese 20 minuti jooksul ja sul on kõik hea. 544 00:23:30,600 --> 00:23:31,190 OKEI. 545 00:23:31,190 --> 00:23:31,690 Cool. 546 00:23:31,690 --> 00:23:35,597 547 00:23:35,597 --> 00:23:37,140 >> Hästi. 548 00:23:37,140 --> 00:23:41,270 Nii et see on sisuliselt mingi Sarnane asi, mida me just tegid. 549 00:23:41,270 --> 00:23:43,100 See on lihtsalt graafiline vorm. 550 00:23:43,100 --> 00:23:47,070 Kui sa olid jälgida, mida lihtsalt juhtus, int x võrdub 5, 551 00:23:47,070 --> 00:23:52,159 kõik me oleme teinud sel hetkel on luua muutuja nimega x-tüüpi int. 552 00:23:52,159 --> 00:23:54,200 Me läheme salvestada väärtus 5 sees on. 553 00:23:54,200 --> 00:23:57,366 Pole pointer, sest meil ei ole tegelikult loodud osuti veel, eks? 554 00:23:57,366 --> 00:24:00,302 Ja siis järgmises line, int star pointer, 555 00:24:00,302 --> 00:24:02,760 see on kui me tegelikult füüsiliselt luua kursori 556 00:24:02,760 --> 00:24:05,010 ja me seade, mis võrdne või viitamine 557 00:24:05,010 --> 00:24:07,250 kursor, et ampersand x. 558 00:24:07,250 --> 00:24:10,002 Milline on koht, kus kõikjal mälu see juhtus olema. 559 00:24:10,002 --> 00:24:12,210 Ma tegelikult ei viitsinud moodustavate väärtus seekord. 560 00:24:12,210 --> 00:24:14,900 Aga sel juhul, et punkti siis oleks võrdne sellega. 561 00:24:14,900 --> 00:24:18,060 >> Ja siis seal on star pointer on dereferencing. 562 00:24:18,060 --> 00:24:20,310 See, kui me oleme tõmmates informatsiooni. 563 00:24:20,310 --> 00:24:24,170 Nii et väärtus x on tegelikult võrdne 35. 564 00:24:24,170 --> 00:24:30,390 Nii sel hetkel, me oleme sisuliselt lihtsalt reinitsialiseeritud x 35 565 00:24:30,390 --> 00:24:32,320 ilma tegelikult puudutamata x. 566 00:24:32,320 --> 00:24:34,560 Just läbi pointer mis osutab x, 567 00:24:34,560 --> 00:24:36,910 me saame tegelikult muuta seda, mis x oli. 568 00:24:36,910 --> 00:24:38,420 Ma lähen seda klaarida samuti. 569 00:24:38,420 --> 00:24:52,200 >> Nii et siin me oleme loodud mingi suvaline aadress siia. 570 00:24:52,200 --> 00:24:54,734 Ütleme nii, 0x00 uuesti. 571 00:24:54,734 --> 00:24:56,150 Ütleme nii, et see on aadress. 572 00:24:56,150 --> 00:25:00,830 Ja oleme loonud täisarv nimega x ja väärtus Olen määratud on 5. 573 00:25:00,830 --> 00:25:03,840 Teisel real, int pointer-- nii et nüüd me oleme 574 00:25:03,840 --> 00:25:07,820 sain selle teise asi siin nimetatakse pointer-- 575 00:25:07,820 --> 00:25:14,310 ja me läheme mina-- Ütleme see on mingi muu juhuslik mälu aadress. 576 00:25:14,310 --> 00:25:18,460 >> Nii et me läheme määrata selle võrdne iganes see oli. 577 00:25:18,460 --> 00:25:21,540 578 00:25:21,540 --> 00:25:25,880 Ja see kursor läheb kohakuti väärtus x 579 00:25:25,880 --> 00:25:30,090 Ja siis, kui me muudame the-- kui me star pointer, 580 00:25:30,090 --> 00:25:32,800 et läheb kuni väärtus meie pointer. 581 00:25:32,800 --> 00:25:36,979 Sel juhul läheb jälgida see nool üle selle väärtuse x 582 00:25:36,979 --> 00:25:38,395 ja see läheb ära muuta 35. 583 00:25:38,395 --> 00:25:41,400 584 00:25:41,400 --> 00:25:44,760 Sisuliselt me ​​lihtsalt muutunud x puudutamata x. 585 00:25:44,760 --> 00:25:48,970 Läbi lihtsalt viitamine viiteid, saame minna ja väärtust muuta x. 586 00:25:48,970 --> 00:25:50,050 Kas see on mõtet? 587 00:25:50,050 --> 00:25:55,200 >> Nii et sel viisil saame tegelikult ümber ja rechange ja ümberjagamise väärtused 588 00:25:55,200 --> 00:25:57,750 asju, mida me ei tegelikult teha ise. 589 00:25:57,750 --> 00:26:00,925 Kas see mõtet kõigile? 590 00:26:00,925 --> 00:26:01,425 Cool. 591 00:26:01,425 --> 00:26:04,450 592 00:26:04,450 --> 00:26:05,310 OKEI. 593 00:26:05,310 --> 00:26:08,210 Nii keeruline graafiline siin. 594 00:26:08,210 --> 00:26:09,360 Mine rida-realt. 595 00:26:09,360 --> 00:26:12,055 Sisuliselt lihtsalt teha täpselt Sama asi, mis ma tegin. 596 00:26:12,055 --> 00:26:15,977 597 00:26:15,977 --> 00:26:17,810 Enne kui ma liikuda, ma tõesti lihtsalt 598 00:26:17,810 --> 00:26:19,370 et kõik on tõesti selge see. 599 00:26:19,370 --> 00:26:26,260 Nii siin on kood, mis meil on int a on 3, b võrdub 4, c võrdub 5. 600 00:26:26,260 --> 00:26:33,130 Nii oleme loonud kolm täisarvu nimega a, b ja c, mis on võrdne 3, 4 ja 5. 601 00:26:33,130 --> 00:26:38,460 Ja siis me luua kolm viiteid Sel hetkel, et kõik need muutujad. 602 00:26:38,460 --> 00:26:41,760 >> Ja nüüd me läheme minna üle sisuliselt 603 00:26:41,760 --> 00:26:44,240 Mis juhtub siis, kui kasutad neid. 604 00:26:44,240 --> 00:26:45,490 Nii juhtida neid. 605 00:26:45,490 --> 00:26:48,156 Võtke leht paper-- ma ei tea, kas te poisid kõik on paber, 606 00:26:48,156 --> 00:26:50,930 kuid need, kes seda ei tee, võib-olla laenata neile, kes teevad. 607 00:26:50,930 --> 00:26:53,580 Võtke paberilehte ja minna rida-realt. 608 00:26:53,580 --> 00:26:59,390 Ja igal operatsioon, mis sa teed, Ma tahan teiega tegelikult kirjutada 609 00:26:59,390 --> 00:27:00,800 mis on a, b ja c selles punktis. 610 00:27:00,800 --> 00:27:03,550 Ja millised on aadressid, mida on vihjeid, mis viitavad a, b ja c 611 00:27:03,550 --> 00:27:04,410 sel hetkel? 612 00:27:04,410 --> 00:27:07,150 >> Ja siis loodetavasti on selline samm kutid 613 00:27:07,150 --> 00:27:08,900 läbi, kuidas mõelda suunanäitajaks. 614 00:27:08,900 --> 00:27:10,650 Me ei lähe kaudu neid kõiki. 615 00:27:10,650 --> 00:27:13,450 Äkki ma annan sulle five-- jms, kolm minutit. 616 00:27:13,450 --> 00:27:14,660 Alusta paar esimest. 617 00:27:14,660 --> 00:28:10,410 618 00:28:10,410 --> 00:28:10,959 Oh. 619 00:28:10,959 --> 00:28:11,459 Oops. 620 00:28:11,459 --> 00:28:20,940 621 00:28:20,940 --> 00:28:26,950 >> Sihtrühm: Teisel real, miks ei ole täht [kuuldamatu] muutuja? 622 00:28:26,950 --> 00:28:29,410 >> ANDI PENG: Mäleta ettevõtjad, esimesel nädalal, 623 00:28:29,410 --> 00:28:31,730 me rääkisime, kuidas kui sa plus võrdsete, 624 00:28:31,730 --> 00:28:35,320 mis tähendab lihtsalt võrdub pluss c. 625 00:28:35,320 --> 00:28:39,370 Selles case-- nii et see on veel üks viisi star võiks kasutada. 626 00:28:39,370 --> 00:28:42,040 Lisaks viitamine ja kuulutatakse suunanäitajaks, 627 00:28:42,040 --> 00:28:44,440 meeles pidada, et see ka tähendab korrutamist. 628 00:28:44,440 --> 00:28:46,575 Nii et sel juhul tahaks lihtsalt olla võrdub korda c. 629 00:28:46,575 --> 00:28:48,450 See on lihtsalt nii erinevad viis kirjalikult. 630 00:28:48,450 --> 00:28:49,776 >> Sihtrühm: a on võrdne kordi c. 631 00:28:49,776 --> 00:28:50,442 ANDI PENG: Jah. 632 00:28:50,442 --> 00:30:43,488 633 00:30:43,488 --> 00:30:47,130 >> Sihtrühm: Mida see tähendab, kui see ütleb ampersand kirja? 634 00:30:47,130 --> 00:30:50,900 >> ANDI PENG: Ampersand vahendid sa lähed selle-- oled 635 00:30:50,900 --> 00:30:54,760 läheb koht kursor on juhtides ja tõmmates aadress. 636 00:30:54,760 --> 00:31:01,270 Nii ampersand annab sulle aadressi, star annab teile tegelik väärtus on. 637 00:31:01,270 --> 00:31:03,090 >> Sihtrühm: Kas me oleme tuginedes rida-realt? 638 00:31:03,090 --> 00:31:04,881 >> ANDI PENG: Sa oled tuginedes rida-realt. 639 00:31:04,881 --> 00:31:07,260 Nii lihtsalt minna ühe rea aeg ja then-- sa 640 00:31:07,260 --> 00:31:08,470 ei pea muretsema viimistlus kogu asi. 641 00:31:08,470 --> 00:31:10,428 Proovime saada läbi võib-olla kaks, kolm rida 642 00:31:10,428 --> 00:31:12,445 ja siis me kokku ja lõpeta see. 643 00:31:12,445 --> 00:31:15,530 644 00:31:15,530 --> 00:31:17,470 >> See on täiesti OK, kui teiega on kadunud. 645 00:31:17,470 --> 00:31:19,334 See on tõesti raske mõiste. 646 00:31:19,334 --> 00:31:22,500 Kui kutid on mures, et klassi läheb niimoodi nagu David ütles, 647 00:31:22,500 --> 00:31:23,190 see ei esine. 648 00:31:23,190 --> 00:31:25,949 Me jõudmist kontseptuaalne tipp raskusi 649 00:31:25,949 --> 00:31:27,740 ja siis läheb olla langev. 650 00:31:27,740 --> 00:31:29,110 Nii kutid on peaaegu kohal. 651 00:31:29,110 --> 00:31:31,080 Meil on palju kommi saada kutid läbi küür. 652 00:31:31,080 --> 00:31:32,940 Ma arvan, et päris palju pärast langust murda saadame üle küür 653 00:31:32,940 --> 00:31:34,220 ja elu on jälle terve. 654 00:31:34,220 --> 00:31:36,580 Nii ei muretse üldse. 655 00:31:36,580 --> 00:32:30,732 656 00:32:30,732 --> 00:32:31,232 Hästi. 657 00:32:31,232 --> 00:32:33,650 Ma annan sulle poisid 20 sekundit veel pakkima. 658 00:32:33,650 --> 00:33:12,560 659 00:33:12,560 --> 00:33:13,330 OKEI. 660 00:33:13,330 --> 00:33:13,830 Hästi. 661 00:33:13,830 --> 00:33:16,370 Võtame stab seda. 662 00:33:16,370 --> 00:33:19,430 Nagu te poisid mulle vastuseid, Ma lihtsalt kirjutada neid. 663 00:33:19,430 --> 00:33:22,140 Ja loodetavasti we-- ma saan? 664 00:33:22,140 --> 00:33:23,317 Ma tegelikult ei kirjuta see. 665 00:33:23,317 --> 00:33:24,400 Ma joonistan selle pardal. 666 00:33:24,400 --> 00:33:31,420 667 00:33:31,420 --> 00:33:35,900 >> Nii et siin see esimene rida meil on võrdne b täht c. 668 00:33:35,900 --> 00:33:38,060 Samuti Elliot üles kasvanud tõesti, tõesti hea koht. 669 00:33:38,060 --> 00:33:42,500 Sest ma unustasin, et lisaks Kahe viisidel saab kasutada tähtsümbolitega, 670 00:33:42,500 --> 00:33:43,750 seal on tegelikult ka kolmas võimalus. 671 00:33:43,750 --> 00:33:44,990 Paljunemine. 672 00:33:44,990 --> 00:33:51,380 Ja nii lihtsalt ei saa segaduses, sest mis on esimene võimalus kasutada star. 673 00:33:51,380 --> 00:33:54,470 See on lihtsalt ütlen arvuti et ma olen umbes luua pointer. 674 00:33:54,470 --> 00:34:00,600 >> Teine võimalus tehes staar kursor, 675 00:34:00,600 --> 00:34:04,320 mis ütleb kursorit, et soovite juurdepääsu andmetele sel pointer. 676 00:34:04,320 --> 00:34:06,710 Ja siis muidugi, seal on just lihtne korrutamine 677 00:34:06,710 --> 00:34:09,564 Kahe numbrid, mis ütleb, et ma tahan korrutada kaks. 678 00:34:09,564 --> 00:34:11,730 Nii on palju viise saame kasutada tähtsümbolitega. 679 00:34:11,730 --> 00:34:13,830 Ärge sattuge segadusse. 680 00:34:13,830 --> 00:34:16,991 Lihtsalt veenduge, et te poisid aru täpselt, mida kõik kolm neist 681 00:34:16,991 --> 00:34:18,630 teevad. 682 00:34:18,630 --> 00:34:22,920 >> Nii et esimene rida, a on võrdne b korda c. 683 00:34:22,920 --> 00:34:26,850 Nii lähme läbi, mida on, mis on b, mis on c? 684 00:34:26,850 --> 00:34:32,600 Ja mis on osuti, mis on kursor B ja kursor c? 685 00:34:32,600 --> 00:34:34,050 Mis on need kõik on võrdsed? 686 00:34:34,050 --> 00:34:34,600 OKEI. 687 00:34:34,600 --> 00:34:38,650 >> Nii me alustad võrdub 3, b võrdub 4 ja c võrdub 5, eks? 688 00:34:38,650 --> 00:34:42,230 Nii et pärast, et esimeses reas, võivad keegi mulle öelda, milline on? 689 00:34:42,230 --> 00:34:42,730 Jah. 690 00:34:42,730 --> 00:34:44,229 Julgelt lihtsalt hüüda vastused. 691 00:34:44,229 --> 00:34:44,929 20. 692 00:34:44,929 --> 00:34:45,550 Väga hea. 693 00:34:45,550 --> 00:34:46,410 Mis b? 694 00:34:46,410 --> 00:34:47,777 >> Sihtrühm: 4. 695 00:34:47,777 --> 00:34:48,610 ANDI PENG: Mis c? 696 00:34:48,610 --> 00:34:49,659 Sihtrühm: 5. 697 00:34:49,659 --> 00:34:50,770 ANDI PENG: Jee. 698 00:34:50,770 --> 00:34:51,639 Väga hea. 699 00:34:51,639 --> 00:34:55,707 Mis on pa, pb ja pc? 700 00:34:55,707 --> 00:34:58,564 >> Sihtrühm: 000001 ja 002? 701 00:34:58,564 --> 00:34:59,230 ANDI PENG: Jah. 702 00:34:59,230 --> 00:35:02,390 Nii mingi nipiga küsimus kuid tegelikult, sest siin ma 703 00:35:02,390 --> 00:35:04,760 tõmbas tegelik mälestusi. 704 00:35:04,760 --> 00:35:08,520 Aga seepärast, et näiteks, me ei tegelikult tea, mida need numbrid on, 705 00:35:08,520 --> 00:35:10,326 saame öelda ampersand. 706 00:35:10,326 --> 00:35:12,200 Ma isegi ei tea, kas ma saab juhtida ampersand. 707 00:35:12,200 --> 00:35:18,022 See on like-- kuidas sa seda teed? 708 00:35:18,022 --> 00:35:19,790 >> Sihtrühm: Like juhtides kaheksa. 709 00:35:19,790 --> 00:35:20,870 >> ANDI PENG: Like kaheksa. 710 00:35:20,870 --> 00:35:21,580 Nagu see. 711 00:35:21,580 --> 00:35:22,080 OKEI. 712 00:35:22,080 --> 00:35:23,446 Sihtrühm: Bingo. 713 00:35:23,446 --> 00:35:25,350 >> ANDI PENG: Killing ta. 714 00:35:25,350 --> 00:35:28,202 Nii ampersand a, saate lihtsalt teha. 715 00:35:28,202 --> 00:35:30,410 Sest me ei ole tegelikult huvita, mida väärtust, mis 716 00:35:30,410 --> 00:35:32,880 on, ja see on mingi pikk ass väärtus niikuinii, 717 00:35:32,880 --> 00:35:35,220 me kasutame lihtsalt Giong öelda ampersand a. 718 00:35:35,220 --> 00:35:37,024 Mis siis pb? 719 00:35:37,024 --> 00:35:37,940 Sihtrühm: [kuuldamatu]. 720 00:35:37,940 --> 00:35:38,606 ANDI PENG: Jah. 721 00:35:38,606 --> 00:35:42,490 722 00:35:42,490 --> 00:35:43,500 Cool. 723 00:35:43,500 --> 00:35:44,010 Hästi. 724 00:35:44,010 --> 00:35:44,770 Lihtne esimene rida. 725 00:35:44,770 --> 00:35:45,270 Me saime selle. 726 00:35:45,270 --> 00:35:46,330 Lähtekohad on lihtne. 727 00:35:46,330 --> 00:35:47,450 See on OK. 728 00:35:47,450 --> 00:35:48,740 >> Teine rida. 729 00:35:48,740 --> 00:35:52,400 Ja nii star võrdub on sama asi nagu öeldes võrdub korda c. 730 00:35:52,400 --> 00:35:54,730 See on lihtsalt lihtsam viis kirjalikult. 731 00:35:54,730 --> 00:35:57,170 Nii et me ei püüa teha punkti või midagi siin. 732 00:35:57,170 --> 00:36:00,600 Nii tehakse esimese rea. 733 00:36:00,600 --> 00:36:05,144 Mis on teisel real pärast sa ei võrdub korda c? 734 00:36:05,144 --> 00:36:05,777 >> Sihtrühm: 100? 735 00:36:05,777 --> 00:36:06,610 ANDI PENG: See on 100. 736 00:36:06,610 --> 00:36:07,795 Väga hea. 737 00:36:07,795 --> 00:36:08,864 Kuidas b? 738 00:36:08,864 --> 00:36:10,256 >> Sihtrühm: [kuuldamatu]. 739 00:36:10,256 --> 00:36:11,335 >> ANDI PENG: Kuidas c? 740 00:36:11,335 --> 00:36:12,490 >> Sihtrühm: [kuuldamatu]. 741 00:36:12,490 --> 00:36:14,530 >> ANDI PENG: Ja kuidas osuti? 742 00:36:14,530 --> 00:36:15,800 Kas they-- sama, eks ole? 743 00:36:15,800 --> 00:36:20,640 744 00:36:20,640 --> 00:36:21,940 OKEI. 745 00:36:21,940 --> 00:36:23,820 Nüüd kolmandal real. 746 00:36:23,820 --> 00:36:26,400 747 00:36:26,400 --> 00:36:27,350 Little keerukam. 748 00:36:27,350 --> 00:36:29,760 b võrdub star pa. 749 00:36:29,760 --> 00:36:34,189 Kas keegi mulle öelda, esimene, mida see täht pa võrdne? 750 00:36:34,189 --> 00:36:36,159 >> Sihtrühm: See on väärtus mis on salvestatud kell. 751 00:36:36,159 --> 00:36:36,950 ANDI PENG: Täpselt. 752 00:36:36,950 --> 00:36:38,070 Ja mis on väärtus mis on salvestatud kell? 753 00:36:38,070 --> 00:36:38,860 >> Sihtrühm: 100. 754 00:36:38,860 --> 00:36:39,660 >> ANDI PENG: OK. 755 00:36:39,660 --> 00:36:43,462 Nii milline oleks olla pärast täidesaatva et koodirida? 756 00:36:43,462 --> 00:36:44,760 >> Sihtrühm: [kuuldamatu]. 757 00:36:44,760 --> 00:36:45,870 >> ANDI PENG: Kuidas b? 758 00:36:45,870 --> 00:36:46,780 >> Sihtrühm: 100. 759 00:36:46,780 --> 00:36:47,620 >> ANDI PENG: Jah. 760 00:36:47,620 --> 00:36:49,995 Ja siis kõik muu on päris palju muutunud, eks? 761 00:36:49,995 --> 00:36:51,239 Kuna me ei puutu seda. 762 00:36:51,239 --> 00:36:55,370 763 00:36:55,370 --> 00:36:57,010 Cool. 764 00:36:57,010 --> 00:36:58,390 Neljas. 765 00:36:58,390 --> 00:37:00,390 Veidi keerulisemaks. 766 00:37:00,390 --> 00:37:06,910 Nii pc-- taas pc on pointer mis osutas C- võrdub pa. 767 00:37:06,910 --> 00:37:11,520 768 00:37:11,520 --> 00:37:12,360 Mis on? 769 00:37:12,360 --> 00:37:14,525 >> Sihtrühm: 100. 770 00:37:14,525 --> 00:37:15,400 ANDI PENG: Mis on b? 771 00:37:15,400 --> 00:37:17,920 Sihtrühm: 100. 772 00:37:17,920 --> 00:37:18,862 ANDI PENG: Mis on c? 773 00:37:18,862 --> 00:37:19,993 Sihtrühm: 5. 774 00:37:19,993 --> 00:37:20,867 ANDI PENG: Mis pa? 775 00:37:20,867 --> 00:37:22,775 Sihtrühm: ampersand a. 776 00:37:22,775 --> 00:37:23,730 ANDI PENG: pb? 777 00:37:23,730 --> 00:37:26,010 Sihtrühm: Ampersand b. 778 00:37:26,010 --> 00:37:27,730 ANDI PENG: Ja keeruline, mis on pc nüüd? 779 00:37:27,730 --> 00:37:28,410 Sihtrühm: ampersand a. 780 00:37:28,410 --> 00:37:29,034 ANDI PENG: Jee. 781 00:37:29,034 --> 00:37:31,790 Woo hoo. 782 00:37:31,790 --> 00:37:32,500 Te näete? 783 00:37:32,500 --> 00:37:33,282 See kõik on õige. 784 00:37:33,282 --> 00:37:33,990 See ei ole liiga halb. 785 00:37:33,990 --> 00:37:38,730 Meil on rohkem kommi kui see pole veel kõik õigus, kuid ma arvan, et see on kõik õige. 786 00:37:38,730 --> 00:37:41,900 Ja me läheme üle vaid üks rohkem, enne kui me tabanud raskem ones. 787 00:37:41,900 --> 00:37:43,710 Vastused Mul on siin. 788 00:37:43,710 --> 00:37:47,050 >> Sisuliselt tean, et see on nagu matemaatika sel hetkel. 789 00:37:47,050 --> 00:37:53,240 Kui teil on lihtne võrrandid nagu pluss b, kordi c, mida on lihtne teha. 790 00:37:53,240 --> 00:37:56,390 Ja kui hakkate laiendades see, minge järjekorras toimingud. 791 00:37:56,390 --> 00:37:57,830 Sama asi nagu enne. 792 00:37:57,830 --> 00:38:00,030 >> Jälgi, kui teie star on enne midagi. 793 00:38:00,030 --> 00:38:01,640 See ütleb teile väärtus. 794 00:38:01,640 --> 00:38:04,640 Kui teil on enne midagi, ta ütleb teile aadressi. 795 00:38:04,640 --> 00:38:07,860 Ja siis tuleb määrata kas viiteid või selle väärtuse. 796 00:38:07,860 --> 00:38:11,260 Nii lähme üle selle viimane reaalne kiire. 797 00:38:11,260 --> 00:38:12,520 Pole see viimane, vabandust. 798 00:38:12,520 --> 00:38:13,340 Tegelikult kutid saavad valida. 799 00:38:13,340 --> 00:38:16,006 Kumba te poisid tahavad minna Üle välja Ülejäänud kolm 800 00:38:16,006 --> 00:38:17,449 et meil on? 801 00:38:17,449 --> 00:38:20,490 Ma ei usu, et me saame teha, et sest me ei saa lihtsalt hüpata line. 802 00:38:20,490 --> 00:38:21,000 OKEI. 803 00:38:21,000 --> 00:38:25,700 Te ei ole valikut, see on lihtsalt kolmanda kesta üks. 804 00:38:25,700 --> 00:38:29,228 >> Star pc võrdub b korda c. 805 00:38:29,228 --> 00:38:30,144 >> Sihtrühm: Star pb? 806 00:38:30,144 --> 00:38:32,117 >> Sihtrühm: Star pb. 807 00:38:32,117 --> 00:38:32,825 ANDI PENG: Vabandust? 808 00:38:32,825 --> 00:38:33,599 Sihtrühm: Star pb. 809 00:38:33,599 --> 00:38:34,390 ANDI PENG: Star pb. 810 00:38:34,390 --> 00:38:35,100 Oh, minu halb. 811 00:38:35,100 --> 00:38:38,647 Star pb võrdub b korda c. 812 00:38:38,647 --> 00:38:40,230 Ma annan teile poisid 10 sekundit. 813 00:38:40,230 --> 00:38:41,140 Just kiiresti mõelda. 814 00:38:41,140 --> 00:38:43,450 See on see, et meil on nii kaugel, mis juhtub, kui me 815 00:38:43,450 --> 00:38:46,770 täita, et viiendas reas seal? 816 00:38:46,770 --> 00:38:54,030 817 00:38:54,030 --> 00:38:55,980 OKEI. 818 00:38:55,980 --> 00:38:58,720 Mis on? 819 00:38:58,720 --> 00:38:59,560 >> Sihtrühm: 100. 820 00:38:59,560 --> 00:39:02,470 >> ANDI PENG: 100. 821 00:39:02,470 --> 00:39:03,610 Mis on b nüüd? 822 00:39:03,610 --> 00:39:04,330 >> Sihtrühm: 500. 823 00:39:04,330 --> 00:39:05,250 >> ANDI PENG: Hea. 824 00:39:05,250 --> 00:39:08,570 Kas keegi taha seletada mulle, miks see on 500? 825 00:39:08,570 --> 00:39:10,540 Ma ei tunne me tegelikult kunagi puudutanud b. 826 00:39:10,540 --> 00:39:13,950 Kuidas me suudame muuta väärtus b puudutamata b? 827 00:39:13,950 --> 00:39:15,090 Jah? 828 00:39:15,090 --> 00:39:18,239 >> Sihtrühm: Kuna star pb tähendab väärtus pb-- 829 00:39:18,239 --> 00:39:19,030 ANDI PENG: Täpselt. 830 00:39:19,030 --> 00:39:19,790 Sihtrühm: --which on b. 831 00:39:19,790 --> 00:39:20,581 ANDI PENG: Täpselt. 832 00:39:20,581 --> 00:39:26,880 Nii et siin on meie diagramm, meie pointer pb on tegelikult suunatud sellele õigus 833 00:39:26,880 --> 00:39:28,690 Siit, mis on tegeliku füüsilise b. 834 00:39:28,690 --> 00:39:31,340 Ja kui te lähete ja sa star pb, mis on 835 00:39:31,340 --> 00:39:36,080 pärast oma noolega oma pointer ja füüsiliselt väärtuse muutmist b. 836 00:39:36,080 --> 00:39:39,532 Nii et miks me oleme b muutunud 500 ilma tegelikult puudutamata b. 837 00:39:39,532 --> 00:39:42,490 Ja siis kõik muu jääb Sama sest me ei puutu seda. 838 00:39:42,490 --> 00:39:47,060 839 00:39:47,060 --> 00:39:48,530 See on b. 840 00:39:48,530 --> 00:39:49,420 Cool. 841 00:39:49,420 --> 00:39:50,485 Ja siis-- 842 00:39:50,485 --> 00:39:51,910 >> Sihtrühm: Ma lihtsalt küsimus. 843 00:39:51,910 --> 00:39:52,730 >> ANDI PENG: Jah? 844 00:39:52,730 --> 00:39:56,000 >> Sihtrühm: Kuna we've-- pole enam ampersand c, 845 00:39:56,000 --> 00:39:59,620 see tähendab ampersand suunab sama asi nüüd? 846 00:39:59,620 --> 00:40:00,520 >> ANDI PENG: Yep. 847 00:40:00,520 --> 00:40:01,582 So-- 848 00:40:01,582 --> 00:40:03,540 Sihtrühm: Nii nool Selline lihtsalt liigub and-- 849 00:40:03,540 --> 00:40:04,030 ANDI PENG: Nii essentially-- 850 00:40:04,030 --> 00:40:05,405 Sihtrühm: --now me ei saa access-- 851 00:40:05,405 --> 00:40:08,387 ANDI PENG: --when me apparent c nüüd-- ma võltsija. 852 00:40:08,387 --> 00:40:08,970 Mis see oli? 853 00:40:08,970 --> 00:40:09,560 Kolmas rida? 854 00:40:09,560 --> 00:40:10,060 Neljas. 855 00:40:10,060 --> 00:40:11,490 Neljas. 856 00:40:11,490 --> 00:40:14,910 Kõik me tegime oli sisuliselt muuta see nool 857 00:40:14,910 --> 00:40:16,680 ja on see osutas asemel. 858 00:40:16,680 --> 00:40:19,480 >> Sihtrühm: Nii et me ei pääse c enam. 859 00:40:19,480 --> 00:40:22,520 >> ANDI PENG: Kui sul oli see täpse number, siis võiks seda kasutada. 860 00:40:22,520 --> 00:40:23,260 Aga, no. 861 00:40:23,260 --> 00:40:25,680 Meil ei ole osuti ulatuvad c enam. 862 00:40:25,680 --> 00:40:27,430 Ma arvan, et kui sa tahad uuesti selle juurde tagasi pöörduda, siis 863 00:40:27,430 --> 00:40:30,390 looks teise pointer, et uuesti osutas c 864 00:40:30,390 --> 00:40:32,856 või dereferenced seda ja tõi tagasi. 865 00:40:32,856 --> 00:40:35,730 Niisiis, ei, just nüüd, kolm suunanäitajaks, ükski neist ei viita c. 866 00:40:35,730 --> 00:40:38,800 867 00:40:38,800 --> 00:40:40,110 >> Igaüks hea? 868 00:40:40,110 --> 00:40:41,440 Vastused on praegu portaalis. 869 00:40:41,440 --> 00:40:45,210 Julgelt pärast paragrahvi minna üle Viimase kahe ja ennast proovile panna. 870 00:40:45,210 --> 00:40:47,840 Sama mõistet, vaid natuke keerukam. 871 00:40:47,840 --> 00:40:51,860 Jälgi läbi loogika miks asjad on erinevad asjad. 872 00:40:51,860 --> 00:40:54,530 Ja vihje, vihjeid on teema, et me armastame 873 00:40:54,530 --> 00:40:58,780 katta kohta viktoriine, sest nad on kontseptuaalselt väga keeruline. 874 00:40:58,780 --> 00:41:01,360 Nii et ma soovitan, et te poisid kõik vaadata seda tabelit 875 00:41:01,360 --> 00:41:05,916 või kaldkriips sarnaseid mõisteid see enne oma viktoriin järgmisel nädalal. 876 00:41:05,916 --> 00:41:06,864 >> Sihtrühm: Vabandage mind. 877 00:41:06,864 --> 00:41:07,530 >> ANDI PENG: Jah? 878 00:41:07,530 --> 00:41:09,708 Sihtrühm: [kuuldamatu] lõplik one-- [kuuldamatu]. 879 00:41:09,708 --> 00:41:12,710 880 00:41:12,710 --> 00:41:15,770 >> ANDI PENG: 50,000? 881 00:41:15,770 --> 00:41:17,850 Mul oleks vaja seda järgida tagasi alla. 882 00:41:17,850 --> 00:41:22,530 Aga somewhere-- Ma arvan, et rida Enne, sa loodud hiiglaslik c väärtuse. 883 00:41:22,530 --> 00:41:26,250 c võrdub see hiiglane asi mis on 100 korda 500. 884 00:41:26,250 --> 00:41:27,006 Ei. 885 00:41:27,006 --> 00:41:28,000 >> Sihtrühm: [kuuldamatu]. 886 00:41:28,000 --> 00:41:28,625 >> ANDI PENG: Jah. 887 00:41:28,625 --> 00:41:30,620 100 korda 100, mis on 10.000. 888 00:41:30,620 --> 00:41:32,020 Milline on 10.000. 889 00:41:32,020 --> 00:41:35,410 Nii tagasi sinna sa oled korrutades b ja c. 890 00:41:35,410 --> 00:41:43,165 Nii osuti, mis osutab b-- mis on väärtus 500-- korda a-- 891 00:41:43,165 --> 00:41:44,480 >> Sihtrühm: [kuuldamatu]. 892 00:41:44,480 --> 00:41:45,730 ANDI PENG: Võib-olla see on vale. 893 00:41:45,730 --> 00:41:49,514 Sihtrühm: Ei, ei, see ei ole. [Kuuldamatu] osuti c on nüüd vastakuti a-- 894 00:41:49,514 --> 00:41:50,180 ANDI PENG: Jah. 895 00:41:50,180 --> 00:41:50,840 Ta on õige. 896 00:41:50,840 --> 00:41:56,477 >> Sihtrühm: --it on selle juures võrdsete korda-- see väärtus c. 897 00:41:56,477 --> 00:41:59,560 ANDI PENG: Kas oskate öelda, et vähe natuke kõvemini seega kõik kuulen sind? 898 00:41:59,560 --> 00:42:04,879 Sihtrühm: Nii osuti c viitab nüüd mida kursor on kasutatud punkti 899 00:42:04,879 --> 00:42:09,460 mina-- ja veel does-- kuid nad osutavad sama asi, mis on a, eks? 900 00:42:09,460 --> 00:42:12,925 Väärtust, aga see on uuesti määratletud. 901 00:42:12,925 --> 00:42:17,875 Ja alguses, et sa oled öeldes oli varem 100 korda 902 00:42:17,875 --> 00:42:21,340 väärtuse juures b, mis on 500. 903 00:42:21,340 --> 00:42:24,305 Ja nii see on, kui palju see on. 904 00:42:24,305 --> 00:42:24,805 50.000. 905 00:42:24,805 --> 00:42:32,860 Nad sa ümberjagamise et mida mälu on c on-- kursorit at c 906 00:42:32,860 --> 00:42:34,510 osutades mis on. 907 00:42:34,510 --> 00:42:38,460 Nii et sa oled uueks A 50000. 908 00:42:38,460 --> 00:42:40,210 ANDI PENG: ta võiks õpetada osa minu jaoks. 909 00:42:40,210 --> 00:42:41,260 Järgmine kord, kui see kõik on sinu. 910 00:42:41,260 --> 00:42:41,440 Siin. 911 00:42:41,440 --> 00:42:42,564 Siin on rohkem kommi eest. 912 00:42:42,564 --> 00:42:45,790 Sa väärid kommi eest. 913 00:42:45,790 --> 00:42:47,260 >> Sihtrühm: Ma peaaegu püütud seda. 914 00:42:47,260 --> 00:42:47,660 >> ANDI PENG: Sa peaaegu püütud seda. 915 00:42:47,660 --> 00:42:48,450 Pole hullu. 916 00:42:48,450 --> 00:42:48,950 Jah. 917 00:42:48,950 --> 00:42:50,033 Aga ta oli täpselt õige. 918 00:42:50,033 --> 00:42:54,469 Mida sa pead tegema on selle-- Ma arvan, et me 919 00:42:54,469 --> 00:42:56,510 peavad järgima asjaolu et osuti on nüüd 920 00:42:56,510 --> 00:42:57,880 osutades erinevaid väärtusi. 921 00:42:57,880 --> 00:43:01,785 Nii value-- kahju on pointer c repointed a. 922 00:43:01,785 --> 00:43:04,390 Ja nii, et nihutada kõik meie numbrid. 923 00:43:04,390 --> 00:43:08,930 Ja sellepärast, kui sisenete väärtus salvestatakse seal, see on erinev. 924 00:43:08,930 --> 00:43:10,490 Kas see on mõtet? 925 00:43:10,490 --> 00:43:11,380 OKEI. 926 00:43:11,380 --> 00:43:12,820 Cool. 927 00:43:12,820 --> 00:43:16,635 Igaüks hea, enne kui ma liikuda? 928 00:43:16,635 --> 00:43:25,332 >> Sihtrühm: Kas the-- kui sa lähed mööda ridu vasakus veerus, 929 00:43:25,332 --> 00:43:30,494 ei esimeses reas mõjutada teises reas ja siis second-- nagu, see on all-- 930 00:43:30,494 --> 00:43:31,160 ANDI PENG: Jah. 931 00:43:31,160 --> 00:43:37,610 Seega kujutada see kood, kus ma lihtsalt kirjutada on võrdne b korda c, star võrdub c. 932 00:43:37,610 --> 00:43:40,290 Kujutage ette, et ma olen lihtsalt jooksis see kood 933 00:43:40,290 --> 00:43:42,710 ja ma ei saa trükkida, mida kõik need asjad olid. 934 00:43:42,710 --> 00:43:46,200 Kui ma oleksin lihtsalt printida esimene asi ülaosas, oleks siin. 935 00:43:46,200 --> 00:43:48,510 Kui pärast jooksin kõik neid ridu koodi, 936 00:43:48,510 --> 00:43:51,160 Mis need väärtused tuleks lõpul on seda. 937 00:43:51,160 --> 00:43:53,290 >> Nii et ma olen tegelikult kirjutatud programm siin. 938 00:43:53,290 --> 00:43:55,840 Ma ei ole teinud kõik korrutamine. 939 00:43:55,840 --> 00:43:58,310 Aga kujutage ette. 940 00:43:58,310 --> 00:44:00,370 Nii et siin ma lihtsalt olla programmi nimega suunanäitajaks. 941 00:44:00,370 --> 00:44:04,190 Ma lähen vaadet, kui sa guys-- OK. 942 00:44:04,190 --> 00:44:07,580 Nii et ma olen loodud muutujad a, b ja c. 943 00:44:07,580 --> 00:44:09,640 Olen pani need võrdne 3, 4 ja 5 ning ma olen 944 00:44:09,640 --> 00:44:11,770 loodud nende vastavate suunanäitajaks. 945 00:44:11,770 --> 00:44:14,550 Ja siis siin ma lihtsalt lähen välja printida, mis see on. 946 00:44:14,550 --> 00:44:15,833 Nii et lubage mul joosta, et. 947 00:44:15,833 --> 00:44:21,520 948 00:44:21,520 --> 00:44:24,750 >> Kas te poisid see-- jama. 949 00:44:24,750 --> 00:44:28,150 Kas te nägite, kuidas, b ja c on need väärtused 950 00:44:28,150 --> 00:44:33,530 kuid nende vihjeid on see hiiglane prügi väärtus, et me ei hooli? 951 00:44:33,530 --> 00:44:36,690 Nii et kui ma oleks tegelikult pistik kõikides mitmekordistumine 952 00:44:36,690 --> 00:44:39,770 ja siis kordustrükk kõik see oleks täide viia 953 00:44:39,770 --> 00:44:44,509 et mis see on allosas. 954 00:44:44,509 --> 00:44:47,300 Nii et kui te tahate mängida koos tegelikult füüsiliselt kodeerimine, 955 00:44:47,300 --> 00:44:49,000 kutid lihtsalt ühendage kõik need. 956 00:44:49,000 --> 00:44:52,860 Kood on online ja siis oma väärtused peaksid printida, et hiljem. 957 00:44:52,860 --> 00:44:56,170 >> Ja siis näed, kuidas pointer aadressid on tegelikult ümber jaotada. 958 00:44:56,170 --> 00:44:59,190 Nii näete kuidas aadressi c tegelikult muutub 959 00:44:59,190 --> 00:45:00,920 võrdse olenemata aadress oli. 960 00:45:00,920 --> 00:45:04,140 Ja nad sobivad iganes et suur hulk on. 961 00:45:04,140 --> 00:45:06,530 Hea küsimus. 962 00:45:06,530 --> 00:45:07,550 Igaüks on kõik korras? 963 00:45:07,550 --> 00:45:10,300 Üks viimase kõne küsimustele. 964 00:45:10,300 --> 00:45:11,590 OKEI. 965 00:45:11,590 --> 00:45:12,090 Hästi. 966 00:45:12,090 --> 00:45:15,940 Nii valmistab on meelt puhutud veidi natuke rohkem. 967 00:45:15,940 --> 00:45:18,000 Massiivid on tegelikult lihtsalt suunanäitajaks. 968 00:45:18,000 --> 00:45:19,010 Ongi kõik nad on. 969 00:45:19,010 --> 00:45:20,410 Ja pidage meeles, mida on stringid? 970 00:45:20,410 --> 00:45:21,630 Nad on ka massiive. 971 00:45:21,630 --> 00:45:23,110 Mis siis on stringid tõesti? 972 00:45:23,110 --> 00:45:27,100 Nad on nagu viiteid, et alguses char enam tähemärki. 973 00:45:27,100 --> 00:45:29,970 >> Nii et see on lihtsalt mõisted, mis algavad ehitada peal üksteist. 974 00:45:29,970 --> 00:45:32,030 Nii et miks-- sa mäletan loengut, David, 975 00:45:32,030 --> 00:45:34,990 kui ta oli selline võrdlus int string ema 976 00:45:34,990 --> 00:45:37,640 on midagi, ja siis teine ​​string ema ja sina 977 00:45:37,640 --> 00:45:41,240 proovida võrdsustada kahe teineteisele, nad teile erinevaid väärtusi. 978 00:45:41,240 --> 00:45:44,370 See on sellepärast, et stringid ise pole väärtusi. 979 00:45:44,370 --> 00:45:48,860 Kõik nad on on mäluaadressid char-- nad on massiivid sümbolite ja massiivid 980 00:45:48,860 --> 00:45:50,050 on vaid suunanäitajaks. 981 00:45:50,050 --> 00:45:54,022 >> Nii sisuliselt kui David oli comparing-- 982 00:45:54,022 --> 00:45:55,355 on see OK, kui ma kustutan kõik selle? 983 00:45:55,355 --> 00:46:02,320 984 00:46:02,320 --> 00:46:09,750 Nii loeng kui David oli ema võrdub võrdub ema, 985 00:46:09,750 --> 00:46:11,630 meile, mis tundub olevat sama asi. 986 00:46:11,630 --> 00:46:12,317 Õigus? 987 00:46:12,317 --> 00:46:15,150 Kuid arvuti all kapuuts, mis tegelikult toimub 988 00:46:15,150 --> 00:46:18,380 on see, et see string, kõik, mis on on massiiv. 989 00:46:18,380 --> 00:46:21,420 990 00:46:21,420 --> 00:46:25,390 Mis ampersand-- või, vabandust, koos null terminaator lõpus. 991 00:46:25,390 --> 00:46:28,311 992 00:46:28,311 --> 00:46:28,810 Õigus? 993 00:46:28,810 --> 00:46:29,940 Längkriipsu 0. 994 00:46:29,940 --> 00:46:32,900 Vale kurakriips. 995 00:46:32,900 --> 00:46:35,960 >> Nii et kõik need were-- kõik Nende kahe stringe were-- 996 00:46:35,960 --> 00:46:40,360 on massiivi suurus püksid koos tähed ema ja ema. 997 00:46:40,360 --> 00:46:44,780 Aga mida massiivid tõesti on vaid viiteid konkreetse koha mälu 998 00:46:44,780 --> 00:46:47,140 mis ütleb, et alustada oma valikut. 999 00:46:47,140 --> 00:46:52,370 Nii sel juhul, kõik see oli oli vaid mõned prügi väärtus, 1000 00:46:52,370 --> 00:46:54,230 mingi suvaline pointer. 1001 00:46:54,230 --> 00:46:56,330 Ja kõik see oli olnud mõne muu prügi väärtus. 1002 00:46:56,330 --> 00:46:59,830 Ütleme nii, et 0x200. 1003 00:46:59,830 --> 00:47:02,410 >> Ja nii kui püüad võrdne need kaks üksteisele 1004 00:47:02,410 --> 00:47:06,130 nad false, sest addresses-- viiteid 1005 00:47:06,130 --> 00:47:08,390 et nad were-- olid erinevad. 1006 00:47:08,390 --> 00:47:11,400 Arvestades, et on teistsugune kui sa oled püüavad võrrelda tegelikku täisarvud. 1007 00:47:11,400 --> 00:47:15,820 Nagu kui sa tahtsid compare-- Viimase example-- int punktist A punkti B, 1008 00:47:15,820 --> 00:47:17,640 nad hindavad true, kui Elliot ütles 1009 00:47:17,640 --> 00:47:19,431 sest nad olid täisarvud, mis on salvestatud 1010 00:47:19,431 --> 00:47:21,320 ja sa hinnata vaid väärtusi. 1011 00:47:21,320 --> 00:47:25,090 Siin, sest stringid on massiivid ja kõik massiivid on viiteid, 1012 00:47:25,090 --> 00:47:28,080 Sellepärast nad ei ole üksteisega võrdsed. 1013 00:47:28,080 --> 00:47:31,210 >> Nii mingi segane, et graafika. 1014 00:47:31,210 --> 00:47:32,450 Aga olgem lihtsalt ette kujutada. 1015 00:47:32,450 --> 00:47:38,110 Me oleme luua massiivi suurus 3 indeksiga 0 kuni 2-- 0, 1016 00:47:38,110 --> 00:47:41,530 1, 2 väärtustega 1 2 ja 3 säilitati neid. 1017 00:47:41,530 --> 00:47:43,820 Kõik massiivi tõesti does-- siin, olgem lihtsalt 1018 00:47:43,820 --> 00:47:46,720 öelda Ma koostan pointer Selle massiivi, mis on 1019 00:47:46,720 --> 00:47:50,810 juurdepääsu väärtus Esimene indeks seda valikut. 1020 00:47:50,810 --> 00:47:52,890 Nii et siin oleks 0. 1021 00:47:52,890 --> 00:47:53,390 Õigus? 1022 00:47:53,390 --> 00:47:56,820 Kas igaüks aru, kuidas et esimene rida hinnata? 1023 00:47:56,820 --> 00:47:57,420 Hea. 1024 00:47:57,420 --> 00:48:00,800 >> Ja kui sa tahad initsialiseerida täiendav väärtuste pärast seda, 1025 00:48:00,800 --> 00:48:04,390 kõik me teeme on ümberjagamise. 1026 00:48:04,390 --> 00:48:08,810 Nii 0, 1, 2, 1. 1027 00:48:08,810 --> 00:48:12,770 Nii et see kursor, mis kunagi oli osutades siin, kõik me teeme 1028 00:48:12,770 --> 00:48:15,540 liigub ta maha. 1029 00:48:15,540 --> 00:48:16,970 Seda pluss 1 teeb. 1030 00:48:16,970 --> 00:48:18,500 Ja siis saame panna 2 sinna. 1031 00:48:18,500 --> 00:48:23,250 Kui me tahtsime panna 3 ühes pärast, me ei kustuta see pointer, 1032 00:48:23,250 --> 00:48:25,170 pane 3 sinna. 1033 00:48:25,170 --> 00:48:26,420 Kas see teeb mõttes kõik? 1034 00:48:26,420 --> 00:48:26,920 Jah. 1035 00:48:26,920 --> 00:48:28,086 Kas teil on küsimus? 1036 00:48:28,086 --> 00:48:30,711 Sihtrühm: See on [kuuldamatu] on küsimus, ma ütlen seda ikkagi. 1037 00:48:30,711 --> 00:48:35,496 Ma ei arva, et see on tegelikult Küsimus Aga-- inglise, massiiv 1038 00:48:35,496 --> 00:48:37,448 võrdub 1 mõttekas. 1039 00:48:37,448 --> 00:48:39,888 Oleme nagu, OK, esimene asi. 1040 00:48:39,888 --> 00:48:44,280 Aga asjad on 0 indeks [Kuuldamatu] massiivi võrdub 0 1041 00:48:44,280 --> 00:48:48,024 näidata esimest kohapeal. 1042 00:48:48,024 --> 00:48:48,690 ANDI PENG: Jah. 1043 00:48:48,690 --> 00:48:53,740 Nii tegelikult, mida ma teen siin Ma ei tutvumise esimene indeks. 1044 00:48:53,740 --> 00:48:57,930 Kõik Olin doing-- nii esiteks, öelge mulle, mida ei star massiivi teha? 1045 00:48:57,930 --> 00:48:59,480 Mida teeb star enne osuti teha? 1046 00:48:59,480 --> 00:49:00,855 >> Sihtrühm: See näitab osuti. 1047 00:49:00,855 --> 00:49:02,910 Et sa oled kuulutab pointer. 1048 00:49:02,910 --> 00:49:04,380 See de-- 1049 00:49:04,380 --> 00:49:07,520 >> ANDI PENG: See dereferences mis tähendab, see läheb ja tegelikult saab väärtus. 1050 00:49:07,520 --> 00:49:08,020 Õigus? 1051 00:49:08,020 --> 00:49:13,030 Nii et kui sa tahad saada väärtus siin ja määrata, et kuni 1. 1052 00:49:13,030 --> 00:49:13,800 Jah? 1053 00:49:13,800 --> 00:49:17,050 Nii et ma ei actually-- ma ei tõesti hoolivad indeks seda, 1054 00:49:17,050 --> 00:49:21,406 kõik teen lihtsalt iterating alla liikudes oma kursorit mööda massiivi. 1055 00:49:21,406 --> 00:49:23,280 Ja siis lõpuks ma lõpetama, eks? 1056 00:49:23,280 --> 00:49:26,750 Ja nii, et ma saan on siis, kui ma tabanud puhul 1057 00:49:26,750 --> 00:49:28,750 string, null terminaator. 1058 00:49:28,750 --> 00:49:32,710 Ma tean, oh, kui ma tabanud back-- kui ma näen kurakriips 0, ma tean, ma olen teinud seda 1059 00:49:32,710 --> 00:49:35,270 ja ma tean, et ma ei saa lihtsalt lõpetage iterating läbi. 1060 00:49:35,270 --> 00:49:36,200 Tõesti hea küsimus. 1061 00:49:36,200 --> 00:49:40,210 >> Ja me tõesti minna kaugemale süvitsi seda järgmisel nädalal 1062 00:49:40,210 --> 00:49:43,990 sest tükk, mis läheb kaasata palju kasutust suunanäitajaks. 1063 00:49:43,990 --> 00:49:48,459 Aga tean, et just nüüd, see on lihtsalt erinev more-- 1064 00:49:48,459 --> 00:49:51,250 see on lihtsalt teistmoodi eest Arvuti kirjutada sisuliselt 1065 00:49:51,250 --> 00:49:52,470 mida me oleme teinud. 1066 00:49:52,470 --> 00:49:54,900 Nagu David ütles Loeng, kuidas me 1067 00:49:54,900 --> 00:50:01,720 juurdepääsu massiivi on lihtsalt tehes massiivi 0, sulg 0, kui me lihtsalt 1068 00:50:01,720 --> 00:50:04,050 tahtis pääseda esimene väärtus. 1069 00:50:04,050 --> 00:50:10,280 >> Kõik arvuti teeb pöördub et sinna ja iterating ise. 1070 00:50:10,280 --> 00:50:13,580 Nii me nimetame seda süntaktilise suhkur, mis on lihtsalt 1071 00:50:13,580 --> 00:50:18,420 fancy viis öelda kasutajasõbralik viisid meid teadmine, kuidas programmi. 1072 00:50:18,420 --> 00:50:21,560 Aga arvuti all, mida ta teeb, 1073 00:50:21,560 --> 00:50:23,997 see on tegelikult lihtsalt võttes osuti, mis on reguleerida. 1074 00:50:23,997 --> 00:50:26,330 Aga nii, et me kirjutame seda, sest see on lihtsam meile 1075 00:50:26,330 --> 00:50:30,240 mõelda asju nii kastid ja kuidas liikuda mööda kasti, 1076 00:50:30,240 --> 00:50:32,190 on omades sulgudes. 1077 00:50:32,190 --> 00:50:36,394 Vabandust, see oli tõesti, tõesti halvasti Aga-- yeah. 1078 00:50:36,394 --> 00:50:38,310 Sihtrühm: Niisiis, kuidas oleks võrdlete kahte stringid 1079 00:50:38,310 --> 00:50:40,560 et näha, kas nad on üksteisega võrdsed? 1080 00:50:40,560 --> 00:50:42,690 >> ANDI PENG: Taavet kirjutas Selle programmi loengu 1081 00:50:42,690 --> 00:50:45,274 nii et ma olen lihtsalt läheb minema üle kiiresti ja lühidalt. 1082 00:50:45,274 --> 00:50:47,440 See, kuidas sa teeksid, et on see, et teil oleks tegelikult 1083 00:50:47,440 --> 00:50:51,300 vaja minna ja võrrelda addresses-- või väärtused 1084 00:50:51,300 --> 00:50:52,810 saadud viiteid. 1085 00:50:52,810 --> 00:50:55,140 Seega pidage meeles, kuidas sa saada väärtus siin? 1086 00:50:55,140 --> 00:50:56,825 Ma ei hooli aadress siia. 1087 00:50:56,825 --> 00:50:58,950 Kuidas tegelikult saada väärtus iganes on siin? 1088 00:50:58,950 --> 00:50:59,470 >> Sihtrühm: [kuuldamatu]. 1089 00:50:59,470 --> 00:51:00,261 >> ANDI PENG: Täpselt. 1090 00:51:00,261 --> 00:51:05,090 Nii et sa võrrelda star siin versus staar siin. 1091 00:51:05,090 --> 00:51:06,150 Kas need võrdsed. 1092 00:51:06,150 --> 00:51:07,690 Ja siis minna. 1093 00:51:07,690 --> 00:51:09,530 Kas star siin star siin võrdsed? 1094 00:51:09,530 --> 00:51:10,030 OKEI. 1095 00:51:10,030 --> 00:51:10,283 Nad on võrdsed. 1096 00:51:10,283 --> 00:51:12,866 Ja sa muudkui läheb alla kuni olete tabanud lõpuks nii. 1097 00:51:12,866 --> 00:51:16,190 Ja kui need kõik on võrdsed, siis sa tead oma string on võrdsed. 1098 00:51:16,190 --> 00:51:18,130 Ja C on tegelikult funktsiooni kirjutatakse nimega 1099 00:51:18,130 --> 00:51:20,713 String Comp, mis tegelikult lihtsalt kas see sulle, et sa dont " 1100 00:51:20,713 --> 00:51:22,140 pea kirjutama seda ise. 1101 00:51:22,140 --> 00:51:23,274 Jah? 1102 00:51:23,274 --> 00:51:26,970 >> Sihtrühm: Ma arvan, et loengu Kui me ei võrdlemiseks. 1103 00:51:26,970 --> 00:51:29,520 Me tõesti ei vaja counter nagu pi, eks? 1104 00:51:29,520 --> 00:51:34,310 >> ANDI PENG: Sa ei sest me tõesti ei hooli 1105 00:51:34,310 --> 00:51:36,250 Mitu kasti oleme kordasid läbi. 1106 00:51:36,250 --> 00:51:39,580 Kõik me hoolime, et me ei kavatse Jätkab, kuni ma tean, et peatada. 1107 00:51:39,580 --> 00:51:41,990 Ja sa tead, et lõpetada, kui seal on mingi märk 1108 00:51:41,990 --> 00:51:45,310 et sa oled null terminaator. 1109 00:51:45,310 --> 00:51:45,930 Jah. 1110 00:51:45,930 --> 00:51:47,154 So-- 1111 00:51:47,154 --> 00:51:48,070 Sihtrühm: [kuuldamatu]. 1112 00:51:48,070 --> 00:51:48,736 ANDI PENG: Jah. 1113 00:51:48,736 --> 00:51:51,950 Nii puhul võrreldakse stringid, ma tõesti ei 1114 00:51:51,950 --> 00:51:54,207 huvita, kui palju tähti are-- pean võrrelda 1115 00:51:54,207 --> 00:51:56,540 kui nad on õige või vale, kui nad üksteisega võrdsed. 1116 00:51:56,540 --> 00:51:58,914 Mind ei huvita, kui palju tähti on igaüks neist, eks? 1117 00:51:58,914 --> 00:52:01,130 Ma lihtsalt huvita, et see paarilised sellega ning teiselt 1118 00:52:01,130 --> 00:52:05,311 pärast tikud ja üks pärast sobib kõik viis kuni lõpuni. 1119 00:52:05,311 --> 00:52:05,810 Õigus? 1120 00:52:05,810 --> 00:52:07,000 Kas see on mõtet? 1121 00:52:07,000 --> 00:52:10,166 >> Nii et ma tõesti ei hooli, kui palju tähti, Ma lihtsalt huvita, et kõik kirjad 1122 00:52:10,166 --> 00:52:11,050 mängu. 1123 00:52:11,050 --> 00:52:12,910 Jah. 1124 00:52:12,910 --> 00:52:13,920 OKEI. 1125 00:52:13,920 --> 00:52:16,840 Kas ma liiguks sellest? 1126 00:52:16,840 --> 00:52:18,489 Hea. 1127 00:52:18,489 --> 00:52:21,280 Meil hakkab veidi lühike aega, et ma lähen lihtsalt võimaldab teil 1128 00:52:21,280 --> 00:52:23,670 poisid korraks vaadata seda. 1129 00:52:23,670 --> 00:52:26,430 Käivita see oma ID, kui Te olete uudishimulik. 1130 00:52:26,430 --> 00:52:30,030 Ja kutid saavad näha, mida see saab välja trükkida. 1131 00:52:30,030 --> 00:52:30,640 OKEI. 1132 00:52:30,640 --> 00:52:34,990 >> Nii et kui miski me ka katsuda kohta natuke on idee pointer aritmeetika. 1133 00:52:34,990 --> 00:52:38,180 Milline, kes kõik on, on asemel kohandava 1134 00:52:38,180 --> 00:52:42,610 väärtused mis on salvestatud selle aadressil kursor, 1135 00:52:42,610 --> 00:52:45,030 see on lihtsalt tegelikult muutmata Tegelikult aadress. 1136 00:52:45,030 --> 00:52:49,420 Nii et kui sa nii inimese tahtnud kohandada oma kursorit käsitsi 1137 00:52:49,420 --> 00:52:52,700 kuidas sa teeksid, mis on lihtsalt teha n korda suurem kursorit. 1138 00:52:52,700 --> 00:52:53,240 Õigus? 1139 00:52:53,240 --> 00:52:54,810 >> Nii int. 1140 00:52:54,810 --> 00:52:58,580 Int-- mitu baiti mälu on int? 1141 00:52:58,580 --> 00:52:59,640 See on neli, eks? 1142 00:52:59,640 --> 00:53:03,520 Nii et kui ma tean, mul on massiivi kõik ints ja ma tahan seda rõhutada, et üks 1143 00:53:03,520 --> 00:53:08,470 hiljem, ma tean, et ma lihtsalt pean liikuda minu pointer alla nelja baiti, eks? 1144 00:53:08,470 --> 00:53:12,440 Ja nii n korda suurem osuti baiti 1145 00:53:12,440 --> 00:53:15,890 on aga palju baite sa oled lihtsalt Liigutatav kursor järgi. 1146 00:53:15,890 --> 00:53:20,350 >> Nii näiteks, kui meil on hulgaliselt ints, esimene, ütleme lihtsalt, 1147 00:53:20,350 --> 00:53:22,280 salvestatakse 0x00. 1148 00:53:22,280 --> 00:53:26,150 Tead kõrval üks läheb kell 0x04 sest see on neli baiti hiljem. 1149 00:53:26,150 --> 00:53:31,030 Ja üks pärast seda läheb olla 0x08 ja nii edasi ja nii edasi. 1150 00:53:31,030 --> 00:53:33,830 Ja nii, poisid, vaadake. 1151 00:53:33,830 --> 00:53:36,640 >> Kõik, mida sa teed siin et teil on pointer y 1152 00:53:36,640 --> 00:53:43,700 ja sa lisades, et teie mälu, nii et saate liikuda alla 1153 00:53:43,700 --> 00:53:45,559 plokid mälu eraldatud. 1154 00:53:45,559 --> 00:53:46,850 Kind of kõrgem mõiste. 1155 00:53:46,850 --> 00:53:48,820 Te ei pea teada sel nädalal, 1156 00:53:48,820 --> 00:53:51,290 kuid see on kõik see teeb seal. 1157 00:53:51,290 --> 00:53:55,190 1158 00:53:55,190 --> 00:53:55,900 OKEI. 1159 00:53:55,900 --> 00:53:56,710 >> Teine nali aega. 1160 00:53:56,710 --> 00:54:01,360 1161 00:54:01,360 --> 00:54:02,780 Kaks stringid kõndida baar. 1162 00:54:02,780 --> 00:54:05,713 Üks ütleb, Sooviksin rummi ja Coke prügi väärtusi. 1163 00:54:05,713 --> 00:54:08,796 Teine ütleb, pead vabandama mu sõber, ta ei ole null lõpetatakse. 1164 00:54:08,796 --> 00:54:10,390 Te saate seda. 1165 00:54:10,390 --> 00:54:10,890 Vabandust. 1166 00:54:10,890 --> 00:54:13,490 See on, kuidas ma saan ennast läheb kui ma prep osa 1167 00:54:13,490 --> 00:54:15,650 on mul lisada paar nalja slaidid. 1168 00:54:15,650 --> 00:54:16,150 Niikuinii. 1169 00:54:16,150 --> 00:54:21,460 1170 00:54:21,460 --> 00:54:21,960 OKEI. 1171 00:54:21,960 --> 00:54:24,290 Enne kui ma liikuda nüüd-- nii sisuliselt oleme 1172 00:54:24,290 --> 00:54:30,600 kaetud kõik kontseptuaalne seotud küsimusi suunanäitajaks. 1173 00:54:30,600 --> 00:54:34,090 Ja siis me läheme talk-- liikuv rohkem rääkida, miks see on oluline 1174 00:54:34,090 --> 00:54:37,810 ja kuidas see sobitub Idee mälu haldamine. 1175 00:54:37,810 --> 00:54:39,810 Aga enne kui ma liikuda, kas keegi on küsimused 1176 00:54:39,810 --> 00:54:43,880 umbes viit kasutamist, mis toimub kohta, kui loote suunanäitajaks, 1177 00:54:43,880 --> 00:54:47,540 Kuidas on viitamine iga teised, kuidas neid dereferencing? 1178 00:54:47,540 --> 00:54:51,760 Kõik küsimused et enne kui ma liikuda? 1179 00:54:51,760 --> 00:54:53,060 OKEI. 1180 00:54:53,060 --> 00:54:54,770 Hea. 1181 00:54:54,770 --> 00:54:58,170 >> Nii et see toob meid selle suurem kõrgema mõiste 1182 00:54:58,170 --> 00:55:00,310 mälu juhtimine tervikuna. 1183 00:55:00,310 --> 00:55:02,720 Niisiis, sisuliselt on arvuti, seal on 1184 00:55:02,720 --> 00:55:06,300 kaks peamist tüüpi mälu või piirkonnad, kus mälu on salvestatud. 1185 00:55:06,300 --> 00:55:10,210 Sul on siin see, mida nimetatakse hunnik ja teil on siin 1186 00:55:10,210 --> 00:55:11,550 mida nimetatakse virna. 1187 00:55:11,550 --> 00:55:13,966 Ja me ei kavatse rääkida virna esimene, sest see on 1188 00:55:13,966 --> 00:55:16,910 rohkem finagley üks, mida on selline kontseptuaalselt 1189 00:55:16,910 --> 00:55:18,570 aru, mis toimub. 1190 00:55:18,570 --> 00:55:23,930 >> Nii et kõik virna on-- mõelda seda kui füüsilist virna mälu 1191 00:55:23,930 --> 00:55:28,880 kus teil on ploki mälu mis on kõrvale oma programmi 1192 00:55:28,880 --> 00:55:30,180 samas see töötab. 1193 00:55:30,180 --> 00:55:34,480 Ja see on koht, kus sisuliselt kõik oma kohalikud muutujad hoitakse. 1194 00:55:34,480 --> 00:55:38,300 Nii et see on lihtsalt suurendatud pildil selle virna. 1195 00:55:38,300 --> 00:55:41,060 Pinu seal, ma olen lihtsalt suum natuke rohkem. 1196 00:55:41,060 --> 00:55:46,170 >> Niisiis, sisuliselt virna teil on kamp funktsioon oma programmi. 1197 00:55:46,170 --> 00:55:48,250 Nii Lähme tagasi kuni nädal kaks näiteks 1198 00:55:48,250 --> 00:55:51,450 kus meil oli meie peamine ülesanne samuti kuupi funktsiooni 1199 00:55:51,450 --> 00:55:56,410 kus püüdsime luua funktsioon, mis cubed-- et võttis parameetrid sisendiks 1200 00:55:56,410 --> 00:55:59,110 kuubis, neid ja tagasi neid tagasi pealehele. 1201 00:55:59,110 --> 00:56:02,459 Nii nii, et see on salvestatud mälu on see, et teil on oma põhifunktsiooni 1202 00:56:02,459 --> 00:56:03,250 siin allosas. 1203 00:56:03,250 --> 00:56:06,630 Ja siis iga uue funktsiooni et helistate ja lisada peale selle, 1204 00:56:06,630 --> 00:56:07,960 mälu lihtsalt korstnad peal. 1205 00:56:07,960 --> 00:56:10,190 Mõtle seda füüsilist pinu. 1206 00:56:10,190 --> 00:56:13,570 >> Ja siis on kõik teie peamine muutujad oma põhiülesande 1207 00:56:13,570 --> 00:56:15,260 kõik, mis siin toimub, salvestatud. 1208 00:56:15,260 --> 00:56:17,440 Ja siis, kui te helistasite kuubik, see läheb ja seda 1209 00:56:17,440 --> 00:56:20,810 loob koopiad kõigist neist parameetrite ja salvestab need 1210 00:56:20,810 --> 00:56:23,010 Eespool teises kohas. 1211 00:56:23,010 --> 00:56:24,280 Ja miks me hoolime? 1212 00:56:24,280 --> 00:56:29,220 Põhjus me hoolime, et me ei saa lihtsalt kasuta parameetrid siin-- muutujad 1213 00:56:29,220 --> 00:56:33,080 siin-- ja me muudame neid, ootame neid ka muuta siin, eks? 1214 00:56:33,080 --> 00:56:35,910 >> Idee on selles, et nad salvestatud erinevates kohtades mälu 1215 00:56:35,910 --> 00:56:40,540 nii et kui sa oled juurdepääsu erinevatele funktsioone, mida sa arvad juhtub 1216 00:56:40,540 --> 00:56:45,520 tegelikult ei juhtu, kuna mälu bitti ei ole omavahel seotud. 1217 00:56:45,520 --> 00:56:50,530 Ja nii on küsimus, mis on tõesti oluline, et me sellist mõista 1218 00:56:50,530 --> 00:56:54,100 on, mis siis, kui meil hakkab Programmi suuruse funktsioonina 1219 00:56:54,100 --> 00:56:57,159 Kestab FRAME_BITS nii füüsiliselt, kuidas palju mälu on meil sellele anda? 1220 00:56:57,159 --> 00:56:59,950 Võibolla on see hiiglane funktsiooni, et me on anda see, et palju mälu. 1221 00:56:59,950 --> 00:57:02,230 Aga kui ta oli väiksem suudaksime vaja on väike natuke. 1222 00:57:02,230 --> 00:57:05,980 >> Nii et idee on see, et kui meil hakkab Programmi suurus, mis funktsiooni 1223 00:57:05,980 --> 00:57:09,100 sõltub kui palju muutujate ja tüübist muutujad 1224 00:57:09,100 --> 00:57:10,940 et me tahame anda talle. 1225 00:57:10,940 --> 00:57:13,910 Aga mis siis, kui arvu variables-- ja nende suurused, 1226 00:57:13,910 --> 00:57:16,140 mis on määratud mitte mida sa kooder kuid 1227 00:57:16,140 --> 00:57:20,580 määratakse tegelik kasutaja oma programmi. 1228 00:57:20,580 --> 00:57:24,240 Nii et kui ma tahtsin luua funktsiooni mis võttis stringid kasutaja, 1229 00:57:24,240 --> 00:57:27,630 aga ma ei tea tegelikult, kuidas suured need stringid on, see on minu jaoks raske 1230 00:57:27,630 --> 00:57:30,220 jaotada konkreetsetele mälumahu vaja. 1231 00:57:30,220 --> 00:57:30,920 Õigus? 1232 00:57:30,920 --> 00:57:35,234 >> Sest kui see funktsioon-- kui Selle kasutaja sisestab hiiglane string, 1233 00:57:35,234 --> 00:57:37,650 see saab luua viga mida nimetatakse sisuliselt 1234 00:57:37,650 --> 00:57:42,190 Kestab ülevoolu kuhu minna kaugemale piire mälu, mis sul on. 1235 00:57:42,190 --> 00:57:44,250 Ja nii siis mida me teeme? 1236 00:57:44,250 --> 00:57:47,290 Kui me ei saa lihtsalt luua see hiiglane Kestab mis võib päästa kõik, 1237 00:57:47,290 --> 00:57:50,260 Mida me siis teeme seda probleemi lahendada? 1238 00:57:50,260 --> 00:57:54,364 >> Nii et me ei kavatse minna ja rääkida selle teist tüüpi mälu 1239 00:57:54,364 --> 00:57:56,780 ja siis saame rääkida, kuidas saame kasutada kahte koos 1240 00:57:56,780 --> 00:57:58,550 lahendada see küsimus. 1241 00:57:58,550 --> 00:58:01,024 Nüüd me ei kavatse liikuda teise osa mälu 1242 00:58:01,024 --> 00:58:01,690 meie arvuti. 1243 00:58:01,690 --> 00:58:03,215 Seda nimetatakse hunnik. 1244 00:58:03,215 --> 00:58:07,150 Nii et kõik kivikangur on bassein vaba mälu, et 1245 00:58:07,150 --> 00:58:08,690 võib eraldada dünaamiliselt. 1246 00:58:08,690 --> 00:58:12,420 Nii, mis võivad muuta samas Teie programm töötab. 1247 00:58:12,420 --> 00:58:15,160 >> Ja nii piirkonna Kasutamata mälu, mida saab 1248 00:58:15,160 --> 00:58:18,200 olla allowed--, mis võib olla eraldatud funktsiooniga 1249 00:58:18,200 --> 00:58:20,490 nimetatakse malloc või mälu eraldamise. 1250 00:58:20,490 --> 00:58:23,110 Nii sisuliselt kui näed programm, 1251 00:58:23,110 --> 00:58:29,560 saab dünaamiliselt luua mälu hunnik ja kasutada, et kõik siin. 1252 00:58:29,560 --> 00:58:34,280 Ja nii siis kõik oma funktsioonid Siin pääseb hunnik. 1253 00:58:34,280 --> 00:58:37,960 >> Ja nii malloc see idee, et David Selline kiiresti korraks ilustatud 1254 00:58:37,960 --> 00:58:41,570 loengus, on vaid viis teil kontrollida oma mälu. 1255 00:58:41,570 --> 00:58:45,470 Like, kui sa lihtsalt luua Kestab funktsioone, kui sa oled lihtsalt 1256 00:58:45,470 --> 00:58:48,290 millel on oma põhifunktsiooni Teie juhuslik ülesandeid, 1257 00:58:48,290 --> 00:58:52,270 sa arvad neid lapsi, et lihtsalt jooksis minema, kui oli teinud, olles nendega. 1258 00:58:52,270 --> 00:58:53,690 Nad olid tõesti halb lastele. 1259 00:58:53,690 --> 00:58:55,515 Loote neid, siis õpetada neile midagi, 1260 00:58:55,515 --> 00:58:57,640 ja siis, kui soovite juurdepääs neile jälle nad 1261 00:58:57,640 --> 00:58:59,850 ei ole seal, sest teie mälu lihtsalt jooksis minema. 1262 00:58:59,850 --> 00:59:04,140 >> Aga malloc või hunnik, on võimalus võttes parem lastele, kus 1263 00:59:04,140 --> 00:59:07,090 saab omamoodi luua neid, määrab need väärtused, 1264 00:59:07,090 --> 00:59:11,080 kasuta them-- mis kõlas tõesti bad-- neid kasutada aga sa tahtsid, 1265 00:59:11,080 --> 00:59:14,002 aga siis oleks võimalik kontrollida neid ja siis vabastada mälu 1266 00:59:14,002 --> 00:59:14,960 kui neid vajate. 1267 00:59:14,960 --> 00:59:18,085 Niisiis, kui sa oled teinud oma funktsioon, lapsed tulevad sulle tagasi 1268 00:59:18,085 --> 00:59:20,290 ja sul on veel, et andmed on olemas. 1269 00:59:20,290 --> 00:59:25,690 >> Nii nii, et me malloc või luua, Mälu on selle funktsiooni järgi tühine star 1270 00:59:25,690 --> 00:59:26,790 malloc suurus baitides. 1271 00:59:26,790 --> 00:59:29,730 Nii et on lihtsalt prototüüp miks me seda teeme. 1272 00:59:29,730 --> 00:59:35,800 Nii näiteks on meil luua pointer ning kirjuta int-- int star pointer-- võrdsete 1273 00:59:35,800 --> 00:59:38,120 malloc suurus int. 1274 00:59:38,120 --> 00:59:41,734 Nii et põhjus, miks me seda teeme suurus ja mitte ainult number-- 1275 00:59:41,734 --> 00:59:43,650 sest me kõik teame, et int on neli baiti, 1276 00:59:43,650 --> 00:59:48,310 right-- kuid int on ainult neli baiti teatud operatsioonisüsteemid. 1277 00:59:48,310 --> 00:59:50,410 >> Idee meid programmeerijad on see, et me 1278 00:59:50,410 --> 00:59:53,160 soovid luua koodi, mida saab käivitada kõigis arvutites, mitte ainult 1279 00:59:53,160 --> 00:59:54,860 Meie lihtne arvutid. 1280 00:59:54,860 --> 00:59:58,350 Ja nii see on, miks me tahame kasutada suurus, mitte ainult number neli. 1281 00:59:58,350 --> 00:59:59,970 Kas see mõtet kõigile? 1282 00:59:59,970 --> 01:00:03,930 Nii suurus of-- kõik see on C funktsiooni või operaatori et 1283 01:00:03,930 --> 01:00:09,350 näitab, mitu baiti mälu ei teatud tüüpi muutuja asuda. 1284 01:00:09,350 --> 01:00:11,150 Nii sel juhul suurust int on neli. 1285 01:00:11,150 --> 01:00:12,090 Neli baiti. 1286 01:00:12,090 --> 01:00:15,490 Ja malloc läheb tasuta kuni nelja baiti oma hunnik, 1287 01:00:15,490 --> 01:00:18,790 siis sa võid oma peamise funktsiooni suudab salvestada mällu. 1288 01:00:18,790 --> 01:00:22,460 1289 01:00:22,460 --> 01:00:24,860 Kas kõik selge, et nii palju? 1290 01:00:24,860 --> 01:00:25,918 Jah? 1291 01:00:25,918 --> 01:00:28,122 >> Sihtrühm: Ma olen selge, kuid lihtsalt olla üle selged-- 1292 01:00:28,122 --> 01:00:28,705 ANDI PENG: OK. 1293 01:00:28,705 --> 01:00:29,246 Täiesti korras. 1294 01:00:29,246 --> 01:00:32,176 Sihtrühm: --size kohta on [kuuldamatu] saab tegelikult [kuuldamatu] 1295 01:00:32,176 --> 01:00:34,384 ja see tegelikult teha asi, mida me tahame seda. 1296 01:00:34,384 --> 01:00:35,380 See ei ole mingi pseudokoodi. 1297 01:00:35,380 --> 01:00:35,878 >> ANDI PENG: Ei 1298 01:00:35,878 --> 01:00:36,874 >> Sihtrühm: See on nagu tõeline asi-- 1299 01:00:36,874 --> 01:00:37,372 >> ANDI PENG: See on tõeline koodi. 1300 01:00:37,372 --> 01:00:38,455 >> Sihtrühm: --Meil seda kasutada. 1301 01:00:38,455 --> 01:00:39,862 See on tegelik. 1302 01:00:39,862 --> 01:00:40,418 Cool. 1303 01:00:40,418 --> 01:00:41,751 ANDI PENG: Suurus kaasas C. 1304 01:00:41,751 --> 01:00:43,475 Sihtrühm: See teeb mu elu õnnelikumaks. 1305 01:00:43,475 --> 01:00:45,550 ANDI PENG: Jah. 1306 01:00:45,550 --> 01:00:48,610 Nii et kui sa oled laisk programmeerija nagu ma mingi olen mõnikord, 1307 01:00:48,610 --> 01:00:50,402 Mulle ei meeldi meeldejätmist Mis suurus int 1308 01:00:50,402 --> 01:00:52,734 on, ma ei meeldi meeldejätmist suurusest ujuk on. 1309 01:00:52,734 --> 01:00:55,160 Suurus lihtsalt ütleb teile, mida see on ja see on palju lihtsam. 1310 01:00:55,160 --> 01:00:59,880 1311 01:00:59,880 --> 01:01:00,440 >> Hästi. 1312 01:01:00,440 --> 01:01:02,160 Nii tähtis asi et kutid kõik tahavad 1313 01:01:02,160 --> 01:01:04,620 meeles pidada, kui sa oled kasutades malloc on see, et teil on alati 1314 01:01:04,620 --> 01:01:06,400 on vaadata, kui see on null. 1315 01:01:06,400 --> 01:01:08,630 Nii nagu ma ütlesin, tagasi et pildi hunnik. 1316 01:01:08,630 --> 01:01:11,390 Hunnik on lihtsalt see hiiglane virna mälu, et sul on. 1317 01:01:11,390 --> 01:01:16,740 Ja sa tahad olla võimeline võtma tükkideks Mälu on seda ja kasuta seda, eks? 1318 01:01:16,740 --> 01:01:19,750 >> Aga mis siis, kui sul pole rohkem mälu, et hunnik? 1319 01:01:19,750 --> 01:01:23,650 Mis siis, kui ma olen juba harjunud kõik seda ja püüan malloc rohkem? 1320 01:01:23,650 --> 01:01:24,864 See ei ole olemas. 1321 01:01:24,864 --> 01:01:26,780 Noh, see on, miks sa oled hakka viga. 1322 01:01:26,780 --> 01:01:29,220 Sa lähed SEG süü. Sa lähed olema killustatust süü, kui sa 1323 01:01:29,220 --> 01:01:30,940 pääsemast asju, mida pole olemas. 1324 01:01:30,940 --> 01:01:33,180 Ja nii, kuidas me teeme mis ja kuidas me 1325 01:01:33,180 --> 01:01:36,120 vältida, et see, et me kontrollime näha, kui kursor on null. 1326 01:01:36,120 --> 01:01:41,650 >> Nii et kui ma oleks malloc midagi ja mul polnud rohkem mälu, 1327 01:01:41,650 --> 01:01:45,501 et oleks printida viga, sest pointer tagastatakse Teile on lihtsalt null. 1328 01:01:45,501 --> 01:01:47,750 Ja nii, kuidas me teeme see-- see on lihtsalt suurepärane disain, 1329 01:01:47,750 --> 01:01:52,140 lihtsalt pähe see-- on, et mis tahes kord, kui proovite malloc midagi, 1330 01:01:52,140 --> 01:01:55,300 sa lähed vaja kontrollige, kas see on null. 1331 01:01:55,300 --> 01:01:58,257 Sest iga kord, kui sa püüad saada mälu hunnik, 1332 01:01:58,257 --> 01:02:00,340 sul on alati teha Veenduge, et teil on mälu. 1333 01:02:00,340 --> 01:02:01,350 See on kõik see. 1334 01:02:01,350 --> 01:02:04,980 >> Nii päris palju neid kolme rida koodi, meelde jätta. 1335 01:02:04,980 --> 01:02:06,830 Iga kord, kui malloc, sulpsti neid. 1336 01:02:06,830 --> 01:02:08,190 Sa lähed neid vaja. 1337 01:02:08,190 --> 01:02:10,540 Sest ma garanteerin teile, me ei kavatse su proovile iga juhtumi ja arvuti 1338 01:02:10,540 --> 01:02:13,498 läheb plahvatada, sest sa oled üritagi juurdepääsu mälu, mis on 1339 01:02:13,498 --> 01:02:16,680 ei ole seal ja asjad hakkavad crash ja ta ei kavatse olla hea. 1340 01:02:16,680 --> 01:02:19,290 Nii lihtsalt puurida, et ajju. 1341 01:02:19,290 --> 01:02:21,370 Malloc, null. 1342 01:02:21,370 --> 01:02:22,360 Väga hea. 1343 01:02:22,360 --> 01:02:22,860 Hästi. 1344 01:02:22,860 --> 01:02:26,280 1345 01:02:26,280 --> 01:02:28,340 >> Siis see sünnitab küsimus, mis juhtub 1346 01:02:28,340 --> 01:02:30,550 pärast me teha kasutades, et mälu. 1347 01:02:30,550 --> 01:02:32,390 Kuna kogu idee võttes malloc oli 1348 01:02:32,390 --> 01:02:36,460 et meil on see kivikangur, et me saame võtta mälu ja siis saame seda kasutada. 1349 01:02:36,460 --> 01:02:37,220 Õigus? 1350 01:02:37,220 --> 01:02:40,550 Ja siis me peame meeles pidama, on, et pärast me teha seda, 1351 01:02:40,550 --> 01:02:41,900 siis saame vaba ta. 1352 01:02:41,900 --> 01:02:42,400 Lase sel minna. 1353 01:02:42,400 --> 01:02:43,979 Me ei lase tal minna. 1354 01:02:43,979 --> 01:02:47,020 Või muidu sa oled ka läheb lekkima mälu ja rohkem halbu asju juhtub. 1355 01:02:47,020 --> 01:02:49,010 >> Sisuliselt, kui Sa puudutad mälu 1356 01:02:49,010 --> 01:02:51,800 halbu asju juhtub, kui sa ei tee asju õigesti. 1357 01:02:51,800 --> 01:02:55,150 Nii et teil on vaadata, esiteks, Kui teil on vaba mälu. 1358 01:02:55,150 --> 01:02:58,700 Ja siis kui sa oled teinud, sa tahad tasuta seda ja lase oma operatsioonisüsteemi 1359 01:02:58,700 --> 01:03:00,690 võtta see tagasi. 1360 01:03:00,690 --> 01:03:04,870 Nii, kuidas me seda teha on lihtsalt, et Funktsiooni void tasuta ja pointer 1361 01:03:04,870 --> 01:03:06,370 sellele hunnik mälu. 1362 01:03:06,370 --> 01:03:08,680 >> Nii näiteks on tasuta pointer. 1363 01:03:08,680 --> 01:03:11,580 See on üsna lihtne, lihtne, ei taha seda unustada. 1364 01:03:11,580 --> 01:03:14,687 Nii et vaadata, et näha, kas see on null, tasuta. 1365 01:03:14,687 --> 01:03:15,270 Igaüks hea? 1366 01:03:15,270 --> 01:03:22,660 1367 01:03:22,660 --> 01:03:27,325 Nii et taas, kood, mis te poisid võib selline kiiresti pilk. 1368 01:03:27,325 --> 01:03:34,964 1369 01:03:34,964 --> 01:03:37,880 Ma tean, et see on palju uusi süntaks ja see kõik on õige, kui sa oled nagu, ah, 1370 01:03:37,880 --> 01:03:38,963 Mida see tähendab jälle? 1371 01:03:38,963 --> 01:03:40,250 Ära muretse. 1372 01:03:40,250 --> 01:03:46,785 Kõik see pidi olema on väljapanek hagi, kuidas kõik need asjad 1373 01:03:46,785 --> 01:03:47,660 saab kasutada koos. 1374 01:03:47,660 --> 01:03:52,190 1375 01:03:52,190 --> 01:03:54,190 Nii et on kokku pandud nagu kamp varem 1376 01:03:54,190 --> 01:03:56,532 slaidid me lihtsalt läks läbi ühte programmi. 1377 01:03:56,532 --> 01:03:58,240 Sihtrühm: Mõnes mõttes et saame actually-- 1378 01:03:58,240 --> 01:03:59,570 ANDI PENG: nii, et me saame tegelikult kasutada. 1379 01:03:59,570 --> 01:04:02,379 Sa võid sulpsti, et oma ID, saate käivitada see ja see töötab. 1380 01:04:02,379 --> 01:04:02,920 Sihtrühm: OK. 1381 01:04:02,920 --> 01:04:04,140 Nii et see on reaalne? 1382 01:04:04,140 --> 01:04:05,580 >> ANDI PENG: See on reaalne. 1383 01:04:05,580 --> 01:04:06,430 Jah. 1384 01:04:06,430 --> 01:04:08,690 Püüan teha seda nii, et fondid on erinevad nii 1385 01:04:08,690 --> 01:04:11,770 et kui ma tüüpi reaalne kood font on kirjas kood 1386 01:04:11,770 --> 01:04:15,471 ja et minu märkus kood on erinev, kuid Ma ei tea, kas see tegelikult toimib. 1387 01:04:15,471 --> 01:04:16,012 Sihtrühm: Ei 1388 01:04:16,012 --> 01:04:17,190 Ma arvan, et-- 1389 01:04:17,190 --> 01:04:18,213 >> ANDI PENG: OK. 1390 01:04:18,213 --> 01:04:20,578 >> Sihtrühm: --sometimes [Kuuldamatu] ja ma olen 1391 01:04:20,578 --> 01:04:23,416 nagu, et oleks tõesti armas kui see oli tegelikult kasutatav asi 1392 01:04:23,416 --> 01:04:24,812 aga siis see ei ole kasutatav asi. 1393 01:04:24,812 --> 01:04:26,270 Mulle meeldib, et see on kasutatav asi. 1394 01:04:26,270 --> 01:04:27,010 >> ANDI PENG: OK. 1395 01:04:27,010 --> 01:04:27,510 Jah. 1396 01:04:27,510 --> 01:04:28,430 Ma sealtkaudu mööda. 1397 01:04:28,430 --> 01:04:33,266 Ole nagu, David, lapsed on tõesti kurb, kui sa kirjutad võlts koodi. 1398 01:04:33,266 --> 01:04:34,240 Hästi. 1399 01:04:34,240 --> 01:04:34,740 Jah? 1400 01:04:34,740 --> 01:04:37,686 >> Sihtrühm: Nii PTR siin ei ole tegelikult osuti, 1401 01:04:37,686 --> 01:04:41,130 see on ploki mälu? 1402 01:04:41,130 --> 01:04:45,130 >> ANDI PENG: Nii sa räägid esimene rida või üks siin? 1403 01:04:45,130 --> 01:04:48,170 Kas te räägite see siin? 1404 01:04:48,170 --> 01:04:50,910 >> Sihtrühm: PTR on erinevaid asju in-- 1405 01:04:50,910 --> 01:04:53,230 >> ANDI PENG: Noh, nii siin mida ma doing-- tegelikult, 1406 01:04:53,230 --> 01:04:54,660 Lähme siit läbi. 1407 01:04:54,660 --> 01:04:57,120 Selline sidemed kenasti kõik mõisted. 1408 01:04:57,120 --> 01:05:01,840 Nii et siin on meil int star PTR. 1409 01:05:01,840 --> 01:05:04,160 Nii int pointer, see on kui me tegelikult luua 1410 01:05:04,160 --> 01:05:06,550 osuti, mis viitab täisarvu. 1411 01:05:06,550 --> 01:05:08,230 Noh, see läheb viitavad täisarv. 1412 01:05:08,230 --> 01:05:12,135 Ja me ei kavatse malloc või annab see, piisavalt mälu eraldatud 1413 01:05:12,135 --> 01:05:13,200 salvestada täisarv. 1414 01:05:13,200 --> 01:05:14,910 Nii neli baiti sel juhul. 1415 01:05:14,910 --> 01:05:18,024 >> Ja siis, kui see võrdub null-- võrdsete võrdub null-- läheme printida. 1416 01:05:18,024 --> 01:05:20,440 Oh, sul on viga, kuna sa oled välja mälu, eks? 1417 01:05:20,440 --> 01:05:22,814 Vastasel tagasi üks, et lihtsalt ütleb oma programmi 1418 01:05:22,814 --> 01:05:24,170 mis sul viga. 1419 01:05:24,170 --> 01:05:26,850 Ja siis, kui te seda teete on, et mälu on see 1420 01:05:26,850 --> 01:05:33,230 läheb salvestada mida iganes saada int annab sind asukoha 1421 01:05:33,230 --> 01:05:35,460 ja määrake see väärtus kursorit. 1422 01:05:35,460 --> 01:05:38,500 Nii see tegelikult läheb kustuta see väärtus 1423 01:05:38,500 --> 01:05:41,702 ja panna mida iganes saada int tulu. 1424 01:05:41,702 --> 01:05:43,910 Ja siis sa lähed print iganes nad sisenesid. 1425 01:05:43,910 --> 01:05:46,080 >> Sihtrühm: Ja see on saab olema hunnik? 1426 01:05:46,080 --> 01:05:47,060 >> ANDI PENG: See läheb olema hunnik. 1427 01:05:47,060 --> 01:05:48,768 >> Sihtrühm: Ja nii, et on kättesaadav. 1428 01:05:48,768 --> 01:05:51,220 ANDI PENG: Täpselt. 1429 01:05:51,220 --> 01:05:52,600 Nice. 1430 01:05:52,600 --> 01:05:53,756 Väga hea. 1431 01:05:53,756 --> 01:05:59,289 >> Sihtrühm: Nii et kui me vabastada PTR selles viimane samm, me vabastades pointer 1432 01:05:59,289 --> 01:06:00,724 või me vabastades blokeerida? 1433 01:06:00,724 --> 01:06:01,390 ANDI PENG: Jah. 1434 01:06:01,390 --> 01:06:05,570 Nii et me vabastades pointer-- noh, vabastades mäluploki. 1435 01:06:05,570 --> 01:06:08,780 Nii et ainus viis, kuidas saame isegi juurdepääsu Mälu on lastes kursorit. 1436 01:06:08,780 --> 01:06:10,730 Kui sul ei ole kursorit, sa oled nagu, oh, ma ei tea, kus ta on, 1437 01:06:10,730 --> 01:06:11,290 õige? 1438 01:06:11,290 --> 01:06:13,956 Nii et kui teil vabastada see, et sa oled sisuliselt vabastades et kogu ploki. 1439 01:06:13,956 --> 01:06:16,500 Siis arvuti teab, oh, miski kasutatav siin 1440 01:06:16,500 --> 01:06:19,396 Ma lihtsalt panna prügi väärtuste tagasi uuesti. 1441 01:06:19,396 --> 01:06:21,590 >> Sihtrühm: Nii täisarvud olemas on? 1442 01:06:21,590 --> 01:06:23,481 >> ANDI PENG: Kas täisarvud on olemas? 1443 01:06:23,481 --> 01:06:23,980 Vabandust. 1444 01:06:23,980 --> 01:06:25,271 Kas te sõnastada oma küsimusele? 1445 01:06:25,271 --> 01:06:28,330 Sihtrühm: ma mõtlesin, kui oled vaba pointer, täisarv, et sa saad, 1446 01:06:28,330 --> 01:06:29,990 on see ikka olemas? 1447 01:06:29,990 --> 01:06:31,360 >> ANDI PENG: Ei, see ei ole. 1448 01:06:31,360 --> 01:06:34,070 1449 01:06:34,070 --> 01:06:37,550 Või vähemalt see saab olemas oma mälu enne arvuti teeb 1450 01:06:37,550 --> 01:06:40,231 mida iganes sellega, kuid seal on kuidagi teil saada seda. 1451 01:06:40,231 --> 01:06:41,480 Sest sa vabanenud kursorit. 1452 01:06:41,480 --> 01:06:43,150 Sa ei tea, kus see on enam. 1453 01:06:43,150 --> 01:06:43,650 Jah. 1454 01:06:43,650 --> 01:06:46,500 1455 01:06:46,500 --> 01:06:48,560 >> Ma lähen edasi liikuda siin. 1456 01:06:48,560 --> 01:06:49,060 Phew. 1457 01:06:49,060 --> 01:06:53,012 Nii et me oleme läbi palju kontseptuaalset raskused mälu haldamine 1458 01:06:53,012 --> 01:06:54,720 ja me lihtsalt läheb sisuliselt kulutada 1459 01:06:54,720 --> 01:06:57,090 5, 10 minuti läheb üle süntaks asju, 1460 01:06:57,090 --> 01:07:03,240 on kasutatav ja kasulik kutid, kuid midagi liiga kontseptuaalselt seal. 1461 01:07:03,240 --> 01:07:03,740 OKEI. 1462 01:07:03,740 --> 01:07:06,930 >> Nii et me täiesti käikude vahetamist siin. 1463 01:07:06,930 --> 01:07:09,360 Mälu haldamine, raske. Lähtekohad, raske. Jah. 1464 01:07:09,360 --> 01:07:10,530 See on tõesti väga raske. 1465 01:07:10,530 --> 01:07:11,270 Täiesti korras. 1466 01:07:11,270 --> 01:07:13,800 Sellepärast teie tükk on saab olema väga raske. 1467 01:07:13,800 --> 01:07:17,740 Aga kui sa lähed ja teha asju, mida me oleme 1468 01:07:17,740 --> 01:07:19,860 peaks tegema, et Kindlasti asjad on null, 1469 01:07:19,860 --> 01:07:21,830 veenduge, et kontrollida, kas asjad on null, siis veenduge, et vaba mälu, 1470 01:07:21,830 --> 01:07:23,910 veenduge, asjad ei ole lekib, siis saad hea. 1471 01:07:23,910 --> 01:07:25,761 Sa seatakse. 1472 01:07:25,761 --> 01:07:26,260 Hästi. 1473 01:07:26,260 --> 01:07:30,870 Nii et me läheme liikuda sellesse Täiesti uus kontseptsioon ümbersuunamine. 1474 01:07:30,870 --> 01:07:33,201 Ja nii enne nüüd on Peamine viis, et me oleme 1475 01:07:33,201 --> 01:07:35,700 on suheldes meie programmid on läbi standard input 1476 01:07:35,700 --> 01:07:36,533 ja standard väljundi. 1477 01:07:36,533 --> 01:07:37,040 Õigus? 1478 01:07:37,040 --> 01:07:39,230 Meil on kasutaja sisend asju ja arvuti 1479 01:07:39,230 --> 01:07:42,090 sülitab selle meile tagasi terminali. 1480 01:07:42,090 --> 01:07:44,770 >> Kuid on ka teisi viisid meid suhelda 1481 01:07:44,770 --> 01:07:47,810 arvuti meie programme, mis ei ole just me 1482 01:07:47,810 --> 01:07:50,245 füüsiliselt kirjutades asju aastal, kui ma küsitakse. 1483 01:07:50,245 --> 01:07:52,620 Ja kuidas me teeme, mis on läbi suurem kui porgand 1484 01:07:52,620 --> 01:07:53,453 ja toru sümbol. 1485 01:07:53,453 --> 01:07:55,970 1486 01:07:55,970 --> 01:07:58,630 Nii saame ka lugeda ja kirjutada faile, mis. 1487 01:07:58,630 --> 01:08:03,230 >> Nii, kuidas me seda on suurem kui porgand, kõik, mis teeb 1488 01:08:03,230 --> 01:08:07,410 kirjutab sõltumata oma failil on eraldi faili. 1489 01:08:07,410 --> 01:08:11,870 Nii näiteks, kui ma tahtsin joosta hello world 1490 01:08:11,870 --> 01:08:14,330 ja ma tahtsin väljund salvestatakse teise faili 1491 01:08:14,330 --> 01:08:17,359 ja mitte ainult välja printida mulle, ma võid teha suurem porgand, 1492 01:08:17,359 --> 01:08:18,410 OUTPUT.TXT. 1493 01:08:18,410 --> 01:08:22,609 Nii et kõik, mis teeb võtab minu hello.world programmi 1494 01:08:22,609 --> 01:08:26,359 ja mis iganes väljund, see on salvestamisel faili nimega OUTPUT.TXT. 1495 01:08:26,359 --> 01:08:29,850 Nii nii, et David tegi Csv nimed õpilaste, 1496 01:08:29,850 --> 01:08:32,310 see on sama, mis kutid saavad seda teha. 1497 01:08:32,310 --> 01:08:35,137 >> Ja mis on eriti kasulik on siin suurem 1498 01:08:35,137 --> 01:08:38,220 than-- kaks suurem kui porgand märke, mida saate lisada väljundit 1499 01:08:38,220 --> 01:08:40,795 faili, mis tähendab, et sa võid lisada selle peale. 1500 01:08:40,795 --> 01:08:43,420 Sa võid hoida lisades OUTPUT.TXT iga täiendava asi 1501 01:08:43,420 --> 01:08:44,490 mis sa teed. 1502 01:08:44,490 --> 01:08:48,010 Või kui hakkate sattumist rohkem komplitseeritud programmide kahe suurema 1503 01:08:48,010 --> 01:08:50,939 kui porgand, et lihtsalt trükib välja veateateid. 1504 01:08:50,939 --> 01:08:53,340 Nii et teil on hiiglane summa veateated 1505 01:08:53,340 --> 01:08:54,810 ja sa tahad, et lugeda läbi kõik need ja sa 1506 01:08:54,810 --> 01:08:56,450 ei tahtnud, et kerida läbi oma terminal, 1507 01:08:56,450 --> 01:08:58,651 tegelikult võite lihtsalt teha suurem kui OUTPUT.TXT 1508 01:08:58,651 --> 01:09:00,359 ja see läheb säästa kõik oma vead 1509 01:09:00,359 --> 01:09:02,900 nimelisse faili OUTPUT.TXT et saab läbida ja lugeda. 1510 01:09:02,900 --> 01:09:04,622 Sihtrühm: Kus on tekstifaili salvestatud? 1511 01:09:04,622 --> 01:09:07,330 ANDI PENG: See salvestatakse samasse kataloog, et teie programm on. 1512 01:09:07,330 --> 01:09:09,830 Nii et sa lihtsalt minna tagasi ja vaadata seda. 1513 01:09:09,830 --> 01:09:11,930 Ja sama asi saab teha panus on 1514 01:09:11,930 --> 01:09:14,300 et me saame tegelikult teha sisu mõne faili 1515 01:09:14,300 --> 01:09:16,380 Ja me saame sisend, et meie programm. 1516 01:09:16,380 --> 01:09:19,930 Nii selle asemel, et teha käsuga argumente, kus sa füüsiliselt 1517 01:09:19,930 --> 01:09:21,680 tuleb kirjutada asju iga kord, sa 1518 01:09:21,680 --> 01:09:27,890 võib tegelikult lihtsalt fail nimega INPUT.TXT et lihtsalt paneb see kõik. 1519 01:09:27,890 --> 01:09:31,970 >> Ja siis toru on spetsiaalselt lahe, sest see võib võtta toodang ühe programmi 1520 01:09:31,970 --> 01:09:34,170 ja kasutada seda kui sisend teise programmi. 1521 01:09:34,170 --> 01:09:38,430 Nii näiteks oma poisid "Vigenere, on see rida koodi, mis sa 1522 01:09:38,430 --> 01:09:42,010 poisid töötavad, et sa võibolla ehk ei tea, mis see oli doing-- 1523 01:09:42,010 --> 01:09:46,910 Selle ./generate 1000 toru ./42. 1524 01:09:46,910 --> 01:09:47,510 Õigus? 1525 01:09:47,510 --> 01:09:51,100 >> Nii et kõik, mis teeb, kui me lihtsalt vaatleme seda samm-sammult, 1526 01:09:51,100 --> 01:09:55,870 ./generate, mis tähendab, et ma olen töötab minu programmi luua. 1527 01:09:55,870 --> 01:09:58,850 See võtab 1000 oma panus. 1528 01:09:58,850 --> 01:10:03,330 Nii et ma tahan luua 1000 juhuslikult numbrid ja ma toru selle-- 1529 01:10:03,330 --> 01:10:07,790 või ma lähen kasutada selle-- väljund sisendina oma programmi nimega leid. 1530 01:10:07,790 --> 01:10:12,110 Ja ma lähen, et proovida leida 42 välja numbrid tekkimise perioodist 1000 1531 01:10:12,110 --> 01:10:13,130 numbrid. 1532 01:10:13,130 --> 01:10:15,410 Kas see koodirida teeb mõttes, et kõik teisedki? 1533 01:10:15,410 --> 01:10:17,820 >> Nii et sel viisil me säästa ise ton samme. 1534 01:10:17,820 --> 01:10:21,880 Me ei pea tegema luua, salvestada faili ja siis pane see leid. 1535 01:10:21,880 --> 01:10:23,800 Me lihtsalt teeme seda kõik ühele joonele. 1536 01:10:23,800 --> 01:10:28,080 Mida iganes genereerida väljastamist, sulpsti see kohe tagasi leida. 1537 01:10:28,080 --> 01:10:28,580 Jah? 1538 01:10:28,580 --> 01:10:32,484 >> Sihtrühm: Ja nii käsu argumente, on selle-- see on 1539 01:10:32,484 --> 01:10:33,948 kolm käsurea argumente? 1540 01:10:33,948 --> 01:10:38,340 See on tekitada, find-- ole, four-- tekitada, 1000, leida ja 42? 1541 01:10:38,340 --> 01:10:39,134 Või on the-- 1542 01:10:39,134 --> 01:10:42,050 ANDI PENG: Nii toru ei ole tegelikult loe käsurea argument 1543 01:10:42,050 --> 01:10:44,590 sest kompilaatori või terminal teab, et toru, 1544 01:10:44,590 --> 01:10:48,590 oh, ma tean, et ma pean vaatama enne toru, sest see on mu väljund 1545 01:10:48,590 --> 01:10:51,220 ja pean hoolitsema toru, sest see on minu panus. 1546 01:10:51,220 --> 01:10:54,520 Nii ta teab selle-- ./generate ja 1000, 1547 01:10:54,520 --> 01:10:57,390 Neil on kaks käsk siis argumendid lihtsalt esimese programmi. 1548 01:10:57,390 --> 01:11:01,760 Ja siis ./find 42 on kaks käsku line argumendid teist programmi. 1549 01:11:01,760 --> 01:11:02,980 Jah. 1550 01:11:02,980 --> 01:11:06,150 Igaüks hea on? 1551 01:11:06,150 --> 01:11:10,610 >> Nii lihtsalt reaalne kiire, mida teha Nende kolme rida koodi teha? 1552 01:11:10,610 --> 01:11:11,606 Üsna lihtne. 1553 01:11:11,606 --> 01:11:13,605 Igaüks taha mulle mida esimesel real teeb? 1554 01:11:13,605 --> 01:11:18,201 1555 01:11:18,201 --> 01:11:19,117 Sihtrühm: [kuuldamatu]. 1556 01:11:19,117 --> 01:11:23,540 1557 01:11:23,540 --> 01:11:26,534 >> ANDI PENG: Mõtle seda Lihtsalt-- mida see suurem porgand teha? 1558 01:11:26,534 --> 01:11:29,299 >> Sihtrühm: See paneb midagi ka järgmisel real. 1559 01:11:29,299 --> 01:11:31,090 ANDI PENG: Mis on vastand on? 1560 01:11:31,090 --> 01:11:33,514 Sihtrühm: See paneb järgmise asi esimesse asi. 1561 01:11:33,514 --> 01:11:34,180 ANDI PENG: Jah. 1562 01:11:34,180 --> 01:11:37,550 Nii et kõik, mis teeb on sul programmi käivitamist .hello-- 1563 01:11:37,550 --> 01:11:40,010 näed programm nimega tere. 1564 01:11:40,010 --> 01:11:42,960 Sa lähed, et see sisendiks nimetatakse INPUT.TXT. 1565 01:11:42,960 --> 01:11:43,460 Õigus? 1566 01:11:43,460 --> 01:11:46,250 Sest ma arvan et kui lihtsalt füüsiliselt laskumist tere. 1567 01:11:46,250 --> 01:11:50,632 Ja siis sa lähed päästa väljund faili nimega OUTPUT.TXT. 1568 01:11:50,632 --> 01:11:51,715 Kuidas teine ​​rida? 1569 01:11:51,715 --> 01:11:54,164 Tahad mulle öelda, mida Teisel real teeb? 1570 01:11:54,164 --> 01:11:55,080 Sihtrühm: [kuuldamatu]. 1571 01:11:55,080 --> 01:12:00,522 1572 01:12:00,522 --> 01:12:01,230 ANDI PENG: Vabandust. 1573 01:12:01,230 --> 01:12:03,560 Ütle, et uuesti. 1574 01:12:03,560 --> 01:12:04,060 Elliot. 1575 01:12:04,060 --> 01:12:06,560 >> Sihtrühm: Nii et see paneb nimekiri numbrid leida. 1576 01:12:06,560 --> 01:12:07,540 >> ANDI PENG: Jah. 1577 01:12:07,540 --> 01:12:10,790 Nii leiavad, mäletate, Selleks, et kasutada sind leida 1578 01:12:10,790 --> 01:12:13,209 vaja teada, kust te otsite. 1579 01:12:13,209 --> 01:12:15,500 Ja nii kõik, mis ta teeb siin on, et see annab teile 1580 01:12:15,500 --> 01:12:18,720 eelnevalt mis kannavad komplekt numbrid, siis leiavad läheb 1581 01:12:18,720 --> 01:12:21,680 otsida neid, mille arv 42. 1582 01:12:21,680 --> 01:12:23,620 Ja siis 15. 1583 01:12:23,620 --> 01:12:25,870 Pea meeles, et te poisid jooksid seda kui sa testinud oma koodi. 1584 01:12:25,870 --> 01:12:27,590 Nüüd sa aru, mida ta teeb? 1585 01:12:27,590 --> 01:12:31,069 1586 01:12:31,069 --> 01:12:33,520 >> Sihtrühm: See on kasutusele komplekti juhiseid 1587 01:12:33,520 --> 01:12:38,860 to [kuuldamatu] läbi kolme poolt Kolme saada the-- võita mäng. 1588 01:12:38,860 --> 01:12:39,560 >> ANDI PENG: Jah. 1589 01:12:39,560 --> 01:12:41,480 >> Sihtrühm: See sisestab need juhised programmi. 1590 01:12:41,480 --> 01:12:42,438 >> ANDI PENG: Päris palju. 1591 01:12:42,438 --> 01:12:47,840 Nii tilde CS50. / Pset3 / 3x3, kõik, mis tegin oli see, et oleme loonud teksti 1592 01:12:47,840 --> 01:12:50,700 fail, mis olid kõik pealkirjad valmis kutid. 1593 01:12:50,700 --> 01:12:56,020 Ja nii oma mängu mängida, sa lihtsalt-- me lihtsalt panna, et oma programmi. 1594 01:12:56,020 --> 01:12:58,230 Nii olime loonud selle pardal ja seejärel me 1595 01:12:58,230 --> 01:13:02,890 panna, et juhatus oma programmi mis jooksis ta ja lõi plaatide kolme 1596 01:13:02,890 --> 01:13:03,390 kolmekordselt. 1597 01:13:03,390 --> 01:13:04,730 See on kõik, mis ta teeb. 1598 01:13:04,730 --> 01:13:07,331 >> Ja nii oli tegelikult magic toimub kulisside taga 1599 01:13:07,331 --> 01:13:09,330 et kutid ei programm, mis me programmeeritud. 1600 01:13:09,330 --> 01:13:13,120 Aga nüüd te poisid aru, miks me tegime seda nii, et see kõik hea. 1601 01:13:13,120 --> 01:13:15,750 Hästi. 1602 01:13:15,750 --> 01:13:22,200 >> Niisiis, kui ümbersuunamine on väga kasulik, C on üldine mehhanism 1603 01:13:22,200 --> 01:13:25,030 lugemine ja kirjutamine failid oma. 1604 01:13:25,030 --> 01:13:26,780 Midagi sisuliselt raske siin, et ma olen 1605 01:13:26,780 --> 01:13:28,330 lihtsalt läheb minema läbi tõesti, tõesti kiire. 1606 01:13:28,330 --> 01:13:30,621 Kõik see on on mõned memorization ning tagada, kutid 1607 01:13:30,621 --> 01:13:32,680 on süntaktiliselt kasutades seda õigesti. 1608 01:13:32,680 --> 01:13:35,640 Nii, et me tahaks seda teha on luua viide faili 1609 01:13:35,640 --> 01:13:38,473 me tahaks avada faili ja siis me teeks kõiki lugemine ja kirjutamine 1610 01:13:38,473 --> 01:13:39,929 ja sulgege fail. 1611 01:13:39,929 --> 01:13:41,720 Kui asi kutid tahad meeles pidada, 1612 01:13:41,720 --> 01:13:47,360 et kui seda teed, sest me sulgemise ja failide avamisel, 1613 01:13:47,360 --> 01:13:51,230 Kõigil neil käsud kuuluvad on standard-- standard I / O 1614 01:13:51,230 --> 01:13:51,730 raamatukogu. 1615 01:13:51,730 --> 01:13:54,410 Seega veenduge, et iga kord, kui sa oled Seejuures et olete included-- 1616 01:13:54,410 --> 01:13:59,020 # included-- standard I / O dot h. 1617 01:13:59,020 --> 01:14:01,691 >> Nii päris kiiresti. 1618 01:14:01,691 --> 01:14:03,940 Esimene samm, mida soovite luua viide, et fail. 1619 01:14:03,940 --> 01:14:07,670 Ja nüüd, et me oleme teinud vihjeid, siis poisid ei ütle mulle, mida see koodirida 1620 01:14:07,670 --> 01:14:08,630 teeb. 1621 01:14:08,630 --> 01:14:10,250 Õigus? 1622 01:14:10,250 --> 01:14:15,397 Kõik, mis ta teeb on luua pointer nimega faili tüüpi faili. 1623 01:14:15,397 --> 01:14:17,980 Sest sa tead, et see läheb punkti fail ja sa oled 1624 01:14:17,980 --> 01:14:20,460 läheb faili avada. 1625 01:14:20,460 --> 01:14:23,320 Siis sa oled f open-- kõik see on faili avada. 1626 01:14:23,320 --> 01:14:24,560 >> See on faili nimi. 1627 01:14:24,560 --> 01:14:26,060 Ja seal on kolm asja, mida saate teha. 1628 01:14:26,060 --> 01:14:28,195 Te saate lugeda, kirjutada või lisada. 1629 01:14:28,195 --> 01:14:30,320 Enamik üldiselt, kutid saab lugeda või kirjutada 1630 01:14:30,320 --> 01:14:33,195 sest sa oled nii saab olema sisestanud faili või väljastamiseks, üks. 1631 01:14:33,195 --> 01:14:36,500 Nii päris palju r ja w on kaks asjad, mida sa lähed tuleb kasutada kõige. 1632 01:14:36,500 --> 01:14:41,722 >> Nii et kui kõik, mida ma olen teinud on luua kursori faili nimega fail. 1633 01:14:41,722 --> 01:14:47,900 Ma avamist ja ma olen reading-- ma olen avada seda faili nimega file.txt 1634 01:14:47,900 --> 01:14:49,020 ja ma loen seda. 1635 01:14:49,020 --> 01:14:51,730 See on kõik, mida ma teen selles punktis. 1636 01:14:51,730 --> 01:14:55,270 Ja siis need on vaid toimib mida saate lugeda erinevaid asju 1637 01:14:55,270 --> 01:14:57,750 või kirjutada erinevaid asju või jätke erinevates kohtades 1638 01:14:57,750 --> 01:14:59,420 kus sa tahad otsida. 1639 01:14:59,420 --> 01:15:01,200 Kõik need on online. 1640 01:15:01,200 --> 01:15:02,960 Kõik need saab lihtsalt Google. 1641 01:15:02,960 --> 01:15:04,280 Pole vaja meelde jätta neid. 1642 01:15:04,280 --> 01:15:07,160 Nad on lihtsalt olemas, ühekordselt teie jaoks 1643 01:15:07,160 --> 01:15:09,360 Kui soovid saaks neid kasutada. 1644 01:15:09,360 --> 01:15:13,210 >> Nii et kui ma tahtsin just lugesin ühes täht korraga, 1645 01:15:13,210 --> 01:15:15,360 Ma teeksin faili fgetc. 1646 01:15:15,360 --> 01:15:18,850 Või kui ma tahtsin lugeda rida teksti korraga, ma teeksin fgets. 1647 01:15:18,850 --> 01:15:19,840 Ja nii edasi ja nii edasi. 1648 01:15:19,840 --> 01:15:23,640 Kõik need lihtsalt teha erinevaid asju, mida poisid võivad kasutada. 1649 01:15:23,640 --> 01:15:25,920 >> Ja siis lõpuks, pärast seda kui ma olen done lugemise või kirjutamise, 1650 01:15:25,920 --> 01:15:27,770 Ma lihtsalt lähen kirjutamisel, et fail. 1651 01:15:27,770 --> 01:15:31,760 Ja pidage meeles, see on üks need, mäletan, siis 1652 01:15:31,760 --> 01:15:34,220 Selleks, muidu teie faili ei hakka tööle. 1653 01:15:34,220 --> 01:15:36,130 Alati avatud fail enne lugemist või lugemine, 1654 01:15:36,130 --> 01:15:38,310 sa pead alati sulgeda, kui sa seda avada. 1655 01:15:38,310 --> 01:15:40,210 Sama asi mäluga, eks? 1656 01:15:40,210 --> 01:15:42,390 Sa pead alati mälu ja tasuta seda. 1657 01:15:42,390 --> 01:15:45,200 Siin on alati avatud esitada, enne kui proovite seda lugeda 1658 01:15:45,200 --> 01:15:47,360 ja sa alati sulgeda pärast seda avada. 1659 01:15:47,360 --> 01:15:50,650 1660 01:15:50,650 --> 01:15:52,190 >> Nii et see on ka online. 1661 01:15:52,190 --> 01:15:55,590 Ma lähen väljakutse teile poisid Selline kirjutada programm, mis trükib 1662 01:15:55,590 --> 01:15:57,080 hello.world faili. 1663 01:15:57,080 --> 01:15:58,280 See on tõesti lihtne. 1664 01:15:58,280 --> 01:16:00,854 Sisuliselt lihtsalt kaasneb paar rida koodi 1665 01:16:00,854 --> 01:16:02,270 mis kirjutati lihtsalt varem. 1666 01:16:02,270 --> 01:16:04,311 Sa lähed panna neid kokku ja kirjutada seda. 1667 01:16:04,311 --> 01:16:06,630 1668 01:16:06,630 --> 01:16:10,950 >> Nii mõned olulised asjad, mida meeles pidada samas kutid üritavad kasutada seda. 1669 01:16:10,950 --> 01:16:14,410 Kui see on kõik väga kasulikud Teie pset sel nädalal 1670 01:16:14,410 --> 01:16:18,000 on see, et fopen loob faili viitaja. 1671 01:16:18,000 --> 01:16:19,500 See ei ole tegelikult füüsilises faili. 1672 01:16:19,500 --> 01:16:22,260 Kõik see viitab, et fail, mida soovite avada. 1673 01:16:22,260 --> 01:16:26,070 Ja sa oled sisuliselt alati te kasutate mõnda muud funktsioonid 1674 01:16:26,070 --> 01:16:30,130 nagu fread või fwrite või fgetc või fgets, on 1675 01:16:30,130 --> 01:16:33,380 et sa oled lihtsalt kulgeb ümber selle kursor kõik need funktsioonid. 1676 01:16:33,380 --> 01:16:36,510 Nii et te tegelikult ei võtmist, et esitada ja kasutada seda oma funktsioone, 1677 01:16:36,510 --> 01:16:39,540 võtad sa kursorit ja panna see neid funktsioone 1678 01:16:39,540 --> 01:16:41,620 nii, et saate kasutada. 1679 01:16:41,620 --> 01:16:45,360 >> Ja kui te unustate sulgeda fail pärast sa seda kasutada, 1680 01:16:45,360 --> 01:16:47,710 Teie programm läheb lekkida mälu. 1681 01:16:47,710 --> 01:16:50,700 Sisuliselt kõik, et vahendid on see, et halbu asju juhtub 1682 01:16:50,700 --> 01:16:52,960 ja teie programm ei tööta korralikult. 1683 01:16:52,960 --> 01:16:54,880 Ja nii edasi pset sisse Alguses ma arvan 1684 01:16:54,880 --> 01:16:59,180 seal on lühike kus ta explained-- Nate explained-- mida Valgrindi oli. 1685 01:16:59,180 --> 01:17:02,350 Kõik Valgrind on viis, kuidas saate veenduge, sa ei leki mälu. 1686 01:17:02,350 --> 01:17:04,433 Nii kutid tahavad teha et te vaatate, et lühike 1687 01:17:04,433 --> 01:17:08,771 sest see selgitab seda väga hästi, mis juhtub. 1688 01:17:08,771 --> 01:17:09,270 OKEI. 1689 01:17:09,270 --> 01:17:11,260 Nii et ma läksin läbi, et tõesti, tõesti kiiresti, sest ma tõesti 1690 01:17:11,260 --> 01:17:13,870 soovite saada räägime pset enne kui poisid minema. 1691 01:17:13,870 --> 01:17:16,690 Kas kellelgi on küsimusi kontseptuaalselt? 1692 01:17:16,690 --> 01:17:20,060 Enamasti on see kõik lihtsalt süntaksit saate lugeda või kirjutada faili. 1693 01:17:20,060 --> 01:17:25,090 1694 01:17:25,090 --> 01:17:28,140 >> Lõpuks, igaühe lemmik. 1695 01:17:28,140 --> 01:17:31,760 Me läheme rääkida pset nüüd. 1696 01:17:31,760 --> 01:17:35,990 Nii, käe, kui palju kutid lugeda spec sel nädalal? 1697 01:17:35,990 --> 01:17:36,660 Oh, see on pool. 1698 01:17:36,660 --> 01:17:38,000 See on hea. 1699 01:17:38,000 --> 01:17:41,430 Nii et see on tegelikult väga, tõesti tore pset selles mõttes, 1700 01:17:41,430 --> 01:17:43,889 et end hästi tunda detektiiv, sest sa oled 1701 01:17:43,889 --> 01:17:46,930 teeme kõik need lahedaid asju et sa ei teadnud, et sa võiksid teha 1702 01:17:46,930 --> 01:17:49,050 kuid nüüd on see väga lahe mida saate teha neid. 1703 01:17:49,050 --> 01:17:52,400 Ja see on tegelikult palju lihtsam kui mehed arvavad. 1704 01:17:52,400 --> 01:17:56,640 >> Nii põhi pooleks see programm on sul 1705 01:17:56,640 --> 01:18:00,330 läheb laadida lähtekoodi või jaotus koodi kirjutatud meie poolt. 1706 01:18:00,330 --> 01:18:03,540 Ja sa lähed on üks kaust nimetatakse BMP ja teise kausta 1707 01:18:03,540 --> 01:18:05,550 nimetatakse JPG. 1708 01:18:05,550 --> 01:18:08,370 Jooksul oma BMP, sa oled läheb on kolm programmi. 1709 01:18:08,370 --> 01:18:10,400 Üks neist on juba kirjutatud teile. 1710 01:18:10,400 --> 01:18:12,477 Nii copy.c on programm me oleme juba kirjutanud 1711 01:18:12,477 --> 01:18:14,060 eest, et sa lähed alla laadida. 1712 01:18:14,060 --> 01:18:19,440 Kõik, mis teeb, on võtta sisestada pildil ja teeb selle koopia väljastab. 1713 01:18:19,440 --> 01:18:22,150 See on kõik, mis fail on teinud. 1714 01:18:22,150 --> 01:18:25,260 >> Aga mida sa tahad teha whodunit-- nii kui paljud teist 1715 01:18:25,260 --> 01:18:30,450 poisid mäleta viienda klassi või maybe-- sa younger-- äkki kolmandas klassis, 1716 01:18:30,450 --> 01:18:33,945 kui poisid olid saladus sõnumeid ja siis tuli panna paberile üle 1717 01:18:33,945 --> 01:18:35,440 dekodeerida teate? 1718 01:18:35,440 --> 01:18:36,000 Jah? 1719 01:18:36,000 --> 01:18:39,580 Nii et kõik me teeme välja arvatud see aeg arvuti. 1720 01:18:39,580 --> 01:18:41,832 Nii et me oleme teile see armas pilt. 1721 01:18:41,832 --> 01:18:43,540 Ei tundu midagi, kuid alla 1722 01:18:43,540 --> 01:18:49,660 see on vihje, et see saab aidata teil vastates küsimusele, palume. 1723 01:18:49,660 --> 01:18:54,170 >> Sisuliselt, mida soovite tegema, on sisestada, et esitada, 1724 01:18:54,170 --> 01:18:56,610 näpistama Mõned asjad, võibolla kohandada värve, 1725 01:18:56,610 --> 01:19:00,730 vahetustega asju, nii et mida iganes sõnum on võib tulla läbi. 1726 01:19:00,730 --> 01:19:03,740 Nii sees on peidetud pikslit ja info 1727 01:19:03,740 --> 01:19:07,140 et kui sa kirjutad oma koodi õigesti läheb lahti mõtestama ja öelda 1728 01:19:07,140 --> 01:19:08,500 mida see aimugi on. 1729 01:19:08,500 --> 01:19:12,480 Ja nii mõningaid kasulikke näpunäiteid, kuidas soovite minna lähenemas. 1730 01:19:12,480 --> 01:19:15,180 >> Sa tõesti tahad, et tutvustada ennast faili I / O 1731 01:19:15,180 --> 01:19:18,760 sest me oleme lugemine faile ja failide kirjutamiseks. 1732 01:19:18,760 --> 01:19:19,260 Õigus? 1733 01:19:19,260 --> 01:19:21,430 Ja nii iga kord, kui me teeme et mis hõlmab 1734 01:19:21,430 --> 01:19:25,170 faili I / O. Sa lähed end kurssi 1735 01:19:25,170 --> 01:19:27,450 koos, kuidas sa avada pilte faile? 1736 01:19:27,450 --> 01:19:29,960 Kuidas kirjutada faile pilte? 1737 01:19:29,960 --> 01:19:31,640 Kuidas teha kõiki neid asju? 1738 01:19:31,640 --> 01:19:33,660 See saab olema väga kasulik. 1739 01:19:33,660 --> 01:19:36,190 >> Teiseks, kuidas läheb ilmselt võimeline muutma 1740 01:19:36,190 --> 01:19:38,140 värvid, et koristama pildil? 1741 01:19:38,140 --> 01:19:43,660 See on ilmselt läheb kaasata kohandada oma pikslit või teie RGB väärtused 1742 01:19:43,660 --> 01:19:45,390 kuskil seal sisuliselt. 1743 01:19:45,390 --> 01:19:47,800 Ei ole õige tee lahendada see nii kaua kui 1744 01:19:47,800 --> 01:19:52,560 can-- nii kaua kui võimalik selline kohandada need pikslid muuta see 1745 01:19:52,560 --> 01:19:54,640 nägema midagi, et sa hoolid. 1746 01:19:54,640 --> 01:19:56,207 Ongi kõik me hoolime ka. 1747 01:19:56,207 --> 01:19:57,540 Nii et palju võimalusi seda teha. 1748 01:19:57,540 --> 01:20:00,039 Lihtsalt mängida seda kuni sa saad midagi, mis töötab. 1749 01:20:00,039 --> 01:20:02,900 Ja siis oleks tõesti üllatunud, kui paar rida koodi 1750 01:20:02,900 --> 01:20:04,510 sa pead tegelikult seda teha. 1751 01:20:04,510 --> 01:20:08,700 Ma räägin nagu kolm rida koodi kokku 1752 01:20:08,700 --> 01:20:11,310 et teil on vaja kirjutada et seda teha. 1753 01:20:11,310 --> 01:20:15,470 Nii et kui sa leiad end kirjalikult 40, 30 rida koodi, 1754 01:20:15,470 --> 01:20:16,960 oled ilmselt teed seda valesti. 1755 01:20:16,960 --> 01:20:19,390 Kõik, mida pead tegema, on tüüpi mängida värvid 1756 01:20:19,390 --> 01:20:22,960 ja kuidas see toimib läbi. 1757 01:20:22,960 --> 01:20:27,040 >> Siis me pea natuke raskemaks probleem. 1758 01:20:27,040 --> 01:20:30,190 Siin on meil suurust kus kutsume teid 1759 01:20:30,190 --> 01:20:34,210 mina-- anname sulle sisendina pildi ja teie saneerimist 1760 01:20:34,210 --> 01:20:36,710 See pilt millekski suurem või midagi väiksemate 1761 01:20:36,710 --> 01:20:38,500 sõltuvalt mõõtmed anname. 1762 01:20:38,500 --> 01:20:41,260 Seega pidage meeles loengus et David kiiresti 1763 01:20:41,260 --> 01:20:45,780 vaatas üle, kuidas info tuvastab arvutis 1764 01:20:45,780 --> 01:20:47,590 tähendab, et see on faili tüüp. 1765 01:20:47,590 --> 01:20:50,530 Nii Wordi faili on eriline tegelased ees, et 1766 01:20:50,530 --> 01:20:52,040 Teie süsteem on Wordi faili. 1767 01:20:52,040 --> 01:20:53,090 Sama asi JPEG. 1768 01:20:53,090 --> 01:20:55,131 Sel juhul me läheme teile JPEG faili. 1769 01:20:55,131 --> 01:20:58,300 Kõik me teame, on see, et JPEG fail on pilt, eks? 1770 01:20:58,300 --> 01:21:01,430 Aga arvuti eristab see väga spetsiifilisel moel. 1771 01:21:01,430 --> 01:21:04,070 Nii alguses mis tahes JPEG fail, sa oled 1772 01:21:04,070 --> 01:21:08,210 läheb on see, mida nimetatakse bitmap info päise kaudu ja bitmap faili päis. 1773 01:21:08,210 --> 01:21:11,080 Kõik need on on erinevaid tükke andmeid 1774 01:21:11,080 --> 01:21:14,870 et öelda oma arvuti, hei, kuulake, et JPEG tulemas 1775 01:21:14,870 --> 01:21:17,820 ja need on mõõtmed või omadused, mis JPEG. 1776 01:21:17,820 --> 01:21:21,280 >> Nii kutid tõesti tahad teada millist teavet ladestunud 1777 01:21:21,280 --> 01:21:23,560 nende pealkirjad ja Mis on suurus neid. 1778 01:21:23,560 --> 01:21:25,640 Sest kui sa kasutad läbi oma programmi, 1779 01:21:25,640 --> 01:21:27,370 sa lähed tahan Otse üle selle summa. 1780 01:21:27,370 --> 01:21:27,940 Õigus? 1781 01:21:27,940 --> 01:21:29,910 Sest sa ei hooli muutmise kohta päise kaudu, 1782 01:21:29,910 --> 01:21:31,493 sa hoolid muutmise, mis on pärast. 1783 01:21:31,493 --> 01:21:32,450 Õigus? 1784 01:21:32,450 --> 01:21:36,040 Seega veenduge, et poisid teavad kui suur need asjad on. 1785 01:21:36,040 --> 01:21:39,065 >> Teiseks, enne kui alustate püüab muuta pildi suurust, 1786 01:21:39,065 --> 01:21:41,940 sa oled ilmselt läheb taha salvestamiseks mõõtmed originaal. 1787 01:21:41,940 --> 01:21:42,520 Õigus? 1788 01:21:42,520 --> 01:21:45,550 Sest kui ma ütlen teile, see pilt on 100 pikslit 100 pikslit, 1789 01:21:45,550 --> 01:21:47,630 ja ma tahan, et sa see neli korda suurem, 1790 01:21:47,630 --> 01:21:50,460 sa tead, et sa pead korrutab need mõõtmed neli. 1791 01:21:50,460 --> 01:21:54,960 Siis sa tahad väljundfaili 400 400 pikslit, näiteks. 1792 01:21:54,960 --> 01:21:58,300 Nii et see on tõesti kasulik kutid salvestamiseks mõõtmed originaal. 1793 01:21:58,300 --> 01:22:00,780 Ja siis hiljem, pärast sa oled teinud saneerimist, 1794 01:22:00,780 --> 01:22:06,270 võite kirjutada uue pealkirjad need uued mõõtmed pärast saneerimist. 1795 01:22:06,270 --> 01:22:10,750 >> Ja nii, et sa füüsiliselt võib tekitada suure pikslit 1796 01:22:10,750 --> 01:22:13,380 on see, et saab kirjutada Uue RGB-- mäletan, RGB, 1797 01:22:13,380 --> 01:22:17,784 kõik, mis paistab, on punane, roheline, ja sinise-- pikslit out faili. 1798 01:22:17,784 --> 01:22:20,200 Ja sa lähed tahan on erinevad summad, mida 1799 01:22:20,200 --> 01:22:21,200 Me nimetame polster. 1800 01:22:21,200 --> 01:22:24,780 Kõik polster on ruumid enne ja pärast pildid 1801 01:22:24,780 --> 01:22:29,265 et öelda your-- sisuliselt seda, et rääkige oma pilt, kui suur see 1802 01:22:29,265 --> 01:22:30,589 tuleks asumist. 1803 01:22:30,589 --> 01:22:33,630 See on väga abstraktne palju kui sa ei ole lugenud pset spec, 1804 01:22:33,630 --> 01:22:35,410 kuid see saab olema väga kasulik, kui 1805 01:22:35,410 --> 01:22:36,460 sa oled tegelikult lugedes seda. 1806 01:22:36,460 --> 01:22:38,126 Sa oled nagu, oh, jah, et on mõtet. 1807 01:22:38,126 --> 01:22:39,310 Miks ma pean seda tegema? 1808 01:22:39,310 --> 01:22:41,830 Kõlab loogiliselt. 1809 01:22:41,830 --> 01:22:46,900 >> Lõpuks on see ilmselt üks masendav programmid 1810 01:22:46,900 --> 01:22:51,160 kunagi lihtsalt sellepärast, et sa ei saa öelda, kas see töötab või mitte. 1811 01:22:51,160 --> 01:22:54,980 Kõik selle programmi, taastuda, on tehes on see, kui sõita korralikult, 1812 01:22:54,980 --> 01:22:59,290 see peaks suutma äkki taastuda 50 pilti, mis 1813 01:22:59,290 --> 01:23:01,025 kaotati meie kõvakettale. 1814 01:23:01,025 --> 01:23:03,900 Ja nii probleem selles programmis on see, et te ei saa tõesti testida 1815 01:23:03,900 --> 01:23:06,220 sest kas sa tagasi neid või sa ei ole. 1816 01:23:06,220 --> 01:23:09,122 Ja siis tüüpi lihtsalt on mängida seda, 1817 01:23:09,122 --> 01:23:11,080 ja kui teie programm on tööta korralikult, saate 1818 01:23:11,080 --> 01:23:12,829 äkki näen, et Sinu kataloog olete 1819 01:23:12,829 --> 01:23:17,400 sai hiigelsuur summa pildid, mis on nüüd olemas. 1820 01:23:17,400 --> 01:23:20,490 >> Niisiis, kuidas ma läheneks see probleem on, et me oleme 1821 01:23:20,490 --> 01:23:22,860 annan teile, mida on nimetatakse card.raw faili. 1822 01:23:22,860 --> 01:23:25,020 Sisuliselt see on lihtsalt rikutud faili 1823 01:23:25,020 --> 01:23:28,870 kõik salvestatud pildid, mis sa lähed vaja taastuda. 1824 01:23:28,870 --> 01:23:32,330 Nii et sa oled ilmselt läheb taha sisestada oma card.raw või avatud, 1825 01:23:32,330 --> 01:23:35,510 Sinu card.raw fail ja sa lähed tahan manipuleerida 1826 01:23:35,510 --> 01:23:37,840 seda suudab salvestada JPEG. 1827 01:23:37,840 --> 01:23:42,830 >> Nii et ma hakkaks jälgides ja salvestades iga JPEG, kui seda leida. 1828 01:23:42,830 --> 01:23:47,180 Sa ei kavatse eraldi kõik äkki lihtsalt luua kõik 50 JPEG. 1829 01:23:47,180 --> 01:23:50,190 Sa lähed tahan hoida jälgida, kui palju sa avad. 1830 01:23:50,190 --> 01:23:52,015 Ja siis tahad veenduge, kui sa oled 1831 01:23:52,015 --> 01:23:54,640 kirjutamisel buffer-- kutid ei tea, mida ma räägin 1832 01:23:54,640 --> 01:23:57,806 kui sa loed spec-- soovid veenduge, et te kasutate allkirjastamata 1833 01:23:57,806 --> 01:23:59,370 char puhvri. 1834 01:23:59,370 --> 01:24:01,790 >> Ja siis tahan küsida ise küsimus, 1835 01:24:01,790 --> 01:24:05,797 kui palju baite on oma CF-- on kaardi faili? 1836 01:24:05,797 --> 01:24:08,380 See, kui palju sa lähed tahavad lugeda oma puhvris. 1837 01:24:08,380 --> 01:24:11,130 Sa lähed soovite veenduda Kahe align sest siis 1838 01:24:11,130 --> 01:24:12,850 ei ole juhuslik mälu lekib. 1839 01:24:12,850 --> 01:24:15,370 Sa tead täpselt, kui palju baiti mida vaja ja kui palju 1840 01:24:15,370 --> 01:24:18,270 baiti, et sa tahad neid on. 1841 01:24:18,270 --> 01:24:21,510 >> Ja siis lõpuks, sa tahad kasutada funktsiooni nimetatakse sprint-- 1842 01:24:21,510 --> 01:24:26,160 s print f-- genereerida custom faili nimede iga uue JPEG et sa leiad. 1843 01:24:26,160 --> 01:24:29,129 Nii nagu te luua ja leida JPEG oma kaardi, 1844 01:24:29,129 --> 01:24:31,170 sa lähed tahan hoidke neid ja neile nime anda. 1845 01:24:31,170 --> 01:24:31,700 Õigus? 1846 01:24:31,700 --> 01:24:33,700 Ja nii sa lähed soovite kasutada seda funktsiooni 1847 01:24:33,700 --> 01:24:36,770 luua nimed, mis saab salvestada kõik oma JPEG. 1848 01:24:36,770 --> 01:24:41,062 >> Ja lõpuks, ärge unustage sulgeda Iga JPEG pärast sa oled teinud. 1849 01:24:41,062 --> 01:24:42,770 Sest see, mis sa oled lähen tegema, on sul 1850 01:24:42,770 --> 01:24:44,728 läheb ilmselt mingi loop mis 1851 01:24:44,728 --> 01:24:46,470 itereerib läbi kõik oma JPEG. 1852 01:24:46,470 --> 01:24:50,460 Sa lähed kirjutada JPEG ja ümber nimetada, kui sa seda leida. 1853 01:24:50,460 --> 01:24:52,870 Aga pärast seda, kui oled valmis iga üksiku JPEG, 1854 01:24:52,870 --> 01:24:56,630 sa pead sulgeda, siis võite alustada üle ja liikuda edasi järgmisele pildile. 1855 01:24:56,630 --> 01:24:58,880 Ja nii midagi, mis on tõesti tore, et me tahame teha, 1856 01:24:58,880 --> 01:25:03,430 sest see on selline imelik probleem seatud vaid ka kummaliselt vasta probleem 1857 01:25:03,430 --> 01:25:08,380 set, on see, et kõik pildid me on teile, kui teil taastada korralikult, 1858 01:25:08,380 --> 01:25:11,910 kõik pildid on pildid Sinu imeline õppejõud, nii 1859 01:25:11,910 --> 01:25:14,240 Harvardi, kell siin-- ja siin Yale'i. 1860 01:25:14,240 --> 01:25:17,260 Ja kui juhtub, et tagasi kõik need pildid 1861 01:25:17,260 --> 01:25:20,020 ja selgitada välja töötajad kohal nende kaartide, 1862 01:25:20,020 --> 01:25:23,040 ja võtta selfies koos meiega, kui te meid ümber campus, 1863 01:25:23,040 --> 01:25:28,270 iga foto saadate meile, siis me teile GB Dropbox ruumi. 1864 01:25:28,270 --> 01:25:30,060 >> Nii teeme matemaatikat siin. 1865 01:25:30,060 --> 01:25:33,010 Kui seal on 50 pilti ja 50 õppejõudu, 1866 01:25:33,010 --> 01:25:37,160 Kui juhtub, et leida kõik 50 Meie, see on 50 gigabaiti Dropbox, 1867 01:25:37,160 --> 01:25:39,000 Põhimõtteliselt oleme me annab teile poisid. 1868 01:25:39,000 --> 01:25:42,380 Nii mõned ekstra lisada stiimuleid kui te tegite mitte ainult 1869 01:25:42,380 --> 01:25:44,480 hoolivad tagasi kaotatud pilte. 1870 01:25:44,480 --> 01:25:46,867 Seal on ka mõned lisatud stiimulid. 1871 01:25:46,867 --> 01:25:47,825 See on lõbus probleem komplekti. 1872 01:25:47,825 --> 01:25:48,390 See on tõesti. 1873 01:25:48,390 --> 01:25:51,980 See on selline masendav, kuid siis saab tõesti tore, kui sa mõistad, 1874 01:25:51,980 --> 01:25:54,230 wow, see töötab ja nüüd ma on kõik need pildid 1875 01:25:54,230 --> 01:25:55,604 et ma olen lihtsalt loonud ise. 1876 01:25:55,604 --> 01:25:58,800 1877 01:25:58,800 --> 01:26:00,075 >> Iga küsimustele pset? 1878 01:26:00,075 --> 01:26:02,408 Sest igaüks, kes on juba hakkas, kui teil on küsimusi, 1879 01:26:02,408 --> 01:26:06,510 Ma tulen siia paar minutit pärast osa, kui sa tahad minuga rääkida. 1880 01:26:06,510 --> 01:26:07,320 Hästi tehtud, poisid. 1881 01:26:07,320 --> 01:26:10,520 Vabandust, ma teave dumpinguhinnaga kutid. 1882 01:26:10,520 --> 01:26:13,670 Lähtekohad on tõesti raske ja masendav. 1883 01:26:13,670 --> 01:26:16,187 >> Ja ma olen tõesti rõõmus, et kutid jäi mulle. 1884 01:26:16,187 --> 01:26:18,020 Me räägime põhjalikumalt umbes järgmisel nädalal 1885 01:26:18,020 --> 01:26:21,330 kui me alustada teed hash tabeleid ja rohkem funktsioone, et kaasata neid. 1886 01:26:21,330 --> 01:26:23,821 1887 01:26:23,821 --> 01:26:24,320 Jah. 1888 01:26:24,320 --> 01:26:26,278 Nii et kui kellelgi on küsimused, ma tulen ümber. 1889 01:26:26,278 --> 01:26:29,330 Tänan, et tulid ja võtab rohkem kommi, sest seal on rohkem kommi. 1890 01:26:29,330 --> 01:26:32,220 1891 01:26:32,220 --> 01:26:33,770 Cool. 1892 01:26:33,770 --> 01:26:35,765