1 00:00:00,000 --> 00:00:04,875 2 00:00:04,875 --> 00:00:05,750 ANDI Peng: Rendben. 3 00:00:05,750 --> 00:00:08,240 Üdvözöljük a héten négy szakaszban. 4 00:00:08,240 --> 00:00:10,280 Ez egy szép nap itt New Havenben 5 00:00:10,280 --> 00:00:14,370 így tényleg azt hiszem, a gyér szóródása gyerekek, 6 00:00:14,370 --> 00:00:17,530 csatlakozott hozzám részén ma, köszönöm. 7 00:00:17,530 --> 00:00:21,517 >> Olyan gyorsan, csak mielőtt kezdeni, a napirendet ma. 8 00:00:21,517 --> 00:00:23,600 Mi lesz, hogy menjen át a Néhány rövid bejelentéseket. 9 00:00:23,600 --> 00:00:26,224 Van egy nagyon szokatlan menetrend jön a következő két hétben 10 00:00:26,224 --> 00:00:28,010 vagy úgy így fogunk menni fölé. 11 00:00:28,010 --> 00:00:30,410 Másodszor, tudom, mindenki kedvenc topic-- 12 00:00:30,410 --> 00:00:33,572 Biztos vagyok benne, ez a megolvadt az agyad során előadást, ne aggódj, 13 00:00:33,572 --> 00:00:34,780 Még mindig egyfajta nem értem. 14 00:00:34,780 --> 00:00:35,444 Rendben van. 15 00:00:35,444 --> 00:00:36,110 Ez egy vicc volt. 16 00:00:36,110 --> 00:00:37,450 Igazából nem értem. 17 00:00:37,450 --> 00:00:40,234 De én fog arról, hogy srácok értem is. 18 00:00:40,234 --> 00:00:42,400 Mi is így fogjuk eltölteni Nagyon, nagyon jó adag 19 00:00:42,400 --> 00:00:44,020 időt beszélünk mutatót ma. 20 00:00:44,020 --> 00:00:47,012 Mint látható, Candy beszéd hatalmas ma. 21 00:00:47,012 --> 00:00:49,220 Mi nagyon fog tartani hogy-- Igen, ez így van. 22 00:00:49,220 --> 00:00:49,890 Tartsa figyelembe édességet. 23 00:00:49,890 --> 00:00:51,556 Megyek át őket körül most. 24 00:00:51,556 --> 00:00:55,150 25 00:00:55,150 --> 00:00:56,510 Semmi gond. 26 00:00:56,510 --> 00:00:59,570 Fogunk igazán kipróbálni hogy az emberek vércukorszintjét 27 00:00:59,570 --> 00:01:04,390 fel, mert ez az agy fog égni némi oxigént ma, mert a mutatók 28 00:01:04,390 --> 00:01:05,652 nagyon, nagyon nehéz. 29 00:01:05,652 --> 00:01:08,360 Akkor fogunk beszélni memória kezelése milyen is 30 00:01:08,360 --> 00:01:09,487 ugyanabban a birodalomban. 31 00:01:09,487 --> 00:01:11,570 És fogunk lépni tovább átirányítás és a fájl 32 00:01:11,570 --> 00:01:15,297 I / O melyek csak szintaktikai, szép dolog, hogy meg kell beszélni. 33 00:01:15,297 --> 00:01:17,130 És akkor végül, én vagyok lesz, hogy ismét megpróbálja 34 00:01:17,130 --> 00:01:19,070 elhagyni, mint 10, 15 percnyi pset4. 35 00:01:19,070 --> 00:01:21,820 Ez miatt néhány nap alatt így vagyunk fog igazán fajta kapsz 36 00:01:21,820 --> 00:01:24,850 néhány hasznos tippet, ha Már elindult rajta. 37 00:01:24,850 --> 00:01:26,141 Hűvös. 38 00:01:26,141 --> 00:01:26,640 OKÉ. 39 00:01:26,640 --> 00:01:30,710 Szóval néhány közleményei Ennek következő hétre. 40 00:01:30,710 --> 00:01:31,805 Osztályozás. 41 00:01:31,805 --> 00:01:33,930 Igazából nem tudom, Ezen a ponton, hogy sokan közületek 42 00:01:33,930 --> 00:01:37,180 srácok tényleg az én section-- akkor OK? 43 00:01:37,180 --> 00:01:38,020 OKÉ. 44 00:01:38,020 --> 00:01:40,150 De azok számára, akik az én részén, 45 00:01:40,150 --> 00:01:42,180 Csak pár kommentálja osztályozás. 46 00:01:42,180 --> 00:01:44,899 >> Először is, nagyon jó munkát kommentálva. 47 00:01:44,899 --> 00:01:47,940 Azok, akik nem megjegyzést, akkor tudom, kik vagytok, mert akkor valószínűleg 48 00:01:47,940 --> 00:01:50,610 Van néhány stílus pont dinged ezen a héten. 49 00:01:50,610 --> 00:01:53,920 Csak győződjön meg arról, hogy az összes programok hozzá egy pár hozzászólás. 50 00:01:53,920 --> 00:01:56,960 Tényleg, a stílus nagyon könnyű kap megfelelő pontot hatálya. 51 00:01:56,960 --> 00:01:58,710 Tehát nekünk, csak hogy arról, hogy te ilyen 52 00:01:58,710 --> 00:02:03,770 hozzá egy rövid leírást minden A programok mit csinálsz. 53 00:02:03,770 --> 00:02:09,190 >> Secondly-- ez egy hatalmas kérdés sok a TA az elmúlt week-- 54 00:02:09,190 --> 00:02:12,020 úgyhogy győződjön meg róla, hogy feltöltéshez a megfelelő mappába a helyes 55 00:02:12,020 --> 00:02:13,370 nevű program. 56 00:02:13,370 --> 00:02:16,820 És hogy miért is kér ez mert mi, a kurzus az osztályozás, 57 00:02:16,820 --> 00:02:20,820 valóban futtatni egy szkriptet a kód, amely letölti automatikusan 58 00:02:20,820 --> 00:02:24,780 az összes psets, fut helyességét vizsgálatokat mindet, 59 00:02:24,780 --> 00:02:27,550 majd feltölti a pontjaid közvetlenül a Gradebook. 60 00:02:27,550 --> 00:02:32,140 Azonban, bármely ponton, ha elemzi a programot nem megfelelően, 61 00:02:32,140 --> 00:02:34,510 ez csavarok fel az egész program mindenki számára. 62 00:02:34,510 --> 00:02:37,280 >> És igen, jogosan, ez a gyönyörű script 63 00:02:37,280 --> 00:02:40,260 hogy is írtam, hogy nem Mindez számunkra, teljesen 64 00:02:40,260 --> 00:02:43,070 összeomlik, ha nincs Ön nevű program helyesen. 65 00:02:43,070 --> 00:02:46,020 Szóval csak feltölteni a helyes mappát, állíttassák nevű helyesen, 66 00:02:46,020 --> 00:02:47,372 majd az élet jó. 67 00:02:47,372 --> 00:02:49,080 Kapok a psets vissza a srácok korábban 68 00:02:49,080 --> 00:02:51,110 mert kapok fokozatúra őket gyorsan. 69 00:02:51,110 --> 00:02:52,461 Igen. 70 00:02:52,461 --> 00:02:52,960 OKÉ. 71 00:02:52,960 --> 00:02:57,870 És azt is meg fogjuk beszélni about-- Yale van egy nagyon, nagyon 72 00:02:57,870 --> 00:02:59,950 szokatlan menetrend az elkövetkezendő két hétben. 73 00:02:59,950 --> 00:03:02,460 Tehát azok a srácok a Harvard, ez nem vonatkozik. 74 00:03:02,460 --> 00:03:05,585 De számunkra kedves gyerekek a Yale van úgynevezett bukása break-- sajnálom, 75 00:03:05,585 --> 00:03:08,430 Harvard-- ahol van Öt nap szünet az iskola. 76 00:03:08,430 --> 00:03:12,270 S amíg ez a szép, hogy fajta elrontja a PSET ritmust 77 00:03:12,270 --> 00:03:14,104 mert psets miatt, csütörtökön, pénteken. 78 00:03:14,104 --> 00:03:16,020 És így, ha nem azért vagyunk itt Csütörtök, péntek, akkor 79 00:03:16,020 --> 00:03:18,640 Nem lehet munkát srácok miatt csütörtökön, pénteken. 80 00:03:18,640 --> 00:03:23,832 >> Szóval, mit fogunk csinálni is-- vagyunk mint 99% -ban biztos ez, mi történik, 81 00:03:23,832 --> 00:03:25,540 előfordulhat, hogy néhány megváltoztatni, de azt hiszem, 82 00:03:25,540 --> 00:03:28,460 subtle-- van megyünk have-- ezen a héten normális. 83 00:03:28,460 --> 00:03:32,130 Tehát van a szakaszt Kedden majd munkaidőn 84 00:03:32,130 --> 00:03:35,190 az egész a többi a hét majd pset4 esedékes pénteken. 85 00:03:35,190 --> 00:03:38,180 Aztán, ahogy ti mindannyian tudjuk, a Emlékeztettem srácok a múlt héten, 86 00:03:38,180 --> 00:03:41,700 Megvan a kvíz 0 jön szerdán. 87 00:03:41,700 --> 00:03:44,400 >> És így, hogy egy diák magam, Tudom, hogy nagyon kevés az akkor 88 00:03:44,400 --> 00:03:49,110 srácok valóban dolgozni pset5 a két nappal korábban a kvíz. 89 00:03:49,110 --> 00:03:51,110 Szóval mi megyünk talán a végén csinál, az, 90 00:03:51,110 --> 00:03:54,840 hogy hétfő este, megyünk hogy valóban, 5:30-07:00, 91 00:03:54,840 --> 00:03:59,970 Van egy rövid áttekintés ülésén megvitatott témákról. 92 00:03:59,970 --> 00:04:02,040 Nem tisztázott, hogy ez egy felülvizsgálja ülésen, vagy egy Q & A. 93 00:04:02,040 --> 00:04:04,650 Ez lesz valamiféle felülvizsgálat milyen formában fogjuk fedezni 94 00:04:04,650 --> 00:04:06,640 Néhány téma szempontjából releváns a srácok. 95 00:04:06,640 --> 00:04:09,886 >> És akkor hétfőn és kedden éjszaka E héten 8:00-11:00, 96 00:04:09,886 --> 00:04:11,260 megyünk, hogy munkaidőben. 97 00:04:11,260 --> 00:04:14,500 Azok munkaidőn lesz a legtöbb valószínűleg inkább csak jönnek, 98 00:04:14,500 --> 00:04:17,564 kérdezze TA kapcsolatos kérdéseire minden koncepciók te zavaros, 99 00:04:17,564 --> 00:04:20,480 és akkor ilyen menjen át veled és felülvizsgálat koncepciók a kvíz. 100 00:04:20,480 --> 00:04:22,920 Kvíz 0, ha a Hétfőn, szerdán részén, 101 00:04:22,920 --> 00:04:26,480 lesz szerdai alatt class-- szerdán az órákon. 102 00:04:26,480 --> 00:04:29,530 És akkor, ha a Kedd, csütörtök részén, 103 00:04:29,530 --> 00:04:32,577 lesz is az órákon csütörtökön. 104 00:04:32,577 --> 00:04:34,410 Nem igazán lehet választani melyiket menni. 105 00:04:34,410 --> 00:04:35,640 Ha egy hétfőn, szerdán, Önnek kell menni szerdán. 106 00:04:35,640 --> 00:04:38,056 Ha kedd, csütörtök Önnek kell menni csütörtökön. 107 00:04:38,056 --> 00:04:42,277 De aztán aznap éjjel, számunkra kedves személyzet, majd 108 00:04:42,277 --> 00:04:45,360 Van egy óriási kvíz osztályozási párt amit kapsz a pontjaid vissza hozzád 109 00:04:45,360 --> 00:04:46,190 Aznap este. 110 00:04:46,190 --> 00:04:46,900 Mikor? 111 00:04:46,900 --> 00:04:51,190 Tisztázatlan, ki tudja, de ez lehet, válaszolunk 24 órán belül 112 00:04:51,190 --> 00:04:53,700 úgy, hogy a srácok remélhetőleg Van valami visszajelzést péntekre. 113 00:04:53,700 --> 00:04:55,870 >> És akkor van egy nagyon szokatlan héten. 114 00:04:55,870 --> 00:05:00,330 Tehát pset5 egyike a legnehezebb psets az év. 115 00:05:00,330 --> 00:05:03,370 Szóval sajnálom srácok. 116 00:05:03,370 --> 00:05:06,520 Mit fogunk próbálja tennie, hogy megyünk, hogy 117 00:05:06,520 --> 00:05:08,380 Néhány konkrét támogatási azon a hétvégén. 118 00:05:08,380 --> 00:05:12,970 Mert, ahogy ti is látni, a PSET annak köszönhető, mielőtt ősszel szünetet. 119 00:05:12,970 --> 00:05:16,760 Nincs támogatás srácok ősszel szünet 120 00:05:16,760 --> 00:05:18,897 és így tényleg ilyen szeretné kifejezésre ezt, 121 00:05:18,897 --> 00:05:21,230 essünk túl rajta, működj nagyon, nagyon nehéz 122 00:05:21,230 --> 00:05:25,380 Ezek a következő két hétben, hogy ezt a kvízt és ezt a két psets történik 123 00:05:25,380 --> 00:05:29,650 majd nektek egy szép pihentető hét nap gondolkodás nélkül CS. 124 00:05:29,650 --> 00:05:33,750 >> Tehát ahhoz, hogy a megtörténjen, valószínűleg 125 00:05:33,750 --> 00:05:36,870 fog mozgatni a szakaszt hogy vasárnap délután. 126 00:05:36,870 --> 00:05:39,070 Ez lesz forgatták, így nem gondjait, ha nem tudsz jönni. 127 00:05:39,070 --> 00:05:41,595 De az online forgatás lesz ott lenni, és hozzáférhetővé 128 00:05:41,595 --> 00:05:47,630 úgy, hogy a srácok, vasárnap Hétfő, kedd, dolgozni pset5. 129 00:05:47,630 --> 00:05:50,205 És akkor ez ősszel törni, és nem CS majd 130 00:05:50,205 --> 00:05:51,830 jövünk vissza és vissza a grind. 131 00:05:51,830 --> 00:05:54,926 >> De ez lesz a szép héten őszi szünet 132 00:05:54,926 --> 00:05:58,050 és mi nagyon szeretnénk, hogy ez a stressz mindenki számára ingyenes, a lehető amely 133 00:05:58,050 --> 00:06:02,620 Ezért költözött a PSET annak tudható mielőtt ősszel szünet helyett után. 134 00:06:02,620 --> 00:06:07,601 Mert it's-- Úgy értem, valahogy úgy érzi, tetszik legyőzi a célból, hogy 135 00:06:07,601 --> 00:06:10,850 A határidő után ősszel szünetet, ha van nem támogatja egyébként ősszel szünetet. 136 00:06:10,850 --> 00:06:14,670 Szóval azt hiszem rather-- Inkább összpontosítani most. 137 00:06:14,670 --> 00:06:16,950 Van valakinek kérdése erről menetrend? 138 00:06:16,950 --> 00:06:17,830 Bármi zavaros? 139 00:06:17,830 --> 00:06:18,330 Igen. 140 00:06:18,330 --> 00:06:20,944 >> Közönség: Van-e még előadást a 21.? 141 00:06:20,944 --> 00:06:21,610 ANDI Peng: Igen. 142 00:06:21,610 --> 00:06:26,421 Így a 21., ott lesz egy előadás, amely élő, a Harvardon. 143 00:06:26,421 --> 00:06:29,170 Én nem tudom, hogy David forgatás , vagy ha ő valóban előadást, 144 00:06:29,170 --> 00:06:32,430 de lesz elérhető Online srácok a hozzáférést. 145 00:06:32,430 --> 00:06:35,510 Szóval csak győződjön meg róla faragni egy órás valahol őszi szünetben 146 00:06:35,510 --> 00:06:39,375 Szóval ti lehet fogni fel, hogy az előadás. 147 00:06:39,375 --> 00:06:39,875 Igen? 148 00:06:39,875 --> 00:06:40,300 >> Közönség: Igen. 149 00:06:40,300 --> 00:06:40,422 Bocsánat. 150 00:06:40,422 --> 00:06:41,280 Jöttem egy couple-- 151 00:06:41,280 --> 00:06:41,640 >> ANDI Peng: Semmi gond. 152 00:06:41,640 --> 00:06:42,556 Tessék, itt egy kis édesség. 153 00:06:42,556 --> 00:06:45,350 154 00:06:45,350 --> 00:06:47,800 >> Közönség: Hé, elkaptam ezt. 155 00:06:47,800 --> 00:06:53,869 Tehát csak Összegezve, nem holnap, hanem a Szerda után, van egy kvíz. 156 00:06:53,869 --> 00:06:54,660 ANDI Peng: Helyes. 157 00:06:54,660 --> 00:06:59,207 Közönség: És ez lesz be-- mi a formátum a kvíz? 158 00:06:59,207 --> 00:06:59,790 ANDI Peng: Ó. 159 00:06:59,790 --> 00:07:03,870 Szóval mi küldünk egy e-mailt, hogy kiterjed minden, hogy mélyebben. 160 00:07:03,870 --> 00:07:06,590 De lényegében ez éppen fedezi alapvető témaköreit már lefedett 161 00:07:06,590 --> 00:07:09,042 az első félévben a félév. 162 00:07:09,042 --> 00:07:12,250 Mi lesz felülvizsgálati ülések és kérdés és válaszok így nem aggódik, hogy. 163 00:07:12,250 --> 00:07:14,107 De megyünk át, hogy túl. 164 00:07:14,107 --> 00:07:16,940 Közönség: Vajon lesz, mi hogy a számítógépek és a kód there-- 165 00:07:16,940 --> 00:07:17,140 ANDI Peng: Nem. 166 00:07:17,140 --> 00:07:20,130 Ez lesz a srácok írásban és kérdések megválaszolása kézzel. 167 00:07:20,130 --> 00:07:21,160 >> Közönség: Ó. 168 00:07:21,160 --> 00:07:23,160 >> ANDI Peng: Szóval odaadjuk out gyakorlatok és a cucc 169 00:07:23,160 --> 00:07:26,420 Szóval ti érdemes talán menni vissza, és átírni Mario kézzel csak 170 00:07:26,420 --> 00:07:28,100 győződjön meg róla, a srácok egy ötlet, hogyan kell csinálni. 171 00:07:28,100 --> 00:07:29,933 Mert néha, amikor írsz kézzel Önnek 172 00:07:29,933 --> 00:07:32,656 felejtsd pontosvessző és a cucc és ez nagyon rossz. 173 00:07:32,656 --> 00:07:34,156 Közönség: Nem lehet, hogy [hallhatatlan]? 174 00:07:34,156 --> 00:07:38,290 Mint, kapsz pontosvessző a your-- 175 00:07:38,290 --> 00:07:40,270 >> ANDI Peng: Igen és nem. 176 00:07:40,270 --> 00:07:43,170 Beszélni fogunk mélyebben kapcsolatban, hogy a kvíz elrendezés 177 00:07:43,170 --> 00:07:44,550 és hogyan fogunk fokozat. 178 00:07:44,550 --> 00:07:47,425 De alapvetően, csak tudom, hogy a általános formátuma lesz neked 179 00:07:47,425 --> 00:07:49,930 srácok sem tolmácsolási code-- megválaszolása alapvető kérdésekre. 180 00:07:49,930 --> 00:07:51,370 Ha én kérdeztem, hogy mi az a könyvtár? 181 00:07:51,370 --> 00:07:53,450 Srácok tudnia kell, mi a Könyvtár, és írd le. 182 00:07:53,450 --> 00:07:56,283 Vagy mondhatnám, írni egy programot, kiírja Hello World a képernyőn. 183 00:07:56,283 --> 00:08:01,140 Srácok írna, int main void printf hello world pontosvessző. 184 00:08:01,140 --> 00:08:01,908 Igen. 185 00:08:01,908 --> 00:08:04,398 >> Közönség: Szóval ez nem fog hogy bárhol lehet [hallhatatlan] 186 00:08:04,398 --> 00:08:05,900 nehézségi szint a probléma beállítani? 187 00:08:05,900 --> 00:08:06,170 >> ANDI Peng: Nem. 188 00:08:06,170 --> 00:08:06,380 Nem. 189 00:08:06,380 --> 00:08:07,046 Mi won't-- igen. 190 00:08:07,046 --> 00:08:10,030 Írja meg teljes egészében a játék 15, 20 perc, menjen. 191 00:08:10,030 --> 00:08:12,120 Nem, ez nem lesz olyan. 192 00:08:12,120 --> 00:08:12,801 Nem. 193 00:08:12,801 --> 00:08:13,342 Közönség: OK. 194 00:08:13,342 --> 00:08:15,326 Annak érdekében, hogy a szerda. 195 00:08:15,326 --> 00:08:19,017 Ezen a héten is még a legnehezebb probléma beállítani? 196 00:08:19,017 --> 00:08:19,600 ANDI Peng: Nem. 197 00:08:19,600 --> 00:08:22,970 Szóval a probléma állítsa miatt előtti napon esik szünet. 198 00:08:22,970 --> 00:08:25,690 A schedule-- az e-mail valójában küld ki 199 00:08:25,690 --> 00:08:27,232 20 perce kapcsolatos mindezt. 200 00:08:27,232 --> 00:08:28,689 Szóval ti egyszerűen csak ellenőrizheti e-mailjeit. 201 00:08:28,689 --> 00:08:29,430 Ott leszek. 202 00:08:29,430 --> 00:08:30,060 Igen. 203 00:08:30,060 --> 00:08:31,701 Semmi gond. 204 00:08:31,701 --> 00:08:32,200 Hűvös. 205 00:08:32,200 --> 00:08:34,900 206 00:08:34,900 --> 00:08:38,900 >> Bármilyen általános kérdései bejelentések, osztályozás, vetélkedők, 207 00:08:38,900 --> 00:08:41,659 mielőtt merülés jobbra mutatókat, amelyek fogyaszt 208 00:08:41,659 --> 00:08:45,060 A többség a mi oldalunkon idő ma? 209 00:08:45,060 --> 00:08:47,030 Hűvös. 210 00:08:47,030 --> 00:08:47,530 Minden rendben. 211 00:08:47,530 --> 00:08:50,905 Tehát ugye srácok nézni ezt lovely-- Nem tudom, hogy így hívják. 212 00:08:50,905 --> 00:08:53,490 A dolog, ahol a claymation fújta fel magát, mert 213 00:08:53,490 --> 00:08:54,820 nem használja a mutatót rendesen. 214 00:08:54,820 --> 00:08:57,629 Nos, a program fog Valószínűleg felrobbantani magát, ha 215 00:08:57,629 --> 00:08:59,170 ne használja mutatók helyes is. 216 00:08:59,170 --> 00:09:01,250 Mi is így fogjuk tenni arról, hogy nem történik meg. 217 00:09:01,250 --> 00:09:04,810 >> Ma megyünk némi mutató móka. 218 00:09:04,810 --> 00:09:08,970 Én megyek át a dolgokat olyan gördülékenyen, mint azt hiszem, 219 00:09:08,970 --> 00:09:10,790 lehetséges egy olyan kis időkeretben. 220 00:09:10,790 --> 00:09:14,592 De csak annyira, hogy fedezze hogy én tényleg akarom srácok, 221 00:09:14,592 --> 00:09:17,300 ha valamit nem értesz, hogy nem csak hadd folytassam. 222 00:09:17,300 --> 00:09:18,580 Mert ha nem, megérteni valamit, 223 00:09:18,580 --> 00:09:21,329 akkor valószínűleg nem fog érteni semmit mondom után. 224 00:09:21,329 --> 00:09:23,310 Ezért kérjük megállítani, és feltenni egy kérdést. 225 00:09:23,310 --> 00:09:25,380 Mert mindenféle hógolyókat össze. 226 00:09:25,380 --> 00:09:27,800 Mint, pointerek vezetnek be memória ólom más dolog. 227 00:09:27,800 --> 00:09:31,710 És így, ha nem érted mutatók, megállítani, és mi majd kitalálom 228 00:09:31,710 --> 00:09:35,070 és az élet minden rendben lesz. 229 00:09:35,070 --> 00:09:35,680 >> Hűvös. 230 00:09:35,680 --> 00:09:39,050 Szóval hány srácok előadás, amikor David említett mutatók, 231 00:09:39,050 --> 00:09:42,050 az agyadat fajta vált zselét? 232 00:09:42,050 --> 00:09:42,550 Igen. 233 00:09:42,550 --> 00:09:44,190 Jó. 234 00:09:44,190 --> 00:09:46,900 Megyünk, hogy megpróbálja de-zselét az agyadat ma. 235 00:09:46,900 --> 00:09:50,300 Fogunk igazán szisztematikusan menjen át, hogy pontosan mi a mutató, 236 00:09:50,300 --> 00:09:52,530 mit csinál, és hogyan használjuk őket. 237 00:09:52,530 --> 00:09:56,620 >> Tehát minden pointers-- így általában a változók 238 00:09:56,620 --> 00:10:00,920 korábban használt a kódolás, mint a változók, mint egész számok vagy szövegek 239 00:10:00,920 --> 00:10:04,790 vagy úszik, ezek mind lényegében érték a számukra kijelölt 240 00:10:04,790 --> 00:10:06,870 valamint egy címet rámutatva, hogy ezt az értéket. 241 00:10:06,870 --> 00:10:08,895 Így fogok felhívni ezt most. 242 00:10:08,895 --> 00:10:14,270 243 00:10:14,270 --> 00:10:16,140 Jelenleg szinte nincs kréta de ez rendben van. 244 00:10:16,140 --> 00:10:25,550 >> Így például, rendszerint az utat, amin 245 00:10:25,550 --> 00:10:30,860 használ változók hozunk létre a neve típusú változó, hadd 246 00:10:30,860 --> 00:10:31,360 csak azt mondom. 247 00:10:31,360 --> 00:10:37,360 Tehát itt megvan int x, és mi vagyunk inicializálása, hogy int 50. 248 00:10:37,360 --> 00:10:42,390 Tehát itt ebben a blokkban a memória a mi számítógépek általunk tárolt több 50. 249 00:10:42,390 --> 00:10:46,170 Szóval, ha a mutatók jöhet számításba a hogy a számítógép itself-- tetszik, itt, 250 00:10:46,170 --> 00:10:48,880 fizikailag a merevlemezen A RAM az én computer-- 251 00:10:48,880 --> 00:10:51,147 csak véges mennyiségű memóriát. 252 00:10:51,147 --> 00:10:53,980 Nem lehet csak tartani tárolására dolgokat a helyzet magaslatán a helyzet magaslatán 253 00:10:53,980 --> 00:10:54,990 és mindet. 254 00:10:54,990 --> 00:10:59,570 >> Tehát az is, hogy mi dinamikusan oszt memória képes tárolni, amit akarunk 255 00:10:59,570 --> 00:11:03,150 és hozzá, van azzal, mutatók. 256 00:11:03,150 --> 00:11:06,210 Így elképzelhető, a memória, a jobb. 257 00:11:06,210 --> 00:11:10,420 Ha ez a RAM a számítógépen, akkor ezek a kis bit 258 00:11:10,420 --> 00:11:14,540 vagy blokkok vagy byte memória which-- ezek csak kis 259 00:11:14,540 --> 00:11:18,120 blokkon osztottak ki A merevlemez vagy a RAM a számítógép, 260 00:11:18,120 --> 00:11:21,950 és egyes fenti blokkok tárolhat különböző dolog. 261 00:11:21,950 --> 00:11:26,990 Így például, az egyik tömb ebben a példában 262 00:11:26,990 --> 00:11:29,984 itt az egyik bájt, amely amely nyolc bit. 263 00:11:29,984 --> 00:11:32,900 A szám függően változik operációs rendszer a számítógép. 264 00:11:32,900 --> 00:11:35,942 Például, hogy hány van Hallottál 32 bites versus 64 bites operációs 265 00:11:35,942 --> 00:11:36,441 rendszerek? 266 00:11:36,441 --> 00:11:37,070 Pontosan. 267 00:11:37,070 --> 00:11:38,860 >> Tehát minden, ami mondván az, hogy a memory-- 268 00:11:38,860 --> 00:11:42,420 hogy az út, hogy a számítógép kezeli a memória különböző. 269 00:11:42,420 --> 00:11:45,370 Ezért van az, hogy tényleg Fontos, hogy megértsük 270 00:11:45,370 --> 00:11:49,450 Ezért memória magát funkciók helyett mint figyelni a számokat. 271 00:11:49,450 --> 00:11:52,400 Tehát nem igazán érdekel milyen nagy ez a tömb 272 00:11:52,400 --> 00:11:55,710 van, már csak be kell törődnünk milyen nagy van szükségünk egy int, hogy, 273 00:11:55,710 --> 00:11:58,350 milyen nagy Szükség van egy húr hogy milyen nagy egy mutató? 274 00:11:58,350 --> 00:12:00,630 275 00:12:00,630 --> 00:12:01,130 OKÉ. 276 00:12:01,130 --> 00:12:03,690 Szóval ez lesz a sok A nehéz, sűrű információkat. 277 00:12:03,690 --> 00:12:07,005 Én adok nektek egy pár komikus pillanatok itt. 278 00:12:07,005 --> 00:12:09,130 Srácok számára lehetővé kell megérteni ezt most. 279 00:12:09,130 --> 00:12:12,550 Mert tudjuk, hogy pointerek címek, 280 00:12:12,550 --> 00:12:14,480 és ezek különböznek a változók. 281 00:12:14,480 --> 00:12:14,980 OKÉ. 282 00:12:14,980 --> 00:12:15,610 Hűvös. 283 00:12:15,610 --> 00:12:17,065 CS viccek a legjobb, igaz? 284 00:12:17,065 --> 00:12:19,800 285 00:12:19,800 --> 00:12:23,450 >> Tehát az is, hogy megyünk létrehozásáról a mutatót 286 00:12:23,450 --> 00:12:25,750 Ez egy nagyon különleges fajta szintaxis. 287 00:12:25,750 --> 00:12:27,870 Mint, hogy bármilyen típusú változó, ez 288 00:12:27,870 --> 00:12:30,240 lesz egy specifikus mondattani használjuk létrehozni. 289 00:12:30,240 --> 00:12:34,830 Tehát amikor kijelentette minden pointer, egy mutató mindössze essentially-- 290 00:12:34,830 --> 00:12:37,040 Azt hiszem, fontos része mutatók is 291 00:12:37,040 --> 00:12:41,650 hogy míg a változónak Mindkét érték és egy címet, 292 00:12:41,650 --> 00:12:44,100 egy mutató egy címet. 293 00:12:44,100 --> 00:12:45,740 Ennek értéke egy címet. 294 00:12:45,740 --> 00:12:48,120 Szóval ez egy cím tárolt egy másik címen. 295 00:12:48,120 --> 00:12:49,120 Ha ez nincs értelme. 296 00:12:49,120 --> 00:12:52,390 Átnézzük ezt részletesebben, de ez az általános formája 297 00:12:52,390 --> 00:12:54,370 A why-- hogyan nyomtató tárolja. 298 00:12:54,370 --> 00:12:58,900 >> Tehát az is, hogy hozzon létre egy mutatót a csinálás bármilyen típusú adat 299 00:12:58,900 --> 00:13:02,840 hogy a mutató megy hogy referenciái és then-- 300 00:13:02,840 --> 00:13:05,324 a star-- majd A nevét a mutatót. 301 00:13:05,324 --> 00:13:07,240 Tehát itt, ha akarnánk hogy hozzon létre egy mutatót, amely 302 00:13:07,240 --> 00:13:11,640 felé mutatott egy egész szám, és mi akarta, hogy a nevét a mutatót, hogy x, 303 00:13:11,640 --> 00:13:13,880 tennénk int csillagos x. 304 00:13:13,880 --> 00:13:14,380 Igen? 305 00:13:14,380 --> 00:13:16,680 >> Közönség: És így, ha A következő sorban 306 00:13:16,680 --> 00:13:20,045 do int x, majd az int csillagos x jelzi a helyét az x 307 00:13:20,045 --> 00:13:21,170 te meghatározó utána? 308 00:13:21,170 --> 00:13:22,000 >> ANDI Peng: nagyon jó kérdés. 309 00:13:22,000 --> 00:13:23,860 Átnézzük ezt Pár csúszik később. 310 00:13:23,860 --> 00:13:24,920 Igen. 311 00:13:24,920 --> 00:13:27,610 Aztán ugyanezt char és ugyanaz a dolog lebeg. 312 00:13:27,610 --> 00:13:29,950 Csak tudom, hogy ezen a ponton létrehoztunk egy mutatót, 313 00:13:29,950 --> 00:13:32,470 mi nem ténylegesen beállítva egyenrangúvá tette még semmit. 314 00:13:32,470 --> 00:13:34,110 Mi valójában nem hivatkozott rá. 315 00:13:34,110 --> 00:13:36,087 Ugyanezt itt, amikor létrehoz egy változót, 316 00:13:36,087 --> 00:13:39,420 Ön erről a változó nevét, mi még nem próbáltuk meg egy értéket is. 317 00:13:39,420 --> 00:13:41,410 Ugyanezt itt. 318 00:13:41,410 --> 00:13:42,110 >> OKÉ. 319 00:13:42,110 --> 00:13:44,670 Szóval hogyan lehet beállítani értékeket mutató? 320 00:13:44,670 --> 00:13:47,190 Ez a referenciái és dereferencing. 321 00:13:47,190 --> 00:13:52,260 Tehát az is, hogy mi lehet hivatkozni Egy varia-- egy mutató, lényegében 322 00:13:52,260 --> 00:13:56,630 visszatérünk a cím memóriában amelyek egy változó van tárolva. 323 00:13:56,630 --> 00:14:02,550 Tehát ha volt egy pointer-- fogom felhívni ez egyszer eljutunk a következő dia, 324 00:14:02,550 --> 00:14:05,760 de csak tudom, hogy lényegében A és-- a jelet 325 00:14:05,760 --> 00:14:10,240 és a változó-- minden nem is mondom a címet 326 00:14:10,240 --> 00:14:11,780 hol valami tárolják. 327 00:14:11,780 --> 00:14:15,730 És dereferencing az ellenkezője Az, hogy, ami csak a csillag. 328 00:14:15,730 --> 00:14:18,950 A csillag csak ad a tényleges tárolt adatokat arra a címre. 329 00:14:18,950 --> 00:14:21,090 >> Tehát az egyik megadja a címét tároltuk egy címet, 330 00:14:21,090 --> 00:14:23,945 a másik ad a tényleges tárolt értéket címen. 331 00:14:23,945 --> 00:14:25,820 Tehát ők ketten adnak Ön különböző dolog. 332 00:14:25,820 --> 00:14:27,755 333 00:14:27,755 --> 00:14:29,880 Ismét a diák összes online így nem gond 334 00:14:29,880 --> 00:14:33,200 ha a srácok nem lehet másolni ezt le időben. 335 00:14:33,200 --> 00:14:36,330 >> Szóval vessünk egy pillantást Ebben a példában itt. 336 00:14:36,330 --> 00:14:40,530 Tehát van egy óriási memória tömb itt, ugye? 337 00:14:40,530 --> 00:14:42,920 Ahol már csak blokkok memória, vagy bájt memóriát, 338 00:14:42,920 --> 00:14:45,060 ahol tudunk tárolni különböző dolgokat. 339 00:14:45,060 --> 00:14:47,310 Mondjuk úgy, hogy ezek a cím mutat a memóriában. 340 00:14:47,310 --> 00:14:51,350 Szóval, amikor csak van - lásd a 0x, Az összes, hogy azt mondja ki, hogy 341 00:14:51,350 --> 00:14:52,930 ez egy hexadecimális számjegy. 342 00:14:52,930 --> 00:14:56,310 Ahogy ti mindannyian tudjuk, számok épülhetne különböző bázisok. 343 00:14:56,310 --> 00:14:58,770 Base 10 hogyan jellemzően értelmezni a számokat. 344 00:14:58,770 --> 00:15:00,550 Van még 2 alap, ami a bináris. 345 00:15:00,550 --> 00:15:03,366 És ebben az esetben, hexadecimális számrendszer 16. 346 00:15:03,366 --> 00:15:06,240 Ez csak egy másik módja mondván nulláról 10-- vagy nullától kilencig 347 00:15:06,240 --> 00:15:10,904 és akkor is az A, B, C, D, E, F. Is említést különböző számokat. 348 00:15:10,904 --> 00:15:12,570 Dávid ment át ezt az előadást röviden. 349 00:15:12,570 --> 00:15:14,280 Ha a srácok zavaros, csak a Google azt. 350 00:15:14,280 --> 00:15:17,370 Ott tényleg egyszerű módon tanulni mi hexadecimális számjegy. 351 00:15:17,370 --> 00:15:19,510 Minden, ami igazán fontos most az Ön számára 352 00:15:19,510 --> 00:15:24,170 srácok, hogy tudom, hogy egy hexadecimális C 353 00:15:24,170 --> 00:15:27,090 azt mondja, hogy jellemzően you-- azt mondja, hogy ez egy mutató. 354 00:15:27,090 --> 00:15:29,150 Vagy ez egy címet. 355 00:15:29,150 --> 00:15:33,310 >> Tehát ebben a példában, int x = 5. 356 00:15:33,310 --> 00:15:36,350 Hozunk létre egy integer-- bocs, egy változó típusú 357 00:15:36,350 --> 00:15:39,090 egész és mi inicializálnunk 5. 358 00:15:39,090 --> 00:15:47,040 Tehát itt a memóriakártyát, tudjuk látni, hogy x címen 0x0 359 00:15:47,040 --> 00:15:50,550 és azt az értéket, akkor már tárolt belsejében ez 5. 360 00:15:50,550 --> 00:15:52,370 Hogy kell értelme mindenkinek, ugye? 361 00:15:52,370 --> 00:15:53,030 OKÉ. 362 00:15:53,030 --> 00:15:56,520 >> És akkor mit tettünk A második sor kódot 363 00:15:56,520 --> 00:16:00,290 az, hogy általunk létrehozott egy mutató int típusú. 364 00:16:00,290 --> 00:16:02,750 Ez az, amit az int csillagos mutató csinál. 365 00:16:02,750 --> 00:16:07,320 És ez megegyezik a jelet x van megadva a címét valamit. 366 00:16:07,320 --> 00:16:12,120 Tehát az x címét a ez a példa 0x0. 367 00:16:12,120 --> 00:16:15,630 És így, hogy a címet a spamrobotok tárolt, hogy a mutató. 368 00:16:15,630 --> 00:16:17,360 Van ennek értelme mindenki? 369 00:16:17,360 --> 00:16:19,965 >> Így gondolok this-- gondolni pointers-- itt 370 00:16:19,965 --> 00:16:24,780 a Yale van egy postafiók rendszer ahol minden diák rendelkezik egy levelező 371 00:16:24,780 --> 00:16:26,960 címet, ahol lehet menni a pincébe a LW 372 00:16:26,960 --> 00:16:30,492 és akkor is csak megy és megragad amire csak szükséged van az adott címet. 373 00:16:30,492 --> 00:16:32,450 Ugyanez történik itt egy számítógép. 374 00:16:32,450 --> 00:16:36,770 Akkor ezek a memória byte-ok tárolhat információt, 375 00:16:36,770 --> 00:16:39,529 de ahhoz, hogy tudja, melyik darab információ 376 00:16:39,529 --> 00:16:42,570 egyeznek meg, hogy mit akarsz találni és ahol szükség van egy mutatót, amely 377 00:16:42,570 --> 00:16:43,740 megmondja, hogyan kell odamenni. 378 00:16:43,740 --> 00:16:47,270 >> Így például nekem, én postafiók, Van egy konkrét ötjegyű számot. 379 00:16:47,270 --> 00:16:48,400 Ez a címem. 380 00:16:48,400 --> 00:16:51,880 Szóval fizikailag megy a memória, Azt nézd meg a címet, 381 00:16:51,880 --> 00:16:54,507 Mehetek, hogy postafiók és hozzáférhetnek az adatokhoz benne. 382 00:16:54,507 --> 00:16:57,090 Van ennek értelme Mindenki A számítógép lényegében 383 00:16:57,090 --> 00:16:59,000 csinál pontosan ugyanaz a dolog. 384 00:16:59,000 --> 00:17:02,750 >> Tehát az összes mutatót tesz, hogy ez csak létre memória 385 00:17:02,750 --> 00:17:06,099 és a memóriája adatok valójában A címe valami mást. 386 00:17:06,099 --> 00:17:08,210 Akkor lehet menni, és úgy találják, hogy. 387 00:17:08,210 --> 00:17:09,060 Mindenki jó? 388 00:17:09,060 --> 00:17:10,720 Mindenki jó nekem eddig? 389 00:17:10,720 --> 00:17:11,360 OKÉ. 390 00:17:11,360 --> 00:17:11,859 Hűvös. 391 00:17:11,859 --> 00:17:14,311 392 00:17:14,311 --> 00:17:14,810 Minden rendben. 393 00:17:14,810 --> 00:17:19,160 Tehát majdnem ugyanaz, mint korábban. 394 00:17:19,160 --> 00:17:23,849 Tehát van, egyrészt a változó nevű x amelyben case-- 395 00:17:23,849 --> 00:17:27,700 Megyek változtatni ezt az értéket 5. 396 00:17:27,700 --> 00:17:31,820 Mondjuk úgy, hogy a cím E memóriában 0x0. 397 00:17:31,820 --> 00:17:33,070 00. 398 00:17:33,070 --> 00:17:33,570 Nagy. 399 00:17:33,570 --> 00:17:35,320 >> Tehát, a mi a második kódsort vagyunk 400 00:17:35,320 --> 00:17:41,210 létre fog hozni egy mutatót nevű ptr mutatóval. 401 00:17:41,210 --> 00:17:45,760 És a címe, hogy hadd csak annyit, hogy ez 0x01 memóriában. 402 00:17:45,760 --> 00:17:48,280 És valóban akar store-- a jelet 403 00:17:48,280 --> 00:17:50,620 x megadja a címét, amit X-et. 404 00:17:50,620 --> 00:17:53,990 És az x címét volt 0x00. 405 00:17:53,990 --> 00:17:57,300 Tehát ez a mutató most valójában a cím 406 00:17:57,300 --> 00:18:00,210 tároljuk az értékét annak, amit X-et. 407 00:18:00,210 --> 00:18:01,700 Mindenki velem eddig? 408 00:18:01,700 --> 00:18:02,320 Hűvös. 409 00:18:02,320 --> 00:18:04,670 >> És akkor, a módon, hogy mi lenne másolni, hogy 410 00:18:04,670 --> 00:18:09,650 az, ha szeretnénk nyilvánítja és alapértéket Egy másik blokk memória int típusú. 411 00:18:09,650 --> 00:18:10,150 Jobb? 412 00:18:10,150 --> 00:18:11,130 Ez lenne egy int. 413 00:18:11,130 --> 00:18:14,130 Ez lenne az úgynevezett példányát. 414 00:18:14,130 --> 00:18:17,120 És fogsz get-- így A csillag mutatót ad 415 00:18:17,120 --> 00:18:19,080 a tényleges adatok az adott címet. 416 00:18:19,080 --> 00:18:22,490 A jelet ad a címét, A csillag ad az adatokat. 417 00:18:22,490 --> 00:18:24,630 Tehát az adatok mutatót. 418 00:18:24,630 --> 00:18:29,420 Ez a mutató mutat 5. 419 00:18:29,420 --> 00:18:33,140 És így ez a funkció here-- a csillag pointer-- 420 00:18:33,140 --> 00:18:39,740 megy, kap mindent, ami az Ebben a blokkban, és eltárolja itt. 421 00:18:39,740 --> 00:18:41,730 Mindenki tisztában, hogy történhetett? 422 00:18:41,730 --> 00:18:45,490 >> Tehát a két szolgáltató joga there-- A jelet és a star-- 423 00:18:45,490 --> 00:18:48,250 Csak nem a különböző dolgokat ha használják a mutatók. 424 00:18:48,250 --> 00:18:50,837 Az egyik kapja meg a címet, egy érheti el a tényleges érték. 425 00:18:50,837 --> 00:18:53,670 Úgyhogy győződjön meg róla, ha a srácok kódolás, hogy ne keverje össze a két 426 00:18:53,670 --> 00:18:55,650 mert ők teljesen más. 427 00:18:55,650 --> 00:18:58,880 Itt van egy szép példája a 0x01. 428 00:18:58,880 --> 00:19:01,207 Ez egy igazán szép Néhány emlékezni. 429 00:19:01,207 --> 00:19:03,040 A számítógép tényleges fogsz is 430 00:19:03,040 --> 00:19:06,740 egy hatalmas seggét szám, ami valamit hogy ez nem szép, nem túl kellemes. 431 00:19:06,740 --> 00:19:08,280 Ez lesz némi szemetet értéket. 432 00:19:08,280 --> 00:19:10,920 És ez így megy, hogy valóban, Tényleg összezavar a programokat. 433 00:19:10,920 --> 00:19:12,670 Ez nagyon fontos, Most, hogy van 434 00:19:12,670 --> 00:19:16,150 A fundamentumok le why-- mint, ami fizikailag történik, amikor 435 00:19:16,150 --> 00:19:18,270 futsz azok kód blokkokat. 436 00:19:18,270 --> 00:19:19,120 Everyone-- igen? 437 00:19:19,120 --> 00:19:21,425 >> Közönség: Szóval int x = int példányt? 438 00:19:21,425 --> 00:19:24,650 439 00:19:24,650 --> 00:19:34,970 >> ANDI Peng: Nem, mert ebben az esetben, int X- értéke X- = 5, ugye? 440 00:19:34,970 --> 00:19:40,546 És akkor int copy = 5. 441 00:19:40,546 --> 00:19:43,420 Tehát például, ha azokat azonosítani kell egymást, mert ők egészek, 442 00:19:43,420 --> 00:19:46,379 Igen, ők értékelik, hogy igaz. 443 00:19:46,379 --> 00:19:49,670 De mintha húrok a memóriában, mint a Az egyik, hogy Dávid tett során például 444 00:19:49,670 --> 00:19:51,670 ez más, mert ők hivatkozva 445 00:19:51,670 --> 00:19:54,920 címét helyen emlékére és ők felelnének meg hamis. 446 00:19:54,920 --> 00:20:00,070 >> Tehát itt lenne igaz, mert te hasonlították össze values-- integers-- 447 00:20:00,070 --> 00:20:02,240 de a többiben te referenciái pont. 448 00:20:02,240 --> 00:20:05,290 Mivel a karakterlánc egy tömbben, és all-- fogunk beszélni, ez later-- 449 00:20:05,290 --> 00:20:09,940 de tömb lényegében csak egy mutató egy csomó karakter a memóriában. 450 00:20:09,940 --> 00:20:11,610 Tehát ezek egy kicsit más. 451 00:20:11,610 --> 00:20:14,642 De ebben az esetben, igen, meg tudná csinálni. 452 00:20:14,642 --> 00:20:17,354 >> Közönség: Meg tudod magyarázni A címe példányt? 453 00:20:17,354 --> 00:20:18,020 ANDI Peng: Igen. 454 00:20:18,020 --> 00:20:20,030 Szóval ez csak-- nem töltött ki egy értéket 455 00:20:20,030 --> 00:20:23,022 de ez csak néhány véletlenszerű más szemetet értéke, hogy nem érdekel. 456 00:20:23,022 --> 00:20:25,730 Mert ha egyszer elkezd programot rájössz, hogy mi valójában nem 457 00:20:25,730 --> 00:20:28,150 Tényleg érdekel, mi az aktuális címek, 458 00:20:28,150 --> 00:20:30,470 csak azt kell tudni, mi a címeket. 459 00:20:30,470 --> 00:20:31,608 Igen. 460 00:20:31,608 --> 00:20:36,034 >> Közönség: A csillag melletti int a második sor, az más than-- 461 00:20:36,034 --> 00:20:36,700 ANDI Peng: Igen. 462 00:20:36,700 --> 00:20:39,015 Közönség: --A dereferencing és hivatkozzon az új csillag? 463 00:20:39,015 --> 00:20:39,681 ANDI Peng: Igen. 464 00:20:39,681 --> 00:20:43,180 Így a szerzők C-- aki úgy döntött, hogy írjon a nyelvet C-- 465 00:20:43,180 --> 00:20:44,200 nem volt túl okos. 466 00:20:44,200 --> 00:20:46,830 Nem voltak nagyon okos próbál hogy kitaláljuk, miért kell ezt csinálni. 467 00:20:46,830 --> 00:20:49,413 Ha én voltam, én biztosan használni a két különböző karakter. 468 00:20:49,413 --> 00:20:52,100 De úgy döntött, hogy ugyanaz. 469 00:20:52,100 --> 00:20:56,607 >> Tehát a csillag után int, hogy elmondja a számítógép 470 00:20:56,607 --> 00:20:58,190 hogy te arról, hogy hozzon létre egy mutató. 471 00:20:58,190 --> 00:21:00,820 De ha akarsz hivatkozás feloldási something-- más szóval, 472 00:21:00,820 --> 00:21:03,780 megy a címet, és húzza az adatokat a somewhere-- 473 00:21:03,780 --> 00:21:05,070 a csillag használják másképp. 474 00:21:05,070 --> 00:21:08,750 Szóval ti egyszerűen csak legyen óvatos Nem Messiás a két használ. 475 00:21:08,750 --> 00:21:09,870 Hűvös. 476 00:21:09,870 --> 00:21:10,605 Igen? 477 00:21:10,605 --> 00:21:14,680 >> Közönség: Tehát csak megismételni, hogy győződjön meg arról, hogy én vagyok following-- 478 00:21:14,680 --> 00:21:16,252 >> ANDI Peng: Teljesen rendben. 479 00:21:16,252 --> 00:21:20,491 >> Közönség: --Vizes a bal oldali azt a diát, mi egy dolog, hogy tudjuk. 480 00:21:20,491 --> 00:21:23,124 Kijelentjük egész szám [Hallható], amely egyenlő 5. 481 00:21:23,124 --> 00:21:23,790 ANDI Peng: Igen. 482 00:21:23,790 --> 00:21:24,456 Közönség: Igen. 483 00:21:24,456 --> 00:21:28,960 És akkor mi van egy int csillagos dolog, és amely azt mondja, hogy rendben van, olyan, mint mi 484 00:21:28,960 --> 00:21:31,235 kijelentette egész, most mi nyilvánító mutatót. 485 00:21:31,235 --> 00:21:32,110 ANDI Peng: helyesen. 486 00:21:32,110 --> 00:21:32,410 Helyes. 487 00:21:32,410 --> 00:21:32,710 >> Közönség: Jobb? 488 00:21:32,710 --> 00:21:33,870 És mi mutató PTR. 489 00:21:33,870 --> 00:21:34,080 >> ANDI Peng: Ja. 490 00:21:34,080 --> 00:21:35,460 A név a mutató PTR. 491 00:21:35,460 --> 00:21:35,959 Pointer. 492 00:21:35,959 --> 00:21:39,000 Közönség: És akkor megegyezik NX, hogy csak azt mondja C 493 00:21:39,000 --> 00:21:44,667 hogy hozzá akar férni az érték egész X- azt az értéket, egész x 494 00:21:44,667 --> 00:21:45,800 jelöltek. 495 00:21:45,800 --> 00:21:49,050 >> ANDI Peng: Legyen óvatos, mert jelet x ténylegesen 496 00:21:49,050 --> 00:21:53,120 mondja you-- a számítógépen, amit akar húzni a címe, amit az x. 497 00:21:53,120 --> 00:21:56,350 Szóval jelet ad a címét, csillag ad az értéket. 498 00:21:56,350 --> 00:21:58,255 >> Közönség: Ezért szeretnénk a címet. 499 00:21:58,255 --> 00:22:02,075 Mondjuk x volt at-- 500 00:22:02,075 --> 00:22:03,950 ANDI Peng: Igazából tudom, mi az x, ugye? 501 00:22:03,950 --> 00:22:06,790 Mert tudjuk, hogy x was-- vagyok hogy ezt fel, de mondjuk úgy, 502 00:22:06,790 --> 00:22:08,760 önkényesen, ez volt 0x00. 503 00:22:08,760 --> 00:22:09,590 Jobb? 504 00:22:09,590 --> 00:22:14,120 Tehát tudjuk, hogy a cím 0x00, és így amikor megyünk és jeleket x, 505 00:22:14,120 --> 00:22:17,050 Tudjuk, hogy ez értékelnie kell a 0x00. 506 00:22:17,050 --> 00:22:20,810 Ezért van, hogy a tárolt az érték a mi mutatót. 507 00:22:20,810 --> 00:22:21,924 Ennek van értelme? 508 00:22:21,924 --> 00:22:22,832 >> Közönség: Igen. 509 00:22:22,832 --> 00:22:28,057 És példányt megy hivatkozás feloldási ptr-- 510 00:22:28,057 --> 00:22:28,765 ANDI Peng: Jobb. 511 00:22:28,765 --> 00:22:30,473 Közönség: --which van egy mutatót, hogy már 512 00:22:30,473 --> 00:22:35,220 kijelentette, hogy elmondja a címét, az egész x. 513 00:22:35,220 --> 00:22:36,160 >> ANDI Peng: Igen. 514 00:22:36,160 --> 00:22:39,272 >> Közönség: És ebben Egy esetben csillagos ptr 515 00:22:39,272 --> 00:22:41,256 egyenlő az x értékét, ami egyenlő 5. 516 00:22:41,256 --> 00:22:42,744 >> ANDI Peng: Helyes. 517 00:22:42,744 --> 00:22:44,728 >> Közönség: Cool. 518 00:22:44,728 --> 00:22:49,382 És ez egy egyszerűbb módja annak, hogy hogy vagy az, hogy az egyetlen way-- 519 00:22:49,382 --> 00:22:51,840 ANDI Peng: Szóval most ez nem tűnik túl logikusnak számunkra 520 00:22:51,840 --> 00:22:54,690 tölteni az összes ezúttal csinál ez a szuper bonyolult dolog, ha 521 00:22:54,690 --> 00:22:57,606 Minden tettünk az Készítünk két egészek, melynek értéke 5, ugye? 522 00:22:57,606 --> 00:22:58,900 Ennek nincs értelme. 523 00:22:58,900 --> 00:23:03,060 De ha egyszer megyünk át memóriafoglalási és-- fogunk 524 00:23:03,060 --> 00:23:06,067 megy át, miért lehet praktikus és hasznos a későbbiekben. 525 00:23:06,067 --> 00:23:09,150 Bízz bennem, amikor azt mondom, hogy ne csak létre ezek tetszőleges funkciókat az Ön számára 526 00:23:09,150 --> 00:23:11,340 srácok megtanulni, mert mi vagyunk próbál bajuk. 527 00:23:11,340 --> 00:23:14,550 Itt tulajdonképpen használja az összes ilyen dolgokat, és fogunk beszélni velük. 528 00:23:14,550 --> 00:23:14,950 >> Közönség: Félelmetes. 529 00:23:14,950 --> 00:23:15,350 >> ANDI Peng: Igen. 530 00:23:15,350 --> 00:23:16,150 >> Közönség: [hallható]. 531 00:23:16,150 --> 00:23:16,450 >> ANDI Peng: Jó kérdés. 532 00:23:16,450 --> 00:23:17,510 >> Közönség: [hallható]. 533 00:23:17,510 --> 00:23:18,000 >> ANDI Peng: Ez nem. 534 00:23:18,000 --> 00:23:18,666 Ez tényleg nem. 535 00:23:18,666 --> 00:23:21,050 Közönség: --two változók hogy is egyenlők [hallhatatlan]. 536 00:23:21,050 --> 00:23:22,400 OKÉ. 537 00:23:22,400 --> 00:23:23,070 >> ANDI Peng: Igen. 538 00:23:23,070 --> 00:23:23,570 OKÉ. 539 00:23:23,570 --> 00:23:25,249 Mielőtt továbblépni, mindenki tiszta? 540 00:23:25,249 --> 00:23:26,790 Tudom, Taylor, van egy kicsit későn. 541 00:23:26,790 --> 00:23:27,490 Oké. 542 00:23:27,490 --> 00:23:28,100 Ez az interneten. 543 00:23:28,100 --> 00:23:30,600 Majd nézni az első 20 perc, és máris minden jó. 544 00:23:30,600 --> 00:23:31,190 OKÉ. 545 00:23:31,190 --> 00:23:31,690 Hűvös. 546 00:23:31,690 --> 00:23:35,597 547 00:23:35,597 --> 00:23:37,140 >> Minden rendben. 548 00:23:37,140 --> 00:23:41,270 Tehát ez lényegében egyfajta hasonló dolog, amit csináltál. 549 00:23:41,270 --> 00:23:43,100 Ez csak egy grafikus formában. 550 00:23:43,100 --> 00:23:47,070 Ha úgy döntesz, hogy nyomon követni, mi most történt, int x = 5, 551 00:23:47,070 --> 00:23:52,159 Minden tettünk ezen a ponton hozzon létre egy x nevű változó int típusú. 552 00:23:52,159 --> 00:23:54,200 Megyünk tárolni értéke 5 belsejébe. 553 00:23:54,200 --> 00:23:57,366 Nincs mutatót, mert mi nem valóban létre egy mutató még, ugye? 554 00:23:57,366 --> 00:24:00,302 És akkor a következő vonal, int csillagos mutató, 555 00:24:00,302 --> 00:24:02,760 ez az, ahol mi vagyunk valójában fizikailag létre a mutató 556 00:24:02,760 --> 00:24:05,010 és mi beállítás, eléri vagy hivatkozás 557 00:24:05,010 --> 00:24:07,250 a mutató, a jelet x. 558 00:24:07,250 --> 00:24:10,002 Melyik az, ahol bárhol memória ezt történetesen. 559 00:24:10,002 --> 00:24:12,210 Én valójában nem zavarja, alkotó érték ebben az időben. 560 00:24:12,210 --> 00:24:14,900 De ebben az esetben, hogy a pont akkor lenne egyenlő. 561 00:24:14,900 --> 00:24:18,060 >> És akkor ott lent, a csillag mutatót a dereferencing. 562 00:24:18,060 --> 00:24:20,310 Ez az, ahol mi vagyunk húzza az információkat. 563 00:24:20,310 --> 00:24:24,170 Tehát ez az érték az x valójában lesz egyenlő 35. 564 00:24:24,170 --> 00:24:30,390 Tehát ezen a ponton, most már lényegében Csak újrainicializálni x 35 565 00:24:30,390 --> 00:24:32,320 anélkül, hogy ténylegesen megható x. 566 00:24:32,320 --> 00:24:34,560 Csak a mutatót amit mutat x, 567 00:24:34,560 --> 00:24:36,910 mi is valójában a változás, amit x volt. 568 00:24:36,910 --> 00:24:38,420 Megyek, hogy dolgozzon ki ezt is. 569 00:24:38,420 --> 00:24:52,200 >> Tehát itt hoztuk létre néhány véletlenszerű címét. 570 00:24:52,200 --> 00:24:54,734 Mondjuk úgy, 0x00 újra. 571 00:24:54,734 --> 00:24:56,150 Mondjuk úgy, hogy a cím. 572 00:24:56,150 --> 00:25:00,830 És mi hoztunk létre egy egész szám elemzi x és az értéket, amit hozzárendelt 5. 573 00:25:00,830 --> 00:25:03,840 A második sorban, int pointer-- így most mi már 574 00:25:03,840 --> 00:25:07,820 Van ez a második dolog, Itt hívjuk pointer-- 575 00:25:07,820 --> 00:25:14,310 és megyünk az alábbiakra: mondjuk, ez valami más véletlen memória címet. 576 00:25:14,310 --> 00:25:18,460 >> Mi is így fogjuk beállítani ezt egyenlő bármi legyen is az. 577 00:25:18,460 --> 00:25:21,540 578 00:25:21,540 --> 00:25:25,880 És ez a mutató megy pont felé, az x értékét 579 00:25:25,880 --> 00:25:30,090 És akkor, ha megváltoztatjuk the-- ha nem teszünk csillagos mutatót, 580 00:25:30,090 --> 00:25:32,800 hogy fog a értéke a mutató. 581 00:25:32,800 --> 00:25:36,979 Ebben az esetben ez lesz a pálya Ez a nyíl át ezt az értéket x 582 00:25:36,979 --> 00:25:38,395 és ez meg fog változni ez a 35. 583 00:25:38,395 --> 00:25:41,400 584 00:25:41,400 --> 00:25:44,760 Hatékonyan, csak megváltozott x ne érjen x. 585 00:25:44,760 --> 00:25:48,970 Keresztül csak hivatkozó mutatók, mehetünk, és változtatni az x értékét. 586 00:25:48,970 --> 00:25:50,050 Ennek van értelme? 587 00:25:50,050 --> 00:25:55,200 >> Tehát ily módon, mi is valójában átnevezése és rechange és úja értékek 588 00:25:55,200 --> 00:25:57,750 a dolgokat, hogy mi nem valójában, hogy mi magunk. 589 00:25:57,750 --> 00:26:00,925 Van ennek értelme mindenki? 590 00:26:00,925 --> 00:26:01,425 Hűvös. 591 00:26:01,425 --> 00:26:04,450 592 00:26:04,450 --> 00:26:05,310 OKÉ. 593 00:26:05,310 --> 00:26:08,210 Tehát komplex grafikai itt. 594 00:26:08,210 --> 00:26:09,360 Menjünk sorban. 595 00:26:09,360 --> 00:26:12,055 Lényegében csak nem a pontos ugyanaz a dolog, hogy én csináltam. 596 00:26:12,055 --> 00:26:15,977 597 00:26:15,977 --> 00:26:17,810 Mielőtt továbblépni, én Nagyon szeretnék csak, hogy 598 00:26:17,810 --> 00:26:19,370 biztos mindenki nagyon világosan fogalmaz. 599 00:26:19,370 --> 00:26:26,260 Tehát itt, a kód, hogy van az, int egy egyenlő 3, B értéke 4, c = 5. 600 00:26:26,260 --> 00:26:33,130 Így hoztuk létre három egész szám elemzi a, b és c, amelyek egyenlő 3, 4. és 5.. 601 00:26:33,130 --> 00:26:38,460 És akkor mi hozzuk létre a három mutató Ezen a ponton, hogy minden egyes ilyen változók. 602 00:26:38,460 --> 00:26:41,760 >> És most megyünk hogy menjen át lényegében 603 00:26:41,760 --> 00:26:44,240 mi történik, ha használja őket. 604 00:26:44,240 --> 00:26:45,490 Tehát felhívni őket. 605 00:26:45,490 --> 00:26:48,156 Vegyünk egy lapot a paper-- én nem tudom, ha ti mind papír, 606 00:26:48,156 --> 00:26:50,930 de azoknak, akik nem, talán hitelt azoknak, akik nem. 607 00:26:50,930 --> 00:26:53,580 Vegye papírlap és menj sorról sorra. 608 00:26:53,580 --> 00:26:59,390 És minden végrehajtott művelet, Azt akarom srácok, hogy valóban kiírja 609 00:26:59,390 --> 00:27:00,800 mi az a, b és c ezen a ponton. 610 00:27:00,800 --> 00:27:03,550 És mi a címeket, mik a mutatók, hogy pont az a, b és c 611 00:27:03,550 --> 00:27:04,410 ezen a ponton? 612 00:27:04,410 --> 00:27:07,150 >> És akkor remélhetőleg ez majd a lépést a srácok 613 00:27:07,150 --> 00:27:08,900 keresztül, hogyan kell gondolkodni mutatók. 614 00:27:08,900 --> 00:27:10,650 Nem fogunk menni végig őket. 615 00:27:10,650 --> 00:27:13,450 Talán adok five-- mint három perc. 616 00:27:13,450 --> 00:27:14,660 Kezdje el az első néhány. 617 00:27:14,660 --> 00:28:10,410 618 00:28:10,410 --> 00:28:10,959 Ó. 619 00:28:10,959 --> 00:28:11,459 Hoppá. 620 00:28:11,459 --> 00:28:20,940 621 00:28:20,940 --> 00:28:26,950 >> Közönség: A második sorban, miért nem a csillag [hallhatatlan] változó? 622 00:28:26,950 --> 00:28:29,410 >> ANDI Peng: Emlékszel a üzemeltetők, az első héten, 623 00:28:29,410 --> 00:28:31,730 beszélgettünk, hogyan ha nem, plusz az egyenlők, 624 00:28:31,730 --> 00:28:35,320 hogy csak olyan felér egy plusz c. 625 00:28:35,320 --> 00:28:39,370 Ebben case-- így ez egy másik módja, amelyben a csillag lehetne használni. 626 00:28:39,370 --> 00:28:42,040 Amellett, hogy hivatkozás és kijelentette mutatók, 627 00:28:42,040 --> 00:28:44,440 emlékezni, hogy ez is azt jelenti, szorzás. 628 00:28:44,440 --> 00:28:46,575 Tehát ebben az esetben, hogy az imént egy egyenlő egy alkalommal c. 629 00:28:46,575 --> 00:28:48,450 Ez csak a különböző írásmódja, hogy. 630 00:28:48,450 --> 00:28:49,776 >> Közönség: a valós érték megegyezik egy alkalommal c. 631 00:28:49,776 --> 00:28:50,442 ANDI Peng: Igen. 632 00:28:50,442 --> 00:30:43,488 633 00:30:43,488 --> 00:30:47,130 >> Közönség: Mit jelent az, ha azt mondja-jel írni? 634 00:30:47,130 --> 00:30:50,900 >> ANDI Peng: Ampersand úton fogsz hogy-- te 635 00:30:50,900 --> 00:30:54,760 megy a helyére a mutató mutatva, és húzza a címet. 636 00:30:54,760 --> 00:31:01,270 Szóval jelet ad a címet, csillag ad a tényleges érték van. 637 00:31:01,270 --> 00:31:03,090 >> Közönség: vagyunk építve soronként? 638 00:31:03,090 --> 00:31:04,881 >> ANDI Peng: Te építve sorról sorra. 639 00:31:04,881 --> 00:31:07,260 Szóval csak megy egy sort Egy idő és then-- Önnek 640 00:31:07,260 --> 00:31:08,470 Nem kell aggódni befejező az egészet. 641 00:31:08,470 --> 00:31:10,428 Próbáljuk meg átjutni talán két, három sorban 642 00:31:10,428 --> 00:31:12,445 aztán majd összehívja és befejezem. 643 00:31:12,445 --> 00:31:15,530 644 00:31:15,530 --> 00:31:17,470 >> Ez teljesen rendben van, ha a srácok elvesznek. 645 00:31:17,470 --> 00:31:19,334 Ez egy nagyon nehéz fogalom. 646 00:31:19,334 --> 00:31:22,500 Ha a srácok aggódnak, hogy az osztály hangzik, mint David azt mondta, 647 00:31:22,500 --> 00:31:23,190 nem. 648 00:31:23,190 --> 00:31:25,949 Elérünk a fogalmi csúcs nehézségi 649 00:31:25,949 --> 00:31:27,740 és akkor fog legyen lefelé lejtő. 650 00:31:27,740 --> 00:31:29,110 Szóval ti majdnem ott. 651 00:31:29,110 --> 00:31:31,080 Van sok édességet kap srácok a púp. 652 00:31:31,080 --> 00:31:32,940 Azt hiszem, elég sok bukását követően megtörni leszünk mint a púp 653 00:31:32,940 --> 00:31:34,220 és az élet minden rendben lesz megint. 654 00:31:34,220 --> 00:31:36,580 Így nem gond egyáltalán. 655 00:31:36,580 --> 00:32:30,732 656 00:32:30,732 --> 00:32:31,232 Minden rendben. 657 00:32:31,232 --> 00:32:33,650 Adok nektek 20 másodperc, hogy lezárja. 658 00:32:33,650 --> 00:33:12,560 659 00:33:12,560 --> 00:33:13,330 OKÉ. 660 00:33:13,330 --> 00:33:13,830 Minden rendben. 661 00:33:13,830 --> 00:33:16,370 Vessünk egy stab ezt. 662 00:33:16,370 --> 00:33:19,430 Ahogy srácok adj választ, Csak megyek, hogy írja be őket. 663 00:33:19,430 --> 00:33:22,140 És remélhetőleg we-- tehetném? 664 00:33:22,140 --> 00:33:23,317 Igazából nem írja be. 665 00:33:23,317 --> 00:33:24,400 Én rajzolni a táblára. 666 00:33:24,400 --> 00:33:31,420 667 00:33:31,420 --> 00:33:35,900 >> Tehát itt, ebben első sorban van egy egyenlő B csillag c. 668 00:33:35,900 --> 00:33:38,060 Szintén Elliot hozta létre Nagyon, nagyon jó pont. 669 00:33:38,060 --> 00:33:42,500 Mert elfelejtettem, hogy amellett, hogy A kétféle módon tudjuk használni a csillag szimbólum, 670 00:33:42,500 --> 00:33:43,750 van valójában egy harmadik utat. 671 00:33:43,750 --> 00:33:44,990 Szorzás. 672 00:33:44,990 --> 00:33:51,380 És így egyszerűen nem értem zavarodva, mert ez az első módja a sztár. 673 00:33:51,380 --> 00:33:54,470 Ez csak mondja a számítógép hogy én vagyok arról, hogy hozzon létre egy mutató. 674 00:33:54,470 --> 00:34:00,600 >> A második út by doing sztárja a mutatót, 675 00:34:00,600 --> 00:34:04,320 hogy elmondja a mutató kívánt az adatokhoz való hozzáféréshez meg, hogy a mutató. 676 00:34:04,320 --> 00:34:06,710 És aztán, persze, ott van csak egy egyszerű szorzás 677 00:34:06,710 --> 00:34:09,564 két szám, amely megmondja, hogy szeretnék, hogy szaporodnak a kettő. 678 00:34:09,564 --> 00:34:11,730 Szóval van egy csomó módon tudjuk használni a csillag szimbólum. 679 00:34:11,730 --> 00:34:13,830 Ne tévesszen. 680 00:34:13,830 --> 00:34:16,991 Csak győződjön meg arról, hogy a srácok értik pontosan mi mind a hárman 681 00:34:16,991 --> 00:34:18,630 csináljuk. 682 00:34:18,630 --> 00:34:22,920 >> Tehát ebben az első sorban, A egyenlő B-szor c. 683 00:34:22,920 --> 00:34:26,850 Szóval menjünk át mi egy, ami b, mi c? 684 00:34:26,850 --> 00:34:32,600 És mi van a mutató egy, a mutatót B és a mutatót c? 685 00:34:32,600 --> 00:34:34,050 Mik azok minden ami egyenlő? 686 00:34:34,050 --> 00:34:34,600 OKÉ. 687 00:34:34,600 --> 00:34:38,650 >> Tehát elindul egy = 3, b értéke 4, és c = 5, ugye? 688 00:34:38,650 --> 00:34:42,230 Így azután, hogy az első sorban, lehet Valaki mondja meg, mi a jelentése? 689 00:34:42,230 --> 00:34:42,730 Igen. 690 00:34:42,730 --> 00:34:44,229 Nyugodtan csak kiabálni a válaszokat. 691 00:34:44,229 --> 00:34:44,929 20. 692 00:34:44,929 --> 00:34:45,550 Jó. 693 00:34:45,550 --> 00:34:46,410 Mi b? 694 00:34:46,410 --> 00:34:47,777 >> Közönség: 4. 695 00:34:47,777 --> 00:34:48,610 ANDI Peng: Mi c? 696 00:34:48,610 --> 00:34:49,659 Közönség: 5. 697 00:34:49,659 --> 00:34:50,770 ANDI Peng: Hurrá. 698 00:34:50,770 --> 00:34:51,639 Jó. 699 00:34:51,639 --> 00:34:55,707 Mik pa, pb, és a pc? 700 00:34:55,707 --> 00:34:58,564 >> Közönség: 000001 és 002? 701 00:34:58,564 --> 00:34:59,230 ANDI Peng: Igen. 702 00:34:59,230 --> 00:35:02,390 Tehát egyfajta trükkös kérdés de nem azért, mert itt vagyok 703 00:35:02,390 --> 00:35:04,760 előhúzott tényleges emlékek. 704 00:35:04,760 --> 00:35:08,520 De mivel, példaként, mi nem valójában mit ezek a számok, 705 00:35:08,520 --> 00:35:10,326 mi is csak annyit jelet. 706 00:35:10,326 --> 00:35:12,200 Én nem is tudom, ha én levonhatjuk-jel. 707 00:35:12,200 --> 00:35:18,022 Ez az általam elvártnál, hogyan csinálod? 708 00:35:18,022 --> 00:35:19,790 >> Közönség: mint a rajz egy nyolc. 709 00:35:19,790 --> 00:35:20,870 >> ANDI Peng: Mint egy nyolc. 710 00:35:20,870 --> 00:35:21,580 Mint az. 711 00:35:21,580 --> 00:35:22,080 OKÉ. 712 00:35:22,080 --> 00:35:23,446 Közönség: Bingo. 713 00:35:23,446 --> 00:35:25,350 >> ANDI Peng: megöli. 714 00:35:25,350 --> 00:35:28,202 Tehát jelet egy, akkor csak tehetem. 715 00:35:28,202 --> 00:35:30,410 Mert valójában nem érdekel, mi az értéke, hogy a 716 00:35:30,410 --> 00:35:32,880 van, és ez néhány hosszú ass értéke egyébként, 717 00:35:32,880 --> 00:35:35,220 mi használ, csak Giong mondani jelet a. 718 00:35:35,220 --> 00:35:37,024 Akkor mi a pb? 719 00:35:37,024 --> 00:35:37,940 Közönség: [hallható]. 720 00:35:37,940 --> 00:35:38,606 ANDI Peng: Igen. 721 00:35:38,606 --> 00:35:42,490 722 00:35:42,490 --> 00:35:43,500 Hűvös. 723 00:35:43,500 --> 00:35:44,010 Minden rendben. 724 00:35:44,010 --> 00:35:44,770 Egyszerű első sorban. 725 00:35:44,770 --> 00:35:45,270 Megvan ez. 726 00:35:45,270 --> 00:35:46,330 Pointerek könnyű. 727 00:35:46,330 --> 00:35:47,450 Oké. 728 00:35:47,450 --> 00:35:48,740 >> Második sor. 729 00:35:48,740 --> 00:35:52,400 És így csillagos megegyezik az azonos dolog, mint azt a valós érték megegyezik egy alkalommal c. 730 00:35:52,400 --> 00:35:54,730 Ez csak egy könnyebb út az írás. 731 00:35:54,730 --> 00:35:57,170 Tehát mi nem arra törekedjünk, hogy Egy pont vagy itt semmit. 732 00:35:57,170 --> 00:36:00,600 Így történik az első sorban. 733 00:36:00,600 --> 00:36:05,144 Mi a második sorban miután nem egy valós érték megegyezik egy alkalommal c? 734 00:36:05,144 --> 00:36:05,777 >> Közönség: 100? 735 00:36:05,777 --> 00:36:06,610 ANDI Peng: Ez 100. 736 00:36:06,610 --> 00:36:07,795 Jó. 737 00:36:07,795 --> 00:36:08,864 Mit szólnál b? 738 00:36:08,864 --> 00:36:10,256 >> Közönség: [hallható]. 739 00:36:10,256 --> 00:36:11,335 >> ANDI Peng: Mit szólnál c? 740 00:36:11,335 --> 00:36:12,490 >> Közönség: [hallható]. 741 00:36:12,490 --> 00:36:14,530 >> ANDI Peng: És mi a helyzet a mutatók? 742 00:36:14,530 --> 00:36:15,800 Biztos they-- ugyanaz, ugye? 743 00:36:15,800 --> 00:36:20,640 744 00:36:20,640 --> 00:36:21,940 OKÉ. 745 00:36:21,940 --> 00:36:23,820 Most a harmadik sorban. 746 00:36:23,820 --> 00:36:26,400 747 00:36:26,400 --> 00:36:27,350 Kicsit trükkösebb. 748 00:36:27,350 --> 00:36:29,760 b egyenlő csillagos pa. 749 00:36:29,760 --> 00:36:34,189 Tud valaki mondja meg, első, mit csillagos pa egyenlő? 750 00:36:34,189 --> 00:36:36,159 >> Közönség: Ez az érték ami tárolni. 751 00:36:36,159 --> 00:36:36,950 ANDI Peng: Pontosan. 752 00:36:36,950 --> 00:36:38,070 És mi az értéke ami tárolni? 753 00:36:38,070 --> 00:36:38,860 >> Közönség: 100. 754 00:36:38,860 --> 00:36:39,660 >> ANDI Peng: OK. 755 00:36:39,660 --> 00:36:43,462 Tehát mi lenne a lehet után végrehajtó, hogy kódsort? 756 00:36:43,462 --> 00:36:44,760 >> Közönség: [hallható]. 757 00:36:44,760 --> 00:36:45,870 >> ANDI Peng: Mi van b? 758 00:36:45,870 --> 00:36:46,780 >> Közönség: 100. 759 00:36:46,780 --> 00:36:47,620 >> ANDI Peng: Igen. 760 00:36:47,620 --> 00:36:49,995 És akkor minden más nagyjából változatlan, igaz? 761 00:36:49,995 --> 00:36:51,239 Mert mi nem nyúltam hozzá. 762 00:36:51,239 --> 00:36:55,370 763 00:36:55,370 --> 00:36:57,010 Hűvös. 764 00:36:57,010 --> 00:36:58,390 Negyedik sor. 765 00:36:58,390 --> 00:37:00,390 Kissé bonyolultabb. 766 00:37:00,390 --> 00:37:06,910 Tehát pc-- ismét pc a mutató hogy rámutatott c-- egyenlő pa. 767 00:37:06,910 --> 00:37:11,520 768 00:37:11,520 --> 00:37:12,360 Mi a? 769 00:37:12,360 --> 00:37:14,525 >> Közönség: 100. 770 00:37:14,525 --> 00:37:15,400 ANDI Peng: Mi b? 771 00:37:15,400 --> 00:37:17,920 Közönség: 100. 772 00:37:17,920 --> 00:37:18,862 ANDI Peng: Mi a c? 773 00:37:18,862 --> 00:37:19,993 Közönség: 5. 774 00:37:19,993 --> 00:37:20,867 ANDI Peng: Mi pa? 775 00:37:20,867 --> 00:37:22,775 Közönség:-jel egy. 776 00:37:22,775 --> 00:37:23,730 ANDI Peng: pb? 777 00:37:23,730 --> 00:37:26,010 Közönség: Ampersand b. 778 00:37:26,010 --> 00:37:27,730 ANDI Peng: És trükkös, mi a pc most? 779 00:37:27,730 --> 00:37:28,410 Közönség:-jel egy. 780 00:37:28,410 --> 00:37:29,034 ANDI Peng: Hurrá. 781 00:37:29,034 --> 00:37:31,790 Woo Hoo. 782 00:37:31,790 --> 00:37:32,500 Látjátok? 783 00:37:32,500 --> 00:37:33,282 Ez rendben van. 784 00:37:33,282 --> 00:37:33,990 Ez nem is rossz. 785 00:37:33,990 --> 00:37:38,730 Jelenleg több édességet, ha ez még nem minden Rendben, de azt hiszem, minden rendben. 786 00:37:38,730 --> 00:37:41,900 És mi lesz, hogy menjen át csak egy Több mielőtt megüt a keményebb is. 787 00:37:41,900 --> 00:37:43,710 A választ már itt. 788 00:37:43,710 --> 00:37:47,050 >> Lényegében tudjuk, hogy ez mint Math ezen a ponton. 789 00:37:47,050 --> 00:37:53,240 Ha egyszerű egyenletek, mint egy plusz b, egy alkalommal c, ez könnyen megoldható. 790 00:37:53,240 --> 00:37:56,390 És ha elkezd bővülő után ez, csak menjen műveletek sorrendjét. 791 00:37:56,390 --> 00:37:57,830 Ugyanaz, mint korábban. 792 00:37:57,830 --> 00:38:00,030 >> Kövesse nyomon az, ha a csillag mielőtt valami. 793 00:38:00,030 --> 00:38:01,640 Hogy megmondja, hogy az értéket. 794 00:38:01,640 --> 00:38:04,640 Ha van egy, és mielőtt valamit, azt mondja, a címet. 795 00:38:04,640 --> 00:38:07,860 És hozzá kell rendelnie sem mutatók, illetve ezt az értéket. 796 00:38:07,860 --> 00:38:11,260 Szóval menjünk át ezt utolsó gyorsan. 797 00:38:11,260 --> 00:38:12,520 Nem ez az utolsó, sajnálom. 798 00:38:12,520 --> 00:38:13,340 Tulajdonképpen ti is felvenni. 799 00:38:13,340 --> 00:38:16,006 Melyiket akartok menni felett ki a fennmaradó három 800 00:38:16,006 --> 00:38:17,449 hogy van? 801 00:38:17,449 --> 00:38:20,490 Nem hiszem, hogy meg tudjuk csinálni, hogy csak mert nem tudjuk, csak ugrik a sorban. 802 00:38:20,490 --> 00:38:21,000 OKÉ. 803 00:38:21,000 --> 00:38:25,700 Srácok nem volt más választásom, ez csak a harmadik az utolsó egy. 804 00:38:25,700 --> 00:38:29,228 >> Csillagok pc egyenlő b-szor c. 805 00:38:29,228 --> 00:38:30,144 >> Közönség: Csillagok pb? 806 00:38:30,144 --> 00:38:32,117 >> Közönség: Csillagok pb. 807 00:38:32,117 --> 00:38:32,825 ANDI Peng: Sajnáljuk? 808 00:38:32,825 --> 00:38:33,599 Közönség: Csillagok pb. 809 00:38:33,599 --> 00:38:34,390 ANDI Peng: Csillagok pb. 810 00:38:34,390 --> 00:38:35,100 Ó, az én hibám. 811 00:38:35,100 --> 00:38:38,647 Csillagok pb egyenlő b-szor c. 812 00:38:38,647 --> 00:38:40,230 Én adok nektek 10 másodperc. 813 00:38:40,230 --> 00:38:41,140 Csak gyorsan gondolkodni. 814 00:38:41,140 --> 00:38:43,450 Ez az, hogy van olyan messze, mi történik azután, hogy 815 00:38:43,450 --> 00:38:46,770 végre, hogy az ötödik sorban ott? 816 00:38:46,770 --> 00:38:54,030 817 00:38:54,030 --> 00:38:55,980 OKÉ. 818 00:38:55,980 --> 00:38:58,720 Mi a? 819 00:38:58,720 --> 00:38:59,560 >> Közönség: 100. 820 00:38:59,560 --> 00:39:02,470 >> ANDI Peng: 100. 821 00:39:02,470 --> 00:39:03,610 Mi b most? 822 00:39:03,610 --> 00:39:04,330 >> Közönség: 500. 823 00:39:04,330 --> 00:39:05,250 >> ANDI Peng: Jó. 824 00:39:05,250 --> 00:39:08,570 Vajon valaki akarja magyarázni Nekem miért van ez 500? 825 00:39:08,570 --> 00:39:10,540 Én nem érzem, valójában soha megérintette b. 826 00:39:10,540 --> 00:39:13,950 Hogyan sikerül változtatni a értéke b érintése nélkül b? 827 00:39:13,950 --> 00:39:15,090 Igen? 828 00:39:15,090 --> 00:39:18,239 >> Közönség: Mert csillagos pb azt az értéket, pb-- 829 00:39:18,239 --> 00:39:19,030 ANDI Peng: Pontosan. 830 00:39:19,030 --> 00:39:19,790 Közönség: --which b. 831 00:39:19,790 --> 00:39:20,581 ANDI Peng: Pontosan. 832 00:39:20,581 --> 00:39:26,880 Tehát itt a mi rajz, a pointer pb valójában mutat ez a jog 833 00:39:26,880 --> 00:39:28,690 itt, ami a tényleges fizikai b. 834 00:39:28,690 --> 00:39:31,340 És így ha megy, és te csillag pb, ez 835 00:39:31,340 --> 00:39:36,080 a következő a nyíl a mutatót és fizikailag változó értékét b. 836 00:39:36,080 --> 00:39:39,532 Szóval ezért hoztunk B változott 500, anélkül, hogy megérintené b. 837 00:39:39,532 --> 00:39:42,490 És akkor minden mást is a ugyanaz, mert nem nyúltunk, hogy. 838 00:39:42,490 --> 00:39:47,060 839 00:39:47,060 --> 00:39:48,530 Ez b. 840 00:39:48,530 --> 00:39:49,420 Hűvös. 841 00:39:49,420 --> 00:39:50,485 És akkor-- 842 00:39:50,485 --> 00:39:51,910 >> Közönség: Én csak egy kérdésem. 843 00:39:51,910 --> 00:39:52,730 >> ANDI Peng: Igen? 844 00:39:52,730 --> 00:39:56,000 >> Közönség: Mivel we've-- nincs többé jelet c, 845 00:39:56,000 --> 00:39:59,620 ez azt jelenti-jel egy átirányítani ugyanezt most? 846 00:39:59,620 --> 00:40:00,520 >> ANDI Peng: Ja. 847 00:40:00,520 --> 00:40:01,582 Na-- 848 00:40:01,582 --> 00:40:03,540 Közönség: Tehát a nyíl fajta csak mozog és-- 849 00:40:03,540 --> 00:40:04,030 ANDI Peng: Szóval essentially-- 850 00:40:04,030 --> 00:40:05,405 Közönség: --now nem tudjuk access-- 851 00:40:05,405 --> 00:40:08,387 ANDI Peng: --when vagyunk követéssel, c on-- I hamisító. 852 00:40:08,387 --> 00:40:08,970 Mi volt ez? 853 00:40:08,970 --> 00:40:09,560 A harmadik sorban? 854 00:40:09,560 --> 00:40:10,060 Negyedik. 855 00:40:10,060 --> 00:40:11,490 Negyedik sor. 856 00:40:11,490 --> 00:40:14,910 Minden, amit az volt, lényegében, ezen változtatni nyíl 857 00:40:14,910 --> 00:40:16,680 és ez irányába mutattak helyett. 858 00:40:16,680 --> 00:40:19,480 >> Közönség: Tehát nem fér hozzá c többé. 859 00:40:19,480 --> 00:40:22,520 >> ANDI Peng: Ha már ez pontosan szám, akkor hozzáférni. 860 00:40:22,520 --> 00:40:23,260 De nem. 861 00:40:23,260 --> 00:40:25,680 Nem kell egy mutatót felé mutat c többé. 862 00:40:25,680 --> 00:40:27,430 Azt hiszem, ha akart hogy újra elérhető, akkor 863 00:40:27,430 --> 00:40:30,390 hozna létre egy másik mutatót, hogy újra rámutatott c 864 00:40:30,390 --> 00:40:32,856 vagy másolunk ezt, és rámutatott vissza. 865 00:40:32,856 --> 00:40:35,730 Tehát nem, mint most, a három mutatók, egyikük sem mutatnak c. 866 00:40:35,730 --> 00:40:38,800 867 00:40:38,800 --> 00:40:40,110 >> Mindenki jó? 868 00:40:40,110 --> 00:40:41,440 Válaszok online. 869 00:40:41,440 --> 00:40:45,210 Nyugodtan, szakasz után, menj át Az elmúlt két és vizsgálati magatokat. 870 00:40:45,210 --> 00:40:47,840 Ugyanazokat a fogalmakat, csak egy kicsit trükkösebb. 871 00:40:47,840 --> 00:40:51,860 Csak kövesse a logikáját Ezért a dolgok különböző dolog. 872 00:40:51,860 --> 00:40:54,530 És tipp, pointerek a téma, hogy szeretjük 873 00:40:54,530 --> 00:40:58,780 fedezésére a vetélkedők, mert ők fogalmilag nagyon nehéz. 874 00:40:58,780 --> 00:41:01,360 Tehát azt javaslom, hogy srácok egész felülvizsgálja ezt a táblázatot 875 00:41:01,360 --> 00:41:05,916 vagy perjel hasonló fogalmakat mielőtt a kvíz jövő héten. 876 00:41:05,916 --> 00:41:06,864 >> Közönség: Elnézést. 877 00:41:06,864 --> 00:41:07,530 >> ANDI Peng: Igen? 878 00:41:07,530 --> 00:41:09,708 Közönség: [hallható] végleges one-- [hallhatatlan]. 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 Azt kell, hogy kövesse azt vissza. 882 00:41:17,850 --> 00:41:22,530 De somewhere-- azt hiszem, a vonal előtt, akkor létre óriás c érték. 883 00:41:22,530 --> 00:41:26,250 c megegyezik ez a hatalmas dolog ami 100-szor 500. 884 00:41:26,250 --> 00:41:27,006 Nem. 885 00:41:27,006 --> 00:41:28,000 >> Közönség: [hallható]. 886 00:41:28,000 --> 00:41:28,625 >> ANDI Peng: Igen. 887 00:41:28,625 --> 00:41:30,620 100-szor 100, ami 10.000. 888 00:41:30,620 --> 00:41:32,020 Melyik a 10.000. 889 00:41:32,020 --> 00:41:35,410 Így hát ott vagytok megszorozzák b és c. 890 00:41:35,410 --> 00:41:43,165 Így a mutató, amely rámutat, hogy b-- amely az értéke 500-- alkalommal egy-- 891 00:41:43,165 --> 00:41:44,480 >> Közönség: [hallható]. 892 00:41:44,480 --> 00:41:45,730 ANDI Peng: Lehet, hogy baj van. 893 00:41:45,730 --> 00:41:49,514 Közönség: Nem, nem, ez nem az. [Hallhatatlan] pointer ac most mutatva egy-- 894 00:41:49,514 --> 00:41:50,180 ANDI Peng: Igen. 895 00:41:50,180 --> 00:41:50,840 Igaza van. 896 00:41:50,840 --> 00:41:56,477 >> Közönség: --it van annak egy egyenlőségen Egy times-- ez az érték c. 897 00:41:56,477 --> 00:41:59,560 ANDI Peng: Tudsz mondani, hogy egy kicsit kicsit hangosabban, hogy mindenki hallja meg? 898 00:41:59,560 --> 00:42:04,879 Közönség: Szóval mutató ac utal most már hogy mi a mutató egy használni, hogy pont 899 00:42:04,879 --> 00:42:09,460 alábbiakra: és még does-- de rámutatnak ugyanaz a dolog, ami az egy, igaz? 900 00:42:09,460 --> 00:42:12,925 Az érték egy azonban ez már az újonnan definiált. 901 00:42:12,925 --> 00:42:17,875 És az elején, hogy te kimondásával korábban 100-szor 902 00:42:17,875 --> 00:42:21,340 az érték, b, amely 500. 903 00:42:21,340 --> 00:42:24,305 És ez az, hogy bármennyire is. 904 00:42:24,305 --> 00:42:24,805 50.000. 905 00:42:24,805 --> 00:42:32,860 Ők éppen átcsoportosításával, hogy azzal, amit a memóriát ac is-- a mutatót a C 906 00:42:32,860 --> 00:42:34,510 mutat, amely egy. 907 00:42:34,510 --> 00:42:38,460 Szóval újradefiniálása, hogy 50.000. 908 00:42:38,460 --> 00:42:40,210 ANDI Peng: tehette tanítani a rész számomra. 909 00:42:40,210 --> 00:42:41,260 Legközelebb ez mind a tiéd. 910 00:42:41,260 --> 00:42:41,440 Itt. 911 00:42:41,440 --> 00:42:42,564 Itt inkább édességet erre. 912 00:42:42,564 --> 00:42:45,790 Megérdemled édességet erre. 913 00:42:45,790 --> 00:42:47,260 >> Közönség: Én majdnem utolérte, hogy. 914 00:42:47,260 --> 00:42:47,660 >> ANDI Peng: Majdnem elkapta ezt. 915 00:42:47,660 --> 00:42:48,450 Rendben van. 916 00:42:48,450 --> 00:42:48,950 Igen. 917 00:42:48,950 --> 00:42:50,033 De ő pontosan így van. 918 00:42:50,033 --> 00:42:54,469 Szóval, mit kell tennie, az hogy-- azt hiszem, 919 00:42:54,469 --> 00:42:56,510 követni kell azt a tényt, hogy a mutató most 920 00:42:56,510 --> 00:42:57,880 rámutatva, hogy különböző értékeket. 921 00:42:57,880 --> 00:43:01,785 Tehát a value-- sajnálom, a mutatójának c repointed egy. 922 00:43:01,785 --> 00:43:04,390 És így eltolódott minden kedves számokat. 923 00:43:04,390 --> 00:43:08,930 És ezért, amikor belép a ott tárolt értékkel, más a helyzet. 924 00:43:08,930 --> 00:43:10,490 Ennek van értelme? 925 00:43:10,490 --> 00:43:11,380 OKÉ. 926 00:43:11,380 --> 00:43:12,820 Hűvös. 927 00:43:12,820 --> 00:43:16,635 Mindenki jó, mielőtt lépni? 928 00:43:16,635 --> 00:43:25,332 >> Közönség: Vajon the-- ha fogsz le a sorok a bal oldali oszlopban, 929 00:43:25,332 --> 00:43:30,494 nem az első sorban érinti a második sorban majd a second-- tetszik, ez all-- 930 00:43:30,494 --> 00:43:31,160 ANDI Peng: Igen. 931 00:43:31,160 --> 00:43:37,610 Így elképzelhető, hogy a kódot, ahol én csak gépelt egy egyenlő B-szor c, egy csillag egyenlő c. 932 00:43:37,610 --> 00:43:40,290 Képzeljük csak el, hogy én már csak futott be ezt a kódot 933 00:43:40,290 --> 00:43:42,710 és én nem nyomtassa ki, mit mindezen dolgok voltak. 934 00:43:42,710 --> 00:43:46,200 Ha én lennék, csak hogy nyomtassa ki az első dolog a tetején, nem lenne itt. 935 00:43:46,200 --> 00:43:48,510 Ha ezek után futottam összes ezeket sornyi kódot, 936 00:43:48,510 --> 00:43:51,160 mi ezeknek az értékeknek kell lennie a végén az, hogy. 937 00:43:51,160 --> 00:43:53,290 >> Úgyhogy valóban írt egy programot itt. 938 00:43:53,290 --> 00:43:55,840 Én még nem kész az összes A szorzás. 939 00:43:55,840 --> 00:43:58,310 De csak elképzelni. 940 00:43:58,310 --> 00:44:00,370 Tehát itt én csak egy nevű programot mutatók. 941 00:44:00,370 --> 00:44:04,190 Megyek nagyít, ha guys-- OK. 942 00:44:04,190 --> 00:44:07,580 Úgyhogy létrehozott változókat a, b, c. 943 00:44:07,580 --> 00:44:09,640 Már meg őket egyenlő 3, 4, és 5, és már 944 00:44:09,640 --> 00:44:11,770 létrehozta a megfelelő mutatók. 945 00:44:11,770 --> 00:44:14,550 És akkor itt Megyek kinyomtatni, mi az. 946 00:44:14,550 --> 00:44:15,833 Tehát engedik, hogy. 947 00:44:15,833 --> 00:44:21,520 948 00:44:21,520 --> 00:44:24,750 >> Srácok see-- szar. 949 00:44:24,750 --> 00:44:28,150 Srácok látni, hogy egy, b és c ezen értékek 950 00:44:28,150 --> 00:44:33,530 de a pointerek ez a hatalmas szemetet értéke, hogy nem érdekel? 951 00:44:33,530 --> 00:44:36,690 Tehát ha én valóban dugó valamennyi a szorzás 952 00:44:36,690 --> 00:44:39,770 majd nyomtassa ki újra az összes ez lenne végre ki 953 00:44:39,770 --> 00:44:44,509 hogy mi ez az alján. 954 00:44:44,509 --> 00:44:47,300 Tehát, ha akartok játszani körül A fizikailag kódolás, 955 00:44:47,300 --> 00:44:49,000 srácok csak csatlakoztassa az összes ilyen a. 956 00:44:49,000 --> 00:44:52,860 A kód lesz online, majd a értékeket kell nyomtatni, hogy utána. 957 00:44:52,860 --> 00:44:56,170 >> És akkor látni fogod, hogy a mutató címek ténylegesen újraosztani. 958 00:44:56,170 --> 00:44:59,190 Így látni fogod, hogy a címe c valóban lesz 959 00:44:59,190 --> 00:45:00,920 hogy megegyezzen amit a címét egy volt. 960 00:45:00,920 --> 00:45:04,140 És akkor egyezik bármilyen hogy a nagy szám. 961 00:45:04,140 --> 00:45:06,530 Jó kérdés. 962 00:45:06,530 --> 00:45:07,550 Mindenki jól van? 963 00:45:07,550 --> 00:45:10,300 Még egy utolsó felhívást kérdésekre. 964 00:45:10,300 --> 00:45:11,590 OKÉ. 965 00:45:11,590 --> 00:45:12,090 Minden rendben. 966 00:45:12,090 --> 00:45:15,940 Tehát készüljön, hogy az elméd fújt egy kicsit kicsit. 967 00:45:15,940 --> 00:45:18,000 A tömbök valójában csak mutatók. 968 00:45:18,000 --> 00:45:19,010 Ez minden vannak. 969 00:45:19,010 --> 00:45:20,410 És ne feledd, milyen húrok? 970 00:45:20,410 --> 00:45:21,630 Ők is tömböket. 971 00:45:21,630 --> 00:45:23,110 Tehát mi húrok tényleg? 972 00:45:23,110 --> 00:45:27,100 Olyanok, mint rámutatnak a elején egy char több karakter. 973 00:45:27,100 --> 00:45:29,970 >> Tehát csak koncepciók, hogy indul építeni egymás tetejére. 974 00:45:29,970 --> 00:45:32,030 Szóval ez why-- Önnek emlékszem az előadás, David, 975 00:45:32,030 --> 00:45:34,990 amikor kellett, hogy összehasonlítás int húr anyuka 976 00:45:34,990 --> 00:45:37,640 van valami, majd másik szöveg anya és 977 00:45:37,640 --> 00:45:41,240 próbálja, hogy kiegyenlíti a két egymással, kapsz különböző értékeket. 978 00:45:41,240 --> 00:45:44,370 Ez azért van, mert húrok önmagukban nem értékeket. 979 00:45:44,370 --> 00:45:48,860 Minden ezek a memória címek char-- ezek tömbök karaktereinek és tömbök 980 00:45:48,860 --> 00:45:50,050 Íme mutatók. 981 00:45:50,050 --> 00:45:54,022 >> Tehát lényegében, ha Dávid volt comparing-- 982 00:45:54,022 --> 00:45:55,355 Helyes, ha törli az összes e? 983 00:45:55,355 --> 00:46:02,320 984 00:46:02,320 --> 00:46:09,750 Tehát előadás, amikor David Volt anya egyenlő egyenlő anya, 985 00:46:09,750 --> 00:46:11,630 számunkra, hogy úgy tűnik, hogy ugyanaz a dolog. 986 00:46:11,630 --> 00:46:12,317 Jobb? 987 00:46:12,317 --> 00:46:15,150 De a számítógép alatt a motorháztető, ami valójában történik 988 00:46:15,150 --> 00:46:18,380 az, hogy ez a szöveg, minden, ami egy tömb. 989 00:46:18,380 --> 00:46:21,420 990 00:46:21,420 --> 00:46:25,390 Egy ampersand-- vagy, sajnálom, egy null terminátort a végén. 991 00:46:25,390 --> 00:46:28,311 992 00:46:28,311 --> 00:46:28,810 Jobb? 993 00:46:28,810 --> 00:46:29,940 Backslash 0. 994 00:46:29,940 --> 00:46:32,900 Rossz eléjük. 995 00:46:32,900 --> 00:46:35,960 >> Szóval mindent were-- összes E két húrok were-- 996 00:46:35,960 --> 00:46:40,360 a tömb mérete négykézláb a A leveleket a mama és anya. 997 00:46:40,360 --> 00:46:44,780 De mi tömbök tényleg csak mutatók egy adott helyen a memóriában 998 00:46:44,780 --> 00:46:47,140 hogy megmondja, hogy indítsa el a tömb. 999 00:46:47,140 --> 00:46:52,370 Tehát ebben az esetben, mindez csak néhány szemetet értéket, 1000 00:46:52,370 --> 00:46:54,230 néhány véletlenszerű mutató. 1001 00:46:54,230 --> 00:46:56,330 És mindez ben néhány más szemetet értéket. 1002 00:46:56,330 --> 00:46:59,830 Mondjuk úgy, 0x200. 1003 00:46:59,830 --> 00:47:02,410 >> És így, amikor megpróbálja egyenlő őket két egymással, 1004 00:47:02,410 --> 00:47:06,130 úgy értékeli, hogy hamis, mert A addresses-- a mutatók 1005 00:47:06,130 --> 00:47:08,390 hogy azok were-- különbözőek voltak. 1006 00:47:08,390 --> 00:47:11,400 Mivel ez más, ha megpróbálja összehasonlítani a tényleges szám. 1007 00:47:11,400 --> 00:47:15,820 Mint ha akart compare-- Az elmúlt example-- int a B, 1008 00:47:15,820 --> 00:47:17,640 ők értékelik igaz, mint mondta Elliot 1009 00:47:17,640 --> 00:47:19,431 mert ők voltak egészek eltárolt 1010 00:47:19,431 --> 00:47:21,320 és te értékelésekor csak az értékeket. 1011 00:47:21,320 --> 00:47:25,090 Itt, mert húrok tömbök és minden tömbök mutatók, 1012 00:47:25,090 --> 00:47:28,080 ezért ezek nem egyenlő egymással. 1013 00:47:28,080 --> 00:47:31,210 >> Tehát a fajta zavaró, hogy a grafikus. 1014 00:47:31,210 --> 00:47:32,450 De nézzük csak elképzelni. 1015 00:47:32,450 --> 00:47:38,110 Már létre egy sor mérete 3 0-tól 2-- 0, 1016 00:47:38,110 --> 00:47:41,530 1, 2, azzal a értékei 1, 2, és 3. a bennük tárolt. 1017 00:47:41,530 --> 00:47:43,820 Minden tömb igazán does-- itt, nézzük csak 1018 00:47:43,820 --> 00:47:46,720 mondjuk hozok létre egy mutatót E tömb, ami 1019 00:47:46,720 --> 00:47:50,810 hozzáférés az értéket a első index ezt a tömböt. 1020 00:47:50,810 --> 00:47:52,890 Tehát itt lenne 0. 1021 00:47:52,890 --> 00:47:53,390 Jobb? 1022 00:47:53,390 --> 00:47:56,820 Mindenki érti, hogyan hogy első sorban értékelni? 1023 00:47:56,820 --> 00:47:57,420 Nagy. 1024 00:47:57,420 --> 00:48:00,800 >> És így ha akartam inicializálni A további értékek után, 1025 00:48:00,800 --> 00:48:04,390 minden, amit csinálunk átcsoportosításáról. 1026 00:48:04,390 --> 00:48:08,810 Tehát 0, 1, 2, 1. 1027 00:48:08,810 --> 00:48:12,770 Tehát ez a mutató, mely egykor rámutatva, hogy itt, az összes csinálunk 1028 00:48:12,770 --> 00:48:15,540 mozog lefelé. 1029 00:48:15,540 --> 00:48:16,970 Ez az, amit a plusz 1 csinál. 1030 00:48:16,970 --> 00:48:18,500 És akkor tudunk rakni 2 van. 1031 00:48:18,500 --> 00:48:23,250 Ha akartuk, hogy 3 az egy után, mi lenne törölni ezt a mutatót, 1032 00:48:23,250 --> 00:48:25,170 fel 3 odabent. 1033 00:48:25,170 --> 00:48:26,420 Van ennek értelme mindenki? 1034 00:48:26,420 --> 00:48:26,920 Igen. 1035 00:48:26,920 --> 00:48:28,086 Volt egy kérdés? 1036 00:48:28,086 --> 00:48:30,711 Közönség: Ez [hallhatatlan] van Kérdés, mondom még egyébként. 1037 00:48:30,711 --> 00:48:35,496 Nem hiszem, hogy ez valójában egy kérdés de-- angol, tömb 1038 00:48:35,496 --> 00:48:37,448 értéke 1 értelme. 1039 00:48:37,448 --> 00:48:39,888 Olyanok vagyunk, mint, OK, az első dolog. 1040 00:48:39,888 --> 00:48:44,280 De a dolgok 0 index [Hallhatatlan] a tömb értéke 0 1041 00:48:44,280 --> 00:48:48,024 jelezve az első helyet. 1042 00:48:48,024 --> 00:48:48,690 ANDI Peng: Igen. 1043 00:48:48,690 --> 00:48:53,740 Tehát tulajdonképpen mit csinálok itt Én nem hozzáférését az első index. 1044 00:48:53,740 --> 00:48:57,930 Minden voltam doing-- így először is, mondd meg, mit jelent csillagos tömb csinálni? 1045 00:48:57,930 --> 00:48:59,480 Mit jelent egy csillag előtt egy mutatót csinálni? 1046 00:48:59,480 --> 00:49:00,855 >> Közönség: Ez jelzi a mutató. 1047 00:49:00,855 --> 00:49:02,910 Hogy te nyilvánító mutatót. 1048 00:49:02,910 --> 00:49:04,380 Ez de-- 1049 00:49:04,380 --> 00:49:07,520 >> ANDI Peng: Ez dereferences amelyek segítségével megy, és valójában kap az értéket. 1050 00:49:07,520 --> 00:49:08,020 Jobb? 1051 00:49:08,020 --> 00:49:13,030 Tehát ebben az esetben, azt akarjuk, hogy Az érték itt, és állítja be, hogy az 1. 1052 00:49:13,030 --> 00:49:13,800 Igen? 1053 00:49:13,800 --> 00:49:17,050 Szóval nem actually-- én nem igazán törődnek az index ezen, 1054 00:49:17,050 --> 00:49:21,406 Az összes csinálok csak ismételve le mozgatásával én mutatót lefelé a tömbben. 1055 00:49:21,406 --> 00:49:23,280 És akkor végül is meg kell állítanunk, ugye? 1056 00:49:23,280 --> 00:49:26,750 És az is, hogy abbahagyom amikor elütöttem, abban az esetben, 1057 00:49:26,750 --> 00:49:28,750 Egy string, a null terminátor. 1058 00:49:28,750 --> 00:49:32,710 Tudom, jaj, ha elütöttem egy back-- ha látom backslash 0, tudom, én vagyok kész ezzel 1059 00:49:32,710 --> 00:49:35,270 és tudom, hogy én is csak megállítani iterációjával keresztül. 1060 00:49:35,270 --> 00:49:36,200 Nagyon jó kérdés. 1061 00:49:36,200 --> 00:49:40,210 >> És mi lesz igazán megy tovább részletesen ebben a jövő héten 1062 00:49:40,210 --> 00:49:43,990 mert a darab, hogy fog jár sok használat mutatók. 1063 00:49:43,990 --> 00:49:48,459 De csak tudom, hogy most, hogy csak egy másik more-- 1064 00:49:48,459 --> 00:49:51,250 hogy csak egy másik utat A számítógép írni, lényegében, 1065 00:49:51,250 --> 00:49:52,470 amit csinálsz. 1066 00:49:52,470 --> 00:49:54,900 Mint Dávid azt mondta előadás, az is, hogy mi 1067 00:49:54,900 --> 00:50:01,720 hozzáférhet a tömb csak ennek révén tömb 0, 0 konzol, ha csak 1068 00:50:01,720 --> 00:50:04,050 akarta elérni az első érték. 1069 00:50:04,050 --> 00:50:10,280 >> Minden a számítógép csinál fordul hogy abba a ciklussal magát. 1070 00:50:10,280 --> 00:50:13,580 Így hívjuk szintaktikai cukor, amely csak 1071 00:50:13,580 --> 00:50:18,420 divatos módja mondván, felhasználóbarát módon, hogy tudnánk, hogyan kell programozni. 1072 00:50:18,420 --> 00:50:21,560 De a számítógép alatta, mit csinál, 1073 00:50:21,560 --> 00:50:23,997 ez valójában csak úgy, egy mutató, ami beállításával. 1074 00:50:23,997 --> 00:50:26,330 De az is, hogy írunk meg, mert könnyebb számunkra 1075 00:50:26,330 --> 00:50:30,240 gondolni a dolgokat szempontjából dobozok és hogyan kell lejjebb dobozok, 1076 00:50:30,240 --> 00:50:32,190 van azáltal, hogy a konzolok. 1077 00:50:32,190 --> 00:50:36,394 Sajnáljuk, hogy tényleg, nagyon rosszul de-- igen. 1078 00:50:36,394 --> 00:50:38,310 Közönség: Szóval hogyan összehasonlítani két karakterlánc 1079 00:50:38,310 --> 00:50:40,560 hogy ha ők egyenlő egymással? 1080 00:50:40,560 --> 00:50:42,690 >> ANDI Peng: Így Dávid írta ez a program, előadás 1081 00:50:42,690 --> 00:50:45,274 így én csak fog menni több mint gyorsan és röviden. 1082 00:50:45,274 --> 00:50:47,440 Az, hogy tennéd, hogy az, hogy ténylegesen 1083 00:50:47,440 --> 00:50:51,300 kell menni, és hasonlítsa össze a addresses-- vagy az értékeket 1084 00:50:51,300 --> 00:50:52,810 nyert mutatók. 1085 00:50:52,810 --> 00:50:55,140 Jól jegyezd meg, hogyan megszerezni az érték itt? 1086 00:50:55,140 --> 00:50:56,825 Nem érdekel a címét. 1087 00:50:56,825 --> 00:50:58,950 Hogyan tényleg csak az értéke bármi van itt? 1088 00:50:58,950 --> 00:50:59,470 >> Közönség: [hallható]. 1089 00:50:59,470 --> 00:51:00,261 >> ANDI Peng: Pontosan. 1090 00:51:00,261 --> 00:51:05,090 Szóval összehasonlítani a sztár Itt szemben a csillag itt. 1091 00:51:05,090 --> 00:51:06,150 Azok egyenlő. 1092 00:51:06,150 --> 00:51:07,690 És akkor megy le. 1093 00:51:07,690 --> 00:51:09,530 A csillag itt és A csillag van az egyenlő? 1094 00:51:09,530 --> 00:51:10,030 OKÉ. 1095 00:51:10,030 --> 00:51:10,283 Ők egyenlő. 1096 00:51:10,283 --> 00:51:12,866 És csak folyamatosan megy le amíg meg nem nyomja a végén mindkettő. 1097 00:51:12,866 --> 00:51:16,190 És ha mindegyik egyenlő, akkor tudod, a karakterlánc egyenlő. 1098 00:51:16,190 --> 00:51:18,130 És C valójában egy funkciót írásos úgynevezett 1099 00:51:18,130 --> 00:51:20,713 Karakterlánc Comp, amely valójában csak nem, hogy az Ön számára, így nem " 1100 00:51:20,713 --> 00:51:22,140 kell írni magad. 1101 00:51:22,140 --> 00:51:23,274 Igen? 1102 00:51:23,274 --> 00:51:26,970 >> Közönség: Azt hiszem, az előadás az, amikor mi a összehasonlítani. 1103 00:51:26,970 --> 00:51:29,520 Mi nem igazán szükség egy számláló, mint a pi, ugye? 1104 00:51:29,520 --> 00:51:34,310 >> ANDI Peng: nem mert nem igazán érdekel 1105 00:51:34,310 --> 00:51:36,250 hány doboz, amit végigjárt keresztül. 1106 00:51:36,250 --> 00:51:39,580 Minden érdekel, hogy mi lesz menj tovább, amíg tudom, hogy hagyja abba. 1107 00:51:39,580 --> 00:51:41,990 És tudod, hogy hagyja abba, amikor van valami jelzés 1108 00:51:41,990 --> 00:51:45,310 hogy te egy null terminátor. 1109 00:51:45,310 --> 00:51:45,930 Igen. 1110 00:51:45,930 --> 00:51:47,154 Na-- 1111 00:51:47,154 --> 00:51:48,070 Közönség: [hallható]. 1112 00:51:48,070 --> 00:51:48,736 ANDI Peng: Igen. 1113 00:51:48,736 --> 00:51:51,950 Tehát abban az esetben, összehasonlítva vonósok, én nem igazán 1114 00:51:51,950 --> 00:51:54,207 érdekel, hány betű are-- azt kell összehasonlítani 1115 00:51:54,207 --> 00:51:56,540 ha ők igaz vagy hamis, ha ők egyenlő egymással. 1116 00:51:56,540 --> 00:51:58,914 Nem érdekel, hogy hány betű vannak mindegyik, ugye? 1117 00:51:58,914 --> 00:52:01,130 Csak érdekel, hogy ez a mérkőzések ezzel és az egy 1118 00:52:01,130 --> 00:52:05,311 meccsek után és az egymás után mérkőzések egészen a végéig. 1119 00:52:05,311 --> 00:52:05,810 Jobb? 1120 00:52:05,810 --> 00:52:07,000 Ennek van értelme? 1121 00:52:07,000 --> 00:52:10,166 >> Szóval nem igazán érdekel, hogy hány betű, Csak érdekel, hogy minden a leveleket 1122 00:52:10,166 --> 00:52:11,050 mérkőzés. 1123 00:52:11,050 --> 00:52:12,910 Igen. 1124 00:52:12,910 --> 00:52:13,920 OKÉ. 1125 00:52:13,920 --> 00:52:16,840 Tudok lépni ebből? 1126 00:52:16,840 --> 00:52:18,489 Nagy. 1127 00:52:18,489 --> 00:52:21,280 Futunk egy kicsit rövid a időben, így fogok csak lehetővé teszi, 1128 00:52:21,280 --> 00:52:23,670 srácok, hogy röviden ezt nézd meg. 1129 00:52:23,670 --> 00:52:26,430 Fuss be az azonosítóját, ha vagytok kíváncsiak. 1130 00:52:26,430 --> 00:52:30,030 És ti is, hogy mi ez lesz a nyomtatást. 1131 00:52:30,030 --> 00:52:30,640 OKÉ. 1132 00:52:30,640 --> 00:52:34,990 >> Tehát valami, hogy mi is érinteni kicsit az ötlet mutató aritmetika. 1133 00:52:34,990 --> 00:52:38,180 Amelyek mind azt, a ahelyett, beállító 1134 00:52:38,180 --> 00:52:42,610 értékeit mi van tárolva címen a mutatót, 1135 00:52:42,610 --> 00:52:45,030 ez csak a ténylegesen változó A címet is. 1136 00:52:45,030 --> 00:52:49,420 Tehát, ha például az emberi akart állítsa a mutatót kézzel, 1137 00:52:49,420 --> 00:52:52,700 ahogy tennéd ez csak do n-szer akkora, mint a mutató. 1138 00:52:52,700 --> 00:52:53,240 Jobb? 1139 00:52:53,240 --> 00:52:54,810 >> Tehát egy int. 1140 00:52:54,810 --> 00:52:58,580 Egy int--, hogy hány bájt A memória egy int? 1141 00:52:58,580 --> 00:52:59,640 Ez a négy, ugye? 1142 00:52:59,640 --> 00:53:03,520 Tehát, ha tudom, hogy van egy tömbben az összes ints és azt akarom, hogy pont az egyik, 1143 00:53:03,520 --> 00:53:08,470 utána, én tudom, én csak azt kell mozgatni a mutatót lefelé négy bájt, ugye? 1144 00:53:08,470 --> 00:53:12,440 És így n-szer akkora, A mutató bájt 1145 00:53:12,440 --> 00:53:15,890 Mindazonáltal hány bájt te csak fog mozgatni a mutatót lefelé. 1146 00:53:15,890 --> 00:53:20,350 >> Így például, ha van egy sor ints, az első, mondjuk úgy, 1147 00:53:20,350 --> 00:53:22,280 tárolja a 0x00. 1148 00:53:22,280 --> 00:53:26,150 Tudod, hogy a következő egy lesz a 0x04 mert ez a négy bájt később. 1149 00:53:26,150 --> 00:53:31,030 És az utána fog lennie 0x08, és így tovább, és így tovább. 1150 00:53:31,030 --> 00:53:33,830 És igen, a srácok, hogy egy pillantást. 1151 00:53:33,830 --> 00:53:36,640 >> Minden, amit csinálsz itt hogy van egy mutatót y 1152 00:53:36,640 --> 00:53:43,700 és te hozzátéve, hogy a memória, így lejjebb 1153 00:53:43,700 --> 00:53:45,559 A blokkok lefoglalt memória. 1154 00:53:45,559 --> 00:53:46,850 Fajta magasabb szintű fogalom. 1155 00:53:46,850 --> 00:53:48,820 Srácok, nem kell tudni, hogy ezen a héten, 1156 00:53:48,820 --> 00:53:51,290 de ez minden csinál odalent. 1157 00:53:51,290 --> 00:53:55,190 1158 00:53:55,190 --> 00:53:55,900 OKÉ. 1159 00:53:55,900 --> 00:53:56,710 >> Egy másik vicc időt. 1160 00:53:56,710 --> 00:54:01,360 1161 00:54:01,360 --> 00:54:02,780 Két húrok bemész egy bárban. 1162 00:54:02,780 --> 00:54:05,713 Az egyik azt mondja, szeretnék egy rumos és Coke szemetet értékeket. 1163 00:54:05,713 --> 00:54:08,796 A másik azt mondja, akkor Bocsássa barátom, ő nem null megszűnik. 1164 00:54:08,796 --> 00:54:10,390 Srácok kapni. 1165 00:54:10,390 --> 00:54:10,890 Bocsánat. 1166 00:54:10,890 --> 00:54:13,490 Ez hogyan tartom magam megy, amikor felkészülni részén 1167 00:54:13,490 --> 00:54:15,650 Én vagyok be egy pár vicc diák. 1168 00:54:15,650 --> 00:54:16,150 Egyébként. 1169 00:54:16,150 --> 00:54:21,460 1170 00:54:21,460 --> 00:54:21,960 OKÉ. 1171 00:54:21,960 --> 00:54:24,290 Mielőtt mozgok on-- így lényegében, most már 1172 00:54:24,290 --> 00:54:30,600 hatálya alá tartozó valamennyi fogalmi kapcsolatos kérdések mutatók. 1173 00:54:30,600 --> 00:54:34,090 És akkor mi lesz talk-- mozgó Több, beszélni, hogy miért fontos 1174 00:54:34,090 --> 00:54:37,810 és hogy ez hogyan illeszkedik a ötlete memória kezelése. 1175 00:54:37,810 --> 00:54:39,810 De mielőtt lépnénk, Tudja valaki kérdései 1176 00:54:39,810 --> 00:54:43,880 mintegy mutató használatára, mi folyik mikor te létre mutatók, 1177 00:54:43,880 --> 00:54:47,540 hogyan történik a hivatkozás az egyes Más, hogyan vannak dereferencing? 1178 00:54:47,540 --> 00:54:51,760 Bármilyen kérdése van hogy mielőtt lépni? 1179 00:54:51,760 --> 00:54:53,060 OKÉ. 1180 00:54:53,060 --> 00:54:54,770 Nagy. 1181 00:54:54,770 --> 00:54:58,170 >> Szóval ez elvezet minket ebbe nagyobb a magasabb szintű koncepció 1182 00:54:58,170 --> 00:55:00,310 A memória kezelése egészére. 1183 00:55:00,310 --> 00:55:02,720 Tehát, amikor lényegében A számítógép, van 1184 00:55:02,720 --> 00:55:06,300 Két alapvető típusa a memória vagy a régiók, ahol a memória tárolja. 1185 00:55:06,300 --> 00:55:10,210 Van itt az úgynevezett A halom és van idelent 1186 00:55:10,210 --> 00:55:11,550 nevezzük a verem. 1187 00:55:11,550 --> 00:55:13,966 És fogunk beszélni A verem elsőként, mert 1188 00:55:13,966 --> 00:55:16,910 A több finagley egyik, hogy Van, hogy milyen fogalmi 1189 00:55:16,910 --> 00:55:18,570 megérteni, mi folyik itt. 1190 00:55:18,570 --> 00:55:23,930 >> Tehát minden verem is-- gondolni ez mint egy fizikai köteg memória 1191 00:55:23,930 --> 00:55:28,880 ahol van egy memóriablokkot ami félre a programot 1192 00:55:28,880 --> 00:55:30,180 amíg fut. 1193 00:55:30,180 --> 00:55:34,480 És ez az, ahol lényegében minden, A helyi változók tárolják. 1194 00:55:34,480 --> 00:55:38,300 Tehát ez csak egy kicsinyített a képet, hogy a verem. 1195 00:55:38,300 --> 00:55:41,060 A verem ott vagyok Csak nagyítás egy kicsit. 1196 00:55:41,060 --> 00:55:46,170 >> Így lényegében egy köteg van egy csomó funkció a programban. 1197 00:55:46,170 --> 00:55:48,250 Úgyhogy csak menj vissza A héten két példa 1198 00:55:48,250 --> 00:55:51,450 ahol volt a fő funkciója valamint egy kocka funkció 1199 00:55:51,450 --> 00:55:56,410 ahol igyekeztünk létrehozni egy függvényt, amely cubed-- tartott paraméterek, mint bemenet, 1200 00:55:56,410 --> 00:55:59,110 kockára vágott őket, és visszatért vissza a fő. 1201 00:55:59,110 --> 00:56:02,459 Tehát az is, hogy ami a memóriában tárolt az, hogy van a fő funkciója 1202 00:56:02,459 --> 00:56:03,250 itt alul. 1203 00:56:03,250 --> 00:56:06,630 És akkor minden további funkciót hogy hívja, és adjunk hozzá a tetején, hogy, 1204 00:56:06,630 --> 00:56:07,960 A memória csak halmozódik a tetején. 1205 00:56:07,960 --> 00:56:10,190 Gondold azt, hogy a fizikai verem. 1206 00:56:10,190 --> 00:56:13,570 >> És így van mindenkinek, fő változók a fő funkciók, 1207 00:56:13,570 --> 00:56:15,260 mindent, ami folyik itt, tárolni. 1208 00:56:15,260 --> 00:56:17,440 És akkor, mikor hívtál kocka, megy és 1209 00:56:17,440 --> 00:56:20,810 másolatot készít mindazoknak paraméterek és tárolja őket 1210 00:56:20,810 --> 00:56:23,010 felett egy másik helyen. 1211 00:56:23,010 --> 00:56:24,280 És így miért érdekel? 1212 00:56:24,280 --> 00:56:29,220 Az ok, amiért érdekel az, hogy nem tudjuk, csak használja a paraméterek here-- változók 1213 00:56:29,220 --> 00:56:33,080 here-- és cseréljük őket, azt várjuk, őket is meg lehet változtatni itt, ugye? 1214 00:56:33,080 --> 00:56:35,910 >> Az ötlet az, hogy ők mentett különböző helyeken a memóriában 1215 00:56:35,910 --> 00:56:40,540 így, ha az Ön által elérni különböző funkciók, mit gondoltok, mi történik 1216 00:56:40,540 --> 00:56:45,520 valójában nem történik, mert az memória bit nincsenek összekötve. 1217 00:56:45,520 --> 00:56:50,530 Így a kérdés, hogy tényleg Fontos számunkra, hogy ilyen megérteni 1218 00:56:50,530 --> 00:56:54,100 van, mi van akkor, ha kifutunk program, a méret függvényében 1219 00:56:54,100 --> 00:56:57,159 verem frame-- így fizikailag, hogyan sok memóriát kell még adni neki? 1220 00:56:57,159 --> 00:56:59,950 Lehet, hogy ez egy óriási funkció így meg kell adni arról, hogy mennyi memóriát. 1221 00:56:59,950 --> 00:57:02,230 De mintha kisebb lenne azt Szükségem van egy pici kicsit. 1222 00:57:02,230 --> 00:57:05,980 >> Tehát az ötlet, hogy ha kifutunk program méretét, hogy a funkció 1223 00:57:05,980 --> 00:57:09,100 függ, hogy hány változók és a változók típusa 1224 00:57:09,100 --> 00:57:10,940 hogy azt akarjuk, hogy ez. 1225 00:57:10,940 --> 00:57:13,910 De mi van, ha száma variables-- és méretben, 1226 00:57:13,910 --> 00:57:16,140 hogy elhatározta, nem Az Ön által a jeladó, de 1227 00:57:16,140 --> 00:57:20,580 határozza meg a tényleges felhasználó a program. 1228 00:57:20,580 --> 00:57:24,240 Tehát, ha akartam létrehozni egy függvény került húrok a felhasználó, 1229 00:57:24,240 --> 00:57:27,630 de valójában nem tudják, milyen nagy ezek a húrok, ez nehéz nekem 1230 00:57:27,630 --> 00:57:30,220 oszt a konkrét szükséges memória mennyiségét. 1231 00:57:30,220 --> 00:57:30,920 Jobb? 1232 00:57:30,920 --> 00:57:35,234 >> Mert ha ez function-- ha ez a felhasználó által bevitt egy óriási húr, 1233 00:57:35,234 --> 00:57:37,650 ez meg fog létrehozni egy hiba A mi úgynevezett lényegében 1234 00:57:37,650 --> 00:57:42,190 Veremtúlcsordulás ahol túlmutatnak a határait a memória, hogy van. 1235 00:57:42,190 --> 00:57:44,250 És akkor mit csináljunk? 1236 00:57:44,250 --> 00:57:47,290 Ha nem tudjuk, csak létre ez a hatalmas verem, hogy mentheti mindent, 1237 00:57:47,290 --> 00:57:50,260 Mit tegyünk, hogy megoldja ezt a problémát? 1238 00:57:50,260 --> 00:57:54,364 >> Így fogunk lépni, és beszélni erről a második típusú memória 1239 00:57:54,364 --> 00:57:56,780 és akkor tudunk beszélni arról, hogy hogyan tudjuk használni a két együttes 1240 00:57:56,780 --> 00:57:58,550 hogy megoldja ezt a kérdést. 1241 00:57:58,550 --> 00:58:01,024 Tehát most megyünk feljebb egy másik része a memória 1242 00:58:01,024 --> 00:58:01,690 a mi számítógép. 1243 00:58:01,690 --> 00:58:03,215 Ezt hívják a kupac. 1244 00:58:03,215 --> 00:58:07,150 Tehát minden a halom egy medence A rendelkezésre álló memória 1245 00:58:07,150 --> 00:58:08,690 lehet lefoglalásra. 1246 00:58:08,690 --> 00:58:12,420 Szóval, hogy lehet változtatni, míg A program fut. 1247 00:58:12,420 --> 00:58:15,160 >> És így a régió nem használt memóriával is 1248 00:58:15,160 --> 00:58:18,200 lennie allowed-- amely lehet kiosztott a funkciót 1249 00:58:18,200 --> 00:58:20,490 nevű malloc, vagy memória kiosztás. 1250 00:58:20,490 --> 00:58:23,110 Szóval, lényegében, ha futsz egy programot, 1251 00:58:23,110 --> 00:58:29,560 akkor dinamikusan létrehozni a memóriát A halom és használni, hogy az összes itt. 1252 00:58:29,560 --> 00:58:34,280 És így, az összes funkciót Itt érheti el a kupac. 1253 00:58:34,280 --> 00:58:37,960 >> És így malloc, ez az ötlet, hogy Dávid fajta gyorsan, röviden elkenték 1254 00:58:37,960 --> 00:58:41,570 előadás, csak egy utat hogy ellenőrizze a memóriát. 1255 00:58:41,570 --> 00:58:45,470 Mint, amikor csak megteremtése verem funkciók, ha te csak 1256 00:58:45,470 --> 00:58:48,290 miután a fő funkciója Ön véletlenszerű funkciók, 1257 00:58:48,290 --> 00:58:52,270 Ön szerint ezek a gyerekek, hogy csak elszaladt, amikor végeztek velük. 1258 00:58:52,270 --> 00:58:53,690 Ők voltak igazán rossz gyerekek. 1259 00:58:53,690 --> 00:58:55,515 Létrehozza őket, akkor tanítani nekik valamit, 1260 00:58:55,515 --> 00:58:57,640 majd amikor szeretné hozzájuk férhet ők 1261 00:58:57,640 --> 00:58:59,850 Nem ott, mert a memória csak elszaladt. 1262 00:58:59,850 --> 00:59:04,140 >> De malloc, illetve a kupac, egy módja , hogy jobb gyerekeknek, ahol 1263 00:59:04,140 --> 00:59:07,090 akkor milyen létre őket, hozzájuk értékeket, 1264 00:59:07,090 --> 00:59:11,080 Használja them-- úgy hangzott igazán bad-- használni őket, ahogy szerettem volna, 1265 00:59:11,080 --> 00:59:14,002 de akkor meg tudja ellenőrizni őket, majd felszabadítani memória 1266 00:59:14,002 --> 00:59:14,960 amikor szükség van rájuk. 1267 00:59:14,960 --> 00:59:18,085 Így aztán, ha végeztél a funkciót, a gyerekek jönnek vissza hozzád 1268 00:59:18,085 --> 00:59:20,290 és még mindig van, hogy az adatok ott. 1269 00:59:20,290 --> 00:59:25,690 >> Tehát az is, hogy mi malloc, vagy hozzon létre, memória a funkció void csillagos 1270 00:59:25,690 --> 00:59:26,790 malloc mérete byte-ban. 1271 00:59:26,790 --> 00:59:29,730 Szóval ez még csak a prototípusa miért tesszük ezt. 1272 00:59:29,730 --> 00:59:35,800 Tehát egy példa van hozunk létre egy mutatót típusú int-- int csillagos pointer-- egyenlők 1273 00:59:35,800 --> 00:59:38,120 malloc mérete int. 1274 00:59:38,120 --> 00:59:41,734 Tehát az ok, hogy miért csináljuk mérete és nem csak egy number-- 1275 00:59:41,734 --> 00:59:43,650 mert mindannyian tudjuk, hogy int négy bájt, 1276 00:59:43,650 --> 00:59:48,310 right-- de egy int csak négy bájtok egyes operációs rendszereken. 1277 00:59:48,310 --> 00:59:50,410 >> Az ötlet számunkra, programozók az, hogy mi 1278 00:59:50,410 --> 00:59:53,160 szeretnénk létrehozni kódot, amely futtatni az összes számítógépen, nem csak 1279 00:59:53,160 --> 00:59:54,860 mi egyszerű számítógépek. 1280 00:59:54,860 --> 00:59:58,350 És ez az, amiért szeretjük használni mérete és nem csak a négyes szám. 1281 00:59:58,350 --> 00:59:59,970 Van ennek értelme mindenkinek? 1282 00:59:59,970 --> 01:00:03,930 Tehát mérete of-- összes ez egy C funkciót, vagy üzemeltető, 1283 01:00:03,930 --> 01:00:09,350 megmutatja, hogy hány bájt memóriát tesz egy bizonyos típusú változó veszi fel. 1284 01:00:09,350 --> 01:00:11,150 Tehát ebben az esetben, mérete int négy. 1285 01:00:11,150 --> 01:00:12,090 Négy bájt. 1286 01:00:12,090 --> 01:00:15,490 És malloc fog felszabadítani akár négy bájt a kupac, 1287 01:00:15,490 --> 01:00:18,790 akkor lehet majd használni a fő funkció, hogy képes tárolni memóriájában. 1288 01:00:18,790 --> 01:00:22,460 1289 01:00:22,460 --> 01:00:24,860 Mindenki tisztában, hogy eddig? 1290 01:00:24,860 --> 01:00:25,918 Igen? 1291 01:00:25,918 --> 01:00:28,122 >> Közönség: Tiszta vagyok, de Csak, hogy több mint clear-- 1292 01:00:28,122 --> 01:00:28,705 ANDI Peng: OK. 1293 01:00:28,705 --> 01:00:29,246 Teljesen rendben. 1294 01:00:29,246 --> 01:00:32,176 Közönség: --size az az [hallhatatlan] lehet ténylegesen [hallhatatlan] 1295 01:00:32,176 --> 01:00:34,384 s ez valójában nem a dolog, hogy mi akarjuk. 1296 01:00:34,384 --> 01:00:35,380 Ez nem egy pszeudokódja. 1297 01:00:35,380 --> 01:00:35,878 >> ANDI Peng: Nem. 1298 01:00:35,878 --> 01:00:36,874 >> Közönség: Ez olyan, mint egy igazi thing-- 1299 01:00:36,874 --> 01:00:37,372 >> ANDI Peng: Ez az igazi kódot. 1300 01:00:37,372 --> 01:00:38,455 >> Közönség: --we tudja használni. 1301 01:00:38,455 --> 01:00:39,862 Ez a tényleges. 1302 01:00:39,862 --> 01:00:40,418 Hűvös. 1303 01:00:40,418 --> 01:00:41,751 ANDI Peng: mérete jön C. 1304 01:00:41,751 --> 01:00:43,475 Közönség: Ez teszi az életem boldogabb. 1305 01:00:43,475 --> 01:00:45,550 ANDI Peng: Igen. 1306 01:00:45,550 --> 01:00:48,610 Tehát ha egy lusta programozó mint én fajta vagyok néha, 1307 01:00:48,610 --> 01:00:50,402 Nem szeretem a memorizálás milyen méretű int 1308 01:00:50,402 --> 01:00:52,734 van, én nem szeretem memorizálása A akkora, mint egy úszó. 1309 01:00:52,734 --> 01:00:55,160 Mérete mindössze megmondja, hogy mi ez és ez sokkal könnyebb. 1310 01:00:55,160 --> 01:00:59,880 1311 01:00:59,880 --> 01:01:00,440 >> Minden rendben. 1312 01:01:00,440 --> 01:01:02,160 Tehát egy fontos dolog, hogy a srácok minden akar 1313 01:01:02,160 --> 01:01:04,620 szem előtt tartani, ha éppen a malloc az, hogy mindig 1314 01:01:04,620 --> 01:01:06,400 meg kell nézni, hogy ez null. 1315 01:01:06,400 --> 01:01:08,630 Szóval, mint mondtam, vissza azt a képet a kupac. 1316 01:01:08,630 --> 01:01:11,390 A kupac csak ez a hatalmas halom memória, hogy megvan. 1317 01:01:11,390 --> 01:01:16,740 És azt szeretnénk, hogy képesek legyenek darabokat A memóriát, és használja, igaz? 1318 01:01:16,740 --> 01:01:19,750 >> De mi van, ha nincs több memóriát, hogy kupacban? 1319 01:01:19,750 --> 01:01:23,650 Mit tegyek, ha már használta az összes belőle és megpróbálok malloc több? 1320 01:01:23,650 --> 01:01:24,864 Hogy nem létezik. 1321 01:01:24,864 --> 01:01:26,780 Nos, ez az, amiért te fog kapni egy hiba. 1322 01:01:26,780 --> 01:01:29,220 Fogsz seg hiba. Fogsz hogy egy szegmentációs hiba, ahol 1323 01:01:29,220 --> 01:01:30,940 megpróbál hozzáférni a dolgokat, hogy nincsenek ott. 1324 01:01:30,940 --> 01:01:33,180 És így, ahogy mi hogy és az is, hogy mi 1325 01:01:33,180 --> 01:01:36,120 megakadályozza, hogy az, hogy ellenőrizze hogy ha a mutató a null. 1326 01:01:36,120 --> 01:01:41,650 >> Tehát ha én valamit malloc és nem volt több memóriát, 1327 01:01:41,650 --> 01:01:45,501 hogy kiírja a hiba, mert a pointer vissza Önnek mindössze null. 1328 01:01:45,501 --> 01:01:47,750 És így, ahogy mi this-- ez nagyszerű design, 1329 01:01:47,750 --> 01:01:52,140 elég ha megjegyezzük this-- van, hogy bármely alkalommal megpróbálja malloc semmit, 1330 01:01:52,140 --> 01:01:55,300 fogsz kell ellenőrizze, hogy ha ez null. 1331 01:01:55,300 --> 01:01:58,257 Mert amikor megpróbál szerezni memória a kupac, 1332 01:01:58,257 --> 01:02:00,340 mindig meg kell tenni Biztos, hogy a memória. 1333 01:02:00,340 --> 01:02:01,350 Ez minden van. 1334 01:02:01,350 --> 01:02:04,980 >> Szóval elég sok a három sornyi kódot, memorizálni. 1335 01:02:04,980 --> 01:02:06,830 Minden alkalommal, amikor malloc, puff őket. 1336 01:02:06,830 --> 01:02:08,190 Fogsz szükség van rájuk. 1337 01:02:08,190 --> 01:02:10,540 Mert én garantálom, megyünk hogy próbára egy ügyben, és a számítógép 1338 01:02:10,540 --> 01:02:13,498 fog robbanni, mert te megpróbálom hozzáférésű memória, ami 1339 01:02:13,498 --> 01:02:16,680 Nem ott, és alakulnak a dolgok lezuhan, és ez nem lesz jó. 1340 01:02:16,680 --> 01:02:19,290 Szóval csak fúr, hogy az agyadba. 1341 01:02:19,290 --> 01:02:21,370 Malloc, null. 1342 01:02:21,370 --> 01:02:22,360 Jó. 1343 01:02:22,360 --> 01:02:22,860 Minden rendben. 1344 01:02:22,860 --> 01:02:26,280 1345 01:02:26,280 --> 01:02:28,340 >> Akkor ez szüli a kérdés, hogy mi történik 1346 01:02:28,340 --> 01:02:30,550 Miután befejezted a munkát, hogy az emlékezet. 1347 01:02:30,550 --> 01:02:32,390 Mert az egész ötlet annak, malloc volt 1348 01:02:32,390 --> 01:02:36,460 hogy van ez a kupac hogy ki tudjuk venni memóriát és akkor tudjuk használni azt. 1349 01:02:36,460 --> 01:02:37,220 Jobb? 1350 01:02:37,220 --> 01:02:40,550 És akkor mi van, hogy emlékezni van, hogy miután végeztünk vele, 1351 01:02:40,550 --> 01:02:41,900 tudjuk majd kiszabadítani. 1352 01:02:41,900 --> 01:02:42,400 Elengedni. 1353 01:02:42,400 --> 01:02:43,979 Mi lehet elengedni. 1354 01:02:43,979 --> 01:02:47,020 Vagy pedig te is fog szivárogni memóriát és több rossz dolog fog történni. 1355 01:02:47,020 --> 01:02:49,010 >> Lényegében, valahányszor te megható memória, 1356 01:02:49,010 --> 01:02:51,800 Rossz dolog fog történni, ha nem a dolgok rendesen. 1357 01:02:51,800 --> 01:02:55,150 Így van, hogy ellenőrizze, hogy először is, ha a rendelkezésre álló memória. 1358 01:02:55,150 --> 01:02:58,700 És aztán, miután elkészült, azt szeretnénk, hogy kiszabadítani, és lehetővé teszi az operációs rendszer 1359 01:02:58,700 --> 01:03:00,690 hogy vegye vissza. 1360 01:03:00,690 --> 01:03:04,870 Szóval, ahogy mi, hogy csak az, hogy funkciót, semmisnek ingyenes, és a mutató 1361 01:03:04,870 --> 01:03:06,370 E halom memória. 1362 01:03:06,370 --> 01:03:08,680 >> Tehát a példa ingyenes mutató. 1363 01:03:08,680 --> 01:03:11,580 Ez elég könnyű, egyszerű, nem akarja elfelejteni. 1364 01:03:11,580 --> 01:03:14,687 Szóval nézze meg, ha ez nulla, ingyenes. 1365 01:03:14,687 --> 01:03:15,270 Mindenki jó? 1366 01:03:15,270 --> 01:03:22,660 1367 01:03:22,660 --> 01:03:27,325 Tehát még egyszer, kódot, hogy a srácok lehet ilyen gyorsan készíthetünk egy pillantást. 1368 01:03:27,325 --> 01:03:34,964 1369 01:03:34,964 --> 01:03:37,880 Tudom, hogy ez egy csomó új szintaxist és minden rendben, ha te, mint ah, 1370 01:03:37,880 --> 01:03:38,963 Ez mit jelent megint? 1371 01:03:38,963 --> 01:03:40,250 Semmi gond. 1372 01:03:40,250 --> 01:03:46,785 Mindez azt jelentette, hogy a kiállításra Egy művelet hogyan mindezek a dolgok 1373 01:03:46,785 --> 01:03:47,660 együtt is használható. 1374 01:03:47,660 --> 01:03:52,190 1375 01:03:52,190 --> 01:03:54,190 Szóval, hogy van összerakva mint egy rakás elmúlt 1376 01:03:54,190 --> 01:03:56,532 diák csak ment keresztül egy program. 1377 01:03:56,532 --> 01:03:58,240 Közönség: Bizonyos szempontból hogy tudjuk actually-- 1378 01:03:58,240 --> 01:03:59,570 ANDI Peng: oly módon, hogy mi is valójában használni. 1379 01:03:59,570 --> 01:04:02,379 Lehet, hogy puff be az azonosítóját, akkor fuss ez és ez működik. 1380 01:04:02,379 --> 01:04:02,920 Közönség: OK. 1381 01:04:02,920 --> 01:04:04,140 Szóval ez igazi? 1382 01:04:04,140 --> 01:04:05,580 >> ANDI Peng: Ez az igazi. 1383 01:04:05,580 --> 01:04:06,430 Igen. 1384 01:04:06,430 --> 01:04:08,690 Igyekszem, hogy ez így a betűtípusok is eltérő, 1385 01:04:08,690 --> 01:04:11,770 hogy amikor az I. típusú ingatlan kódot a font betűtípust használ 1386 01:04:11,770 --> 01:04:15,471 és hogy az én veszi kód eltér, de Nem tudom, ha ez tényleg működik. 1387 01:04:15,471 --> 01:04:16,012 Közönség: Nem. 1388 01:04:16,012 --> 01:04:17,190 Azt gondolom-- 1389 01:04:17,190 --> 01:04:18,213 >> ANDI Peng: OK. 1390 01:04:18,213 --> 01:04:20,578 >> Közönség: --sometimes [Hallhatatlan] és én vagyok 1391 01:04:20,578 --> 01:04:23,416 mint, hogy lenne igazán aranyos ha ez valóban egy használható dolog 1392 01:04:23,416 --> 01:04:24,812 de akkor ez nem egy használható dolog. 1393 01:04:24,812 --> 01:04:26,270 Szeretem, hogy ez egy hasznos dolog. 1394 01:04:26,270 --> 01:04:27,010 >> ANDI Peng: OK. 1395 01:04:27,010 --> 01:04:27,510 Igen. 1396 01:04:27,510 --> 01:04:28,430 Majd át, hogy együtt. 1397 01:04:28,430 --> 01:04:33,266 Légy olyan, mint Dávid, a gyerekek nagyon Szomorú, ha írsz hamis kódot. 1398 01:04:33,266 --> 01:04:34,240 Minden rendben. 1399 01:04:34,240 --> 01:04:34,740 Igen? 1400 01:04:34,740 --> 01:04:37,686 >> Közönség: Tehát a ptr itt valójában nem egy mutatót, 1401 01:04:37,686 --> 01:04:41,130 ez egy blokk memória? 1402 01:04:41,130 --> 01:04:45,130 >> ANDI Peng: Szóval beszélsz Az első sorban, vagy az egyik, itt lent? 1403 01:04:45,130 --> 01:04:48,170 Miről beszél ez itt? 1404 01:04:48,170 --> 01:04:50,910 >> Közönség: A ptr különböző dolog in-- 1405 01:04:50,910 --> 01:04:53,230 >> ANDI Peng: Hát, ide amit én doing-- ténylegesen, 1406 01:04:53,230 --> 01:04:54,660 Menjünk át itt. 1407 01:04:54,660 --> 01:04:57,120 Ez a fajta kapcsolatok szépen minden a fogalmakat. 1408 01:04:57,120 --> 01:05:01,840 Itt van tehát int csillagos ptr. 1409 01:05:01,840 --> 01:05:04,160 Szóval int mutatót, ez az, ahol mi valójában létre 1410 01:05:04,160 --> 01:05:06,550 egy mutatót, amely arra utal, hogy egy egész szám. 1411 01:05:06,550 --> 01:05:08,230 Nos, ez fog mutatni egy egész szám. 1412 01:05:08,230 --> 01:05:12,135 És megyünk malloc, vagy add, elég memória kiosztott 1413 01:05:12,135 --> 01:05:13,200 tárolására az egész. 1414 01:05:13,200 --> 01:05:14,910 Tehát négy bájt ebben az esetben. 1415 01:05:14,910 --> 01:05:18,024 >> És akkor, ha ez egyenlő az egyenlők null-- egyenlő null-- fogunk kinyomtatni. 1416 01:05:18,024 --> 01:05:20,440 Ó, van egy hiba miatt te ki a memóriát, ugye? 1417 01:05:20,440 --> 01:05:22,814 Ellenkező esetben a visszatérő egyik, hogy csak mondja meg a programot 1418 01:05:22,814 --> 01:05:24,170 hogy megvan a hiba. 1419 01:05:24,170 --> 01:05:26,850 És akkor, ha nem Van, hogy az emlékezet, ez 1420 01:05:26,850 --> 01:05:33,230 fog tárolni, amit kap int ad át a helyét 1421 01:05:33,230 --> 01:05:35,460 és állítsa be az értéket a mutató. 1422 01:05:35,460 --> 01:05:38,500 Szóval ez tényleg lesz fizikailag törli ezt az értéket 1423 01:05:38,500 --> 01:05:41,702 és tedd, amit kap int visszatér. 1424 01:05:41,702 --> 01:05:43,910 És akkor fogsz print bármit is beírni. 1425 01:05:43,910 --> 01:05:46,080 >> Közönség: És ez lesz a halom? 1426 01:05:46,080 --> 01:05:47,060 >> ANDI Peng: Ez lesz hogy a kupac. 1427 01:05:47,060 --> 01:05:48,768 >> Közönség: És úgy, hogy lesz elérhető. 1428 01:05:48,768 --> 01:05:51,220 ANDI Peng: Pontosan. 1429 01:05:51,220 --> 01:05:52,600 Szép. 1430 01:05:52,600 --> 01:05:53,756 Jó. 1431 01:05:53,756 --> 01:05:59,289 >> Közönség: Tehát amikor ingyen PTR ebben Utolsó lépésként vagyunk szabadítva a mutató 1432 01:05:59,289 --> 01:06:00,724 vagy mi felszabadítja a blokk? 1433 01:06:00,724 --> 01:06:01,390 ANDI Peng: Igen. 1434 01:06:01,390 --> 01:06:05,570 Szóval felszabadítja a pointer-- Nos, felszabadítva a memóriablokkot. 1435 01:06:05,570 --> 01:06:08,780 Szóval csak így is elérheti a memória azáltal, hogy a mutató. 1436 01:06:08,780 --> 01:06:10,730 Ha nincs meg a mutató, akkor mint, ó, nem tudom, hol van, 1437 01:06:10,730 --> 01:06:11,290 ugye? 1438 01:06:11,290 --> 01:06:13,956 Tehát, ha szabad azt, akkor lényegében felszabadítva, hogy egész blokk. 1439 01:06:13,956 --> 01:06:16,500 Ezután a számítógép tudja, ó, nincs semmi használható itt, 1440 01:06:16,500 --> 01:06:19,396 Én csak fel a szemetet értékeket vissza újra. 1441 01:06:19,396 --> 01:06:21,590 >> Közönség: Szóval egész léteznek erre? 1442 01:06:21,590 --> 01:06:23,481 >> ANDI Peng: Ne egészek létezik? 1443 01:06:23,481 --> 01:06:23,980 Bocsánat. 1444 01:06:23,980 --> 01:06:25,271 Tud ismételje meg kérdését? 1445 01:06:25,271 --> 01:06:28,330 Közönség: Úgy értettem, miután szabad a mutató, az egész, hogy kapsz, 1446 01:06:28,330 --> 01:06:29,990 lesz, hogy még mindig léteznek? 1447 01:06:29,990 --> 01:06:31,360 >> ANDI Peng: Nem, nem. 1448 01:06:31,360 --> 01:06:34,070 1449 01:06:34,070 --> 01:06:37,550 Vagy legalábbis ez lesz az ön országában memória, mielőtt a számítógép nem 1450 01:06:37,550 --> 01:06:40,231 amit vele, de van nincs módja, hogy értem. 1451 01:06:40,231 --> 01:06:41,480 Mert akkor szabadult a mutatót. 1452 01:06:41,480 --> 01:06:43,150 Nem tudom, hol van már. 1453 01:06:43,150 --> 01:06:43,650 Igen. 1454 01:06:43,650 --> 01:06:46,500 1455 01:06:46,500 --> 01:06:48,560 >> Megyek lépni itt. 1456 01:06:48,560 --> 01:06:49,060 Pfuj. 1457 01:06:49,060 --> 01:06:53,012 Úgyhogy egy csomó fogalmi nehézségei memória kezelése 1458 01:06:53,012 --> 01:06:54,720 és mi csak megy lényegében költeni 1459 01:06:54,720 --> 01:06:57,090 5, 10 perc alatt megy több mint szintaktikai dolgok 1460 01:06:57,090 --> 01:07:03,240 lesz használható és hasznos a srácok, de nem túl koncepcionálisan odakint. 1461 01:07:03,240 --> 01:07:03,740 OKÉ. 1462 01:07:03,740 --> 01:07:06,930 >> Szóval teljesen a sebességváltást itt. 1463 01:07:06,930 --> 01:07:09,360 Memória kezelése, nehéz. Mutatók, nehéz. Igen. 1464 01:07:09,360 --> 01:07:10,530 Ez nagyon, nagyon nehéz. 1465 01:07:10,530 --> 01:07:11,270 Teljesen rendben. 1466 01:07:11,270 --> 01:07:13,800 Ezért a darab lesz igazán nehéz. 1467 01:07:13,800 --> 01:07:17,740 De ha megy, és nem a dolgokat, hogy mi vagyunk 1468 01:07:17,740 --> 01:07:19,860 kéne csinálni, hogy arról dolgok null, 1469 01:07:19,860 --> 01:07:21,830 győződjön meg arról, hogy ellenőrizze, ha a dolgok null, győződjön meg arról, hogy a szabad memória, 1470 01:07:21,830 --> 01:07:23,910 győződjön meg róla, a dolgok nem szivárog, akkor jó lesz. 1471 01:07:23,910 --> 01:07:25,761 Akkor lesz állítva. 1472 01:07:25,761 --> 01:07:26,260 Minden rendben. 1473 01:07:26,260 --> 01:07:30,870 Így fogunk beköltözni ezt teljesen új koncepció átirányítást. 1474 01:07:30,870 --> 01:07:33,201 És így, mielőtt most, a fő út, amin 1475 01:07:33,201 --> 01:07:35,700 már kölcsönhatásban áll a programok révén szabványos bemenet 1476 01:07:35,700 --> 01:07:36,533 és szabványos kimenetre. 1477 01:07:36,533 --> 01:07:37,040 Jobb? 1478 01:07:37,040 --> 01:07:39,230 Mi, mint a felhasználó által megadott dolgokat, és a számítógép 1479 01:07:39,230 --> 01:07:42,090 kiköpi vissza hozzánk a terminálon. 1480 01:07:42,090 --> 01:07:44,770 >> De vannak más módja számunkra, hogy kölcsönhatásba lépnek 1481 01:07:44,770 --> 01:07:47,810 A számítógép a mi programok, amelyek nem csak nekem 1482 01:07:47,810 --> 01:07:50,245 fizikailag gépelési dolgok amikor én kéri. 1483 01:07:50,245 --> 01:07:52,620 És ahogy mi tesszük, hogy keresztül nagyobb, mint a sárgarépa 1484 01:07:52,620 --> 01:07:53,453 és a cső szimbóluma. 1485 01:07:53,453 --> 01:07:55,970 1486 01:07:55,970 --> 01:07:58,630 Szóval mi is olvasni és írjon fájlokat, hogy. 1487 01:07:58,630 --> 01:08:03,230 >> Tehát az is, hogy mi ez a nagyobb, mint a sárgarépa, minden, ami csinál 1488 01:08:03,230 --> 01:08:07,410 az írás, amit a fájl külön fájlba. 1489 01:08:07,410 --> 01:08:11,870 Így például, ha I akart futni hello world 1490 01:08:11,870 --> 01:08:14,330 és szerettem volna a kimenetet menti másik fájlt 1491 01:08:14,330 --> 01:08:17,359 és nem csak nyomtatott ki nekem, én csak csinálni nagyobb, mint a sárgarépa, 1492 01:08:17,359 --> 01:08:18,410 output.txt. 1493 01:08:18,410 --> 01:08:22,609 Tehát minden, ami ezzel a vevő én hello.world program 1494 01:08:22,609 --> 01:08:26,359 és amit a kimenet, ez mentés nevű fájlt output.txt. 1495 01:08:26,359 --> 01:08:29,850 Tehát az is, hogy Dávid tett a Csv nevével diákok, 1496 01:08:29,850 --> 01:08:32,310 ez ugyanaz, amit a fiúk szoktak. 1497 01:08:32,310 --> 01:08:35,137 >> És mi van, különösen Hasznos itt vannak a nagyobb 1498 01:08:35,137 --> 01:08:38,220 than-- a két nagyobb, mint a sárgarépa jelek, amelyek segítségével hozzáfűzni, hogy a kimeneti 1499 01:08:38,220 --> 01:08:40,795 fájlt, amely azt jelenti, hogy egyszerűen csak hozzá a tetején. 1500 01:08:40,795 --> 01:08:43,420 Tudod csak folyamatosan növeli output.txt minden további dolog 1501 01:08:43,420 --> 01:08:44,490 hogy mit csinálsz. 1502 01:08:44,490 --> 01:08:48,010 Vagy, ha elkezd bekerülni több bonyolult programok, a két nagyobb 1503 01:08:48,010 --> 01:08:50,939 mint a sárgarépa, hogy csak nyomatok ki a hibaüzeneteket. 1504 01:08:50,939 --> 01:08:53,340 Tehát mondjuk van egy óriás összegét hibaüzenetek 1505 01:08:53,340 --> 01:08:54,810 és el szeretné olvasni végig őket, és 1506 01:08:54,810 --> 01:08:56,450 Nem akarom, hogy kell görgetni keresztül a terminál, 1507 01:08:56,450 --> 01:08:58,651 akkor valójában csak csináld nagyobb, mint output.txt 1508 01:08:58,651 --> 01:09:00,359 és ez meg fog menteni az összes hibák 1509 01:09:00,359 --> 01:09:02,900 nevű fájlt output.txt, hogy akkor megy át, és olvasni. 1510 01:09:02,900 --> 01:09:04,622 Közönség: Hol van az elmentett szövegfájlt? 1511 01:09:04,622 --> 01:09:07,330 ANDI Peng: Ez menti azonos könyvtár, amely a program. 1512 01:09:07,330 --> 01:09:09,830 Szóval csak menj vissza, és keresni kell. 1513 01:09:09,830 --> 01:09:11,930 És ugyanaz a dolog, tehet bemenet 1514 01:09:11,930 --> 01:09:14,300 hogy mi is valójában venni tartalmát néhány fájl 1515 01:09:14,300 --> 01:09:16,380 és mi lehet a bemeneti hogy programunkban. 1516 01:09:16,380 --> 01:09:19,930 Tehát ahelyett, hogy ezt parancsot vonal érveit, ahol fizikailag 1517 01:09:19,930 --> 01:09:21,680 kell beírni a dolgokat Minden egyes alkalommal, akkor 1518 01:09:21,680 --> 01:09:27,890 valójában csak egy fájlt úgynevezett INPUT.TXT hogy csak teszi mindezt a. 1519 01:09:27,890 --> 01:09:31,970 >> És akkor cső kifejezetten jó, mert ez eltarthat kimenete egy program 1520 01:09:31,970 --> 01:09:34,170 és használja azt a bemeneti A másik program. 1521 01:09:34,170 --> 01:09:38,430 Így például, a srácok "Vigenère, van ebben a sorban a kódot, amit 1522 01:09:38,430 --> 01:09:42,010 srácok fut, amit talán talán Nem igazán tudom, mi volt doing-- 1523 01:09:42,010 --> 01:09:46,910 ez ./generate 1000 cső ./42. 1524 01:09:46,910 --> 01:09:47,510 Jobb? 1525 01:09:47,510 --> 01:09:51,100 >> Tehát minden, ami ezzel, ha csak vessünk egy pillantást ezt lépésről lépésre, 1526 01:09:51,100 --> 01:09:55,870 A ./generate, ez azt jelenti, én vagyok futtatni a programot generál. 1527 01:09:55,870 --> 01:09:58,850 Melyek a legtöbb 1000 a bemenetére. 1528 01:09:58,850 --> 01:10:03,330 Szóval azt akarom, hogy létrehoz 1000 véletlen Számok és fogok cső hogy-- 1529 01:10:03,330 --> 01:10:07,790 vagy én fogom használni hogy-- kimenet mivel azokat az én nevű programot találni. 1530 01:10:07,790 --> 01:10:12,110 És én fogom próbálni, hogy megtalálja-ből 42 A számok generált azoktól 1000 1531 01:10:12,110 --> 01:10:13,130 számok. 1532 01:10:13,130 --> 01:10:15,410 Ez azt kódsort teszi értelme mindenki más? 1533 01:10:15,410 --> 01:10:17,820 >> Tehát így vagyunk megtakarítás magunknak egy csomó lépést. 1534 01:10:17,820 --> 01:10:21,880 Nem kell futtatni generálni, mentse a fájlt, majd tedd be lelet. 1535 01:10:21,880 --> 01:10:23,800 Mi is csak ezt az egészet egy sorba. 1536 01:10:23,800 --> 01:10:28,080 Tehát bármit generált kimenetre, puff ez jobb vissza, hogy megtalálja. 1537 01:10:28,080 --> 01:10:28,580 Igen? 1538 01:10:28,580 --> 01:10:32,484 >> Közönség: És szempontjából parancs argumentum, a hogy-- ez 1539 01:10:32,484 --> 01:10:33,948 Három parancssori paramétereket? 1540 01:10:33,948 --> 01:10:38,340 Ez generál, find-- nem, four-- generál, 1000, megtalálja és 42? 1541 01:10:38,340 --> 01:10:39,134 Vagy the-- 1542 01:10:39,134 --> 01:10:42,050 ANDI Peng: Szóval a cső nem igazán számít parancssori argumentum 1543 01:10:42,050 --> 01:10:44,590 Mert a fordító vagy a terminál tudja, hogy cső, 1544 01:10:44,590 --> 01:10:48,590 ó, tudom, hogy meg kell nézni, mielőtt a cső, mert ez az én kimenet 1545 01:10:48,590 --> 01:10:51,220 és azt kell nézni, miután a cső, mert ez az én bemenet. 1546 01:10:51,220 --> 01:10:54,520 Tehát tudja, hogy-- a ./generate és 1000 között, 1547 01:10:54,520 --> 01:10:57,390 ez két parancsot, majd érvek csak az első program. 1548 01:10:57,390 --> 01:11:01,760 És akkor a ./find 42 két parancs argumentum a második program. 1549 01:11:01,760 --> 01:11:02,980 Igen. 1550 01:11:02,980 --> 01:11:06,150 Mindenki jó ezen? 1551 01:11:06,150 --> 01:11:10,610 >> Tehát csak tényleg gyorsan, mit E három sornyi kódot csinálni? 1552 01:11:10,610 --> 01:11:11,606 Meglehetősen egyszerű. 1553 01:11:11,606 --> 01:11:13,605 Bárki, aki akar mondani, amit az első sorban nem? 1554 01:11:13,605 --> 01:11:18,201 1555 01:11:18,201 --> 01:11:19,117 Közönség: [hallható]. 1556 01:11:19,117 --> 01:11:23,540 1557 01:11:23,540 --> 01:11:26,534 >> ANDI Peng: Gondold azt, hogy csak-- mit jelent a nagyobb, mint a sárgarépa csinálni? 1558 01:11:26,534 --> 01:11:29,299 >> Közönség: Ez hozza valamit a következő sorba. 1559 01:11:29,299 --> 01:11:31,090 ANDI Peng: Szóval mi van az ellentettje? 1560 01:11:31,090 --> 01:11:33,514 Közönség: Ez hozza a következő dolog az első dolog. 1561 01:11:33,514 --> 01:11:34,180 ANDI Peng: Igen. 1562 01:11:34,180 --> 01:11:37,550 Tehát minden, ami ezzel a te egy program futtatása .hello-- 1563 01:11:37,550 --> 01:11:40,010 futsz nevû programot helló. 1564 01:11:40,010 --> 01:11:42,960 Fogsz adni neki egy bemeneti nevű INPUT.TXT. 1565 01:11:42,960 --> 01:11:43,460 Jobb? 1566 01:11:43,460 --> 01:11:46,250 Mert úgy mondanám, hogy csak fizikailag megy helló. 1567 01:11:46,250 --> 01:11:50,632 És akkor fogsz menteni a kimeneti nevű fájlt output.txt. 1568 01:11:50,632 --> 01:11:51,715 Mi a helyzet a második sorban? 1569 01:11:51,715 --> 01:11:54,164 Elmondanád, hogy mi A második sor nem? 1570 01:11:54,164 --> 01:11:55,080 Közönség: [hallható]. 1571 01:11:55,080 --> 01:12:00,522 1572 01:12:00,522 --> 01:12:01,230 ANDI Peng: Sajnálom. 1573 01:12:01,230 --> 01:12:03,560 Mondd újra. 1574 01:12:03,560 --> 01:12:04,060 Elliot. 1575 01:12:04,060 --> 01:12:06,560 >> Közönség: Tehát ez hozza a fenti számokat találni. 1576 01:12:06,560 --> 01:12:07,540 >> ANDI Peng: Igen. 1577 01:12:07,540 --> 01:12:10,790 Tehát találni, emlékszem, a Ahhoz, hogy futtatni megtalálni 1578 01:12:10,790 --> 01:12:13,209 tudniuk kell, ahol a 'keres. 1579 01:12:13,209 --> 01:12:15,500 És így minden, csinál itt az, hogy ez így 1580 01:12:15,500 --> 01:12:18,720 egy előre megadott Set of számok, akkor megtalálja megy 1581 01:12:18,720 --> 01:12:21,680 keresni azokat a száma 42. 1582 01:12:21,680 --> 01:12:23,620 És akkor 15. 1583 01:12:23,620 --> 01:12:25,870 Ne feledje, hogy a srácok futott ez amikor tesztelték a kódot. 1584 01:12:25,870 --> 01:12:27,590 Most már érti, mit csinál? 1585 01:12:27,590 --> 01:12:31,069 1586 01:12:31,069 --> 01:12:33,520 >> Közönség: Ez üzembe Az utasítások halmaza 1587 01:12:33,520 --> 01:12:38,860 a [hallhatatlan] keresztül hármat Három hogy the-- hogy megnyerjük a játékot. 1588 01:12:38,860 --> 01:12:39,560 >> ANDI Peng: Igen. 1589 01:12:39,560 --> 01:12:41,480 >> Közönség: Ez bemenetek azoknak utasítások be a programba. 1590 01:12:41,480 --> 01:12:42,438 >> ANDI Peng: Elég sok. 1591 01:12:42,438 --> 01:12:47,840 Tehát a hullámvonal CS50. / Pset3 / 3x3, minden, csinál az volt, hogy létrehoztunk egy szöveges 1592 01:12:47,840 --> 01:12:50,700 fájl már az összes címek kész srácok. 1593 01:12:50,700 --> 01:12:56,020 És így a játékot játszani, akkor csak-- mi csak fel, hogy a programba. 1594 01:12:56,020 --> 01:12:58,230 Szóval mi volt létre ezt fedélzeten, majd mi 1595 01:12:58,230 --> 01:13:02,890 azzal, hogy e fórumon a programba futott, és létrehozott egy cserép három 1596 01:13:02,890 --> 01:13:03,390 három. 1597 01:13:03,390 --> 01:13:04,730 Ez minden, ami csinál. 1598 01:13:04,730 --> 01:13:07,331 >> És így volt valóban varázslatos folyik a színfalak mögött 1599 01:13:07,331 --> 01:13:09,330 hogy a srácok nem program, hogy mi van programozva. 1600 01:13:09,330 --> 01:13:13,120 De most ti értem, miért tettük, hogy így minden jó. 1601 01:13:13,120 --> 01:13:15,750 Minden rendben. 1602 01:13:15,750 --> 01:13:22,200 >> Tehát miközben átirányítás egy nagyon hasznos, C. van egy általános mechanizmust 1603 01:13:22,200 --> 01:13:25,030 az olvasás és írás fájlokat a saját. 1604 01:13:25,030 --> 01:13:26,780 Semmi sem fogalmilag Nehéz itt, így én vagyok 1605 01:13:26,780 --> 01:13:28,330 csak fog átmenni nagyon, nagyon gyors. 1606 01:13:28,330 --> 01:13:30,621 Minden ez némi memorizálás és ügyelve arra, hogy a srácok 1607 01:13:30,621 --> 01:13:32,680 szintaktikailag helyes használatban. 1608 01:13:32,680 --> 01:13:35,640 Az hogy mi lenne, hogy az, hozzon létre egy fájlra való hivatkozás, 1609 01:13:35,640 --> 01:13:38,473 mi lenne megnyitni a fájlt, és akkor tenne minden írás és olvasás 1610 01:13:38,473 --> 01:13:39,929 majd zárja be a fájlt. 1611 01:13:39,929 --> 01:13:41,720 Amikor a dolog srácok szeretnénk, hogy tartsa szem előtt 1612 01:13:41,720 --> 01:13:47,360 hogy miközben ezt, mert zárunk, és a fájlok megnyitása, 1613 01:13:47,360 --> 01:13:51,230 az összes ilyen parancsok szerepelnek A standard-- a standard I / O 1614 01:13:51,230 --> 01:13:51,730 könyvtárban. 1615 01:13:51,730 --> 01:13:54,410 Úgyhogy győződjön meg róla, amikor te Ezzel, hogy már included-- 1616 01:13:54,410 --> 01:13:59,020 # included-- standard I / O pont h. 1617 01:13:59,020 --> 01:14:01,691 >> Tehát igazi gyorsan. 1618 01:14:01,691 --> 01:14:03,940 Első lépés, a létrehozni kívánt hivatkozással, hogy a fájl. 1619 01:14:03,940 --> 01:14:07,670 És most, hogy megtettem mutatók, akkor srácok tudja megmondani, hogy mi a kódsort 1620 01:14:07,670 --> 01:14:08,630 csinálja. 1621 01:14:08,630 --> 01:14:10,250 Jobb? 1622 01:14:10,250 --> 01:14:15,397 Minden, ami csinál teremt pointer nevű fájl típusú fájl. 1623 01:14:15,397 --> 01:14:17,980 Mert tudod, hogy ez lesz hogy pont egy fájlt, és te 1624 01:14:17,980 --> 01:14:20,460 majd nyissa meg a fájlt. 1625 01:14:20,460 --> 01:14:23,320 Akkor te f open-- összes ez a fájl megnyitásakor. 1626 01:14:23,320 --> 01:14:24,560 >> Ez a fájl nevét. 1627 01:14:24,560 --> 01:14:26,060 És van három dolog, amit tehetünk. 1628 01:14:26,060 --> 01:14:28,195 Tudod olvasni, írni, vagy hozzáfűzni. 1629 01:14:28,195 --> 01:14:30,320 Legáltalánosabban, srácok majd olvasni, vagy írásban 1630 01:14:30,320 --> 01:14:33,195 mert te sem lesz megadásával egy fájl vagy kimenetre egy. 1631 01:14:33,195 --> 01:14:36,500 Szóval elég sok r és w a két dolgokat fogsz használni leginkább. 1632 01:14:36,500 --> 01:14:41,722 >> Tehát ebben az esetben, amit tettem az hozzon létre egy mutató a fájl nevű fájlt. 1633 01:14:41,722 --> 01:14:47,900 Nyitok meg, és én vagyok reading-- vagyok fájl megnyitásakor nevű fájl.txt 1634 01:14:47,900 --> 01:14:49,020 és én azt olvassa. 1635 01:14:49,020 --> 01:14:51,730 Ez minden, amit csinálok ezen a ponton. 1636 01:14:51,730 --> 01:14:55,270 És akkor ezek csak működö amely el tudja olvasni a különböző dolgokat 1637 01:14:55,270 --> 01:14:57,750 vagy írjon különböző dolog vagy hagyja, hogy különböző helyeken 1638 01:14:57,750 --> 01:14:59,420 ahol meg akarom nézni. 1639 01:14:59,420 --> 01:15:01,200 Mindezek az interneten. 1640 01:15:01,200 --> 01:15:02,960 Mindezek a ha csak a Google. 1641 01:15:02,960 --> 01:15:04,280 Nem kell memorizálni őket. 1642 01:15:04,280 --> 01:15:07,160 Ők csak ott, eldobható saját használatra 1643 01:15:07,160 --> 01:15:09,360 Ha szeretne tudja használni őket. 1644 01:15:09,360 --> 01:15:13,210 >> Tehát ha azt akartam, hogy csak olvasni Egy karakter egy időben, 1645 01:15:13,210 --> 01:15:15,360 Én megtenném fájl fgetc. 1646 01:15:15,360 --> 01:15:18,850 Vagy ha akartam olvasni egy sor szöveget egy időben, én tennék fgets. 1647 01:15:18,850 --> 01:15:19,840 És így tovább és így tovább. 1648 01:15:19,840 --> 01:15:23,640 Mindezek a csak csináld különböző dolgok srácok használhatja. 1649 01:15:23,640 --> 01:15:25,920 >> És akkor végül, miután én végzett az olvasással, vagy írásban, 1650 01:15:25,920 --> 01:15:27,770 Csak megyek, hogy fclose, hogy a fájl. 1651 01:15:27,770 --> 01:15:31,760 És ne feledd, ez az egyik azoknak, emlékszem, kérjük 1652 01:15:31,760 --> 01:15:34,220 Ehhez egyébként a fájlt nem fog működni. 1653 01:15:34,220 --> 01:15:36,130 Mindig nyitott egy kép előtt olvasás vagy olvasás, 1654 01:15:36,130 --> 01:15:38,310 van, hogy mindig bezárni, ha megnyitja azt. 1655 01:15:38,310 --> 01:15:40,210 Ugyanez a helyzet a memória, nem igaz? 1656 01:15:40,210 --> 01:15:42,390 Meg kell mindig memória és a szabad azt. 1657 01:15:42,390 --> 01:15:45,200 Itt van, hogy mindig nyitott egy fájlt, mielőtt megpróbálja olvasni 1658 01:15:45,200 --> 01:15:47,360 és mindig meg kell bezárni megnyitás után. 1659 01:15:47,360 --> 01:15:50,650 1660 01:15:50,650 --> 01:15:52,190 >> Szóval ez is az interneten. 1661 01:15:52,190 --> 01:15:55,590 Megyek megtámadni titeket, hogy fajta írni egy programot, amely kiírja 1662 01:15:55,590 --> 01:15:57,080 hello.world egy fájlba. 1663 01:15:57,080 --> 01:15:58,280 Ez így nagyon egyszerű. 1664 01:15:58,280 --> 01:16:00,854 Lényegében csak magában A néhány sornyi kódot 1665 01:16:00,854 --> 01:16:02,270 hogy éppen írt korábban. 1666 01:16:02,270 --> 01:16:04,311 Fogsz őket együtt, és írtam. 1667 01:16:04,311 --> 01:16:06,630 1668 01:16:06,630 --> 01:16:10,950 >> Így néhány fontos dolgot kell szem előtt tartani míg a srácok megpróbálják ezt használja. 1669 01:16:10,950 --> 01:16:14,410 Ha ez mind nagyon hasznos a PSET ezen a héten, 1670 01:16:14,410 --> 01:16:18,000 hogy fopen létrehoz egy fájl mutatót. 1671 01:16:18,000 --> 01:16:19,500 Ez valójában nem a fizikai fájlt. 1672 01:16:19,500 --> 01:16:22,260 Minden azt mutatva, hogy a fájlt szeretnénk megnyitni. 1673 01:16:22,260 --> 01:16:26,070 És te lényegében bármikor Ön által használt bármely más funkciók 1674 01:16:26,070 --> 01:16:30,130 mint fread vagy fwrite vagy fgetc vagy fgets, az 1675 01:16:30,130 --> 01:16:33,380 hogy te csak múló körül ezt mutatót az összes említett funkció. 1676 01:16:33,380 --> 01:16:36,510 Szóval nem a ténylegesen figyelembe, hogy fájlt, és használja a funkciót, 1677 01:16:36,510 --> 01:16:39,540 te csak figyelembe a mutató máskor meg azok a funkciók, 1678 01:16:39,540 --> 01:16:41,620 így tudod használni. 1679 01:16:41,620 --> 01:16:45,360 >> És ha elfelejti bezárni A fájl Használat után, 1680 01:16:45,360 --> 01:16:47,710 a program fog szivárogni a memória. 1681 01:16:47,710 --> 01:16:50,700 Lényegében minden eszközzel az, hogy a rossz dolgok fognak történni 1682 01:16:50,700 --> 01:16:52,960 és a program nem működik megfelelően. 1683 01:16:52,960 --> 01:16:54,880 És így tovább a PSET a Az elején, azt hiszem, 1684 01:16:54,880 --> 01:16:59,180 van egy rövid ahol explained-- Nate explained-- mi Valgrid volt. 1685 01:16:59,180 --> 01:17:02,350 Minden Valgrid van egy módja, hogy győződjön meg róla, hogy nem szivárog a memória. 1686 01:17:02,350 --> 01:17:04,433 Szóval ti szeretnénk, hogy győződjön Biztosan nézni, hogy a rövid 1687 01:17:04,433 --> 01:17:08,771 mert ez mindent megmagyaráz nagyon jól, hogy mi történik. 1688 01:17:08,771 --> 01:17:09,270 OKÉ. 1689 01:17:09,270 --> 01:17:11,260 Így mentem keresztül, hogy tényleg, nagyon gyorsan, mert nagyon 1690 01:17:11,260 --> 01:17:13,870 szeretnénk elérni, hogy beszél A PSET mielőtt srácok hagyja. 1691 01:17:13,870 --> 01:17:16,690 Van valakinek kérdése fogalmilag? 1692 01:17:16,690 --> 01:17:20,060 Többnyire mindez csak szintaxist segítségével olvasni vagy írni a fájlokat. 1693 01:17:20,060 --> 01:17:25,090 1694 01:17:25,090 --> 01:17:28,140 >> Végül mindenki kedvence. 1695 01:17:28,140 --> 01:17:31,760 Fogunk beszélni a PSET most. 1696 01:17:31,760 --> 01:17:35,990 Szóval, kezeket fel, hányan srácok olvassa a specifikációt ezen a héten? 1697 01:17:35,990 --> 01:17:36,660 Ó, ez csak félig. 1698 01:17:36,660 --> 01:17:38,000 Az jó. 1699 01:17:38,000 --> 01:17:41,430 Tehát ez valójában egy nagyon, igazán szórakoztató PSET abban az értelemben, 1700 01:17:41,430 --> 01:17:43,889 hogy úgy érzi, mint egy detektív, mert te 1701 01:17:43,889 --> 01:17:46,930 mindent megtesz ezek nagyon klassz dolgokat hogy nem tudja, hogy lehetne csinálni 1702 01:17:46,930 --> 01:17:49,050 de most ez nagyon klassz hogy meg tudod csinálni őket. 1703 01:17:49,050 --> 01:17:52,400 És ez valójában egy csomó egyszerűbb, mint gondol srácok. 1704 01:17:52,400 --> 01:17:56,640 >> Tehát az alapvető felét ez a program maga 1705 01:17:56,640 --> 01:18:00,330 majd letölteni a forráskódot, vagy forgalmazás kódot írta nekünk. 1706 01:18:00,330 --> 01:18:03,540 És fogsz egy mappát úgynevezett BMP és egy másik mappába 1707 01:18:03,540 --> 01:18:05,550 nevű JPG. 1708 01:18:05,550 --> 01:18:08,370 Belül a BMP, te megy, hogy a három program. 1709 01:18:08,370 --> 01:18:10,400 Egyikük már írt neked. 1710 01:18:10,400 --> 01:18:12,477 Tehát copy.c egy olyan program, mi már írt 1711 01:18:12,477 --> 01:18:14,060 Önnek, hogy fogsz letölteni. 1712 01:18:14,060 --> 01:18:19,440 Minden, ami nem az, hogy a bemeneti kép és teszi egy-egy példányt a kibocsátás. 1713 01:18:19,440 --> 01:18:22,150 Ez minden, ami fájlt csinál. 1714 01:18:22,150 --> 01:18:25,260 >> De mit akarsz, hogy cselekedjem whodunit-- így hányan 1715 01:18:25,260 --> 01:18:30,450 srácok emlékszem ötödikben vagy maybe-- te younger-- talán a harmadik fokozat, 1716 01:18:30,450 --> 01:18:33,945 ha a srácok voltak titkos üzeneteket és Ön volt, hogy egy darab papírt rajta 1717 01:18:33,945 --> 01:18:35,440 dekódolni az üzenetet? 1718 01:18:35,440 --> 01:18:36,000 Igen? 1719 01:18:36,000 --> 01:18:39,580 Szóval ez minden, amit csinálsz kivéve, ezúttal egy számítógép. 1720 01:18:39,580 --> 01:18:41,832 Szóval adtam neked ezt a szép képet. 1721 01:18:41,832 --> 01:18:43,540 Nem úgy néz ki semmit, de alatta 1722 01:18:43,540 --> 01:18:49,660 ez egy nyom, hogy segíteni fog neked A kérdés megválaszolása kérünk benneteket. 1723 01:18:49,660 --> 01:18:54,170 >> Lényegében mit akarsz tennie, hogy input, hogy a fájl, 1724 01:18:54,170 --> 01:18:56,610 csípés néhány dolog körül, Talán a színek, 1725 01:18:56,610 --> 01:19:00,730 váltás dolgokat, így bármit Az üzenet jöhet át. 1726 01:19:00,730 --> 01:19:03,740 Tehát benne vannak rejtett pixel és információk 1727 01:19:03,740 --> 01:19:07,140 hogy ha írsz a kódot helyesen fog dekódolni, és mondd meg 1728 01:19:07,140 --> 01:19:08,500 mi ez a nyom. 1729 01:19:08,500 --> 01:19:12,480 És így néhány hasznos tippet, hogy hogyan azt járni megközelíti ezt. 1730 01:19:12,480 --> 01:19:15,180 >> Azt szeretné, hogy megismertesse magát fájl I / O 1731 01:19:15,180 --> 01:19:18,760 mert mi olvasása fájlokat és írásban fájlokat. 1732 01:19:18,760 --> 01:19:19,260 Jobb? 1733 01:19:19,260 --> 01:19:21,430 És így amikor teszünk hogy, hogy magában foglalja a 1734 01:19:21,430 --> 01:19:25,170 file I / O. Fogsz Van, hogy megismerkedjen 1735 01:19:25,170 --> 01:19:27,450 a, hogyan nyit kép fájlokat? 1736 01:19:27,450 --> 01:19:29,960 Hogyan írj fájlok, mint a képek? 1737 01:19:29,960 --> 01:19:31,640 Hogy csinálod azokat a dolgokat? 1738 01:19:31,640 --> 01:19:33,660 Ez lesz igazán hasznos. 1739 01:19:33,660 --> 01:19:36,190 >> Másodszor, hogy van lesz képes megváltoztatni 1740 01:19:36,190 --> 01:19:38,140 A színek tisztázzuk ezt a képet? 1741 01:19:38,140 --> 01:19:43,660 Ez valószínűleg bevonni beállítani a pixel vagy az RGB-értékek 1742 01:19:43,660 --> 01:19:45,390 Valahol ott, lényegében. 1743 01:19:45,390 --> 01:19:47,800 Nincs jó módja megoldásában, amíg 1744 01:19:47,800 --> 01:19:52,560 can-- ameddig csak lehet egyfajta kiigazítani pixel, hogy ez 1745 01:19:52,560 --> 01:19:54,640 néznek ki, mint valami, ami érdekel. 1746 01:19:54,640 --> 01:19:56,207 Ez minden törődünk is. 1747 01:19:56,207 --> 01:19:57,540 Szóval van sok módja van erre. 1748 01:19:57,540 --> 01:20:00,039 Csak játszadozik vele, amíg kapsz valamit, ami működik. 1749 01:20:00,039 --> 01:20:02,900 És akkor lenne igazán Meglepett, hogy milyen néhány sornyi kódot 1750 01:20:02,900 --> 01:20:04,510 meg kell ténylegesen ezt. 1751 01:20:04,510 --> 01:20:08,700 Arról beszélek, mint három sornyi kódot összesen 1752 01:20:08,700 --> 01:20:11,310 hogy meg kell írni annak érdekében, hogy erre a célra. 1753 01:20:11,310 --> 01:20:15,470 Tehát, ha találsz magadnak írásban 40, 30 sornyi kódot, 1754 01:20:15,470 --> 01:20:16,960 akkor valószínűleg csinálja rosszul. 1755 01:20:16,960 --> 01:20:19,390 Mindössze annyit kell tennie, hogy a fajta játszanak a színek 1756 01:20:19,390 --> 01:20:22,960 és látom, hogy ez ki. 1757 01:20:22,960 --> 01:20:27,040 >> Így aztán elindulunk egy kicsit keményebb a probléma. 1758 01:20:27,040 --> 01:20:30,190 Itt van átméretezni ahol mi vagyunk kérdezem 1759 01:20:30,190 --> 01:20:34,210 alábbiakra: mi így például input a kép és a átméretezése 1760 01:20:34,210 --> 01:20:36,710 ez a kép valami Nagyobb, vagy valami kisebb 1761 01:20:36,710 --> 01:20:38,500 méretétől függően adunk. 1762 01:20:38,500 --> 01:20:41,260 Úgy emlékszem, az előadás Dávid gyorsan 1763 01:20:41,260 --> 01:20:45,780 pillantott, hogyan információk érzékeli a számítógép 1764 01:20:45,780 --> 01:20:47,590 azt jelenti, hogy ez egy fájltípust. 1765 01:20:47,590 --> 01:20:50,530 Tehát egy Word file különleges karakterek elé, hogy a 1766 01:20:50,530 --> 01:20:52,040 mondd a számítógépet, hogy ez egy Word file. 1767 01:20:52,040 --> 01:20:53,090 Ugyanaz a JPEG. 1768 01:20:53,090 --> 01:20:55,131 Ebben az esetben megyünk hogy adjak egy JPEG fájl. 1769 01:20:55,131 --> 01:20:58,300 Csak azt tudjuk, hogy a JPEG fájl egy kép, ugye? 1770 01:20:58,300 --> 01:21:01,430 De a számítógép megkülönbözteti ez nagyon különleges módon. 1771 01:21:01,430 --> 01:21:04,070 Tehát az elején bármilyen JPEG fájl, te 1772 01:21:04,070 --> 01:21:08,210 megy, hogy nevezzük a bitmap info fejléc és a bitmap fájl fejlécében. 1773 01:21:08,210 --> 01:21:11,080 Minden ezek a különböző adattartalommal 1774 01:21:11,080 --> 01:21:14,870 hogy megmondja a számítógép, hé, figyeljetek, a JPEG jön 1775 01:21:14,870 --> 01:21:17,820 és ezek a méretek vagy jellemzőit, hogy a JPEG. 1776 01:21:17,820 --> 01:21:21,280 >> Szóval srácok nagyon szeretné tudni, milyen adatokat tárol belül 1777 01:21:21,280 --> 01:21:23,560 e fejlécek és mekkora őket. 1778 01:21:23,560 --> 01:21:25,640 Mert ha éppen fut révén a programot, 1779 01:21:25,640 --> 01:21:27,370 fogsz akar átugorják ezt az összeget. 1780 01:21:27,370 --> 01:21:27,940 Jobb? 1781 01:21:27,940 --> 01:21:29,910 Mert nem érdekel módosításával a fejléc, 1782 01:21:29,910 --> 01:21:31,493 törődsz módosításával mi után. 1783 01:21:31,493 --> 01:21:32,450 Jobb? 1784 01:21:32,450 --> 01:21:36,040 Úgyhogy győződjön meg róla, hogy tudjátok milyen nagy ezek a dolgok. 1785 01:21:36,040 --> 01:21:39,065 >> Másodszor, mielőtt elkezdené megpróbálja átméretezni a képet, 1786 01:21:39,065 --> 01:21:41,940 akkor valószínűleg szeretne majd menteni a méretei az eredeti. 1787 01:21:41,940 --> 01:21:42,520 Jobb? 1788 01:21:42,520 --> 01:21:45,550 Mert ha azt mondom, ez a kép 100 pixel és 100 pixel, 1789 01:21:45,550 --> 01:21:47,630 és azt akarom, hogy ez négyszer nagyobb, 1790 01:21:47,630 --> 01:21:50,460 Tudja, hogy meg kell szaporodnak azok méretei néggyel. 1791 01:21:50,460 --> 01:21:54,960 Így aztán azt szeretné, hogy a kimeneti fájl 400 400 pixel, például. 1792 01:21:54,960 --> 01:21:58,300 Szóval ez tényleg hasznos a srácok menteni a méretei az eredeti. 1793 01:21:58,300 --> 01:22:00,780 Aztán utána, miután kész vagy átméretezés, 1794 01:22:00,780 --> 01:22:06,270 írhatunk új fejlécek a Ezen új dimenziókat átméretezés után. 1795 01:22:06,270 --> 01:22:10,750 >> És az is, hogy fizikailag létrehozhat nagy pixel 1796 01:22:10,750 --> 01:22:13,380 az, hogy meg lehet írni Új RGB-- emlékszem, RGB, 1797 01:22:13,380 --> 01:22:17,784 Az összes, hogy áll a vörös, zöld, és blue-- pixel egy ki fájlt. 1798 01:22:17,784 --> 01:22:20,200 És fogsz akar különböző mennyiségű mi 1799 01:22:20,200 --> 01:22:21,200 hívjuk padding. 1800 01:22:21,200 --> 01:22:24,780 Minden padding terek előtt és után képeket 1801 01:22:24,780 --> 01:22:29,265 hogy elmondja your-- lényegében azt szóljon képet milyen nagy is 1802 01:22:29,265 --> 01:22:30,589 szedhet fel. 1803 01:22:30,589 --> 01:22:33,630 Ez nagyon elvont a sok ha még nem olvastad a PSET spec, 1804 01:22:33,630 --> 01:22:35,410 de ez lesz nagyon hasznos, ha a 1805 01:22:35,410 --> 01:22:36,460 te tényleg olvasta rajta. 1806 01:22:36,460 --> 01:22:38,126 Te, mint, ó, igen, ennek van értelme. 1807 01:22:38,126 --> 01:22:39,310 Miért kell ezt megtenni? 1808 01:22:39,310 --> 01:22:41,830 Van értelme. 1809 01:22:41,830 --> 01:22:46,900 >> Végül, ez valószínűleg az egyik a leginkább frusztráló programok 1810 01:22:46,900 --> 01:22:51,160 valaha csak azért, mert nem tudsz mondd, hogy működik-e vagy sem. 1811 01:22:51,160 --> 01:22:54,980 Minden ezt a programot, vissza, az Ennek van, hogy ha megfelelően futni, 1812 01:22:54,980 --> 01:22:59,290 képesnek kell lennie arra, hogy hirtelen visszaszerezze 50 képet 1813 01:22:59,290 --> 01:23:01,025 elvesztek a mi merevlemez. 1814 01:23:01,025 --> 01:23:03,900 És így a probléma ezzel a programmal az, hogy nem igazán lehet kipróbálni 1815 01:23:03,900 --> 01:23:06,220 mert vagy te vissza őket, vagy nem. 1816 01:23:06,220 --> 01:23:09,122 És így a fajta csak kell játszani körül vele, 1817 01:23:09,122 --> 01:23:11,080 és ha a program megfelelően működik, akkor 1818 01:23:11,080 --> 01:23:12,829 hirtelen látni, hogy a A könyvtárban, 1819 01:23:12,829 --> 01:23:17,400 Van egy hatalmas mennyiségű képeket, amelyek most van. 1820 01:23:17,400 --> 01:23:20,490 >> Szóval hogyan kellene megközelíteni ez a probléma, mi vagyunk 1821 01:23:20,490 --> 01:23:22,860 fog adni mi úgynevezett card.raw fájlt. 1822 01:23:22,860 --> 01:23:25,020 Lényegében ez Csak egy sérült fájlt 1823 01:23:25,020 --> 01:23:28,870 az összes tárolt képek, hogy Ön lesz szüksége, hogy felépüljön. 1824 01:23:28,870 --> 01:23:32,330 Szóval akkor valószínűleg akarnak hogy adja meg card.raw, vagy nyitott, 1825 01:23:32,330 --> 01:23:35,510 Ön card.raw fájlt, és te szeretne majd manipulálni 1826 01:23:35,510 --> 01:23:37,840 azt, hogy képes legyen tárolni JPEG. 1827 01:23:37,840 --> 01:23:42,830 >> Szóval kezdeném nyomon követésével és tárolása Minden egyes JPEG, ahogy találod. 1828 01:23:42,830 --> 01:23:47,180 Nem fogod, hogy külön-külön minden Hirtelen csak teremt mind az 50 JPEG. 1829 01:23:47,180 --> 01:23:50,190 Fogsz szeretné tartani követni, hogy hány te megnyitása. 1830 01:23:50,190 --> 01:23:52,015 És akkor azt szeretnénk, hogy győződjön meg róla, ha éppen 1831 01:23:52,015 --> 01:23:54,640 írása buffer-- srácok tudni fogja, mit beszélek 1832 01:23:54,640 --> 01:23:57,806 Miután elolvasta a spec-- szeretne győződjön meg arról, hogy az Ön által használt aláíratlan 1833 01:23:57,806 --> 01:23:59,370 char puffer. 1834 01:23:59,370 --> 01:24:01,790 >> És akkor szeretném megkérdezni, magadnak a kérdést, hogy, 1835 01:24:01,790 --> 01:24:05,797 Hány bytes egy CF-- vannak kartoték? 1836 01:24:05,797 --> 01:24:08,380 Ennyi fogsz szeretné olvasni a puffer. 1837 01:24:08,380 --> 01:24:11,130 Fogsz szeretnénk, hogy győződjön meg arról, A két align mert akkor 1838 01:24:11,130 --> 01:24:12,850 nem lesz véletlen memória szivárog ki. 1839 01:24:12,850 --> 01:24:15,370 Tudja, hogy pontosan hány bájt van szüksége, és hogy hány 1840 01:24:15,370 --> 01:24:18,270 byte hogy azt szeretné, hogy van. 1841 01:24:18,270 --> 01:24:21,510 >> És végül, azt szeretnénk, hogy használni a funkciót nevű sprint-- 1842 01:24:21,510 --> 01:24:26,160 s nyomtatási F-- generálni egyéni fájl nevek minden új JPEG, hogy megtalálja. 1843 01:24:26,160 --> 01:24:29,129 Így hozunk létre, és találni JPEG a kártya, 1844 01:24:29,129 --> 01:24:31,170 fogsz akar tárolni őket, és nevezze őket. 1845 01:24:31,170 --> 01:24:31,700 Jobb? 1846 01:24:31,700 --> 01:24:33,700 És így fogsz szeretnénk használni ezt a funkciót 1847 01:24:33,700 --> 01:24:36,770 hogy megteremtse a neveket, tárolhatja az összes JPEG. 1848 01:24:36,770 --> 01:24:41,062 >> És végül, ne felejtsük el, hogy lezárja Minden JPEG után kész. 1849 01:24:41,062 --> 01:24:42,770 Mert amit te eredménye, hogy te 1850 01:24:42,770 --> 01:24:44,728 lesz valószínűleg valamiféle hurok 1851 01:24:44,728 --> 01:24:46,470 végigmegy az összes JPEG. 1852 01:24:46,470 --> 01:24:50,460 Fogsz levelet JPEG és nevezd, ahogy találod. 1853 01:24:50,460 --> 01:24:52,870 De miután végeztél minden egyes JPEG, 1854 01:24:52,870 --> 01:24:56,630 be kell zárnia, hogy így meg lehet kezdeni újra és lépni a következő képet. 1855 01:24:56,630 --> 01:24:58,880 És így valamit, ami Nagyon szórakoztató, hogy szeretjük csinálni, 1856 01:24:58,880 --> 01:25:03,430 mert ez egy ilyen furcsa probléma beállítva hanem hátborzongatóan kielégítő probléma 1857 01:25:03,430 --> 01:25:08,380 Set, az, hogy az összes képet mi az Ön számára, ha vissza rendesen, 1858 01:25:08,380 --> 01:25:11,910 Az összes kép képek a csodálatos tantestület, mind 1859 01:25:11,910 --> 01:25:14,240 A Harvard, a here-- és itt a Yale. 1860 01:25:14,240 --> 01:25:17,260 És ha történetesen vissza ezeket a képeket 1861 01:25:17,260 --> 01:25:20,020 és azonosítja a személyzet tagjai ezek a kártyák, 1862 01:25:20,020 --> 01:25:23,040 és vegye selfies velünk, ha talál meg minket az egyetemen, 1863 01:25:23,040 --> 01:25:28,270 minden fotó elküldi részünkre, akkor kapsz egy gigabájt Dropbox helyet. 1864 01:25:28,270 --> 01:25:30,060 >> Tehát lássuk a matek itt. 1865 01:25:30,060 --> 01:25:33,010 Ha van 50 kép és 50 tantestület tagjai, 1866 01:25:33,010 --> 01:25:37,160 ha történetesen megtalálja az összes 50 Számunkra ez 50 GB Dropbox, 1867 01:25:37,160 --> 01:25:39,000 Alapvetően, mi lesz így a srácok. 1868 01:25:39,000 --> 01:25:42,380 Szóval egy kis plusz hozzáadott ösztönzőket ha a srácok nem csak 1869 01:25:42,380 --> 01:25:44,480 törődnek beszedik elveszett képeket. 1870 01:25:44,480 --> 01:25:46,867 Van még némi hozzáadott ösztönzők. 1871 01:25:46,867 --> 01:25:47,825 Ez egy szórakoztató problémát sor. 1872 01:25:47,825 --> 01:25:48,390 Ez tényleg. 1873 01:25:48,390 --> 01:25:51,980 Elég frusztráló, de akkor válik igazán szórakoztató, amikor rájössz, 1874 01:25:51,980 --> 01:25:54,230 wow, ez működik, és most az összes ilyen kép 1875 01:25:54,230 --> 01:25:55,604 hogy már csak teremtett magam. 1876 01:25:55,604 --> 01:25:58,800 1877 01:25:58,800 --> 01:26:00,075 >> Bármilyen kérdésre az PSET? 1878 01:26:00,075 --> 01:26:02,408 Mert bárki, aki már kezdett, ha kérdésed van, 1879 01:26:02,408 --> 01:26:06,510 Én itt leszek egy pár perccel azután, részt, ha akar beszélni velem. 1880 01:26:06,510 --> 01:26:07,320 Szép volt, fiúk. 1881 01:26:07,320 --> 01:26:10,520 Sajnálom, én információk zúdította srácok. 1882 01:26:10,520 --> 01:26:13,670 Pointerek nagyon, nagyon kihívásokkal teli és frusztráló. 1883 01:26:13,670 --> 01:26:16,187 >> És nagyon örülök, hogy srácok velem maradt. 1884 01:26:16,187 --> 01:26:18,020 Beszélni fogunk mélyebben a jövő héten 1885 01:26:18,020 --> 01:26:21,330 mint mi kezdeni ezzel hash táblák és További funkciók, hogy a rájuk. 1886 01:26:21,330 --> 01:26:23,821 1887 01:26:23,821 --> 01:26:24,320 Igen. 1888 01:26:24,320 --> 01:26:26,278 Tehát ha valakinek van bármilyen kérdésekre, leszek körül. 1889 01:26:26,278 --> 01:26:29,330 Köszönöm, hogy eljöttetek, és több édességet, mert ott több édességet. 1890 01:26:29,330 --> 01:26:32,220 1891 01:26:32,220 --> 01:26:33,770 Hűvös. 1892 01:26:33,770 --> 01:26:35,765