1 00:00:00,000 --> 00:00:03,269 >> [Zenelejátszási] 2 00:00:03,269 --> 00:00:05,391 3 00:00:05,391 --> 00:00:06,640 CAMILLE REKHSON: Üdv mindenkinek. 4 00:00:06,640 --> 00:00:10,120 Üdvözöljük a CS50 kvíz nulla felülvizsgálati ülésén. 5 00:00:10,120 --> 00:00:10,770 Én vagyok Camille. 6 00:00:10,770 --> 00:00:13,140 És én lesz majd mint néhány témát veled 7 00:00:13,140 --> 00:00:16,890 srácok ma, hogy segítsen felkészülni a teszt. 8 00:00:16,890 --> 00:00:20,840 Tehát itt a teljesség igénye nélkül fenti témákhoz, 9 00:00:20,840 --> 00:00:23,210 ismernie kell a kvíz. 10 00:00:23,210 --> 00:00:25,740 Ezeket közvetlenül A tananyag. 11 00:00:25,740 --> 00:00:26,990 Tudom, hogy soknak tűnik. 12 00:00:26,990 --> 00:00:30,870 De hidd el, amit megtanultam, az összes ezek a dolgok az elmúlt néhány hétben. 13 00:00:30,870 --> 00:00:33,210 >> Tehát akkor biztosan megy felett sok ezek ma. 14 00:00:33,210 --> 00:00:35,825 Hanem némi időt vesz igénybe a Saját hogy vizsgálják felül ezeket a dolgokat. 15 00:00:35,825 --> 00:00:38,450 És ha nem ismeri amit néhány ezek a dolgok, 16 00:00:38,450 --> 00:00:42,400 Mindenképpen kérjen egy közülünk. 17 00:00:42,400 --> 00:00:45,985 Továbbá, a hivatalos szó A kvíz, megy ez a link. 18 00:00:45,985 --> 00:00:48,860 Ez lesz az összes információt amellyel szobában el kell menni a, 19 00:00:48,860 --> 00:00:52,960 feloszlott betűrendben, és még néhány tippet, hogy mit anyagok 20 00:00:52,960 --> 00:00:56,470 akkor meg kell tanul, és milyen A kvíz kérdések számíthat. 21 00:00:56,470 --> 00:01:01,090 Úgyhogy győződjön meg róla, hogy ellenőrizze, hogy ki. 22 00:01:01,090 --> 00:01:03,810 >> Továbbá, néhány tipp, ha készül a vizsgára. 23 00:01:03,810 --> 00:01:05,730 Gyakorold kódolási papíron. 24 00:01:05,730 --> 00:01:09,280 Tudom, hogy már megszoktuk, hogy miután Az IDE csekket a hibákat az Ön számára, 25 00:01:09,280 --> 00:01:12,280 és it's-- ha írsz fel, ez egy kicsit más, mint hogy 26 00:01:12,280 --> 00:01:13,113 hogy írjon a dolgokat. 27 00:01:13,113 --> 00:01:14,560 Szóval gyakorolni csinál valami kódolás. 28 00:01:14,560 --> 00:01:17,910 Néhány jó funkciók gyakorlására Ennek a strlen és atoi, 29 00:01:17,910 --> 00:01:20,450 látta, ha meg tudná írni ezeket ki a saját. 30 00:01:20,450 --> 00:01:21,970 Ismernie kell a problémát készletek. 31 00:01:21,970 --> 00:01:24,200 A legtöbb években vannak kérdéseket, amelyek 32 00:01:24,200 --> 00:01:25,700 hogy néhány, a probléma meghatározott anyag. 33 00:01:25,700 --> 00:01:30,480 Úgyhogy győződjön meg róla, hogy érti hogyan kell csinálni minden problémát készletek. 34 00:01:30,480 --> 00:01:35,240 >> Próbáld néhány régi vetélkedők alatt 75 perces időkorlát. 35 00:01:35,240 --> 00:01:37,290 Sok a vetélkedők lehet ilyen sokáig. 36 00:01:37,290 --> 00:01:39,680 Szóval ez egy jó módja annak, hogy magadnak némi gyakorlat, 37 00:01:39,680 --> 00:01:41,650 és hogy mennyi ideig fog elviszi, és hogyan 38 00:01:41,650 --> 00:01:45,360 kell osztani az idejét, hogy győződjön meg arról, befejezni mindent végére. 39 00:01:45,360 --> 00:01:49,690 És azt is, kapsz egy oldalt, kétoldalas referencia lap 40 00:01:49,690 --> 00:01:52,962 hogy lehet írni bármit is szeretnénk a használni a kvízt. 41 00:01:52,962 --> 00:01:54,670 Tehát, ha te létre hogy ez is 42 00:01:54,670 --> 00:01:57,860 Tényleg nagyszerű módja tanulni, mert akkor milyen lehet felülvizsgálja a dolgokat 43 00:01:57,860 --> 00:01:59,610 ahogy írsz rá. 44 00:01:59,610 --> 00:02:05,421 >> Tehát minden általános kérdései A kvíz, vagy hogyan működik? 45 00:02:05,421 --> 00:02:05,921 Igen. 46 00:02:05,921 --> 00:02:09,167 >> Közönség: Will, hogy témák listáját hogy csak azt mutatta, hogy elérhető számunkra 47 00:02:09,167 --> 00:02:09,820 online? 48 00:02:09,820 --> 00:02:12,736 >> CAMILLE REKHSON: Ez a teljes lemezt műsor felkerül a honlapra. 49 00:02:12,736 --> 00:02:16,040 Továbbá, a videó a mai felülvizsgálata ülésen lesz a honlapon. 50 00:02:16,040 --> 00:02:19,250 Szóval ne aggódj túl sokat írásban dolgokat egész. 51 00:02:19,250 --> 00:02:20,437 Ez lesz az összes ott lesz. 52 00:02:20,437 --> 00:02:21,270 Más kérdés? 53 00:02:21,270 --> 00:02:23,810 54 00:02:23,810 --> 00:02:26,960 OK, így kezdjük. 55 00:02:26,960 --> 00:02:30,860 >> Tehát egy dolog, hogy tisztában legyünk a A különböző adattípusok és a méret 56 00:02:30,860 --> 00:02:32,486 hogy vállalni. 57 00:02:32,486 --> 00:02:35,360 Ez is lehet egy jó dolog, hogy írja le a referencia lemez, 58 00:02:35,360 --> 00:02:37,240 Csak győződjön meg róla, emlékszem az összes ilyen. 59 00:02:37,240 --> 00:02:39,200 De-- így karakter a 1 byte. 60 00:02:39,200 --> 00:02:40,700 Ints 4 bájt. 61 00:02:40,700 --> 00:02:44,450 Hosszú, hosszú, ami alapvetően több hely egész, 8 bájt. 62 00:02:44,450 --> 00:02:46,560 Az úszó 4 byte. 63 00:02:46,560 --> 00:02:50,620 A kettős, amely alapvetően megadja Több hely tárolni úszó, 8 bájt. 64 00:02:50,620 --> 00:02:54,210 És akkor egy mutatót is 8 bájt. 65 00:02:54,210 --> 00:02:56,270 Bármilyen kérdése van ezeknek? 66 00:02:56,270 --> 00:03:00,380 67 00:03:00,380 --> 00:03:05,580 >> Tehát bináris egy másik téma voltunk borított egy kicsit ebben a félévben. 68 00:03:05,580 --> 00:03:07,910 Tehát lássuk néhány gyakorolni a konvertáló 69 00:03:07,910 --> 00:03:10,000 közötti bináris és decimális. 70 00:03:10,000 --> 00:03:13,950 Szóval valakinek valami ötlete, mi hogy első lenne? 71 00:03:13,950 --> 00:03:32,840 72 00:03:32,840 --> 00:03:34,860 Bárki? 73 00:03:34,860 --> 00:03:36,270 Igen, ez 42. 74 00:03:36,270 --> 00:03:39,200 Tehát, ha emlékszel, az egyes A helyek bináris 75 00:03:39,200 --> 00:03:41,860 alapvetően, mint 2 arra a helyre erejét. 76 00:03:41,860 --> 00:03:43,750 >> Annak érdekében, hogy az első helyen van 2 a 0 hatalom. 77 00:03:43,750 --> 00:03:46,710 És mi van a 0-hoz, így semmi. 78 00:03:46,710 --> 00:03:48,700 A következő hely 2 az első hatalom. 79 00:03:48,700 --> 00:03:51,220 És mi van egy 1 van, úgy, hogy alapvetően egy 2. 80 00:03:51,220 --> 00:03:53,642 A következő hely 2 a második, amely 4. 81 00:03:53,642 --> 00:03:54,850 Nincs ott semmi. 82 00:03:54,850 --> 00:03:59,390 A következő hely fölött van 2 a harmadik, ami 8. 83 00:03:59,390 --> 00:04:02,230 És mi van ott. 84 00:04:02,230 --> 00:04:03,470 És folyamatosan megy. 85 00:04:03,470 --> 00:04:07,720 Hogy last-- a legtávolabbi a elhagyta az egyik, ahol már 32. 86 00:04:07,720 --> 00:04:13,437 És igen, már lényegében 32 plusz 8 plusz 2-t 42. 87 00:04:13,437 --> 00:04:14,020 Bármi kérdés? 88 00:04:14,020 --> 00:04:15,820 >> Közönség: Mi az index számára? 89 00:04:15,820 --> 00:04:17,399 >> CAMILLE REKHSON: Az index Alapvetően azt mondja, ez a bináris. 90 00:04:17,399 --> 00:04:18,230 Szóval van egy 2 van. 91 00:04:18,230 --> 00:04:20,579 Ha lenne az általam elvártnál a következő Egy, vagy ha mi konvertáló decimális 92 00:04:20,579 --> 00:04:24,350 kettes, van egy 10 megmutatja nekünk, hogy ez a szám eredetileg tizedes. 93 00:04:24,350 --> 00:04:25,194 >> Közönség: Köszönöm. 94 00:04:25,194 --> 00:04:26,110 >> CAMILLE REKHSON: Igen. 95 00:04:26,110 --> 00:04:28,790 Más kérdés, hogy az egyik? 96 00:04:28,790 --> 00:04:31,110 OK, így próbáljuk a következő az egyik, majd a decimális bináris. 97 00:04:31,110 --> 00:04:35,034 Tehát figyelembe 50 és azzal, hogy a bináris. 98 00:04:35,034 --> 00:04:35,950 Hogyan tennéd ezt? 99 00:04:35,950 --> 00:04:44,331 100 00:04:44,331 --> 00:04:45,317 Igen. 101 00:04:45,317 --> 00:04:49,754 >> Közönség: 110010. 102 00:04:49,754 --> 00:04:50,760 >> CAMILLE REKHSON: Igen. 103 00:04:50,760 --> 00:04:54,410 Tehát one-- egyszerűen gondolkodni konvertáló a decimális bináris 104 00:04:54,410 --> 00:04:57,950 az alábbiakra: gyakran segít, hogy írjon ki mi a különböző 2-hatványok. 105 00:04:57,950 --> 00:05:01,460 És akkor megy át rajta, és látni függetlenül a legmagasabb egyike azoknak 106 00:05:01,460 --> 00:05:05,320 az, hogy akkor tedd a decimális szám nélkül megy rajta. 107 00:05:05,320 --> 00:05:09,040 >> Tehát ebben az esetben, az egyik hatáskörének 2 32. 108 00:05:09,040 --> 00:05:10,560 Tehát 32 bemegy 50. 109 00:05:10,560 --> 00:05:14,100 De a következő bekapcsoláskor lenne 64, ami nyilvánvalóan nem fér bele 50. 110 00:05:14,100 --> 00:05:16,343 Így a legmagasabb már a 32. 111 00:05:16,343 --> 00:05:17,343 A következő egy lefelé 16. 112 00:05:17,343 --> 00:05:20,140 32 és 16 csak 48. 113 00:05:20,140 --> 00:05:21,350 Szóval ez is elfér 50. 114 00:05:21,350 --> 00:05:22,722 Tehát van 1-es, mind az ilyen. 115 00:05:22,722 --> 00:05:25,180 És akkor, ha folyamatosan megy le, az egyetlen dolog, amire szükségünk maradt 116 00:05:25,180 --> 00:05:27,510 2 többet kap 48-50. 117 00:05:27,510 --> 00:05:31,860 Tehát akkor van egy 1 ebben a helyzetben, és a 0 az utolsó pozícióba. 118 00:05:31,860 --> 00:05:35,371 Mert nincs semmi A 2 a 0-ik helyen. 119 00:05:35,371 --> 00:05:37,120 Kérdések a konvertáló decimális bináris? 120 00:05:37,120 --> 00:05:40,830 121 00:05:40,830 --> 00:05:44,100 >> Tehát most próbáljuk csinál Néhány bináris kívül. 122 00:05:44,100 --> 00:05:47,235 Hogyan, ha hozzá e két helyzet? 123 00:05:47,235 --> 00:05:47,735 Igen. 124 00:05:47,735 --> 00:05:51,130 >> Közönség: 11100. 125 00:05:51,130 --> 00:05:52,110 >> CAMILLE REKHSON: Igen. 126 00:05:52,110 --> 00:05:55,540 Ezáltal kívül bináris elég nagyjából ugyanaz, mint csinálja a tizedes. 127 00:05:55,540 --> 00:05:59,390 Kivéve, ha van két 1 lénye összeadjuk, 1 plusz 1 jelentése 2, 128 00:05:59,390 --> 00:06:02,980 de 2 bináris 1 0. 129 00:06:02,980 --> 00:06:07,090 Szóval van, hogy elbírja a 1, és tartsa könyv azt a pár oszlopok. 130 00:06:07,090 --> 00:06:10,260 És azon kívül, hogy csak add rendesen. 131 00:06:10,260 --> 00:06:13,125 Bármilyen kérdésre, hogy? 132 00:06:13,125 --> 00:06:13,625 Igen. 133 00:06:13,625 --> 00:06:16,487 >> Közönség: Bocs, hogy mi lenne az utolsó hely? 134 00:06:16,487 --> 00:06:18,475 Van hat számot. 135 00:06:18,475 --> 00:06:23,260 Tehát a bal szélső oszlopban, milyen értéket is ez? 136 00:06:23,260 --> 00:06:24,760 CAMILLE REKHSON: Ezen az alsót? 137 00:06:24,760 --> 00:06:26,340 Közönség: A felső egy, a 50. 138 00:06:26,340 --> 00:06:27,340 CAMILLE REKHSON: 50? 139 00:06:27,340 --> 00:06:29,040 Ó, így a bal szélső egy 32. 140 00:06:29,040 --> 00:06:29,760 >> Közönség: 32? 141 00:06:29,760 --> 00:06:36,770 >> CAMILLE REKHSON: Igen, így lenne lehet 32, 16, majd 8, 4, 2, 0-- vagy 1. 142 00:06:36,770 --> 00:06:39,380 Nos, ez 2 a nulladik, amely 1. 143 00:06:39,380 --> 00:06:41,110 Igen. 144 00:06:41,110 --> 00:06:43,834 Más kérdés ezzel kapcsolatban? 145 00:06:43,834 --> 00:06:47,420 OK, így aztán megyünk csinálni egy kicsit a hexadecimális. 146 00:06:47,420 --> 00:06:49,570 Tehát ez lehet egy kicsit kevésbé ismert, 147 00:06:49,570 --> 00:06:51,680 mert tudom, hogy amit csináltunk sokkal több bináris. 148 00:06:51,680 --> 00:06:54,050 De egy igazán jó módja annak, hogy gondolni hexadecimális 149 00:06:54,050 --> 00:06:57,540 az, hogy szakítani egy bináris számot 4 bites darabokban. 150 00:06:57,540 --> 00:07:00,950 Mivel minden egyes 4 bit egy bináris szám alapvetően 151 00:07:00,950 --> 00:07:04,560 egyik hexadecimális számok. 152 00:07:04,560 --> 00:07:07,420 >> Tehát ha megvan ez első, mi alapvetően nyolc 1-es. 153 00:07:07,420 --> 00:07:08,620 Így azok is osztott up-- 154 00:07:08,620 --> 00:07:09,600 >> Közönség: 255. 155 00:07:09,600 --> 00:07:10,933 >> CAMILLE REKHSON: Mondd ezt még egyszer. 156 00:07:10,933 --> 00:07:13,772 Közönség: 255 decimális, vagy 0xFF hexadecimális. 157 00:07:13,772 --> 00:07:14,980 CAMILLE REKHSON: Igen, ez az. 158 00:07:14,980 --> 00:07:18,860 Tehát, ha megosztjuk a fel két 4 bites darabokat, 159 00:07:18,860 --> 00:07:20,950 már lényegében négy szett 1. 160 00:07:20,950 --> 00:07:22,880 Melyik a maximum-- alapvetően a maximális 161 00:07:22,880 --> 00:07:24,329 kaphatunk a 4-bites bináris. 162 00:07:24,329 --> 00:07:27,120 És a maximális tudtunk kapni hogy hexadecimális lenne F. 163 00:07:27,120 --> 00:07:30,290 Szóval mi lett volna két F-nek. 164 00:07:30,290 --> 00:07:31,800 Bármilyen kérdésre, hogy? 165 00:07:31,800 --> 00:07:32,490 Igen? 166 00:07:32,490 --> 00:07:35,184 >> Közönség: Tud ismételje meg ezt. 167 00:07:35,184 --> 00:07:36,100 CAMILLE REKHSON: Persze. 168 00:07:36,100 --> 00:07:39,160 Így minden, alapvetően, hely hexadecimális van 169 00:07:39,160 --> 00:07:42,570 ekvivalens a 4-bit egy bináris. 170 00:07:42,570 --> 00:07:46,830 Tehát a legegyszerűbb módja ennek az, törni fel, 4 bites darabokban. 171 00:07:46,830 --> 00:07:48,690 Tehát ebben az esetben, már nyolc 1-es. 172 00:07:48,690 --> 00:07:51,010 Tehát, ha szét azokat két 4 bites darabokat, 173 00:07:51,010 --> 00:07:54,350 mi lett volna két négy 1-es. 174 00:07:54,350 --> 00:07:57,181 És minden egyes ilyen egyenértékű az F. 175 00:07:57,181 --> 00:07:58,930 Ha úgy gondolja, about-- Tudom agyunk 176 00:07:58,930 --> 00:08:00,415 fajta vezetékes gondolkodni Több keresztül tizedes, 177 00:08:00,415 --> 00:08:01,831 mert ez az, amit mi szokva. 178 00:08:01,831 --> 00:08:06,030 Tehát az egyik módja, hogy gondolok rá, mint A négy 1-es egyenlő 15 decimális. 179 00:08:06,030 --> 00:08:12,960 És 15 hexadecimális F. Szóval ez Egy másik mód, akkor gondolja át rajta. 180 00:08:12,960 --> 00:08:13,459 Igen. 181 00:08:13,459 --> 00:08:14,790 >> Közönség: Mi a 0x? 182 00:08:14,790 --> 00:08:18,240 >> CAMILLE REKHSON: A 0x azt jelzi, hogy ez a hexadecimális. 183 00:08:18,240 --> 00:08:21,900 Szóval csak fel, hogy prefix van, normálisan. 184 00:08:21,900 --> 00:08:24,396 Más kérdés, hogy az. 185 00:08:24,396 --> 00:08:27,100 OK, úgyhogy próbáljuk megy a másik irányba akkor. 186 00:08:27,100 --> 00:08:28,712 Ebben az esetben azt have-- sajnálom? 187 00:08:28,712 --> 00:08:29,628 Közönség: [hallható]. 188 00:08:29,628 --> 00:08:32,095 189 00:08:32,095 --> 00:08:33,720 CAMILLE REKHSON: Megyünk bináris. 190 00:08:33,720 --> 00:08:36,039 Szóval, megy a másik irányba. 191 00:08:36,039 --> 00:08:42,090 De ebben az esetben, van 5 és A. Tehát ha belegondolunk, ez az, 192 00:08:42,090 --> 00:08:46,260 ha minden egyes those-- az 5, és a A jelentése Mindkét fogja képviselni egy 4 bites darab, 193 00:08:46,260 --> 00:08:49,003 Hogyan mondod 5 bináris? 194 00:08:49,003 --> 00:08:51,120 >> Közönség: 0101. 195 00:08:51,120 --> 00:08:53,100 >> CAMILLE REKHSON: Igen, Szóval ez a 0101 része. 196 00:08:53,100 --> 00:08:55,250 És akkor hogyan mondanál A in-- 197 00:08:55,250 --> 00:08:56,910 >> Közönség: 10. 198 00:08:56,910 --> 00:08:58,243 CAMILLE REKHSON: Mondjuk it-- sajnálom? 199 00:08:58,243 --> 00:08:58,990 Közönség: 10. 200 00:08:58,990 --> 00:09:02,052 CAMILLE REKHSON: Igen, ez a második része. 201 00:09:02,052 --> 00:09:04,010 És akkor, ha tesz E két együttes, ez 202 00:09:04,010 --> 00:09:06,440 hogyan kap a teljes bináris hexadecimális. 203 00:09:06,440 --> 00:09:06,940 Igen? 204 00:09:06,940 --> 00:09:10,620 >> Közönség: Tudni, hogy A 1010, mit kell megjegyeznünk? 205 00:09:10,620 --> 00:09:12,460 Vagy tudsz általam elvártnál 206 00:09:12,460 --> 00:09:14,380 >> CAMILLE REKHSON: Tehát, ha you-- a differe-- így 207 00:09:14,380 --> 00:09:16,790 ha mész keresztül bináris, alapvetően bináris 208 00:09:16,790 --> 00:09:20,550 van 0 és 9 között, majd egy az F, mint a 16 dolog. 209 00:09:20,550 --> 00:09:25,420 Tehát ha egészen 0 9-- ha you-- 9, majd egy, alapvetően 210 00:09:25,420 --> 00:09:29,640 ha át azt decimálisra A lenne, mint 10, a B lenne, mint 11. 211 00:09:29,640 --> 00:09:35,616 És ha úgy gondolja, a bináris 1010 8 és 2, 212 00:09:35,616 --> 00:09:37,990 mert ez a két Helyek, hogy összeadja 10, amely 213 00:09:37,990 --> 00:09:41,820 Pontosan egy egyenértékű. 214 00:09:41,820 --> 00:09:45,114 Szóval ez a fajta egyszerű módja annak, hogy gondolni. 215 00:09:45,114 --> 00:09:46,405 Más kérdésre hexadecimális. 216 00:09:46,405 --> 00:09:50,510 217 00:09:50,510 --> 00:09:56,870 >> OK, így most fogunk venni Egy pillantás bitműveletek. 218 00:09:56,870 --> 00:09:58,882 Tehát ezek is határozottan jön a kvíz. 219 00:09:58,882 --> 00:10:00,590 Tudom, mi nem Dolgoztam velük sokat. 220 00:10:00,590 --> 00:10:02,756 De mi csak csinálni egy kicsit felülvizsgálatot az. 221 00:10:02,756 --> 00:10:05,490 Így remélhetőleg ezek lesznek a kicsit ismerős neked. 222 00:10:05,490 --> 00:10:10,220 Így a hat bitműveletek hogy már itt vannak felsorolva. 223 00:10:10,220 --> 00:10:13,340 És hadd manipulálni egyes biteket. 224 00:10:13,340 --> 00:10:16,676 Tehát az ÉS operátor egyetlen jelet. 225 00:10:16,676 --> 00:10:18,550 Ne tévesszük össze, hogy a A dupla-jel, 226 00:10:18,550 --> 00:10:21,840 amely a logikai ÉS, hogy lehetővé teszi számunkra, hasonlítsa össze a két dolgot. 227 00:10:21,840 --> 00:10:25,860 >> Az egy- és hogy miként lehet manipulálni a dolgokat bitenkénti. 228 00:10:25,860 --> 00:10:29,910 Szóval ez ad nekünk az eredménye 1, ha mindkét Az érvek, hogy mi összehasonlítjuk 229 00:10:29,910 --> 00:10:32,440 a same-- vagy 1. 230 00:10:32,440 --> 00:10:39,370 És a függőleges sáv, VAGY, ad US 1, ha legalább egyikük jelentése 1. 231 00:10:39,370 --> 00:10:41,460 Tehát alapvetően pontosan amit a szavak utalnak. 232 00:10:41,460 --> 00:10:46,640 És ha a két bit 1, 1 és 1 ad nekünk 1. 233 00:10:46,640 --> 00:10:51,769 De az OR, ha ez 0 vagy 1, vagy 1 vagy 1, mindkét esetben, 234 00:10:51,769 --> 00:10:53,060 van 1, mint hogy az egyik közülük. 235 00:10:53,060 --> 00:10:54,101 Szóval akkor kapnánk 1. 236 00:10:54,101 --> 00:10:56,320 Közönség: Mit értesz hogy azt mondja, ez ad 1? 237 00:10:56,320 --> 00:10:58,236 >> CAMILLE REKHSON: A eredmény. Fajta, mint te 238 00:10:58,236 --> 00:11:05,060 would-- ha nem 0 és 1, a eredményeként lenne 1-- vagy 0 239 00:11:05,060 --> 00:11:08,920 és 1 az eredménye ez lenne 0, sajnálom. 240 00:11:08,920 --> 00:11:12,190 Igen, ez a fajta a eredményeként az expressziós. 241 00:11:12,190 --> 00:11:16,520 És akkor ez a kalap szimbólum az XOR, vagy kizárólagos VAGY. 242 00:11:16,520 --> 00:11:21,920 Tehát ez azt jelenti, kizárólag egy vagy pontosan az egyik két érv egyenlő 1. 243 00:11:21,920 --> 00:11:24,210 És akkor adna 1. 244 00:11:24,210 --> 00:11:27,370 >> A kis kacskaringós vonalat a NEM műveleti. 245 00:11:27,370 --> 00:11:31,940 Tehát ellentétben a többiekkel, amely működnek egy pár bit, 246 00:11:31,940 --> 00:11:34,930 A NOT operátor csak úgy Egy kicsit, és fordítsa. 247 00:11:34,930 --> 00:11:37,640 Tehát, ha give-- ha nem Nem 0, akkor kapsz 1. 248 00:11:37,640 --> 00:11:40,248 És ha nem teszed meg 1, ez adna 0. 249 00:11:40,248 --> 00:11:40,748 Igen? 250 00:11:40,748 --> 00:11:41,150 >> Közönség: Mi a különbség között, vagy egy vonal 251 00:11:41,150 --> 00:11:41,983 és a VAGY két? 252 00:11:41,983 --> 00:11:44,430 253 00:11:44,430 --> 00:11:46,930 CAMILLE REKHSON: Tehát a OR két vonal a logikai VAGY. 254 00:11:46,930 --> 00:11:52,430 Szóval ez összehasonlításához két teljes egészek, vagy two-- 255 00:11:52,430 --> 00:11:53,730 hogy ha a dolgok egyenlők. 256 00:11:53,730 --> 00:11:58,340 Vagy mint ezt megegyezik ezzel, VAGY ez megegyezik az ilyen típusú dolog. 257 00:11:58,340 --> 00:12:04,090 Mivel az egységes bárban vagy, a dolgokat csinál bitwise. 258 00:12:04,090 --> 00:12:04,590 Igen. 259 00:12:04,590 --> 00:12:06,680 >> Közönség: Mit értesz az alatt, bitenkénti? 260 00:12:06,680 --> 00:12:10,330 >> CAMILLE REKHSON: Szóval bitenkénti dolgozik közvetlenül a bit bináris. 261 00:12:10,330 --> 00:12:11,596 >> Közönség: Ó, értem. 262 00:12:11,596 --> 00:12:15,000 >> CAMILLE REKHSON: Igen, dolgozó 0 és 1-es. 263 00:12:15,000 --> 00:12:18,310 Megteszünk mindent, egy-két példa erre után, csak azért, hogy ne legyen túl zavaros. 264 00:12:18,310 --> 00:12:20,970 És akkor az utolsó kettő a bal shift és a jobb oldali Shift. 265 00:12:20,970 --> 00:12:23,970 Amelyek alapvetően két kisebb, mint jelek vagy két nagyobb, mint jelek. 266 00:12:23,970 --> 00:12:26,294 És tolódott kicsit az adott helyek száma 267 00:12:26,294 --> 00:12:27,710 hogy adja meg az irányt. 268 00:12:27,710 --> 00:12:29,980 Így lenne akár műszak balra, vagy jobbra. 269 00:12:29,980 --> 00:12:30,480 Igen? 270 00:12:30,480 --> 00:12:32,470 Közönség: Mi a szintaxis fut? 271 00:12:32,470 --> 00:12:33,950 >> CAMILLE REKHSON: Megyünk megy keresztül egy példát a második. 272 00:12:33,950 --> 00:12:35,680 Így remélhetőleg, hogy segíteni fog. 273 00:12:35,680 --> 00:12:41,060 Bármilyen kérdésre csak mi van itt, before-- OK. 274 00:12:41,060 --> 00:12:43,821 Így megy keresztül néhány példát. 275 00:12:43,821 --> 00:12:45,070 Kezdjük az ÉS is. 276 00:12:45,070 --> 00:12:47,880 Mit tennénk, hogy ha meg is 0 és 1? 277 00:12:47,880 --> 00:12:48,899 >> Közönség: 0. 278 00:12:48,899 --> 00:12:50,690 CAMILLE REKHSON: OK, és ha mégis 1 és 1? 279 00:12:50,690 --> 00:12:51,622 Közönség: 1. 280 00:12:51,622 --> 00:12:54,490 CAMILLE REKHSON: Igen, mi lenne, ha nem 0 vagy egy? 281 00:12:54,490 --> 00:12:55,094 Közönség: 1. 282 00:12:55,094 --> 00:12:56,510 CAMILLE REKHSON: Hogyan kb 1 vagy 1? 283 00:12:56,510 --> 00:12:57,404 Közönség: 1. 284 00:12:57,404 --> 00:13:00,410 CAMILLE REKHSON: OK, mit szólnál 0 XOR 1? 285 00:13:00,410 --> 00:13:01,380 Közönség: 1. 286 00:13:01,380 --> 00:13:03,120 CAMILLE REKHSON: És 1 XOR 1? 287 00:13:03,120 --> 00:13:03,902 Közönség: 0. 288 00:13:03,902 --> 00:13:05,360 CAMILLE REKHSON: Ti vagytok jók. 289 00:13:05,360 --> 00:13:06,510 Mit szólnál NEM 0? 290 00:13:06,510 --> 00:13:07,265 >> Közönség: 1. 291 00:13:07,265 --> 00:13:08,390 CAMILLE REKHSON: nem 1-gyel? 292 00:13:08,390 --> 00:13:09,602 Közönség: 0. 293 00:13:09,602 --> 00:13:12,810 CAMILLE REKHSON: OK gombra, majd az utolsó az ember egy kicsit az egyik a váltás. 294 00:13:12,810 --> 00:13:18,700 Tehát, ha kezdetben x 8, és akkor y x balra mozdult 3, 295 00:13:18,700 --> 00:13:19,760 mi lenne, hogy adjon nekünk? 296 00:13:19,760 --> 00:13:20,676 >> Közönség: [hallható]. 297 00:13:20,676 --> 00:13:22,817 298 00:13:22,817 --> 00:13:24,150 CAMILLE REKHSON: Mondd ezt még egyszer. 299 00:13:24,150 --> 00:13:26,740 Közönség: [hallható]. 300 00:13:26,740 --> 00:13:28,766 CAMILLE REKHSON: Szóval, ez a valóban ad nekünk 64. 301 00:13:28,766 --> 00:13:29,876 Közönség: [hallható]. 302 00:13:29,876 --> 00:13:32,250 CAMILLE REKHSON: Szóval én csak fog írni ezt itt, 303 00:13:32,250 --> 00:13:34,700 így ez teszi egy kicsit értelme. 304 00:13:34,700 --> 00:13:45,120 Ha van 2 a 0, 2 az 1, 2 a 2, 2-3 lesz 8. 305 00:13:45,120 --> 00:13:52,380 És ha azt akarjuk, hogy műszak 3 több bitet balra, az lenne 2 a 4, 306 00:13:52,380 --> 00:13:57,270 2 az 5, és 2. a 6, és 2. a 6 64. 307 00:13:57,270 --> 00:13:59,920 308 00:13:59,920 --> 00:14:01,110 Van ennek értelme? 309 00:14:01,110 --> 00:14:05,291 310 00:14:05,291 --> 00:14:05,791 Igen. 311 00:14:05,791 --> 00:14:08,725 >> Közönség: Ez azt váltás minden az 1- és 0 a bináris számot the-- 312 00:14:08,725 --> 00:14:09,600 >> CAMILLE REKHSON: Igen. 313 00:14:09,600 --> 00:14:12,150 314 00:14:12,150 --> 00:14:15,170 És akkor nem kell aggódni a kvíz ezekről lehet negatív. 315 00:14:15,170 --> 00:14:19,510 Mi nem leszel foglalkozik negatív eltolódásokat semmilyen módon. 316 00:14:19,510 --> 00:14:24,070 Bármilyen további kérdése van ennek? 317 00:14:24,070 --> 00:14:24,570 Igen. 318 00:14:24,570 --> 00:14:30,570 >> Közönség: Ha ez áttevődik a jogot, mindaz, ami wasn't-- bármi, 319 00:14:30,570 --> 00:14:33,220 eredetileg nem szerepelt a dolog 0? 320 00:14:33,220 --> 00:14:37,110 >> CAMILLE REKHSON: Igen, akkor csak adj 0-on az eredeti. 321 00:14:37,110 --> 00:14:38,110 Igen. 322 00:14:38,110 --> 00:14:41,540 >> Közönség: Tehát mi, hogy 100 jobbra tolódott háromszor? 323 00:14:41,540 --> 00:14:43,290 CAMILLE REKHSON: 100 jobbra tolódott, 324 00:14:43,290 --> 00:14:46,057 így telne az összes 1-es és 0 és csak megváltoztatni azokat 325 00:14:46,057 --> 00:14:48,515 jobbra, ahányszor Ön azt jobbra tolódtak. 326 00:14:48,515 --> 00:14:50,452 >> Közönség: [hallható]? 327 00:14:50,452 --> 00:14:53,160 CAMILLE REKHSON: Nos, 100-- is beszélsz 100 bináris, 328 00:14:53,160 --> 00:14:53,910 vagy 100 decimális? 329 00:14:53,910 --> 00:14:55,750 Közönség: Sajnálom, 100 bináris. 330 00:14:55,750 --> 00:14:58,916 >> CAMILLE REKHSON: 100 bináris, ha eltolja azt a right-- 331 00:14:58,916 --> 00:15:01,040 ha jobbra tolódtak egyszer, akkor válna 10. 332 00:15:01,040 --> 00:15:04,430 Ha eltolja azt a jogot, kétszer, válna 001. 333 00:15:04,430 --> 00:15:07,590 És akkor, ha váltani újra, Ön milyen elveszíteni a kicsit. 334 00:15:07,590 --> 00:15:09,610 Igen, ez csak 0. 335 00:15:09,610 --> 00:15:12,140 Más kérdés ezzel kapcsolatban? 336 00:15:12,140 --> 00:15:12,835 Igen. 337 00:15:12,835 --> 00:15:14,695 >> Közönség: Tehát akkor lesz 000. 338 00:15:14,695 --> 00:15:17,020 >> CAMILLE REKHSON: Igen. 339 00:15:17,020 --> 00:15:22,150 OK, szóval menjünk át kis ASCII matek. 340 00:15:22,150 --> 00:15:25,120 Tehát karakter alapvetően kell kezelni, mint egészek 341 00:15:25,120 --> 00:15:28,290 alapján ASCII értékeket. 342 00:15:28,290 --> 00:15:35,250 Tehát, ha ültünk int Egy egyenlő 65, INT B felér egy plusz 1, int char C egyenlő 343 00:15:35,250 --> 00:15:39,565 D mínusz 1, és char D értéke 68, mi lenne kinyomtatni az alján? 344 00:15:39,565 --> 00:15:46,150 345 00:15:46,150 --> 00:15:49,720 >> Szóval, mi nyomtatás these-- áldja you-- vagyunk 346 00:15:49,720 --> 00:15:53,520 nyomtatás ezeket mind ki, mint CHARS alapuló százalékos C. 347 00:15:53,520 --> 00:15:56,320 Szóval alapvetően kinyomtatásával a karakter értékét mind a négy 348 00:15:56,320 --> 00:15:58,600 ezeket a változókat. 349 00:15:58,600 --> 00:16:04,280 Mint egy csipetnyi, 65 az ASCII értéke A tőke A. Talán ez segített. 350 00:16:04,280 --> 00:16:04,780 Mi? 351 00:16:04,780 --> 00:16:05,530 >> Közönség: ABCD. 352 00:16:05,530 --> 00:16:07,780 >> CAMILLE REKHSON: Igen, ez nyomtassa ki pontosan, 353 00:16:07,780 --> 00:16:10,290 ABCD, mert mi meg int a egyenlő az ASCII értéke A. 354 00:16:10,290 --> 00:16:13,085 Tehát, ha nyomtatni, hogy ki, mint egy karakter, csak hogy a tőke egy, 355 00:16:13,085 --> 00:16:15,540 A plusz 1 lenne nagybetűvel ASCII. 356 00:16:15,540 --> 00:16:19,260 D mínusz 1 lenne fővárosban C ASCII. 357 00:16:19,260 --> 00:16:25,185 És 68 ASCII értéke D. kérdések ASCII? 358 00:16:25,185 --> 00:16:25,685 Igen. 359 00:16:25,685 --> 00:16:31,370 >> Közönség: Szóval, a idézőjelbe Egy, nem, hogy a változás nagy része az ASCII? 360 00:16:31,370 --> 00:16:34,456 >> CAMILLE REKHSON: Ez uses-- meg count-- egyetlen idézőjelbe A 361 00:16:34,456 --> 00:16:35,330 teszi, hogy egy karaktert. 362 00:16:35,330 --> 00:16:37,600 És ha van dolgunk, ez a szám form-- 363 00:16:37,600 --> 00:16:40,320 így amikor, mint ebben az esetben, ez kezelik, mint egy int-- 364 00:16:40,320 --> 00:16:44,664 akkor lenne foglalkozni vele ASCII értéket. 365 00:16:44,664 --> 00:16:45,164 Igen. 366 00:16:45,164 --> 00:16:50,060 >> Közönség: Ajánlom, hogy van egy ASCII hivatkozás asztalra? 367 00:16:50,060 --> 00:16:51,900 >> CAMILLE REKHSON: Nem think-- 368 00:16:51,900 --> 00:16:54,720 >> Közönség: Vagy ez csak foglalkozik ezekkel? 369 00:16:54,720 --> 00:16:56,210 >> CAMILLE REKHSON: Azt hiszem, megtenném könnyű dolog. 370 00:16:56,210 --> 00:16:58,168 Én nem hiszem, hogy lenne fáj, hogy írja le lehet 371 00:16:58,168 --> 00:17:02,653 mi tőke A és kisbetűs A vannak, csak mik azok a tartományok kezdve. 372 00:17:02,653 --> 00:17:05,819 De nem hiszem, hogy meg kell, hogy tegyen meg minden a tér, hogy egy egész ASCII tábla. 373 00:17:05,819 --> 00:17:06,803 Igen. 374 00:17:06,803 --> 00:17:09,755 >> Közönség: Mi a különbség közötti mondván int az A és C char, 375 00:17:09,755 --> 00:17:12,720 mint te a csúcson? 376 00:17:12,720 --> 00:17:17,380 >> CAMILLE REKHSON: Tehát csak hogyan, ami a memóriában tárolt. 377 00:17:17,380 --> 00:17:20,010 De tudod kezelni azt mindkét irányban. 378 00:17:20,010 --> 00:17:23,274 Mint látjuk itt, mi print ki az A, mint egy karaktert. 379 00:17:23,274 --> 00:17:24,690 Közönség: Szóval ez ugyanaz, mint egy? 380 00:17:24,690 --> 00:17:25,606 CAMILLE REKHSON: Igen. 381 00:17:25,606 --> 00:17:28,030 382 00:17:28,030 --> 00:17:29,537 Más kérdés? 383 00:17:29,537 --> 00:17:32,022 >> Közönség: Szóval, százalékban C mond nyomtatásához char? 384 00:17:32,022 --> 00:17:33,016 >> CAMILLE REKHSON: Igen. 385 00:17:33,016 --> 00:17:35,501 >> Közönség: Tehát akkor is, ha A-nak csak definiálták, mint egy egész szám, 386 00:17:35,501 --> 00:17:37,569 ha megpróbáljuk kinyomtatni a char mint 65, akkor would-- 387 00:17:37,569 --> 00:17:40,110 CAMILLE REKHSON: Úgy megy Alapvetően megy ASCII chart 388 00:17:40,110 --> 00:17:42,990 és kapja amit karakterek ASCII chart, hogy 65. 389 00:17:42,990 --> 00:17:43,840 >> Közönség: Köszönöm. 390 00:17:43,840 --> 00:17:44,756 >> CAMILLE REKHSON: Igen. 391 00:17:44,756 --> 00:17:45,445 Igen? 392 00:17:45,445 --> 00:17:50,620 >> Közönség: Tehát, ha te% I,% I, % I,% I, igaz csak print-- 393 00:17:50,620 --> 00:17:52,620 CAMILLE REKHSON: Igen, ha nem mind a 4% I-é, 394 00:17:52,620 --> 00:17:57,170 lenne kinyomtatni az ASCII értékek mind a négy említett. 395 00:17:57,170 --> 00:17:59,483 Más kérdés? 396 00:17:59,483 --> 00:18:06,310 OK, így kör, alapvetően ez a segít meghatározni, ahol 397 00:18:06,310 --> 00:18:08,450 a változó létezik a programban. 398 00:18:08,450 --> 00:18:11,910 Szóval beszéltünk két különböző típusú körét, globális és lokális. 399 00:18:11,910 --> 00:18:14,560 >> Ha egy változó globális hatókörű, ez azt jelenti, a teljes program 400 00:18:14,560 --> 00:18:16,292 fér hozzá, hogy a változó. 401 00:18:16,292 --> 00:18:18,000 És ha globálisan hatálya változó, akkor 402 00:18:18,000 --> 00:18:19,510 Kijelentem, hogy mielőtt a fő funkciója. 403 00:18:19,510 --> 00:18:20,830 Így kell ezt csinálni rögtön a denevér. 404 00:18:20,830 --> 00:18:22,950 És akkor az egész programot tud hozzáférni. 405 00:18:22,950 --> 00:18:26,070 >> Ha csak lokálisan hatókörű, hogy változó korlátozódik egy adott régióban. 406 00:18:26,070 --> 00:18:29,705 Tehát, ha kijelentem belül a hurok, csak az, hogy a hurok tud hozzáférni. 407 00:18:29,705 --> 00:18:31,580 Vagy ha kijelentem belül egy meghatározott feladat, 408 00:18:31,580 --> 00:18:34,940 Csak ezzel a feladattal is hozzáférhetők. 409 00:18:34,940 --> 00:18:38,265 Kérdések a hatálya. 410 00:18:38,265 --> 00:18:41,570 >> OK, így a funkció prototípus. 411 00:18:41,570 --> 00:18:45,360 Alapvetően azért, mert a C, ha lefordítja, olvassa felülről lefelé. 412 00:18:45,360 --> 00:18:48,800 Ha hogy függvényeket végén a kódban, 413 00:18:48,800 --> 00:18:51,670 A fordító nem tudja, hogy ez a funkció létezik. 414 00:18:51,670 --> 00:18:55,690 Tehát mi általunk használt prototípusok, amely alapvetően mondja a fordító, 415 00:18:55,690 --> 00:18:58,710 van ilyen funkció, menj nézd mert később a kódot. 416 00:18:58,710 --> 00:19:00,900 Tehát az utat, amit csinál Egy függvény prototípus 417 00:19:00,900 --> 00:19:03,020 Pontosan hogyan kezdje off írásban függvényében. 418 00:19:03,020 --> 00:19:05,310 Ön adja meg a visszatérési típusa, A függvény neve, 419 00:19:05,310 --> 00:19:08,930 majd olyan érveket hogy ez a függvény. 420 00:19:08,930 --> 00:19:13,970 >> Szóval, hogy nézd meg egy gyors példát, ebben a esetre, ha a funkciót, hogy mi használ itt 421 00:19:13,970 --> 00:19:15,340 Ez alapvetően egy kocka funkciót. 422 00:19:15,340 --> 00:19:19,170 Tehát vesz egy egész és vissza a kocka, hogy egész. 423 00:19:19,170 --> 00:19:23,190 Szóval azért, mert írtam, hogy funkció alatt a fő funkciója, 424 00:19:23,190 --> 00:19:26,300 és szeretnénk használni a kimenete hogy-- vagy mi 425 00:19:26,300 --> 00:19:28,630 szeretnénk, hogy a funkció a mi fő funkciója, 426 00:19:28,630 --> 00:19:31,980 tesszük a prototípus módja a tetején a programunk. 427 00:19:31,980 --> 00:19:34,460 És akkor, ha hívjuk ez a mi fő funkciója, 428 00:19:34,460 --> 00:19:38,800 A fordító tudja, hogy ez a funkció később írt, és megy keresni azt, 429 00:19:38,800 --> 00:19:40,910 és fel fogja használni rendesen. 430 00:19:40,910 --> 00:19:45,190 Kérdések a prototípus? 431 00:19:45,190 --> 00:19:45,690 Igen. 432 00:19:45,690 --> 00:19:46,940 >> Közönség: Tehát mi a lényeg? 433 00:19:46,940 --> 00:19:49,374 434 00:19:49,374 --> 00:19:50,915 Nem értem a lényeg a prototípus. 435 00:19:50,915 --> 00:19:52,820 Miért nem volna ez ott? 436 00:19:52,820 --> 00:19:54,903 >> CAMILLE REKHSON: Nos, ha ez itt lent, majd amikor 437 00:19:54,903 --> 00:19:57,020 kapsz sorban kocka x a fő funkciója, 438 00:19:57,020 --> 00:19:59,495 a fordító fogalma sincs, hogy A kocka funkció valóban létezik. 439 00:19:59,495 --> 00:20:01,310 >> Közönség: Nem tudnád Csak tedd elé? 440 00:20:01,310 --> 00:20:02,350 >> CAMILLE REKHSON: Ez Jobb kódolási gyakorlat 441 00:20:02,350 --> 00:20:04,150 hogy tedd alá a fő funkciója. 442 00:20:04,150 --> 00:20:06,350 Szóval ezért mi lenne nem a prototípus. 443 00:20:06,350 --> 00:20:07,680 Csak azért, mert, ha Volt egy csomó funkció, 444 00:20:07,680 --> 00:20:10,180 akkor lenne igazán rendetlen olvassa el mindazokat a funkciókat, 445 00:20:10,180 --> 00:20:12,030 mire a húst a program. 446 00:20:12,030 --> 00:20:13,888 Ja, és volt egy q-- 447 00:20:13,888 --> 00:20:16,796 >> Közönség: Szóval, van nyilvánításáról A változó fel a tetején 448 00:20:16,796 --> 00:20:18,795 így érheti meg, ez egy globális változó? 449 00:20:18,795 --> 00:20:21,119 Az, hogy ehhez hasonló ahol ez nyilvánította 450 00:20:21,119 --> 00:20:23,660 ott, úgy, hogy tudja, hogy ez lesz később visszatérhetsz 451 00:20:23,660 --> 00:20:24,762 és tudod használni? 452 00:20:24,762 --> 00:20:26,146 >> CAMILLE REKHSON: Igen. 453 00:20:26,146 --> 00:20:26,646 Igen. 454 00:20:26,646 --> 00:20:30,414 >> Közönség: Amennyiben the-- további funkciók létrehozott kulcsot kívül 455 00:20:30,414 --> 00:20:31,840 ez a dolog, or-- 456 00:20:31,840 --> 00:20:33,760 >> CAMILLE REKHSON: Igen, ha teremt más functions-- fő 457 00:20:33,760 --> 00:20:36,385 Maga a function-- így ha te létre egyéb funkciókat, 458 00:20:36,385 --> 00:20:37,555 kell őket kívülről. 459 00:20:37,555 --> 00:20:38,055 Igen? 460 00:20:38,055 --> 00:20:39,734 >> Közönség: Mi százalékkal D? 461 00:20:39,734 --> 00:20:42,150 CAMILLE REKHSON: Százalékos D ugyanaz, mint a százalékos I. 462 00:20:42,150 --> 00:20:45,915 Arra utal, hogy egy egész szám. 463 00:20:45,915 --> 00:20:47,895 Igen. 464 00:20:47,895 --> 00:20:50,370 >> Közönség: Tehát mi int main csinál? 465 00:20:50,370 --> 00:20:51,724 Mi volt az űrt? 466 00:20:51,724 --> 00:20:53,890 CAMILLE REKHSON: Érvénytelen mondja tart semmilyen érvet. 467 00:20:53,890 --> 00:20:55,320 Közönség: [hallható]. 468 00:20:55,320 --> 00:20:57,570 CAMILLE REKHSON: Tud beszélni egy kicsit hangosabban, bocs? 469 00:20:57,570 --> 00:21:00,153 Közönség: Igen, sajnálom, miért teszel érvényteleníti az elsőt, 470 00:21:00,153 --> 00:21:02,297 majd int bemenet a második? 471 00:21:02,297 --> 00:21:04,720 472 00:21:04,720 --> 00:21:07,470 CAMILLE REKHSON: Ó, az a két different-- a fő funkciója 473 00:21:07,470 --> 00:21:09,290 szemben a kocka funkció? 474 00:21:09,290 --> 00:21:13,360 Tehát a fő funkciója, használjuk semmis, mivel ott 475 00:21:13,360 --> 00:21:16,870 nincsenek paraméterei, hogy hozott. 476 00:21:16,870 --> 00:21:19,425 Míg a kocka funkciót, van egy bemenet. 477 00:21:19,425 --> 00:21:22,300 Ezért azt mondja int, bemenet, mert vannak olyan érvek, hogy mi vagyunk 478 00:21:22,300 --> 00:21:24,571 Figyelembe kell futtatni a funkciót. 479 00:21:24,571 --> 00:21:25,070 Igen. 480 00:21:25,070 --> 00:21:27,770 481 00:21:27,770 --> 00:21:30,464 Vannak-e olyan kérdések? 482 00:21:30,464 --> 00:21:34,520 >> OK, majd gyorsan lebegőpontos pontatlanság. 483 00:21:34,520 --> 00:21:37,200 Tehát van végtelen sok valós számok. 484 00:21:37,200 --> 00:21:38,950 De már csak egy véges számú bitet 485 00:21:38,950 --> 00:21:42,880 hogy tudjuk használni, hogy megjelenjen az említett számok, és az őket képviselő. 486 00:21:42,880 --> 00:21:45,020 Így aztán a végén néhány pontatlanság. 487 00:21:45,020 --> 00:21:49,190 És a számok nem Mindig elég pontosan mit 488 00:21:49,190 --> 00:21:51,810 azt hiszik, hogy ha éppen foglalkozó lebegőpontos. 489 00:21:51,810 --> 00:21:53,650 Ez csak valami jó tudni. 490 00:21:53,650 --> 00:21:56,628 Kérdések erről? 491 00:21:56,628 --> 00:21:59,610 Igen. 492 00:21:59,610 --> 00:22:02,090 >> Közönség: Ez utalva Az ötlet, hogy kicsit túlfolyó 493 00:22:02,090 --> 00:22:03,089 ez volt az előadás? 494 00:22:03,089 --> 00:22:06,080 Volt, hogy valami külön? 495 00:22:06,080 --> 00:22:09,650 >> CAMILLE REKHSON: Ők teljesen különálló, igen. 496 00:22:09,650 --> 00:22:11,160 Jólvan szuper. 497 00:22:11,160 --> 00:22:16,369 498 00:22:16,369 --> 00:22:17,452 PULAK Goyal: Üdv mindenkinek. 499 00:22:17,452 --> 00:22:19,872 A nevem Pulak, és én megy át mutatók. 500 00:22:19,872 --> 00:22:23,260 501 00:22:23,260 --> 00:22:25,720 OK, úgyhogy elsőre gondolnánk mit memória néz ki. 502 00:22:25,720 --> 00:22:28,610 Szóval mint látható itt, hogy a memória és azt szét kell osztani 503 00:22:28,610 --> 00:22:30,090 egy csomó blokkok. 504 00:22:30,090 --> 00:22:33,150 És mi minden hivatkozás blokkolni egy címet, ugye? 505 00:22:33,150 --> 00:22:37,196 És emlékszik még rá valaki, hogy milyen típusú jelölést használjuk annak jelölésére, a címe? 506 00:22:37,196 --> 00:22:38,510 >> Közönség: hexadecimális, 0X. 507 00:22:38,510 --> 00:22:39,510 >> PULAK Goyal: hexadecimális, ugye? 508 00:22:39,510 --> 00:22:41,509 Tehát a 0X jelenti vagyunk beszélünk hexadecimális. 509 00:22:41,509 --> 00:22:45,740 510 00:22:45,740 --> 00:22:48,360 OK, így Hogyan teremtjük mutatókat? 511 00:22:48,360 --> 00:22:51,960 Így vesszük a típus, amit tedd it-- adhat csillagot is, 512 00:22:51,960 --> 00:22:53,760 majd adjuk hozzá a változó nevét. 513 00:22:53,760 --> 00:22:59,280 Tehát a példák láttunk int csillagos x, y char csillagos, és úszó kezdeni részt. 514 00:22:59,280 --> 00:23:01,380 Tehát amikor azt mondom int csillagos x, tud valaki mondja meg 515 00:23:01,380 --> 00:23:03,965 amit én egyfajta beszél ott? 516 00:23:03,965 --> 00:23:05,710 >> Közönség: A helyszín a lemezen. 517 00:23:05,710 --> 00:23:06,890 >> PULAK Goyal: Sajnálom, mi? 518 00:23:06,890 --> 00:23:07,723 Meg tudnád ismételni, hogy? 519 00:23:07,723 --> 00:23:09,250 Közönség: A helyszín a lemezen. 520 00:23:09,250 --> 00:23:12,390 >> PULAK Goyal: Tehát akkor mi actually-- Úgy értettem, amikor van int csillagos x, 521 00:23:12,390 --> 00:23:14,400 azt mondjuk teremt egy mutató, és ez 522 00:23:14,400 --> 00:23:17,130 tárolhatja a címét egy változó, ami egy int, ugye? 523 00:23:17,130 --> 00:23:21,810 Tehát char csillagos y, hozunk létre egy mutatót 524 00:23:21,810 --> 00:23:24,220 hogy képes tárolni a címet Egy változó, hogy ez egy char. 525 00:23:24,220 --> 00:23:26,270 Szóval, hogy van értelme mindenkinek? 526 00:23:26,270 --> 00:23:29,600 Oké, rendben 527 00:23:29,600 --> 00:23:33,450 >> OK, így a mutató, vannak Két fontos műveletet, amit tehetünk. 528 00:23:33,450 --> 00:23:36,630 Van hivatkozva, és Van dereferencing. 529 00:23:36,630 --> 00:23:37,130 Igen? 530 00:23:37,130 --> 00:23:38,760 >> Közönség: Tudnál menni egy kicsit lassabban? 531 00:23:38,760 --> 00:23:39,510 >> PULAK Goyal: Persze. 532 00:23:39,510 --> 00:23:45,350 Ja, so-- Ja, hogy kérdéseket tegyenek fel, ahogy megy valamint ha you-- ha valami nem világos. 533 00:23:45,350 --> 00:23:47,240 Szóval mi hivatkozva és dereferencing. 534 00:23:47,240 --> 00:23:51,680 Tehát, ha azt akarjuk, hogy a cím Egy változó, majd a jelet. 535 00:23:51,680 --> 00:23:53,620 Mondjuk én nyilvánította int x valahol. 536 00:23:53,620 --> 00:23:57,450 És azt akarjuk, hogy a címe, hogy és adja át az, megtenném-jel x. 537 00:23:57,450 --> 00:24:01,260 És ha azt akarjuk, hogy a értéke hozzárendelve egy mutatót, 538 00:24:01,260 --> 00:24:04,670 használja a hivatkozás feloldási üzemeltetője, amely egy csillag. 539 00:24:04,670 --> 00:24:08,570 >> Tehát mondjuk kellett int csillagos x, és Nem volt ez mutat valamit. 540 00:24:08,570 --> 00:24:13,510 Ha azt akarom, hogy az értékét, amit ez mutatva, én csak csinálni csillagos x. 541 00:24:13,510 --> 00:24:14,960 Világos? 542 00:24:14,960 --> 00:24:16,390 Bármilyen kérdése van ez? 543 00:24:16,390 --> 00:24:18,129 Igen. 544 00:24:18,129 --> 00:24:25,275 >> Közönség: Tehát általánosságban, akkor nem lesz képes megtenni az x és csillag 545 00:24:25,275 --> 00:24:27,135 x ugyanazzal x. 546 00:24:27,135 --> 00:24:28,740 Ez helyes? 547 00:24:28,740 --> 00:24:31,800 Mert ha x egy változó, akkor van 548 00:24:31,800 --> 00:24:35,980 tenni az x kap, hogy egy mutató. 549 00:24:35,980 --> 00:24:40,810 De ha x egy mutató, akkor meg kell tennie csillagos x, hogy a változó. 550 00:24:40,810 --> 00:24:43,240 >> PULAK Goyal: Igen, így a kérdés az volt, hogy mikor 551 00:24:43,240 --> 00:24:45,750 mire használjuk a star-- ha azt használja a csillag, 552 00:24:45,750 --> 00:24:47,470 és mikor használjuk a jelet, és mi 553 00:24:47,470 --> 00:24:49,160 használni az azonos típusú változó? 554 00:24:49,160 --> 00:24:51,810 Így általában ha van, Például, egy int x, 555 00:24:51,810 --> 00:24:55,170 akkor inkább használja a és jelet kap a címe, hogy. 556 00:24:55,170 --> 00:24:58,220 Mert nem teszi értelme hódolat be x. 557 00:24:58,220 --> 00:25:04,220 Mivel ha lenne int csillagos x, akkor lenne a hivatkozás feloldási művelet 558 00:25:04,220 --> 00:25:07,910 mert semmi értelme sem volna használni az x ebben az esetben. 559 00:25:07,910 --> 00:25:09,582 Van ennek értelme? 560 00:25:09,582 --> 00:25:13,192 >> Közönség: így nem lehet és, majd egy mutatót? 561 00:25:13,192 --> 00:25:14,900 PULAK Goyal: Szóval technikailag, ténylegesen 562 00:25:14,900 --> 00:25:16,870 tehet a jelet a mutató. 563 00:25:16,870 --> 00:25:18,984 De ez ki a hatálya ebben az osztályban. 564 00:25:18,984 --> 00:25:21,900 A purpose-- a srácok " célokra, ha van mutatók, 565 00:25:21,900 --> 00:25:25,191 szeretné használni a hivatkozás feloldási üzemeltető hogy a kapcsolódó értéket, hogy. 566 00:25:25,191 --> 00:25:27,380 És ha már a rendszeres változók, mint egy int x, 567 00:25:27,380 --> 00:25:31,410 szeretné használni a jelet üzemben, hogy a címe, hogy. 568 00:25:31,410 --> 00:25:31,910 OKÉ? 569 00:25:31,910 --> 00:25:35,670 570 00:25:35,670 --> 00:25:38,850 >> OK, így nézzük meg pointerek és mi történik a motorháztető alatt. 571 00:25:38,850 --> 00:25:42,640 Tehát az első dolog, amit tettem itt A bejelentett int x = 5. 572 00:25:42,640 --> 00:25:48,460 A címe ez a változó jelentése 0x04, és ez az érték 5. 573 00:25:48,460 --> 00:25:52,940 Nézzük, mi történik A következő sorban. 574 00:25:52,940 --> 00:25:55,130 Így most kijelentem mutatóval. 575 00:25:55,130 --> 00:26:01,450 A cím 0x08, és érték az x címét. 576 00:26:01,450 --> 00:26:05,220 Van ennek értelme mindenkinek? 577 00:26:05,220 --> 00:26:06,507 Bármilyen kérdése van ez? 578 00:26:06,507 --> 00:26:09,130 579 00:26:09,130 --> 00:26:13,080 >> OK, és most lássuk, mi történik a következő sorban. 580 00:26:13,080 --> 00:26:18,140 Tehát ezt a következő sorban, van A címe példányt pedig 0x10, 581 00:26:18,140 --> 00:26:20,780 és értéke 5. 582 00:26:20,780 --> 00:26:23,570 Tehát az oka annak, hogy van öt ez azt mondtuk, dereference 583 00:26:23,570 --> 00:26:26,740 mutatót, ami azt nyilvánították int csillag. 584 00:26:26,740 --> 00:26:35,797 És ez így went-- amikor követéssel azt, ez azt mondtuk, rendben, mi van a nyílásba 0x04. 585 00:26:35,797 --> 00:26:36,630 És elment, hogy. 586 00:26:36,630 --> 00:26:40,785 És mi x egy x0-- 0x04, és ez az érték 5. 587 00:26:40,785 --> 00:26:41,660 Ennek van értelme? 588 00:26:41,660 --> 00:26:42,334 Igen? 589 00:26:42,334 --> 00:26:50,090 >> Közönség: Miért van az másolata címét mindössze 4 byte feletti x mutatót? 590 00:26:50,090 --> 00:26:52,318 >> PULAK Goyal: Igen, ez egy hiba on-- 591 00:26:52,318 --> 00:26:55,304 >> CAMILLE REKHSON: Szóval, igen, emlékszem ez van írva a hexadecimális. 592 00:26:55,304 --> 00:26:56,220 PULAK Goyal: Ó, igen. 593 00:26:56,220 --> 00:26:58,615 CAMILLE REKHSON: Tehát ez valójában 8, majd 16 594 00:26:58,615 --> 00:27:00,960 mert azt mondta, hogy, a mutató, emlékszem, 595 00:27:00,960 --> 00:27:05,330 a mi IDE lesz 8 bájt hosszú. 596 00:27:05,330 --> 00:27:06,080 PULAK Goyal: Igen. 597 00:27:06,080 --> 00:27:09,160 598 00:27:09,160 --> 00:27:12,540 Szóval, csak hogy tisztázzuk, pointerek 8 bájt hosszú. 599 00:27:12,540 --> 00:27:14,160 Int 4 bájt. 600 00:27:14,160 --> 00:27:18,380 Tehát az oka annak, hogy mi ugrott 0x04 hogy 0x08 601 00:27:18,380 --> 00:27:20,980 azért van, mert meg kellett csinál egy ugrás 8 bájt. 602 00:27:20,980 --> 00:27:24,396 És akkor for-- óta másolatot csak egy int, 603 00:27:24,396 --> 00:27:26,020 ez 4 byte, ami fele a 8 bájt. 604 00:27:26,020 --> 00:27:29,970 Szóval csak ugrani 0x10, amely két távol 0x08. 605 00:27:29,970 --> 00:27:33,100 606 00:27:33,100 --> 00:27:34,570 Más kérdés? 607 00:27:34,570 --> 00:27:36,850 OK, let's-- igen? 608 00:27:36,850 --> 00:27:39,245 >> Közönség: Miért nem az értéke int másolat 609 00:27:39,245 --> 00:27:45,000 Csak the-- miért van az, 5 helyett 0x04? 610 00:27:45,000 --> 00:27:46,270 >> PULAK Goyal: OK, miért van az, 5? 611 00:27:46,270 --> 00:27:51,600 OK, így amikor the-- úgyhogy először gondol erről szempontjából típusok. 612 00:27:51,600 --> 00:27:55,600 Szóval azt mondom, int másolatot egyenlő mutató csillag. 613 00:27:55,600 --> 00:27:57,490 Tehát mi az a típusú mutató? 614 00:27:57,490 --> 00:27:59,310 Ez egy int csillag. 615 00:27:59,310 --> 00:28:03,850 És amikor követéssel, hogy A típus válik int. 616 00:28:03,850 --> 00:28:06,570 Tehát mi azt várjuk, hogy tárolja Itt valójában egy int. 617 00:28:06,570 --> 00:28:07,965 Ennek van értelme? 618 00:28:07,965 --> 00:28:09,090 Közönség: Persze, kicsit. 619 00:28:09,090 --> 00:28:11,465 PULAK Goyal: Tehát általában akkor, úgy gondolja szempontjából típusú, 620 00:28:11,465 --> 00:28:15,607 segít megérteni, mi a érték típusát, hogy oda kellene mennünk. 621 00:28:15,607 --> 00:28:17,940 Szóval akkor általában zárja ki sok ilyen gyakori hibák 622 00:28:17,940 --> 00:28:21,790 gondolkodás szempontjából típusok. 623 00:28:21,790 --> 00:28:23,612 Hadd menjen át egy kicsit több diák. 624 00:28:23,612 --> 00:28:26,070 És mi tud kap kérdéseire a végén a mutató szekciója. 625 00:28:26,070 --> 00:28:28,910 626 00:28:28,910 --> 00:28:32,290 OK, így van egy hibás program itt. 627 00:28:32,290 --> 00:28:35,460 És így nem anyone-- tud valaki mondani nekem mi a baj ezzel a programmal? 628 00:28:35,460 --> 00:28:39,000 629 00:28:39,000 --> 00:28:40,820 Jobb, így mi vagyunk számítottam, hogy itt csinálni 630 00:28:40,820 --> 00:28:44,520 is-- mit akarunk csinálni van, hogy a változó int x 631 00:28:44,520 --> 00:28:48,350 és kapcsolja it-- hogy egyenlő 5 3 helyett, majd nyomtassa ki ezt. 632 00:28:48,350 --> 00:28:49,640 De ez nem történik. 633 00:28:49,640 --> 00:28:50,950 Tud valaki mondja meg, miért? 634 00:28:50,950 --> 00:28:51,934 Igen? 635 00:28:51,934 --> 00:28:54,840 >> Közönség: Amikor a funkció to_five veszi x hiszen ez az érv, 636 00:28:54,840 --> 00:28:58,130 nem veszi x maga, hanem ehelyett egy olyan másolat, egy, az ez. 637 00:28:58,130 --> 00:29:00,115 És ez képezi tevékenységét az adott. 638 00:29:00,115 --> 00:29:02,614 De azért, te nem megváltoztatni a tényleges értéke x. 639 00:29:02,614 --> 00:29:03,970 Mivel te [hallhatatlan]. 640 00:29:03,970 --> 00:29:07,950 >> PULAK Goyal: Jobb, Rendben, ha hívjuk 641 00:29:07,950 --> 00:29:10,100 A funkció to_five, mit csinálunk gondolkodik, 642 00:29:10,100 --> 00:29:12,550 adj egy példányt a értéket, hogy a funkció. 643 00:29:12,550 --> 00:29:16,010 Ezt a funkciót, akkor megy és csinál egy manipulációk. 644 00:29:16,010 --> 00:29:21,260 De ha egyszer visszatér, ez most ki A hatálya a fő funkciója van. 645 00:29:21,260 --> 00:29:24,750 És így x még mindig, sőt, egyenlő 3, és kinyomtatjuk 3. 646 00:29:24,750 --> 00:29:26,445 OK, így lássuk, hogy ez hogyan történik. 647 00:29:26,445 --> 00:29:29,430 648 00:29:29,430 --> 00:29:31,180 >> OK, így nincs semmi nyilvánította. 649 00:29:31,180 --> 00:29:34,490 Ezután, itt, x értéke egyenlő 3. 650 00:29:34,490 --> 00:29:40,820 És most is-- pozícióban Két, a még mindig nem hatályú. 651 00:29:40,820 --> 00:29:46,790 És most megyünk a harmadik helyen, ahol a most feltételezi az értéke 3. 652 00:29:46,790 --> 00:29:49,380 Négy, most változtatni egy 5. 653 00:29:49,380 --> 00:29:53,290 De most, amikor ugrunk vissza öt, ami a print, 654 00:29:53,290 --> 00:29:55,380 Egy most körbe. 655 00:29:55,380 --> 00:29:57,450 És x még mindig egyenlő 3. 656 00:29:57,450 --> 00:29:59,700 Van ennek értelme mindenkinek? 657 00:29:59,700 --> 00:30:03,010 OK, így most beszéljünk arról, hogyan tudjuk használni mutatók segít. 658 00:30:03,010 --> 00:30:06,140 Van valakinek valamilyen ötlete, hogy hogyan lehetne kijavítani ezt a mutatók? 659 00:30:06,140 --> 00:30:08,710 660 00:30:08,710 --> 00:30:11,490 >> Közönség: Veszel egy int csillagos ahelyett, hogy egy int a to_five. 661 00:30:11,490 --> 00:30:12,530 >> PULAK Goyal: Elnézést, tudna szólni? 662 00:30:12,530 --> 00:30:15,266 >> Közönség: Veszel egy int csillagos ahelyett, hogy egy int a to_five. 663 00:30:15,266 --> 00:30:16,140 PULAK Goyal: OK, igen. 664 00:30:16,140 --> 00:30:20,250 Úgyhogy pass-- helyett az elmúlás csak az érték, hadd adja át történő hivatkozással. 665 00:30:20,250 --> 00:30:21,690 Ez az új funkció, nem igaz? 666 00:30:21,690 --> 00:30:25,210 És így átadásával a címet, akkor tehetünk manipulációk a címet. 667 00:30:25,210 --> 00:30:27,400 És így vagyunk valójában, sőt, a változó x. 668 00:30:27,400 --> 00:30:30,570 Nézzük, hogyan működik. 669 00:30:30,570 --> 00:30:32,950 >> OK, így ebben a példában a fix it. 670 00:30:32,950 --> 00:30:38,000 Már megváltozott a aláírással A to_five hogy egy int 671 00:30:38,000 --> 00:30:40,540 csillag helyett csak egy int itt. 672 00:30:40,540 --> 00:30:45,470 Aztán hivatkozás feloldási ezt Egy és hozzá 5 hozzá. 673 00:30:45,470 --> 00:30:48,090 És most ez az akarat, sőt, print 5. 674 00:30:48,090 --> 00:30:51,960 Tehát lássuk, hogyan lépések itt dolgozni. 675 00:30:51,960 --> 00:30:55,200 >> Tehát az első lépés, nincs semmi kijelentette még. 676 00:30:55,200 --> 00:31:00,140 Tehát itt, a második lépésben, mondtunk x egyenlő 3, 677 00:31:00,140 --> 00:31:03,970 de még mindig nincs hatálya. 678 00:31:03,970 --> 00:31:08,100 Most a harmadik sorban, van x még mindig egyenlő három. 679 00:31:08,100 --> 00:31:14,150 És most, mi telt in-- mi tárolt most az x címét. 680 00:31:14,150 --> 00:31:16,760 Van ennek értelme mindenki, hogyan jutottunk, hogy? 681 00:31:16,760 --> 00:31:21,470 Jobb, mi van a amper-- ez hogyan elhaladtunk-jel x a függvény 682 00:31:21,470 --> 00:31:23,040 to_five. 683 00:31:23,040 --> 00:31:30,330 És akkor a következő sorra, mit mi, a mi dereference a. 684 00:31:30,330 --> 00:31:36,120 >> És dereferencing egy, képesek vagyunk változtatni az x értékét 3-5. 685 00:31:36,120 --> 00:31:38,560 Mivel x él azon a címen 0x12. 686 00:31:38,560 --> 00:31:42,440 687 00:31:42,440 --> 00:31:45,810 És akkor végül, amikor mi visszatérünk a fő, 688 00:31:45,810 --> 00:31:50,570 bár ez egy most ki hatálya, mi, sőt, megváltoztatta x. 689 00:31:50,570 --> 00:31:51,570 És ez 5. 690 00:31:51,570 --> 00:31:55,160 Bármilyen kérdése erről? 691 00:31:55,160 --> 00:31:56,036 Igen? 692 00:31:56,036 --> 00:31:58,185 >> Közönség: Meg tudja mondani, mi a jelet x volt? 693 00:31:58,185 --> 00:32:00,004 Azt hittem jelet volt, mint ÉS. 694 00:32:00,004 --> 00:32:03,480 695 00:32:03,480 --> 00:32:07,210 >> PULAK Goyal: Igen, így használjuk ugyanazt szimbóluma sok különböző dolog. 696 00:32:07,210 --> 00:32:11,470 Tehát itt, ha have-- a Ebben az esetben, ha van, 697 00:32:11,470 --> 00:32:19,380 I. guess-- így ebben az esetben, amikor van dolgunk, mutatók, 698 00:32:19,380 --> 00:32:23,640 ha fel a jelet előtt Egy int, változó int, vagy char, 699 00:32:23,640 --> 00:32:28,609 vagy áramlás, amit mondasz van, hogy nekem a címe ennek. 700 00:32:28,609 --> 00:32:31,900 De mit gondol, amikor mást Ön is használja & karakter, mondjuk, 701 00:32:31,900 --> 00:32:33,180 Egy if. 702 00:32:33,180 --> 00:32:39,256 Van egy igazi, és bizonyos változók hogy értékelje a bizonyos logikai, 703 00:32:39,256 --> 00:32:41,380 és néhány más változók hogy érvényesítse néhány logikai 704 00:32:41,380 --> 00:32:42,880 és azt akarjuk, hogy az, és erre. 705 00:32:42,880 --> 00:32:44,552 Akkor is használja a jelet. 706 00:32:44,552 --> 00:32:47,510 1. Előadó: Igen, így csak ma, nekünk beszélt három különböző célokra 707 00:32:47,510 --> 00:32:48,250 A jelet. 708 00:32:48,250 --> 00:32:51,040 Van két és jel, amely mi Pulak nemrég ismertetett. 709 00:32:51,040 --> 00:32:53,420 Van egy jelet, amely amit Camille leírt 710 00:32:53,420 --> 00:32:54,897 korábbi, amely az egyik ampersand. 711 00:32:54,897 --> 00:32:56,685 És ez a bitenkénti ÉS. 712 00:32:56,685 --> 00:32:59,640 És észre, hogy mind a feltételes és-- vagy, sajnálom, 713 00:32:59,640 --> 00:33:04,180 A logikai ÉS és a bitenkénti ÉS, azok két szám, ugye? 714 00:33:04,180 --> 00:33:07,354 Olyan volt, mintha jelet jelet valamit, 715 00:33:07,354 --> 00:33:09,350 valami jelet valamit. 716 00:33:09,350 --> 00:33:13,862 Itt, amikor már csak jelet valamit, ami dereferencing. 717 00:33:13,862 --> 00:33:15,830 >> PULAK Goyal: Igen, nagy kérdés. 718 00:33:15,830 --> 00:33:16,677 Igen. 719 00:33:16,677 --> 00:33:21,150 >> Közönség: Miért összhangban 5a és csillag egy válnak N / A? 720 00:33:21,150 --> 00:33:25,520 Miért nem csak egyfajta megtartja a Ugyanezeket az értékeket az előző sorból? 721 00:33:25,520 --> 00:33:28,000 >> PULAK Goyal: Mivel mi már kilépett a funkciót. 722 00:33:28,000 --> 00:33:30,894 És akkor mi van happens-- így what-- most mi vagyunk 723 00:33:30,894 --> 00:33:33,060 ki körét, hogy a funkció, mi történik valójában 724 00:33:33,060 --> 00:33:37,770 azok, eltávolítjuk a memóriából. 725 00:33:37,770 --> 00:33:38,808 Igen. 726 00:33:38,808 --> 00:33:42,982 >> Közönség: Két 3 vagy 4 csillag = 5. 727 00:33:42,982 --> 00:33:43,690 PULAK Goyal: Igen. 728 00:33:43,690 --> 00:33:45,575 Közönség: Mit jelent ez pontosan jelöli? 729 00:33:45,575 --> 00:33:46,950 PULAK Goyal: Mit jelent ez? 730 00:33:46,950 --> 00:33:47,380 Közönség: Igen. 731 00:33:47,380 --> 00:33:49,088 PULAK Goyal: Tehát a kérdés az volt, hogy mi 732 00:33:49,088 --> 00:33:52,300 hogy-- mit csinálsz Online amikor azt mondjuk, csillag egyenlő 5? 733 00:33:52,300 --> 00:33:55,210 Úgy emlékszem, a csillag a követéssel üzemeltető. 734 00:33:55,210 --> 00:33:58,640 Tehát, amikor egy, ebben az esetben, egy mutató. 735 00:33:58,640 --> 00:34:00,030 Ez egy int csillag. 736 00:34:00,030 --> 00:34:03,710 Tehát amikor hivatkozás feloldási egy a használja a csillag, amit mondunk 737 00:34:03,710 --> 00:34:11,250 van, menj, amit tárolnak, címét, tárolt egy-- így take-- így egy, 738 00:34:11,250 --> 00:34:13,280 Most, néhány címet tároljuk benne. 739 00:34:13,280 --> 00:34:19,920 Menjünk vissza, hogy a cím mutat, és most változtatni bármi is legyen az, hogy öt. 740 00:34:19,920 --> 00:34:20,420 Igen. 741 00:34:20,420 --> 00:34:23,390 >> Közönség: Tudsz mondani ez egyszerűbb szavakkal? 742 00:34:23,390 --> 00:34:27,360 Változás a címét egy 5. 743 00:34:27,360 --> 00:34:31,070 >> PULAK Goyal: Nem vagyunk változó a címét egy 5. 744 00:34:31,070 --> 00:34:36,340 Egy néhány cím benne, amely a változó címével az érdeklődés. 745 00:34:36,340 --> 00:34:39,570 És így, amit mondunk amikor követéssel van, 746 00:34:39,570 --> 00:34:42,630 most szeretnénk change-- mi most referenciái 747 00:34:42,630 --> 00:34:45,135 A változó érdeke közvetlenül. 748 00:34:45,135 --> 00:34:48,499 Van ennek értelme? 749 00:34:48,499 --> 00:34:52,280 >> 1. Előadó: Egy másik módja annak, hogy úgy gondolja, annak egy go-- így egy olyan címet. 750 00:34:52,280 --> 00:34:55,310 A csillag azt mondja, megy, hogy a kezelésére és nézd meg az értékét. 751 00:34:55,310 --> 00:34:58,000 És most az értéket 5. 752 00:34:58,000 --> 00:35:00,920 Tehát azt mondja, menj a x címét, amely 753 00:35:00,920 --> 00:35:05,720 lesz, mi tárolt egy, és változtassa meg a 5. 754 00:35:05,720 --> 00:35:06,470 PULAK Goyal: Igen? 755 00:35:06,470 --> 00:35:10,817 Közönség: Szóval a helyzet az, ahol a mutató megy, a címet. 756 00:35:10,817 --> 00:35:14,270 De az érték egy hozzárendelt értéke a cím alapján. 757 00:35:14,270 --> 00:35:15,020 PULAK Goyal: Igen. 758 00:35:15,020 --> 00:35:18,076 759 00:35:18,076 --> 00:35:19,367 Bármilyen további kérdése van ennek? 760 00:35:19,367 --> 00:35:22,774 761 00:35:22,774 --> 00:35:23,940 Közönség: Lenne egy kérdésem. 762 00:35:23,940 --> 00:35:25,664 PULAK Goyal: Ja, bocs. 763 00:35:25,664 --> 00:35:30,324 Közönség: Tehát, ha store-- így Ha azt mondod, [hallhatatlan] a. 764 00:35:30,324 --> 00:35:31,032 PULAK Goyal: Igen. 765 00:35:31,032 --> 00:35:34,448 Közönség: Van, hogy tárolja az x-jel? 766 00:35:34,448 --> 00:35:37,376 Miért nem mondod x mielőtt az int [hallhatatlan]? 767 00:35:37,376 --> 00:35:40,562 768 00:35:40,562 --> 00:35:41,270 PULAK Goyal: So-- 769 00:35:41,270 --> 00:35:42,090 Közönség: [hallható]. 770 00:35:42,090 --> 00:35:43,673 PULAK Goyal: Akárcsak a question-- ó. 771 00:35:43,673 --> 00:35:47,160 772 00:35:47,160 --> 00:35:51,300 Szóval a kérdés az, miért nem we-- A funkció to_five, miért nem tudunk 773 00:35:51,300 --> 00:35:52,590 csak át egy x, ugye? 774 00:35:52,590 --> 00:35:53,570 >> Közönség: Igen. 775 00:35:53,570 --> 00:35:59,570 >> PULAK Goyal: OK, igen, így ez ismét nyúlik vissza, a vitát típusok. 776 00:35:59,570 --> 00:36:06,080 Így a funkció to_five most vár típusú int csillag. 777 00:36:06,080 --> 00:36:07,660 Tehát mi az a típusú x? 778 00:36:07,660 --> 00:36:09,800 X csak egy int. 779 00:36:09,800 --> 00:36:13,530 De mi ez a funkció elvárja egy int csillag. 780 00:36:13,530 --> 00:36:16,910 Szóval, arra számít, hogy egy változó van egy címet tároljuk benne. 781 00:36:16,910 --> 00:36:20,250 Szóval így you-- tegye a jelet, és így ez 782 00:36:20,250 --> 00:36:22,560 hogyan adja át a címet, ami now-- 783 00:36:22,560 --> 00:36:25,120 és hogy értelmezi, hogy mint egy int csillagos, igen. 784 00:36:25,120 --> 00:36:26,700 Nagy kérdés. 785 00:36:26,700 --> 00:36:29,300 Más kérdés ezzel kapcsolatban? 786 00:36:29,300 --> 00:36:29,800 Oké, rendben. 787 00:36:29,800 --> 00:36:32,870 788 00:36:32,870 --> 00:36:37,020 >> OK, így most beszéljünk mintegy mutató aritmetika. 789 00:36:37,020 --> 00:36:40,050 Tehát itt, hozzátéve és kivonva i állítja a mutatót 790 00:36:40,050 --> 00:36:43,950 ai akkora típusát mutató bájt. 791 00:36:43,950 --> 00:36:46,170 Tehát nézzük meg, hogy hogyan néz ki. 792 00:36:46,170 --> 00:36:49,640 Tehát itt, mi már bejelentett int x = 5. 793 00:36:49,640 --> 00:36:56,120 És most mi lesz arra, hogy egy mutatót y, és adja át a címét x ott. 794 00:36:56,120 --> 00:36:58,910 Tehát van, hogy. 795 00:36:58,910 --> 00:37:01,005 Így x tárolják 0x04. 796 00:37:01,005 --> 00:37:03,960 Tehát most y egyenlő legyen. 797 00:37:03,960 --> 00:37:12,260 És akkor valaki mondja meg, mit gondolnak fog történni, ha teszünk y plusz értéke 1? 798 00:37:12,260 --> 00:37:19,100 799 00:37:19,100 --> 00:37:19,771 Igen? 800 00:37:19,771 --> 00:37:24,010 >> Közönség: Lesz változás 0 alkalommal 0 8? 801 00:37:24,010 --> 00:37:25,342 >> PULAK Goyal: Méret és type-- 802 00:37:25,342 --> 00:37:27,789 >> Közönség: Te mozog a címet. 803 00:37:27,789 --> 00:37:29,080 PULAK Goyal: Ja, hogy was-- igen. 804 00:37:29,080 --> 00:37:31,130 Olyan igaz. 805 00:37:31,130 --> 00:37:33,110 Szóval ez meg fog változni a 0x08. 806 00:37:33,110 --> 00:37:38,750 És because-- így azt használni ezt képlet, 1 alkalommal a méret a mutatót 807 00:37:38,750 --> 00:37:42,354 és a pointerek a size-- 808 00:37:42,354 --> 00:37:44,050 >> [DIÁKOK zörej] 809 00:37:44,050 --> 00:37:45,190 >> PULAK Goyal: Így van. 810 00:37:45,190 --> 00:37:46,150 >> [DIÁKOK zörej] 811 00:37:46,150 --> 00:37:49,230 >> 1. Előadó: Szóval az a típus, a mutató az alábbiakra: 812 00:37:49,230 --> 00:37:51,862 >> PULAK Goyal: Az, igen, igen, ez 4 byte. 813 00:37:51,862 --> 00:37:53,930 >> 1. Előadó: Szóval ints 4 bájt. 814 00:37:53,930 --> 00:38:01,260 >> PULAK Goyal: Tehát, ha már egy-- nézzük mondjuk kijelentette, azt hiszem, egy kar. 815 00:38:01,260 --> 00:38:06,830 Mi lenne hogy-- úgyhogy azt mondom, Van char x egyenlő egy, vagy valami. 816 00:38:06,830 --> 00:38:14,400 És mi volt a címe, hogy 0x04, mi lenne y plusz értéke 1 tenni most? 817 00:38:14,400 --> 00:38:14,960 Sajnálom, hogy mit? 818 00:38:14,960 --> 00:38:16,099 >> Közönség: 0x05. 819 00:38:16,099 --> 00:38:17,140 PULAK Goyal: 0x05, ugye. 820 00:38:17,140 --> 00:38:18,520 Mindenki látja, hogy? 821 00:38:18,520 --> 00:38:20,212 OK, most mondjuk, hogy ez egy úszó. 822 00:38:20,212 --> 00:38:20,962 Mi történne? 823 00:38:20,962 --> 00:38:25,210 824 00:38:25,210 --> 00:38:26,130 Bárki? 825 00:38:26,130 --> 00:38:28,066 Szóval úszók hány bájt? 826 00:38:28,066 --> 00:38:28,860 >> Közönség: 4 byte. 827 00:38:28,860 --> 00:38:29,651 >> PULAK Goyal: Így van. 828 00:38:29,651 --> 00:38:32,661 Így lenne ugyanaz, mint ez. 829 00:38:32,661 --> 00:38:33,160 Hűvös. 830 00:38:33,160 --> 00:38:36,230 831 00:38:36,230 --> 00:38:40,180 OK, és most beszéljünk mintegy mutatók és tömbök. 832 00:38:40,180 --> 00:38:44,210 Szóval látta ezt a előző két p-készletek, 833 00:38:44,210 --> 00:38:48,570 ahol tudunk treat-- így tömbök és mutatók nem ugyanaz a dolog. 834 00:38:48,570 --> 00:38:51,170 De tudjuk kezelni tömböket mutatók. 835 00:38:51,170 --> 00:38:55,550 Tehát itt, itt van ez a tömb Itt, amely három slot. 836 00:38:55,550 --> 00:38:57,570 Az első slot-- mi Van egy, két és három. 837 00:38:57,570 --> 00:39:00,930 >> Tehát, ha we-- így tudunk rendelni hogy azzal, hogy van tömb, 838 00:39:00,930 --> 00:39:02,080 követéssel, hogy. 839 00:39:02,080 --> 00:39:04,579 És amikor hivatkozás feloldási hogy mi valójában csinál 840 00:39:04,579 --> 00:39:05,910 van utalva ugyanabba a foglalatba. 841 00:39:05,910 --> 00:39:09,230 Tehát csillagos tömb értéke 1. 842 00:39:09,230 --> 00:39:11,020 Mi could- hogyan lehetne írunk hogy-- mi 843 00:39:11,020 --> 00:39:13,404 Más úton írhatnánk, hogy? 844 00:39:13,404 --> 00:39:14,840 >> Közönség: Array 0 egyenlő 1. 845 00:39:14,840 --> 00:39:17,100 >> PULAK Goyal: Pontosan, Mindenki látja, hogy? 846 00:39:17,100 --> 00:39:18,320 Tehát ugyanezt itt. 847 00:39:18,320 --> 00:39:24,060 Tehát amikor már tömb plusz 1, mi do-- így even-- 848 00:39:24,060 --> 00:39:28,890 emlékszem számtani hogy csak beszélt, amikor ezt tesszük, plusz 1 849 00:39:28,890 --> 00:39:32,120 vagy mozgassa át a 4 byte, ugye. 850 00:39:32,120 --> 00:39:33,170 Mindenki látja, hogy? 851 00:39:33,170 --> 00:39:35,753 És azon az oldalon, amikor dereference hogy tudjuk meg, hogy a 2. 852 00:39:35,753 --> 00:39:37,710 És ez az, hogyan állítsa A következő elem 2. 853 00:39:37,710 --> 00:39:41,640 És így egy alternatív módon írni hogy is lenne tömb konzol 854 00:39:41,640 --> 00:39:44,436 0 szögvas 1. 855 00:39:44,436 --> 00:39:47,070 >> Közönség: Szüksége van a zárójelben? 856 00:39:47,070 --> 00:39:50,840 >> PULAK Goyal: Igen, mert te dereferencing a teljes mennyiséget 857 00:39:50,840 --> 00:39:53,460 tömb plusz 1. 858 00:39:53,460 --> 00:39:56,829 OK, és ugyanezt tömb plusz 2. 859 00:39:56,829 --> 00:39:57,870 Bármilyen kérdése erről? 860 00:39:57,870 --> 00:39:58,369 Igen. 861 00:39:58,369 --> 00:40:01,340 Közönség: Szóval tömb automatikusan 0? 862 00:40:01,340 --> 00:40:03,054 >> PULAK Goyal: Array is-- sajnálom, mi? 863 00:40:03,054 --> 00:40:03,962 >> Közönség: Array 0. 864 00:40:03,962 --> 00:40:07,140 A címe tömb csak 0. 865 00:40:07,140 --> 00:40:10,200 >> PULAK Goyal: Szóval a kérdés az volt, a címe tömb csak 0? 866 00:40:10,200 --> 00:40:11,950 Szóval, nem, tömb van néhány címet. 867 00:40:11,950 --> 00:40:14,930 Tehát amikor követéssel azt, that's-- így gondolja about-- 868 00:40:14,930 --> 00:40:18,230 Szó szerint, mint egy mutató mutató Az elején egy tömbben. 869 00:40:18,230 --> 00:40:19,390 Szóval, hogy van néhány címet. 870 00:40:19,390 --> 00:40:20,580 Nem tudjuk, mi az. 871 00:40:20,580 --> 00:40:24,170 De amikor követéssel, hogy tudjuk, ez a kezdete a tömb. 872 00:40:24,170 --> 00:40:25,980 És így amikor mozognak 1, mi csak mozgó 873 00:40:25,980 --> 00:40:29,090 képest, ahol erre a címre volt. 874 00:40:29,090 --> 00:40:30,480 Más kérdés? 875 00:40:30,480 --> 00:40:31,419 Igen? 876 00:40:31,419 --> 00:40:35,559 >> Közönség: Szóval, ha tömb tartó plusz 1-- 877 00:40:35,559 --> 00:40:37,350 PULAK Goyal: Sajnáljuk, Én-- tudna szólni? 878 00:40:37,350 --> 00:40:41,174 Közönség: Igen, ha nem array zárójelben [hallhatatlan]. 879 00:40:41,174 --> 00:40:45,227 Tehát ha tesz az pointer-- 880 00:40:45,227 --> 00:40:46,810 PULAK Goyal: Sajnálom, nem hallom Önt. 881 00:40:46,810 --> 00:40:48,100 Tudsz mondani, hogy még egyszer? 882 00:40:48,100 --> 00:40:49,470 >> Közönség: Te OK. 883 00:40:49,470 --> 00:40:50,870 >> PULAK Goyal: OK, bocs. 884 00:40:50,870 --> 00:40:51,420 Oké, rendben. 885 00:40:51,420 --> 00:40:52,200 Any-- igen. 886 00:40:52,200 --> 00:40:55,710 Tehát, ha megy a tömb tartó 3-- 887 00:40:55,710 --> 00:40:56,570 >> PULAK Goyal: Igen. 888 00:40:56,570 --> 00:40:59,832 >> Közönség: --isn't there-- nem ez négy foltok, mint a 0, 1, 2, és 3? 889 00:40:59,832 --> 00:41:02,630 Miért nem int tömböt 2? 890 00:41:02,630 --> 00:41:07,850 >> PULAK Goyal: Nem, így csak az egyezmény A C is-- ha kijelentjük a tömb, 891 00:41:07,850 --> 00:41:12,010 we-- száma tesszük van hány slot akarunk. 892 00:41:12,010 --> 00:41:16,970 De az indexek a tömbben valójában tömb 0, 1 tömb, és a tömb 2. 893 00:41:16,970 --> 00:41:19,780 Tehát csak az egyezmény arról, hogy hogyan nyilvánításáról tömböket. 894 00:41:19,780 --> 00:41:20,880 Igen, bármilyen más kérdés? 895 00:41:20,880 --> 00:41:21,380 Igen. 896 00:41:21,380 --> 00:41:23,750 Közönség: Szóval mi még mindig beszélünk mutatók, ugye? 897 00:41:23,750 --> 00:41:24,500 PULAK Goyal: Igen. 898 00:41:24,500 --> 00:41:28,600 Közönség: Tudnál még csinálni Star az array 0értéke 1? 899 00:41:28,600 --> 00:41:32,870 PULAK Goyal: Nem, nem, so-- OK, így a kérdés az volt, lehetett 900 00:41:32,870 --> 00:41:37,370 csak csináld csillagos tömb tartó nulla, majd azt mondják, hogy egyenlő 1. 901 00:41:37,370 --> 00:41:40,000 Szóval, nem, amit mondunk Itt van, hogy tudjuk think-- 902 00:41:40,000 --> 00:41:42,600 tudjuk kezelni tömböket mutatók. 903 00:41:42,600 --> 00:41:44,970 Tehát have-- mi vagyunk mondás van két módon 904 00:41:44,970 --> 00:41:47,370 Eddig való hivatkozás azonos blokkban. 905 00:41:47,370 --> 00:41:52,270 Tehát doing-- ha tömb nulla, Az a fajta, amely most egy int. 906 00:41:52,270 --> 00:41:55,264 És ha Ön a csillag, kapsz egy érvénytelen dolog. 907 00:41:55,264 --> 00:41:57,680 Tehát mi azt mondjuk itt, van két alternatív módon 908 00:41:57,680 --> 00:41:59,100 hogy ugyanarra a blokk. 909 00:41:59,100 --> 00:42:01,860 Akkor sem csinálni tömb konzol 0értéke 1. 910 00:42:01,860 --> 00:42:06,420 Vagy meg tudod csinálni dereference tömb, és hogy egyenlő 0. 911 00:42:06,420 --> 00:42:08,621 Tehát csak két módon ugyanazt a dolgot. 912 00:42:08,621 --> 00:42:09,120 Igen. 913 00:42:09,120 --> 00:42:15,270 >> Közönség: Miért nem mérete int 1 felvenni az alábbiakra: 914 00:42:15,270 --> 00:42:17,650 >> PULAK Goyal: Méret int 1. 915 00:42:17,650 --> 00:42:19,900 >> Közönség: Mert ez mozog egy egyszeri. 916 00:42:19,900 --> 00:42:23,620 >> PULAK Goyal: Mert ez az, ahogy a C működik. 917 00:42:23,620 --> 00:42:26,460 Ez már csak így mutató aritmetikai van definiálva. 918 00:42:26,460 --> 00:42:27,854 El fog tartani a mutatót. 919 00:42:27,854 --> 00:42:30,020 És akkor bármit is hozzá rá, hogy majd szorozza meg 920 00:42:30,020 --> 00:42:34,770 a méret bármilyen A mutató üzlet, igen. 921 00:42:34,770 --> 00:42:35,480 Igen. 922 00:42:35,480 --> 00:42:39,595 >> Közönség: Szóval azt mondod, tudjuk kezelni mutatók és tömbök azonos, 923 00:42:39,595 --> 00:42:40,720 de hát ők mások. 924 00:42:40,720 --> 00:42:41,950 Szóval mi teszi őket más? 925 00:42:41,950 --> 00:42:45,070 Mi nem tehetjük meg a az egyik, de nem a másik? 926 00:42:45,070 --> 00:42:52,390 >> PULAK Goyal: Az E osztály, azt hiszem it's-- mit you-- 927 00:42:52,390 --> 00:42:56,270 >> 1. Előadó: Szóval, we-- OK, igen, Például, ha a memóriát lefoglalni 928 00:42:56,270 --> 00:42:59,680 és van egy mutatót egy egész szám, például. 929 00:42:59,680 --> 00:43:01,890 Ha megpróbálta elindítani Ennek mutató aritmetika 930 00:43:01,890 --> 00:43:05,890 és túlmutatnak a memória mennyisége Ön kiosztott, azt befut a hibákat. 931 00:43:05,890 --> 00:43:08,250 Tudjuk, tömbök, mi azt mondják, idő előtt, OK, 932 00:43:08,250 --> 00:43:11,400 szeretné allocate-- ez alapvetően mondja, szeretnék kiosztani 933 00:43:11,400 --> 00:43:13,490 elég hely a három egész szám. 934 00:43:13,490 --> 00:43:17,820 És így most tudjuk kezelni a memória, mintha van az itt felsorolt ​​három egész szám. 935 00:43:17,820 --> 00:43:19,460 Vajon ez a fajta értelme? 936 00:43:19,460 --> 00:43:22,042 >> PULAK Goyal: Igen. 937 00:43:22,042 --> 00:43:22,542 Igen. 938 00:43:22,542 --> 00:43:24,778 >> Közönség: Tehát egy csillag tömb, hogy hozzárendeljük 1 939 00:43:24,778 --> 00:43:26,657 a 0 index a tömb? 940 00:43:26,657 --> 00:43:27,365 PULAK Goyal: Igen. 941 00:43:27,365 --> 00:43:31,160 942 00:43:31,160 --> 00:43:34,439 >> Közönség: Szóval, mi után következő két sor szempontjából the-- I 943 00:43:34,439 --> 00:43:36,980 megérteni, hogy akarsz használni mutató számtani itt, 944 00:43:36,980 --> 00:43:39,355 De ismétlem, nem értem, mit mutató aritmetika. 945 00:43:39,355 --> 00:43:43,869 Tehát a tömb plusz 1, akkor mondván, hogy te most 946 00:43:43,869 --> 00:43:47,540 szeretne majd beszélni Az első index a tömb. 947 00:43:47,540 --> 00:43:50,050 >> PULAK Goyal: Jobb, és így a ok, ami működik is, tömb, 948 00:43:50,050 --> 00:43:52,970 Itt, mi lehet gondolni, mint egy int csillag. 949 00:43:52,970 --> 00:43:56,110 És így ha mi mutató aritmetika rajta, emlékszem, a képletben 950 00:43:56,110 --> 00:43:59,020 veszünk the-- Azt hiszem, bármi A jelenlegi cím, 951 00:43:59,020 --> 00:44:02,100 majd ha hozzáadjuk 1-et, valójában 952 00:44:02,100 --> 00:44:06,620 szorozzuk 1 által mérete A dolog vagyunk manipulálni. 953 00:44:06,620 --> 00:44:09,090 Tehát ebben az esetben, a méret a int. 954 00:44:09,090 --> 00:44:11,634 És akkor mozgatni továbbítja az, hogy sok. 955 00:44:11,634 --> 00:44:14,419 >> 1. Előadó: Tehát úgy, mintha Van b tömb csillag. 956 00:44:14,419 --> 00:44:15,335 PULAK Goyal: OK, igen. 957 00:44:15,335 --> 00:44:16,005 1. Előadó: a kezével. 958 00:44:16,005 --> 00:44:16,505 Menjen ide. 959 00:44:16,505 --> 00:44:18,350 PULAK Goyal: Vagy tudok csak-- igen. 960 00:44:18,350 --> 00:44:23,660 Szóval here-- OK, így tömb a kezdődő, csak itt. 961 00:44:23,660 --> 00:44:29,155 Tehát amikor követéssel, tömb, voltunk Csak utalva az első blokk van. 962 00:44:29,155 --> 00:44:36,620 De most, amikor én tömb plusz 1, hogy is-- hogy nyíl most itt van. 963 00:44:36,620 --> 00:44:38,250 Van ennek értelme? 964 00:44:38,250 --> 00:44:46,690 Jobb, mert ez a blokk a méret int, amely 4 bájt. 965 00:44:46,690 --> 00:44:53,540 És igen, mit csinálunk a mi mozgó, hogy a mutató 4 byte át. 966 00:44:53,540 --> 00:44:56,080 Amikor mi számtani rajta, akkor mindig 967 00:44:56,080 --> 00:44:59,730 mozgassa onként 4 byte. 968 00:44:59,730 --> 00:45:01,902 Mert ez olyan, mint egy int csillag. 969 00:45:01,902 --> 00:45:04,970 Ennek van értelme? 970 00:45:04,970 --> 00:45:05,470 OKÉ. 971 00:45:05,470 --> 00:45:07,770 >> Közönség: Tehát a dolgokat a tömbben volt 5 byte, mi lenne mozgatni 5 bytes-- 972 00:45:07,770 --> 00:45:10,853 >> PULAK Goyal: Jobb, ha tehát volt egy char csillag, mi lenne mozgassa az 1 byte csak. 973 00:45:10,853 --> 00:45:13,670 Tehát abban az esetben, char csillagok, ez lenne csak lenni mozgassa át 1. 974 00:45:13,670 --> 00:45:15,420 Közönség: Ahhoz, hogy a következő szüksége van egy csillag. 975 00:45:15,420 --> 00:45:18,099 PULAK Goyal: Igen, igen, nem, hogy van értelme? 976 00:45:18,099 --> 00:45:19,890 1. Előadó: Mi lehet beszélgetni erről még később. 977 00:45:19,890 --> 00:45:21,530 PULAK Goyal: Igen, igen, az biztos. 978 00:45:21,530 --> 00:45:23,214 Oké, rendben. 979 00:45:23,214 --> 00:45:24,630 Térjünk át a következő részhez. 980 00:45:24,630 --> 00:45:27,182 981 00:45:27,182 --> 00:45:28,140 1. Előadó: Ó, OK hűvös. 982 00:45:28,140 --> 00:45:29,205 Igen, ez vagyok én. 983 00:45:29,205 --> 00:45:30,330 Rendben, félelmetes. 984 00:45:30,330 --> 00:45:35,064 OK, hűvös, így most vagyunk rá egy kicsit általánosabb információkkal memória. 985 00:45:35,064 --> 00:45:37,730 Azt is értékelem azt a tényt, hogy mennek elég gyorsan. 986 00:45:37,730 --> 00:45:40,230 Ez egy csomó anyagot kap keresztül egy óra és fél. 987 00:45:40,230 --> 00:45:42,880 De ha van olyan téma akkor akarok menni mélyebb figyelembe, 988 00:45:42,880 --> 00:45:44,630 megyünk, hogy Munkaidőben a héten 989 00:45:44,630 --> 00:45:46,340 ahol beszélgethet velünk egy az egy. 990 00:45:46,340 --> 00:45:49,240 Vagy csak jön a vége, és mi beszélgetni dolgokat. 991 00:45:49,240 --> 00:45:52,130 És mint mindig, úgy érzi, szabadon kérdezzen. 992 00:45:52,130 --> 00:45:52,695 Fantasztikus. 993 00:45:52,695 --> 00:45:55,820 Tehát itt van a kép memória láttunk előadás egy milliárd alkalommal. 994 00:45:55,820 --> 00:45:58,610 És tudjuk, hogy ez a verem felnő alulról 995 00:45:58,610 --> 00:46:00,214 és a kupac lefelé növekszik. 996 00:46:00,214 --> 00:46:03,380 És mi a különbség a dolgok között hogy megtartjuk a halom, és a dolgok 997 00:46:03,380 --> 00:46:05,981 hogy megtartjuk a stack? 998 00:46:05,981 --> 00:46:07,397 Valaki dobja valami odakint. 999 00:46:07,397 --> 00:46:10,806 1000 00:46:10,806 --> 00:46:11,780 Igen. 1001 00:46:11,780 --> 00:46:14,215 >> Közönség: Vajon verem A dolgok, amelyek csak 1002 00:46:14,215 --> 00:46:18,095 mulandó változók mi csak nyilvánításáról használata bizonyos funkciók? 1003 00:46:18,095 --> 00:46:19,220 1. Előadó: Gyönyörű, igen. 1004 00:46:19,220 --> 00:46:23,007 Így bármikor, amikor, mondjuk mondjuk mi vagyunk a funkciót, 1005 00:46:23,007 --> 00:46:24,590 és már csak néhány helyi változók. 1006 00:46:24,590 --> 00:46:26,214 Azok fog a végén a verem. 1007 00:46:26,214 --> 00:46:30,020 Ezzel szemben, ha hívjuk malloc és valóban memóriát foglalni, 1008 00:46:30,020 --> 00:46:32,290 hogy mindig jön a kupac. 1009 00:46:32,290 --> 00:46:35,100 Szóval, igen jó? 1010 00:46:35,100 --> 00:46:38,672 >> És úgy emlékszem, hogy minden memória hogy allocate a malloc, 1011 00:46:38,672 --> 00:46:40,130 hogy fog a végén a kupac. 1012 00:46:40,130 --> 00:46:42,019 És ha elfelejti ingyenes, akkor a számítógép 1013 00:46:42,019 --> 00:46:43,810 Nem fog tudni, hogy Ha elkészült vele. 1014 00:46:43,810 --> 00:46:45,560 Szóval ez csak fog lógni ott a memóriában. 1015 00:46:45,560 --> 00:46:47,412 És akkor lényegében szivárog, hogy a memória. 1016 00:46:47,412 --> 00:46:48,120 Te hogy elveszítik azt. 1017 00:46:48,120 --> 00:46:51,840 Mert soha nem mondta a számítógép, hé én végeztem használja, nyugodtan használja, 1018 00:46:51,840 --> 00:46:53,632 hogy más dolgokat is. 1019 00:46:53,632 --> 00:46:54,470 Hűvös. 1020 00:46:54,470 --> 00:46:55,928 Bármilyen kérdése van? 1021 00:46:55,928 --> 00:46:56,428 Igen. 1022 00:46:56,428 --> 00:46:58,808 >> Közönség: Szóval milyen A memória verem? 1023 00:46:58,808 --> 00:46:59,974 Nem dinamikus takarmány, felhatalmazáson? 1024 00:46:59,974 --> 00:47:01,200 Mi lenne a neve? 1025 00:47:01,200 --> 00:47:03,870 >> 1. Előadó: Persze, így lehet gondolok rá, mint lokális változók. 1026 00:47:03,870 --> 00:47:10,137 Aktuális hívások funkciók fognak felhalmozódni. 1027 00:47:10,137 --> 00:47:10,720 Akármi más? 1028 00:47:10,720 --> 00:47:11,220 Igen? 1029 00:47:11,220 --> 00:47:14,627 Közönség: hogyan ingyenes A memória hozzá the-- 1030 00:47:14,627 --> 00:47:17,710 1. Előadó: Persze, így ha kiosztani memóriát a kupac, hívja malloc. 1031 00:47:17,710 --> 00:47:20,543 És akkor, hogy megadja neked vissza mutatót néhány cím memóriában. 1032 00:47:20,543 --> 00:47:22,630 Tehát mondjuk, hogy hívtál, hogy a mutató, igaz? 1033 00:47:22,630 --> 00:47:24,970 Ezután csak annyit szabad mutatót. 1034 00:47:24,970 --> 00:47:27,351 És, hogy felszabadítja a memóriát. 1035 00:47:27,351 --> 00:47:27,850 Hűvös. 1036 00:47:27,850 --> 00:47:28,660 Más kérdés? 1037 00:47:28,660 --> 00:47:28,880 Igen. 1038 00:47:28,880 --> 00:47:30,838 >> Közönség: Mit dinamikusan kiosztott jelent? 1039 00:47:30,838 --> 00:47:32,345 1040 00:47:32,345 --> 00:47:35,381 >> 1. Előadó: Dinamikusan kiosztott azt jelenti, hogy a tanfolyam a program. 1041 00:47:35,381 --> 00:47:37,630 Tehát, ha hívja a malloc közepén a programot, 1042 00:47:37,630 --> 00:47:40,510 elején a program, nincs memória mennyiségét. 1043 00:47:40,510 --> 00:47:42,600 És mint a számítógép átléphető a kódot, 1044 00:47:42,600 --> 00:47:44,280 ez meg fog kiosztani a memóriát. 1045 00:47:44,280 --> 00:47:46,507 Szóval ez az, amit értünk dinamikusan. 1046 00:47:46,507 --> 00:47:47,090 Jó kérdés. 1047 00:47:47,090 --> 00:47:48,309 Igen? 1048 00:47:48,309 --> 00:47:50,809 Közönség: Ha definiálni tömböt a szögletes zárójelek, 1049 00:47:50,809 --> 00:47:54,154 nem, hogy még mindig [hallhatatlan]? 1050 00:47:54,154 --> 00:47:55,570 1. Előadó: Ez egy jó kérdés. 1051 00:47:55,570 --> 00:48:00,320 Azt hiszem, ha kiosztani egy tömb, ez valóban olyan, hogy a verem. 1052 00:48:00,320 --> 00:48:03,008 Nem vagyok pozitívan hogy így nem adják meg. 1053 00:48:03,008 --> 00:48:04,430 >> Hangszóró 2: Azt hiszem, igen it-- hogy hozza meg a veremben. 1054 00:48:04,430 --> 00:48:05,763 >> 1. Előadó: fogalmaz a verem. 1055 00:48:05,763 --> 00:48:07,044 OK, hűvös, megerősítette. 1056 00:48:07,044 --> 00:48:07,710 Más kérdés? 1057 00:48:07,710 --> 00:48:08,030 Igen? 1058 00:48:08,030 --> 00:48:10,946 >> Közönség: Ha delegálni malloc, nem a számítógép automatikusan 1059 00:48:10,946 --> 00:48:12,910 memóriát kiosztani a változók? 1060 00:48:12,910 --> 00:48:14,660 1. Előadó: Igen, a A helyi változók, 1061 00:48:14,660 --> 00:48:16,724 automatikusan helyezi memória a verem. 1062 00:48:16,724 --> 00:48:18,640 Közönség: Szóval mi a pont a malloc? 1063 00:48:18,640 --> 00:48:19,840 1. Előadó: Mi a pont a malloc? 1064 00:48:19,840 --> 00:48:22,850 Szóval láttunk egy csomó példát, mint például a swap, 1065 00:48:22,850 --> 00:48:25,690 ahol szeretnénk hatálya A változó, hogy valami 1066 00:48:25,690 --> 00:48:27,940 nem csupán a funkcióját hívást. 1067 00:48:27,940 --> 00:48:29,875 És szeretnénk valamit hogy tudjuk átadni körül 1068 00:48:29,875 --> 00:48:31,750 és hogy mi lehet hozzáférni különböző helyekről. 1069 00:48:31,750 --> 00:48:33,791 Ez az, ahol akarna tedd memória a kupac. 1070 00:48:33,791 --> 00:48:37,835 Annak érdekében, hogy ezeket a különböző funkciók számára is hozzáférhetők. 1071 00:48:37,835 --> 00:48:40,510 >> Közönség: Lehet csak magyarázni? 1072 00:48:40,510 --> 00:48:44,770 >> 1. Előadó: Tehát az egyik lehetőség is-- így a kérdés az volt, akkor mi csak allocate-- 1073 00:48:44,770 --> 00:48:47,660 bocs, tudjuk kinyilvánítására globális változó, lényegében. 1074 00:48:47,660 --> 00:48:48,560 Ez az egyik lehetőség. 1075 00:48:48,560 --> 00:48:50,893 De sok ilyen, az említett inkább, hogy nagyon rendetlen. 1076 00:48:50,893 --> 00:48:52,847 És általában úgy gondolja, Az, hogy a rossz tervezés. 1077 00:48:52,847 --> 00:48:53,821 Igen. 1078 00:48:53,821 --> 00:48:56,580 Cool, más kérdés? 1079 00:48:56,580 --> 00:48:57,140 Fantasztikus. 1080 00:48:57,140 --> 00:48:58,789 OK, a továbblépés. 1081 00:48:58,789 --> 00:49:00,580 Tehát ez valójában hogyan memóriát lefoglalni. 1082 00:49:00,580 --> 00:49:02,670 Beszéltünk erről egy kicsit. 1083 00:49:02,670 --> 00:49:04,240 Mi használja ezt a funkciót nevű malloc. 1084 00:49:04,240 --> 00:49:07,850 És azt mondja, hogy hány bájtot memória, így, hogy hány bájt a kupac, 1085 00:49:07,850 --> 00:49:08,610 akarsz. 1086 00:49:08,610 --> 00:49:13,120 És ez meg fog visszatérni a címet, így a mutatót, egy darab memória 1087 00:49:13,120 --> 00:49:14,500 hogy ez kiosztott az Ön számára. 1088 00:49:14,500 --> 00:49:17,080 Így a típus lesz semmis csillag. 1089 00:49:17,080 --> 00:49:21,310 Ez lesz a mutatót Bármit is dönt, hogy ott. 1090 00:49:21,310 --> 00:49:23,530 Minden alkalommal, amikor hívja malloc, már mondtam 1091 00:49:23,530 --> 00:49:25,640 van, hogy kiszabadítsa így nincs memóriavesztés. 1092 00:49:25,640 --> 00:49:27,170 >> Mi a másik dolog, hogy feltétlenül 1093 00:49:27,170 --> 00:49:29,185 kell tennie minden egyes alkalommal, amikor hívást malloc? 1094 00:49:29,185 --> 00:49:31,210 1095 00:49:31,210 --> 00:49:32,210 OK, van, hogy kiszabadítsa. 1096 00:49:32,210 --> 00:49:34,010 Mi a másik dolog? 1097 00:49:34,010 --> 00:49:35,890 Ellenőrizze a null, gyönyörű. 1098 00:49:35,890 --> 00:49:38,850 Szóval, igen, ez így van ott fel a táblára. 1099 00:49:38,850 --> 00:49:42,120 Ha megpróbálja kiosztani memória és nincs szabad memória, 1100 00:49:42,120 --> 00:49:44,940 A számítógép azt fogja mondani, Nincs mit kapsz. 1101 00:49:44,940 --> 00:49:47,650 És ez ad vissza üres. 1102 00:49:47,650 --> 00:49:48,400 Kérdések hogy? 1103 00:49:48,400 --> 00:49:49,290 Igen. 1104 00:49:49,290 --> 00:49:52,995 >> Közönség: Miért lenne valaha szeretné Kijelentem, egy mutató egy bizonyos típusú 1105 00:49:52,995 --> 00:49:56,329 ha semmisnek csillagos képes kezelni minden mutató típus egyébként? 1106 00:49:56,329 --> 00:49:57,370 1. Előadó: Jó kérdés. 1107 00:49:57,370 --> 00:50:00,590 Miért mondjuk int csillagos szemben a semmissé csillagos 1108 00:50:00,590 --> 00:50:03,740 ha semmisnek csillagos tudja kezelni mindent? 1109 00:50:03,740 --> 00:50:06,390 Tehát mi nem akarjuk, hogy valaha is kifejezetten leadott mutatók. 1110 00:50:06,390 --> 00:50:07,940 Ez csak rossz gyakorlat. 1111 00:50:07,940 --> 00:50:11,850 De fogunk beszélni int csillagok Csak a megértése, 1112 00:50:11,850 --> 00:50:14,195 ez egy mutató egy egész. 1113 00:50:14,195 --> 00:50:14,850 >> Közönség: OK. 1114 00:50:14,850 --> 00:50:17,558 >> 1. Előadó: Igen, és ez lehetővé teszi, hogy manipulálják az értékeket meg 1115 00:50:17,558 --> 00:50:18,667 egészek. 1116 00:50:18,667 --> 00:50:20,008 >> Közönség: Ó, oké. 1117 00:50:20,008 --> 00:50:22,250 És érvénytelennek csillagos nem engedhetem meg? 1118 00:50:22,250 --> 00:50:25,070 >> 1. Előadó: Attól függ, hogy a összefüggésben Igen, úgyhogy ne aggódj 1119 00:50:25,070 --> 00:50:28,460 ne aggódj túl sokat a típus van. 1120 00:50:28,460 --> 00:50:32,620 Csak tudni, hogy általában, malloc Egy mutatót ad vissza valamit. 1121 00:50:32,620 --> 00:50:33,520 Jó kérdés. 1122 00:50:33,520 --> 00:50:37,260 >> Közönség: Miért szaporodnak ez alkalommal 10? [NEM HALLHATÓ]. 1123 00:50:37,260 --> 00:50:40,150 >> 1. Előadó: Persze, így én csak Ennek véletlenszerű például itt, ahol 1124 00:50:40,150 --> 00:50:42,840 Azt akartam, hogy fordítsanak elegendő helyet biztosít a 10 egészek. 1125 00:50:42,840 --> 00:50:44,320 Csak egy véletlenszerű választás. 1126 00:50:44,320 --> 00:50:45,250 Igen. 1127 00:50:45,250 --> 00:50:45,440 Igen, mi a helyzet? 1128 00:50:45,440 --> 00:50:47,440 >> Közönség: Mit jelenti ellenőrzésével for null? 1129 00:50:47,440 --> 00:50:51,351 Szeretné, hogy ellenőrizze a pointer null vagy a malloc? 1130 00:50:51,351 --> 00:50:52,350 1. Előadó: Igen, pontosan. 1131 00:50:52,350 --> 00:50:54,599 Szóval a kérdés az volt, hogy mi értünk ellenőrzést null? 1132 00:50:54,599 --> 00:50:57,880 Szeretnénk az alábbiakra: bármikor hívjuk malloc és mi vissza egy mutatót, 1133 00:50:57,880 --> 00:51:01,110 azt akarom mondani, van pointer egyenlő null? 1134 00:51:01,110 --> 00:51:02,610 Tehát szó PTR. 1135 00:51:02,610 --> 00:51:05,620 Van PTR egyenlő null. 1136 00:51:05,620 --> 00:51:06,958 Igen. 1137 00:51:06,958 --> 00:51:08,832 Közönség: Szóval, kedves volt A kíváncsi, ha 1138 00:51:08,832 --> 00:51:14,013 formázza meg a mutatót a malloc, nem Emlékeztet, hogy az elején a malloc? 1139 00:51:14,013 --> 00:51:15,097 Mert ha ez egy array-- 1140 00:51:15,097 --> 00:51:16,554 1. Előadó: Ez egy nagyszerű kérdés. 1141 00:51:16,554 --> 00:51:19,200 Ja, ha hívja a malloc, a mutatót, hogy it-- mondjuk, 1142 00:51:19,200 --> 00:51:21,700 Tehát itt vagyunk kiosztani 10 bájt memóriát. 1143 00:51:21,700 --> 00:51:23,830 Szóval, sajnálom, elég szoba 10 egészek, 1144 00:51:23,830 --> 00:51:28,220 fogunk kapni a címe hogy az első darabja a memóriát. 1145 00:51:28,220 --> 00:51:29,880 Ez egy jó kérdés. 1146 00:51:29,880 --> 00:51:30,481 Igen. 1147 00:51:30,481 --> 00:51:34,810 >> Közönség: kiosztásával 10 elterjedt egész számok, 1148 00:51:34,810 --> 00:51:38,177 lehet, hogy tényleg használni, hogy mutatóval általam elvártnál szinte 1149 00:51:38,177 --> 00:51:39,372 mint egy tömb az egész számok? 1150 00:51:39,372 --> 00:51:41,830 1. Előadó: Igen, így te is használni, mint egy sor egész? 1151 00:51:41,830 --> 00:51:45,970 Igen, pontosan ez az, amit Pulak csak megmutattam neked on-- pár csúszik ezelőtt, 1152 00:51:45,970 --> 00:51:48,680 ahol azt mondjuk, OK, ez Tényleg csak ilyen of-- vagyunk 1153 00:51:48,680 --> 00:51:50,805 gondol rá, mint egy tömb 10 egészek. 1154 00:51:50,805 --> 00:51:52,222 Ez most történik, hogy a kupac. 1155 00:51:52,222 --> 00:51:54,971 Közönség: De nem tudtunk elérni azt szögletes zárójel jelölés? 1156 00:51:54,971 --> 00:51:58,220 1. Előadó: Te tényleg lehetett hozzáférni azt szögletes zárójel jelölés, igen. 1157 00:51:58,220 --> 00:52:00,221 Akkor kezelje őket ugyanaz. 1158 00:52:00,221 --> 00:52:00,720 Igen. 1159 00:52:00,720 --> 00:52:02,420 >> Közönség: Miért Pointer valaha is null? 1160 00:52:02,420 --> 00:52:04,170 >> 1. Előadó: Miért lenne Pointer valaha is null? 1161 00:52:04,170 --> 00:52:06,570 Ha használja fel az összes A memória a kupacban. 1162 00:52:06,570 --> 00:52:09,141 Ha a program eszik fel, eszik fel, eszik memóriát, 1163 00:52:09,141 --> 00:52:11,890 és nincs semmi, balra, majd malloc fog say-- ha azt mondod, 1164 00:52:11,890 --> 00:52:14,760 Szeretnék még 100 byte, ez lesz mondani, én nem 100 byte. 1165 00:52:14,760 --> 00:52:15,740 Itt van null. 1166 00:52:15,740 --> 00:52:18,780 Ez azt jelenti, elbuktam. 1167 00:52:18,780 --> 00:52:20,516 Igen. 1168 00:52:20,516 --> 00:52:22,830 >> KÖZÖNSÉG: Ebben az esetben, null semmi, ugye? 1169 00:52:22,830 --> 00:52:24,110 >> 1. Előadó: Igen, az, hogy esetben null semmi. 1170 00:52:24,110 --> 00:52:24,943 Ön nincs címe. 1171 00:52:24,943 --> 00:52:28,065 Nincs emlékezet. 1172 00:52:28,065 --> 00:52:31,500 Rendben, tovább lépett. 1173 00:52:31,500 --> 00:52:34,976 OK, beszéljünk nagyon gyorsan mintegy puffer túlcsordulás. 1174 00:52:34,976 --> 00:52:38,210 Ha esetleg találkozunk a puffer-túlcsordulás? 1175 00:52:38,210 --> 00:52:42,980 Mondjuk van egy-- vagyunk lefoglalni egy darab memória, 1176 00:52:42,980 --> 00:52:44,720 és fogunk írni a húr. 1177 00:52:44,720 --> 00:52:47,240 És mi fog mondani, OK, megyek kiosztani 1178 00:52:47,240 --> 00:52:49,320 elég hely a hat karaktert. 1179 00:52:49,320 --> 00:52:51,680 És én fogom kérni a felhasználó valamilyen bemeneti. 1180 00:52:51,680 --> 00:52:54,470 És a felhasználó bemenet, például, helló. 1181 00:52:54,470 --> 00:52:56,430 És ami tökéletesen illeszkedik finom, mert van 1182 00:52:56,430 --> 00:53:00,790 helyiség minden karaktere hello, és a null lezáró karaktert. 1183 00:53:00,790 --> 00:53:02,840 Rengeteg hely, nem probléma. 1184 00:53:02,840 --> 00:53:08,010 >> De mi van, ha mi adjuk a lehetőséget A gonosz felhasználó a programmal, 1185 00:53:08,010 --> 00:53:13,152 és írd be nem hat karakter, vagy nem öt karakter, hanem egy millió. 1186 00:53:13,152 --> 00:53:15,860 Tartják a gépelés, a gépelés, és gépelés, mi fog történni? 1187 00:53:15,860 --> 00:53:18,220 Nos, az csak az számítógépes enough-- vagy sajnálom, 1188 00:53:18,220 --> 00:53:23,350 csak megadta ezt a fonalat, elegendő hely 5 karakter. 1189 00:53:23,350 --> 00:53:28,300 Szóval, mi lesz, hogy valami ilyesmi Ennek ahol a gonosz ember, aki 1190 00:53:28,300 --> 00:53:31,750 gépelés bemeneti felülírhatja a puffer mérete, 1191 00:53:31,750 --> 00:53:35,922 és mehet valójában már az összeg hogy ez eredetileg kijelölt. 1192 00:53:35,922 --> 00:53:38,380 És akkor mit lehet tenni, a nagyon gonosz dolog, amit tehetünk, 1193 00:53:38,380 --> 00:53:40,260 ez felülírja a feladó címét. 1194 00:53:40,260 --> 00:53:42,010 Ami lényegében azt jelenti akkor milyen venni 1195 00:53:42,010 --> 00:53:45,110 irányítást a viselkedését a program. 1196 00:53:45,110 --> 00:53:47,880 Tehát egy nagyon magas szintű puffer túlcsordulás, amikor 1197 00:53:47,880 --> 00:53:49,960 kiosztani bizonyos mennyiségű memóriát. 1198 00:53:49,960 --> 00:53:53,060 És akkor you-- ezt, mert te felhasználótól származó adatokból, vagy valami 1199 00:53:53,060 --> 00:53:57,190 mint hogy-- megy át a határt abból, amit eredetileg kiosztott 1200 00:53:57,190 --> 00:53:59,955 és indítsa Messiás a program. 1201 00:53:59,955 --> 00:54:00,455 Igen? 1202 00:54:00,455 --> 00:54:03,220 >> Közönség: Miért nem, hogy csak visszatérni szegmens hiba? 1203 00:54:03,220 --> 00:54:05,594 >> 1. Előadó: Miért ne, hogy visszatérni szegmens hiba? 1204 00:54:05,594 --> 00:54:06,570 Megtehetem. 1205 00:54:06,570 --> 00:54:10,030 Néha a fordító vagy egy év alatt a futtató 1206 00:54:10,030 --> 00:54:11,430 valóban lesz, hogy ellenőrizze, hogy. 1207 00:54:11,430 --> 00:54:13,890 Ha bizonyos dolgok történnek, és ez a fajta alacsonyabb szintű, 1208 00:54:13,890 --> 00:54:15,610 akkor meg kell tudni. 1209 00:54:15,610 --> 00:54:18,820 De ha nem tervez Ezeknek a rendszereknek megfelelően, 1210 00:54:18,820 --> 00:54:21,170 akkor van esély A nem kapta el, és csak 1211 00:54:21,170 --> 00:54:24,844 amely lehetővé teszi a számítógép take-- a gonosz ember a számítógép vezérlésére. 1212 00:54:24,844 --> 00:54:25,344 Igen. 1213 00:54:25,344 --> 00:54:26,260 >> Közönség: [hallható]? 1214 00:54:26,260 --> 00:54:28,934 1215 00:54:28,934 --> 00:54:29,600 1. Előadó: Persze. 1216 00:54:29,600 --> 00:54:33,800 Ó, ha azt mondom, puffer, én csak azt jelenti, a memória mennyisége már kiosztott. 1217 00:54:33,800 --> 00:54:39,090 Tehát itt azt mondta, ó, most már kiosztott hat char-- elég hely a hat karaktert. 1218 00:54:39,090 --> 00:54:42,880 És én csak hívja, hogy az én puffer hol lehet adatokat írni. 1219 00:54:42,880 --> 00:54:44,390 Igen. 1220 00:54:44,390 --> 00:54:46,791 Más kérdés ezzel kapcsolatban? 1221 00:54:46,791 --> 00:54:47,290 Igen. 1222 00:54:47,290 --> 00:54:49,150 >> Közönség: Hogyan megállítani? 1223 00:54:49,150 --> 00:54:50,274 Hogyan megállítani? 1224 00:54:50,274 --> 00:54:51,440 1. Előadó: Félelmetes kérdést. 1225 00:54:51,440 --> 00:54:52,240 Hogyan megállítani? 1226 00:54:52,240 --> 00:54:54,110 Hogyan védekezik a puffer túlcsordulás? 1227 00:54:54,110 --> 00:54:59,160 Nos az egyik módja annak, hogy ez olyasmi, mint GetString, ahol folyamatosan növekszik 1228 00:54:59,160 --> 00:55:03,200 A memória mennyisége osztjuk ha a felhasználó belép egy csomó szöveget. 1229 00:55:03,200 --> 00:55:07,570 A másik az a helyzet, ha csak szeretnénk hat karakter, akkor egy gyors ellenőrzés. 1230 00:55:07,570 --> 00:55:11,220 Mondj egyetlen input hat karakter. 1231 00:55:11,220 --> 00:55:12,444 Igen. 1232 00:55:12,444 --> 00:55:14,360 Tehát mondjuk te dolgozik on-- megyünk 1233 00:55:14,360 --> 00:55:16,985 menni web dolgokat egy kicsit később a course-- de most 1234 00:55:16,985 --> 00:55:21,422 mondjuk Ön dolgozik egy űrlapot, akkor Csak korlátozza, hogy mennyi lehetett leadni. 1235 00:55:21,422 --> 00:55:22,378 Igen. 1236 00:55:22,378 --> 00:55:24,768 >> Közönség: getString húz memóriát verem, ugye? 1237 00:55:24,768 --> 00:55:25,444 Csak tisztázni? 1238 00:55:25,444 --> 00:55:26,485 1. Előadó: Még egy időben? 1239 00:55:26,485 --> 00:55:28,400 Közönség: Vajon getString hogy a memória a kéményből? 1240 00:55:28,400 --> 00:55:31,210 1. Előadó: Azt hiszem Getm-- get int veszi memória a kupac 1241 00:55:31,210 --> 00:55:32,911 mert felhívja alloc. 1242 00:55:32,911 --> 00:55:33,452 Közönség: Ó. 1243 00:55:33,452 --> 00:55:33,951 OKÉ. 1244 00:55:33,951 --> 00:55:35,750 1. Előadó: Igen, malloc és realloc. 1245 00:55:35,750 --> 00:55:37,120 Más kérdés? 1246 00:55:37,120 --> 00:55:37,803 Igen. 1247 00:55:37,803 --> 00:55:40,650 >> Közönség: Szóval meghatározásával a méret a pufferelés, 1248 00:55:40,650 --> 00:55:42,733 Ön nehogy valaki hogy képes beadni kód 1249 00:55:42,733 --> 00:55:45,700 hogy lehet csúszni az [hallhatatlan]. 1250 00:55:45,700 --> 00:55:48,130 >> 1. Előadó: Szóval, meghatározza a puffer mérete, 1251 00:55:48,130 --> 00:55:50,760 már mondtuk, rendben itt van, hogyan mennyi memóriát tudunk használni. 1252 00:55:50,760 --> 00:55:55,550 Ha lehetővé teszi a felhasználónak, hogy írni rajta, akkor fogsz problémákba ütközött. 1253 00:55:55,550 --> 00:55:57,930 Van értelme. 1254 00:55:57,930 --> 00:55:59,370 Fantasztikus. 1255 00:55:59,370 --> 00:56:00,640 Haladjunk végig. 1256 00:56:00,640 --> 00:56:02,320 Minden rendben. 1257 00:56:02,320 --> 00:56:06,652 Apropó hibák, itt van néhány gyakori hibaüzenetek 1258 00:56:06,652 --> 00:56:09,860 amelyek azt mutatták fel, amíg nem voltál kódolás, dolgozik a probléma készletek. 1259 00:56:09,860 --> 00:56:12,320 Jó esély arra, hogy az egyik Ezek is feltűnik a kvíz 1260 00:56:12,320 --> 00:56:15,090 Ha már évek utalás. 1261 00:56:15,090 --> 00:56:17,580 Szóval, a válaszok egyfajta itt a fórumon. 1262 00:56:17,580 --> 00:56:19,510 De nyugodtan kiáltani egy kicsit. 1263 00:56:19,510 --> 00:56:21,280 >> Miért lenne szegmens hiba történt? 1264 00:56:21,280 --> 00:56:24,279 Mi lehet az oka kapsz egy szegmentációs hiba ha éppen fut a programot? 1265 00:56:24,279 --> 00:56:26,760 1266 00:56:26,760 --> 00:56:28,230 >> Közönség: [hallható]. 1267 00:56:28,230 --> 00:56:29,500 >> 1. Előadó: Jó. 1268 00:56:29,500 --> 00:56:32,820 Igen, ha megpróbáljuk hozzáférést memória, ami nem adott nekünk. 1269 00:56:32,820 --> 00:56:34,610 Ha követéssel, egy null pointer. 1270 00:56:34,610 --> 00:56:38,610 Például, ha hívjuk malloc, és felejtsd el, hogy ellenőrizze, ha null, 1271 00:56:38,610 --> 00:56:42,250 és mi megpróbáljuk használja, a számítógép fog adni nekünk egy szegmentációs hiba. 1272 00:56:42,250 --> 00:56:42,750 Jó. 1273 00:56:42,750 --> 00:56:46,680 Mi a helyzet az implicit nyilatkozatot funkció? 1274 00:56:46,680 --> 00:56:48,589 Az mit jelent? 1275 00:56:48,589 --> 00:56:51,380 Közönség: Te akarják használni a funkciót, hogy még nem határozták meg. 1276 00:56:51,380 --> 00:56:52,130 1. Előadó: Jó. 1277 00:56:52,130 --> 00:56:54,504 Te akarják használni a funkciót hogy még nem határozták meg. 1278 00:56:54,504 --> 00:56:56,000 Szóval, hogy lehet egy két dolgot. 1279 00:56:56,000 --> 00:56:59,320 Lehet, hogy volt, mint a példa Camille mutatta meg korábban. 1280 00:56:59,320 --> 00:57:02,330 És van egy fő funkciója hogy felhívja úgynevezett kocka. 1281 00:57:02,330 --> 00:57:04,371 És mondjuk elfelejtetted hogy megírjam ezt a prototípust. 1282 00:57:04,371 --> 00:57:07,540 Elfelejtette mondani, hé számítógép, Én ezt a funkciót nevű kocka. 1283 00:57:07,540 --> 00:57:09,380 Majd meglátod később. 1284 00:57:09,380 --> 00:57:12,440 Tegyük fel, hogy elfelejtettem írni a prototípus, akkor lehet, hogy ez a hiba. 1285 00:57:12,440 --> 00:57:14,820 A másik dolog, mondjuk próbáltak használni printf, 1286 00:57:14,820 --> 00:57:16,880 és elfelejtettem, hogy tartalmazza A standard könyvtár, 1287 00:57:16,880 --> 00:57:20,240 akkor fog mondani implicit nyilatkozat funkciót. 1288 00:57:20,240 --> 00:57:22,800 Végül de nem utolsó sorban, meghatározatlan azonosító. 1289 00:57:22,800 --> 00:57:23,300 Igen. 1290 00:57:23,300 --> 00:57:24,841 >> Közönség: Van egy probléma körét. 1291 00:57:24,841 --> 00:57:28,728 Mint talán akarsz tárcsázza a helyi változó, hogy ez 1292 00:57:28,728 --> 00:57:30,884 egy másfajta környezetben. 1293 00:57:30,884 --> 00:57:33,550 1. Előadó: Nagy, tehát ha van Változó, hogy ez nem a hatálya, 1294 00:57:33,550 --> 00:57:36,890 és próbál használni, fogsz bajba kerülni. 1295 00:57:36,890 --> 00:57:40,960 És csak általánosságban, mondjuk használni próbálja x, egyre mondván int 1296 00:57:40,960 --> 00:57:45,140 x = 5, akkor te fog bajba. 1297 00:57:45,140 --> 00:57:47,640 Elnézést, kérdéseket ebben? 1298 00:57:47,640 --> 00:57:49,330 Félelmetes, chugging végig. 1299 00:57:49,330 --> 00:57:55,692 >> OK, rekurzió, miért might-- nézzük see-- Elfelejtett sch-- ó itt vagyunk, 1300 00:57:55,692 --> 00:57:57,400 csak arról, mi vagyunk nagyjából menetrend szerint. 1301 00:57:57,400 --> 00:57:59,060 Rendben, jó. 1302 00:57:59,060 --> 00:58:03,150 OK, rekurzió, az alapötlet rekurzió, egy rekurzív függvényt 1303 00:58:03,150 --> 00:58:05,380 egy olyan funkció, amely magát. 1304 00:58:05,380 --> 00:58:08,170 OK, ez az, amit én azalatt, hogy a program koncepciója 1305 00:58:08,170 --> 00:58:11,130 ahol egy függvény nevezi magát. 1306 00:58:11,130 --> 00:58:16,210 Mi lenne some-- mi egy jó ok az rekurzió? 1307 00:58:16,210 --> 00:58:17,550 Ha esetleg ez hasznos lehet? 1308 00:58:17,550 --> 00:58:20,926 Vagy izé olyan program, amely valóban alkalmas arra, hogy a rekurzió? 1309 00:58:20,926 --> 00:58:22,330 >> Közönség: bináris keresés. 1310 00:58:22,330 --> 00:58:25,500 >> 1. Előadó: bináris keresés alkalmas arra, hogy a rekurzió, 1311 00:58:25,500 --> 00:58:29,060 mert van ez a probléma, hogy lebontják kisebb darabokra, 1312 00:58:29,060 --> 00:58:32,330 és folyamatosan elvégzi ugyanazt az algoritmust rajta. 1313 00:58:32,330 --> 00:58:37,790 Ez vezet, sok esetben, több Elegáns kódot, ami pontosabb. 1314 00:58:37,790 --> 00:58:40,500 Csak a példa A bináris keresés. 1315 00:58:40,500 --> 00:58:43,100 Egy másik példa a merge sort. 1316 00:58:43,100 --> 00:58:45,920 Néha, amikor úgy gondolja, egy algoritmus, mint faktoros, 1317 00:58:45,920 --> 00:58:47,410 ez csak úgy érzi rekurzív, ugye? 1318 00:58:47,410 --> 00:58:52,440 Mert tudjuk, hogy a faktoriális 5 egy faktoriális 4-szer 5. 1319 00:58:52,440 --> 00:58:56,080 És így, amikor beállította a problémát így, ez csak úgy érzi rekurzív. 1320 00:58:56,080 --> 00:58:58,530 Tehát az lenne a nagyszerű módja annak, hogy írja meg. 1321 00:58:58,530 --> 00:58:59,425 Kérdések? 1322 00:58:59,425 --> 00:59:00,395 Igen. 1323 00:59:00,395 --> 00:59:01,850 >> Közönség: Mi az a bázis esetében? 1324 00:59:01,850 --> 00:59:02,770 >> 1. Előadó: Ó, milyen egy alapeset? 1325 00:59:02,770 --> 00:59:04,680 Azt mondta, ne felejtsük el, mely egy alapeset. 1326 00:59:04,680 --> 00:59:07,690 Mondjuk írtunk Egy faktoriális függvény, 1327 00:59:07,690 --> 00:59:09,620 és csinálunk faktoriálisát 5. 1328 00:59:09,620 --> 00:59:12,352 És tudjuk, hogy egy faktoros 5 5-ször egy faktoriálisát 4, 1329 00:59:12,352 --> 00:59:13,310 bla, bla, bla, bla. 1330 00:59:13,310 --> 00:59:14,360 Honnan tudjuk, hogy mikor hagyja abba? 1331 00:59:14,360 --> 00:59:16,276 Honnan tudjuk, hogy mi valóban van egy szám? 1332 00:59:16,276 --> 00:59:20,180 Mert ha hívogattam faktoros, akkor soha nem kap választ, igaz? 1333 00:59:20,180 --> 00:59:24,470 Tehát, ha tudjuk, hogyan kell megállítani a példában faktoros. 1334 00:59:24,470 --> 00:59:25,460 Bárki, igen. 1335 00:59:25,460 --> 00:59:27,764 >> Közönség: Amikor az 1 faktoros 1. 1336 00:59:27,764 --> 00:59:28,430 1. Előadó: Jó. 1337 00:59:28,430 --> 00:59:29,530 Tehát tudjuk. 1338 00:59:29,530 --> 00:59:33,400 Mi lehet magától értetődőnek, hogy 1 faktoriális egyenlő 1. 1339 00:59:33,400 --> 00:59:36,570 Tehát, ha eljutunk a pont, ahol mi hívja faktoros 1-jén, 1340 00:59:36,570 --> 00:59:38,050 csak megy előre és vissza 1. 1341 00:59:38,050 --> 00:59:39,180 És ez a bázis esetében. 1342 00:59:39,180 --> 00:59:45,040 Mivel tudjuk, hogy egyszer elérjük ezt, és mindig fogják érinteni fogjuk a never-- 1343 00:59:45,040 --> 00:59:48,800 akkor nem csak menj örökre. 1344 00:59:48,800 --> 00:59:50,700 Más kérdés rekurzív? 1345 00:59:50,700 --> 00:59:51,630 Igen. 1346 00:59:51,630 --> 00:59:54,420 >> Közönség: Tehát, ha visszatér 1, ez csak automatikusan 1347 00:59:54,420 --> 00:59:56,290 leáll a program, igaz? 1348 00:59:56,290 --> 00:59:59,390 >> 1. Előadó: Igen, így, ha hívja return 1, if-- mondjuk, 1349 00:59:59,390 --> 01:00:04,480 mondjuk faktoriálisát 2 hívás faktoriálisát 1, faktoriálisát 1 1350 01:00:04,480 --> 01:00:06,120 majd csak visszaszolgáltatni 1. 1351 01:00:06,120 --> 01:00:12,790 És most faktoriálisát 2 fogja mondani OK, 2 szor 1 2, és vissza, hogy a választ. 1352 01:00:12,790 --> 01:00:14,260 Igen. 1353 01:00:14,260 --> 01:00:16,710 >> Közönség: Vajon kell aggódnia mintegy hatályú rekurzió 1354 01:00:16,710 --> 01:00:20,150 amikor bemész egy algoritmus? 1355 01:00:20,150 --> 01:00:21,880 >> 1. Előadó: Ó, igen. 1356 01:00:21,880 --> 01:00:25,060 Igen, ha nem kell aggódnia hatálya keretében rekurzió. 1357 01:00:25,060 --> 01:00:29,820 Tehát csak a változók meghatározása abban a futás a funkció 1358 01:00:29,820 --> 01:00:32,170 lesznek hasznosak. 1359 01:00:32,170 --> 01:00:33,792 Igen jó kérdés. 1360 01:00:33,792 --> 01:00:35,250 Rendben, maradjunk mozog. 1361 01:00:35,250 --> 01:00:37,320 Mert van egy csomó anyag átvészelni. 1362 01:00:37,320 --> 01:00:41,080 De mint mondtam, bátran hit fel munkaidejében vagy nekünk után a tényt. 1363 01:00:41,080 --> 01:00:42,850 >> Ez csak egy igazán gyors csúszda. 1364 01:00:42,850 --> 01:00:45,150 Sokat tanultunk arról keresések és rendezi. 1365 01:00:45,150 --> 01:00:47,400 Kérlek kérlek kérlek, ezek a szakaszok online 1366 01:00:47,400 --> 01:00:51,240 Úgy gondolom, a cs50.net/quizzes. 1367 01:00:51,240 --> 01:00:53,762 Szóval menj ezt a táblázatot, és tedd a felülvizsgálati lapot, 1368 01:00:53,762 --> 01:00:55,470 mert nem lesz Egy kérdés ez. 1369 01:00:55,470 --> 01:00:56,682 Kérjük, ne kap ez rossz. 1370 01:00:56,682 --> 01:00:58,390 Csak nagyon gyorsan, Mi ez a táblázat azt jelenti, 1371 01:00:58,390 --> 01:01:04,370 ez beszél a nagy o, amiről tudjuk, hogy a felső határa az algoritmusok 1372 01:01:04,370 --> 01:01:05,150 futási idő. 1373 01:01:05,150 --> 01:01:08,080 És mi van az Omega, amely lesz az alsó határ 1374 01:01:08,080 --> 01:01:10,290 Egy algoritmusok futási. 1375 01:01:10,290 --> 01:01:10,840 OKÉ? 1376 01:01:10,840 --> 01:01:12,480 >> Közönség: [hallható]. 1377 01:01:12,480 --> 01:01:12,800 >> 1. Előadó: Igen, mi az utolsó dolog? 1378 01:01:12,800 --> 01:01:13,380 Mi theta? 1379 01:01:13,380 --> 01:01:16,850 Ez, ha we-- mi csak fog érdekel ebben az osztályban abban az esetben, 1380 01:01:16,850 --> 01:01:19,381 ahol felső korlátot és mi alsó korlát azonos. 1381 01:01:19,381 --> 01:01:22,005 Igen, ez az egyetlen alkalom, hogy fognak jönni ebben az osztályban. 1382 01:01:22,005 --> 01:01:23,320 OK, megyek, hogy folytassam. 1383 01:01:23,320 --> 01:01:26,490 Ha még nem szedte a képet, Ígérem, ezek lesznek az interneten. 1384 01:01:26,490 --> 01:01:28,220 >> OK, félelmetes, struktúrákat. 1385 01:01:28,220 --> 01:01:29,810 Mi lehet az oka akarunk struktúrákat? 1386 01:01:29,810 --> 01:01:34,110 Mi az a hasznos oka nem árt struktúrákat. 1387 01:01:34,110 --> 01:01:36,277 Valaki kiabál valamit. 1388 01:01:36,277 --> 01:01:38,110 Nos nézzük meg a Például a táblán. 1389 01:01:38,110 --> 01:01:41,090 Mondjuk van dolgunk mindezeket a diákok. 1390 01:01:41,090 --> 01:01:44,900 Ha még van egy program CS50, vannak, mint 800 fő. 1391 01:01:44,900 --> 01:01:47,890 Meg kell write-- megyünk kell kezelni a sok információ 1392 01:01:47,890 --> 01:01:49,020 a diákokról. 1393 01:01:49,020 --> 01:01:50,990 Jó lenne, ha tudtunk egyfajta csoportos 1394 01:01:50,990 --> 01:01:54,460 this-- minden olyan információt, köze van egy adott diák 1395 01:01:54,460 --> 01:01:56,027 az egyik típusú adatokat. 1396 01:01:56,027 --> 01:01:58,360 De tudjuk, hogy nincs adat típusú úgynevezett, Student, ugye? 1397 01:01:58,360 --> 01:02:01,890 Van egy egész, van egy úszó, van egy szöveg, vagy char csillag, 1398 01:02:01,890 --> 01:02:03,920 de nincs, egy diák. 1399 01:02:03,920 --> 01:02:08,680 >> Tehát amit tehetünk, valójában milyen meghatározzák saját szerkezete, nevezzük hallgató, 1400 01:02:08,680 --> 01:02:12,440 és mi lehet társítani néhány különböző területeken azzal a struktúra. 1401 01:02:12,440 --> 01:02:14,410 Tehát ebben az esetben, hadd mondjuk, hogy egy diák. 1402 01:02:14,410 --> 01:02:17,350 És a dolgok, hogy mi érdekel mintegy a diákigazolvány száma 1403 01:02:17,350 --> 01:02:19,500 és a hallgató nevét. 1404 01:02:19,500 --> 01:02:24,175 És most már tudjuk társítani ezt ID és ez a név, amelyet egy adott diák. 1405 01:02:24,175 --> 01:02:25,300 Nézzük néhány példát. 1406 01:02:25,300 --> 01:02:28,860 1407 01:02:28,860 --> 01:02:33,490 >> OK, így itt mondom, OK, menjünk mondjuk azt akarjuk, hogy egy diák. 1408 01:02:33,490 --> 01:02:35,050 Hívom diák 1. 1409 01:02:35,050 --> 01:02:38,850 És a személyi igazolvány száma, az Ebben az esetben, akkor érheti el 1410 01:02:38,850 --> 01:02:45,200 által csak ennek a neve a hallgató dot területén szeretnénk elérni. 1411 01:02:45,200 --> 01:02:49,110 Szóval ez lesz, hogy csak a diákok 1 pont azonosító, és mi meg azt egyenlő 1. 1412 01:02:49,110 --> 01:02:52,300 Mert emlékszem, azt mondtuk, hogy ID lesz egy egész szám. 1413 01:02:52,300 --> 01:02:56,540 És nagyon hasonlóan, azt mondhatjuk, ez a hallgató nevét lesz Davin, 1414 01:02:56,540 --> 01:02:57,760 például. 1415 01:02:57,760 --> 01:03:01,420 Így tudjuk csak elérni a területen Egy struct ezzel a ponttal. 1416 01:03:01,420 --> 01:03:03,098 Kérdések hogy? 1417 01:03:03,098 --> 01:03:03,598 Igen. 1418 01:03:03,598 --> 01:03:05,582 >> Közönség: Van mód védi a változókat? 1419 01:03:05,582 --> 01:03:08,560 Van-e módja annak, hogy megvédje változók attól, hogy kívülről hozzáférni? 1420 01:03:08,560 --> 01:03:10,726 >> 1. Előadó: Van egyébként megvédeni a változók 1421 01:03:10,726 --> 01:03:12,680 attól, hogy kívülről hozzáférni? 1422 01:03:12,680 --> 01:03:13,750 Nem a hatálya CS50. 1423 01:03:13,750 --> 01:03:16,680 1424 01:03:16,680 --> 01:03:17,977 Más kérdés? 1425 01:03:17,977 --> 01:03:18,476 Igen. 1426 01:03:18,476 --> 01:03:18,942 >> Közönség: Mi a typedef struct? 1427 01:03:18,942 --> 01:03:20,192 Mit jelent egyes komponensek jelent? 1428 01:03:20,192 --> 01:03:22,937 1429 01:03:22,937 --> 01:03:24,520 1. Előadó: Ah, mi a typedef struct? 1430 01:03:24,520 --> 01:03:26,240 Mit jelent minden egyes alkatrész értem ez a fickó? 1431 01:03:26,240 --> 01:03:26,850 >> Közönség: Igen. 1432 01:03:26,850 --> 01:03:27,683 >> 1. Előadó: OK, hűvös. 1433 01:03:27,683 --> 01:03:31,200 Tehát ez azt mondja, hé számítógép, szeretnénk létrehozni egy új struktúra. 1434 01:03:31,200 --> 01:03:34,970 És fogok határozni a meghatározás mert, mint, hogy tudnám használni 1435 01:03:34,970 --> 01:03:37,520 mintha egy típus egész programom. 1436 01:03:37,520 --> 01:03:39,300 OK, így azt akarom, hogy meghatározzák a szerkezetet. 1437 01:03:39,300 --> 01:03:41,650 És én most lesz tudja használni, mint egy típus. 1438 01:03:41,650 --> 01:03:43,400 És a neve diák. 1439 01:03:43,400 --> 01:03:45,730 És itt vannak a területen. 1440 01:03:45,730 --> 01:03:48,130 >> Közönség: Tehát az, hogy typedef struct [hallhatatlan]? 1441 01:03:48,130 --> 01:03:50,592 1442 01:03:50,592 --> 01:03:53,800 1. Előadó: Ha azt szeretné, hogy képes legyen Használja ezt a struktúra az egész programot, 1443 01:03:53,800 --> 01:03:57,910 és a legtöbb esetben a CS50 mi csinálni, azt kell mondanunk típusú Def. 1444 01:03:57,910 --> 01:04:01,190 És ez lehetővé teszi, hogy használja azt a ugyanaz hogy az általunk használt, mint int vagy float. 1445 01:04:01,190 --> 01:04:04,168 A számítógép Mindig tudja, mi az. 1446 01:04:04,168 --> 01:04:04,668 Igen. 1447 01:04:04,668 --> 01:04:06,560 >> Közönség: Meg tudjuk írni ez a header fájlt? 1448 01:04:06,560 --> 01:04:07,060 >> 1. Előadó: Ó, sajnálom. 1449 01:04:07,060 --> 01:04:08,600 Írunk ebben a header fájlt? 1450 01:04:08,600 --> 01:04:11,410 Akkor az alábbi, a tetején a programot, a tetején a C program. 1451 01:04:11,410 --> 01:04:13,010 Igen, ez lenne a leginkább ésszerű hellyé vált. 1452 01:04:13,010 --> 01:04:13,509 Vissza ott. 1453 01:04:13,509 --> 01:04:15,704 Közönség: ugyanezt a kérdést, így a főétkezések előtt? 1454 01:04:15,704 --> 01:04:18,870 1. Előadó: Jobb, meg kell, hogy ez valahol, hogy mindenki hozzáférhessen. 1455 01:04:18,870 --> 01:04:20,612 Szóval mielőtt fő az Ön esetében, igen. 1456 01:04:20,612 --> 01:04:23,820 Közönség: Van-e különbség üzembe hallgató a tetején és az alján? 1457 01:04:23,820 --> 01:04:25,810 1. Előadó: Ah, van egy közötti különbség üzembe diák 1458 01:04:25,810 --> 01:04:26,840 a tetején vagy alján? 1459 01:04:26,840 --> 01:04:29,650 Let-- menteni ezt a kérdést, és ha eljutunk a láncolt listák, 1460 01:04:29,650 --> 01:04:31,020 látni fogjuk, hogy, OK? 1461 01:04:31,020 --> 01:04:32,750 Szóval ragaszkodnak a, hogy egy másodpercig. 1462 01:04:32,750 --> 01:04:37,080 Az utolsó dolog, amit szeretnék megemlíteni itt, van ahelyett, amelynek szerkezete, 1463 01:04:37,080 --> 01:04:41,180 van egy mutató egy szerkezetet, meg tudjuk változtatni jelöléseinket 1464 01:04:41,180 --> 01:04:42,480 hogy egy kicsit szebb. 1465 01:04:42,480 --> 01:04:45,810 >> Elmondhatjuk, mondjuk van egy mutató egy diák helyett csak 1466 01:04:45,810 --> 01:04:47,040 egy diák. 1467 01:04:47,040 --> 01:04:52,460 Ha azt akarjuk hozzáférést a területen, ahelyett, során jól megy dereference a mutatót, 1468 01:04:52,460 --> 01:04:54,100 majd elérni a mező nevét. 1469 01:04:54,100 --> 01:04:57,310 Ezzel a jelöléssel néz ki egy kicsit rendetlen a csillag ebben a dot. 1470 01:04:57,310 --> 01:05:00,790 Teljesen korrekt, hanem egyfajta A tisztább módon kell csinálni, 1471 01:05:00,790 --> 01:05:03,280 csak mondani mutató nyíl nevét. 1472 01:05:03,280 --> 01:05:11,460 És a ténylegesen egyesíti dereferencing elérése és egy csodálatos szimbóluma. 1473 01:05:11,460 --> 01:05:12,470 Kérdések hogy? 1474 01:05:12,470 --> 01:05:13,760 >> Közönség: Csak azt mondják, hogy még egyszer. 1475 01:05:13,760 --> 01:05:14,480 >> 1. Előadó: Tegyük fel, hogy még egyszer. 1476 01:05:14,480 --> 01:05:16,021 >> Közönség: Pontosan mit mondott. 1477 01:05:16,021 --> 01:05:17,870 1. Előadó: Persze, hogy pontosan amit mondtam. 1478 01:05:17,870 --> 01:05:21,580 Ha van egy mutató egy diák helyett a tanuló maga, 1479 01:05:21,580 --> 01:05:25,410 mi can-- egyik módja, hogy tudjuk elérni a mező a hivatkozás feloldási, majd 1480 01:05:25,410 --> 01:05:27,110 hozzáférést nevét. 1481 01:05:27,110 --> 01:05:29,040 Egy másik, szebb módon meg tudja csinálni, ami csak 1482 01:05:29,040 --> 01:05:33,550 egy kis szintaktikai cukor, csak csinálni mutató nyíl nevét. 1483 01:05:33,550 --> 01:05:38,190 És hogy megy, hogy összekapcsolják a dereferencing és a csatlakozó. 1484 01:05:38,190 --> 01:05:40,400 Igen, nagyon klassz. 1485 01:05:40,400 --> 01:05:41,260 Minden rendben. 1486 01:05:41,260 --> 01:05:44,390 >> Szóval beszéljünk a másik kérdés. 1487 01:05:44,390 --> 01:05:46,520 Nézzük ugrani csomópontok, amely fogunk használni 1488 01:05:46,520 --> 01:05:49,120 a kapcsolt listák pillanatok alatt. 1489 01:05:49,120 --> 01:05:53,580 Tehát itt, észre fogod venni, hogy van az a szó csomópont mind az alsó, 1490 01:05:53,580 --> 01:05:55,160 és a tetején. 1491 01:05:55,160 --> 01:05:59,040 Korábban, amikor mi voltunk meghatározó hallgató, mi csak volt hallgatója az alján. 1492 01:05:59,040 --> 01:06:00,470 Nem volt hallgatója a tetején. 1493 01:06:00,470 --> 01:06:01,902 Bárki, aki tudja miért lehet? 1494 01:06:01,902 --> 01:06:02,860 Mi a különbség? 1495 01:06:02,860 --> 01:06:03,360 Igen. 1496 01:06:03,360 --> 01:06:06,212 Közönség: Szóval használja csomópont az a meghatározás, csomópont, 1497 01:06:06,212 --> 01:06:08,254 így ez egy rekurzív dolog? 1498 01:06:08,254 --> 01:06:08,920 1. Előadó: Jó. 1499 01:06:08,920 --> 01:06:13,230 Igen, szükségünk van a csomópontok Van mutatót más csomópontok. 1500 01:06:13,230 --> 01:06:17,640 Tehát mivel ezt a fajta mielőtt ez valójában meghatározott, 1501 01:06:17,640 --> 01:06:20,613 meg kell tenni, hogy a csúcson Csak így tudja, mi az. 1502 01:06:20,613 --> 01:06:22,446 Közönség: Szóval még mindig szüksége van rá az alján? 1503 01:06:22,446 --> 01:06:23,338 1. Előadó: Igen. 1504 01:06:23,338 --> 01:06:24,754 Közönség: Tehát mindig alul. 1505 01:06:24,754 --> 01:06:26,090 1. Előadó: Mindig alján. 1506 01:06:26,090 --> 01:06:29,410 Tehát minden a tiéd lesz van ez az alján. 1507 01:06:29,410 --> 01:06:30,720 Más kérdés? 1508 01:06:30,720 --> 01:06:33,511 Rendben, így lehetővé teszi, valóban beszélni mintegy láncolt listák nagyon gyorsan. 1509 01:06:33,511 --> 01:06:36,510 Tehát láncolt listák are-- használjuk őket helyett tömbök egyes esetekben, 1510 01:06:36,510 --> 01:06:40,030 mert tudjuk, hogy az elrendezések fix hosszúságú, míg a kapcsolt listák 1511 01:06:40,030 --> 01:06:42,670 tudunk növekedni, és összezsugorodik, ahogy szeretnénk. 1512 01:06:42,670 --> 01:06:45,790 Tehát ez egy példa, amit láncolt listájának nézhet. 1513 01:06:45,790 --> 01:06:48,590 Amire szükségünk, hogy van A lista élére. 1514 01:06:48,590 --> 01:06:50,330 Szóval, ha a listán indul. 1515 01:06:50,330 --> 01:06:53,010 Aztán Node, minden további csomópont az 1516 01:06:53,010 --> 01:06:55,880 feladata, hogy ismerjék ahol a következő csomópont. 1517 01:06:55,880 --> 01:07:00,950 Tehát ebben az esetben, a csomópont, amely tárolja a 1 felelős tudta, hol 3. 1518 01:07:00,950 --> 01:07:04,540 Az a személy, amely tárolja a 3. feladata, hogy ismerjék, ahol a 9. 1519 01:07:04,540 --> 01:07:06,230 És 9 senki mást mutatnak. 1520 01:07:06,230 --> 01:07:08,750 Ez az a lista végére, így csak azt mondja null. 1521 01:07:08,750 --> 01:07:09,250 OKÉ? 1522 01:07:09,250 --> 01:07:10,530 >> Közönség: Mi értelme ennek? 1523 01:07:10,530 --> 01:07:11,480 >> 1. Előadó: Mi értelme ennek? 1524 01:07:11,480 --> 01:07:12,105 >> Közönség: Igen. 1525 01:07:12,105 --> 01:07:15,390 1. Előadó: Mert, nézzünk mondjuk, hogy néhány adatot. 1526 01:07:15,390 --> 01:07:18,480 És nem tudjuk, hogy pontosan hogyan sok adatot akarunk idő előtt. 1527 01:07:18,480 --> 01:07:22,479 Tehát egy sor, mondjuk, ahol akarja számolni az emberek az első sorban. 1528 01:07:22,479 --> 01:07:24,020 Esélye van, hogy nem fog változtatni. 1529 01:07:24,020 --> 01:07:28,120 Mi csak annyit, OK, szeretnénk egy sor mérete hat. 1530 01:07:28,120 --> 01:07:30,120 De ha akarunk valamit hogy meg fog változni. 1531 01:07:30,120 --> 01:07:32,900 >> Például, mondjuk én próbáltam nyomon követni a diákok 1532 01:07:32,900 --> 01:07:35,330 ahogy jönnek be a szobába A felülvizsgálati ülésén. 1533 01:07:35,330 --> 01:07:38,420 Fogalmam sincs, hányan emberek fognak megjelenni. 1534 01:07:38,420 --> 01:07:43,094 Szóval érdemes adatstruktúrát hogy tudok bővíteni, és összezsugorodik. 1535 01:07:43,094 --> 01:07:45,510 Mert talán valaki hagyja, talán jön valaki. 1536 01:07:45,510 --> 01:07:48,386 És így bármikor, mi hozzáadása vagy eltávolítása a csomópontokat. 1537 01:07:48,386 --> 01:07:49,771 Cool, nagy kérdés. 1538 01:07:49,771 --> 01:07:50,270 Igen. 1539 01:07:50,270 --> 01:07:52,311 >> Közönség: Ha tudja használni valami ilyesmit getString 1540 01:07:52,311 --> 01:07:55,750 hogy tartja és lehetővé teszi, hogy több adatot szükség van rá, miért kell ezt túl? 1541 01:07:55,750 --> 01:07:57,625 >> 1. Előadó: Miért lenne használatakor láncolt lista, ha 1542 01:07:57,625 --> 01:07:59,440 tudod használni valami ilyesmit getString? 1543 01:07:59,440 --> 01:08:01,640 Ez egy jó kérdés. 1544 01:08:01,640 --> 01:08:04,240 Ne feledje, hogy Get-- egyik downfalls getString 1545 01:08:04,240 --> 01:08:06,750 az, hogy nem csináltunk egy nagyon jó munkát felszabadítása, hogy az emlékezet, 1546 01:08:06,750 --> 01:08:09,320 és bevezettünk egy csomó memóriavesztés a programba? 1547 01:08:09,320 --> 01:08:15,037 Lehet hogy ez egy statikusan méretű tömb, és folyamatosan növekszik is. 1548 01:08:15,037 --> 01:08:16,870 De ha volna találni Új helyen a memóriában. 1549 01:08:16,870 --> 01:08:18,359 Ez csak egy csomó fölött. 1550 01:08:18,359 --> 01:08:21,050 >> Az egyik szép dolog kapcsolódik listák, szemben a tömbök, a tömbök 1551 01:08:21,050 --> 01:08:22,830 mind ugyanazon a helyen a memóriában. 1552 01:08:22,830 --> 01:08:25,540 Meg kell folyamatos darabokat a memóriában. 1553 01:08:25,540 --> 01:08:29,920 Mivel láncolt listák, 2. és 3. teljesen különböző helyszíneken. 1554 01:08:29,920 --> 01:08:31,880 Mint a 2. ide, és 3 vége van. 1555 01:08:31,880 --> 01:08:34,421 És mindaddig, amíg van egy pointer egymáshoz, ez rendben van. 1556 01:08:34,421 --> 01:08:35,830 Tudjuk, hogy megtalálja őket. 1557 01:08:35,830 --> 01:08:37,084 Kérdés ott? 1558 01:08:37,084 --> 01:08:40,563 >> Közönség: getString függvénye A CS50 könyvtár, igaz? 1559 01:08:40,563 --> 01:08:42,060 Ez nem létezik valós programokat. 1560 01:08:42,060 --> 01:08:42,851 >> 1. Előadó: Helyes. 1561 01:08:42,851 --> 01:08:44,130 Rendben, ez a másik dolog. 1562 01:08:44,130 --> 01:08:47,210 GetString nem létezik keretein kívül a CS50. 1563 01:08:47,210 --> 01:08:47,710 Igen. 1564 01:08:47,710 --> 01:08:54,556 >> Közönség: Tehát az a tény, hogy Két lehet igazán messze egymástól, 1565 01:08:54,556 --> 01:08:59,859 nem, hogy hatással hatékonyságának hozzáférés az elemek a listán? 1566 01:08:59,859 --> 01:09:01,359 1. Előadó: Ez egy jó kérdés. 1567 01:09:01,359 --> 01:09:04,278 A kérdés az volt, ugye hatása A hatékonyság elérésének 1568 01:09:04,278 --> 01:09:05,819 ezek a különböző elemek a listán. 1569 01:09:05,819 --> 01:09:06,930 Tulajdonképpen igen. 1570 01:09:06,930 --> 01:09:09,569 Mert tudjuk if-- nézzük mondjuk azt akarjuk elérni 1571 01:09:09,569 --> 01:09:14,520 a második elem a tömb, tudjuk, mi csak csinálni tömb konzol 1, igaza van. 1572 01:09:14,520 --> 01:09:16,630 Mindig lesz lehet ugyanazon a helyen. 1573 01:09:16,630 --> 01:09:20,720 De ha azt akarjuk, hogy az, hogy 3, akkor nem csak azt mondják, megy, hogy 3. 1574 01:09:20,720 --> 01:09:24,009 Azt kell, hogy mondjam, OK, kezdje az elején a lista, 1575 01:09:24,009 --> 01:09:26,050 és most valóban van a séta, amíg nem 1576 01:09:26,050 --> 01:09:28,149 megtalálni a száma érdekel minket. 1577 01:09:28,149 --> 01:09:30,790 >> Tehát ebben az esetben azt mondjuk, OK ez az első szám. 1578 01:09:30,790 --> 01:09:32,207 Tehát lényegében ez indexe 0. 1579 01:09:32,207 --> 01:09:33,790 Most meg kell találnunk a második számot. 1580 01:09:33,790 --> 01:09:34,740 Ez index 1. 1581 01:09:34,740 --> 01:09:39,180 Szóval ez valóban lesz az alábbiakra: csak hozzáférés, fog tartani N időt. 1582 01:09:39,180 --> 01:09:42,027 Cool, nagy, öreg N. Igen. 1583 01:09:42,027 --> 01:09:43,903 >> Közönség: Mik az egyes listák? 1584 01:09:43,903 --> 01:09:45,401 Vajon minden tömbök, vagy mi? 1585 01:09:45,401 --> 01:09:46,859 1. Előadó: Ez egy nagyszerű kérdés. 1586 01:09:46,859 --> 01:09:48,950 Mik az egyes struktúrák, hogy én már húzott? 1587 01:09:48,950 --> 01:09:51,649 Ezek a csomópontok. 1588 01:09:51,649 --> 01:09:53,720 Tehát minden ilyen kis szerkezet két részből áll. 1589 01:09:53,720 --> 01:09:55,264 Meg van egy egész szám, amely birtokolja. 1590 01:09:55,264 --> 01:09:57,180 Ez a tényleges adatok hogy ez kapaszkodott. 1591 01:09:57,180 --> 01:09:58,770 Ez a fajta hasznos része. 1592 01:09:58,770 --> 01:10:00,820 És, ez az, amit teszi, hogy egy láncolt lista, 1593 01:10:00,820 --> 01:10:03,690 van egy mutatót a következő csomópontot. 1594 01:10:03,690 --> 01:10:05,260 Félelmetes kérdést. 1595 01:10:05,260 --> 01:10:11,320 Rendben, akkor nézzük meg nagyon Gyorsan nézd meg néhány példát 1596 01:10:11,320 --> 01:10:12,820 talán köze láncolt listák. 1597 01:10:12,820 --> 01:10:16,920 >> Tehát egy nagyon gyors példa, Gondolom azt akarjuk, hogy csinál egy kutatás. 1598 01:10:16,920 --> 01:10:20,240 Milyen keresés nem mi a láncolt listák? 1599 01:10:20,240 --> 01:10:21,150 >> Közönség: Binary. 1600 01:10:21,150 --> 01:10:21,900 >> 1. Előadó: Binary. 1601 01:10:21,900 --> 01:10:23,408 Miért ne használhatnánk a bináris keresés? 1602 01:10:23,408 --> 01:10:25,181 >> Közönség: [hallható]. 1603 01:10:25,181 --> 01:10:28,180 1. Előadó: Igaz, mert a bináris keresés, meg kellett támaszkodnia a tény, 1604 01:10:28,180 --> 01:10:31,300 hogy mi lehetett csak ugorj a tömb bármely pontján. 1605 01:10:31,300 --> 01:10:33,420 Így egyszerűen azt mondják, menj hogy a középső elem. 1606 01:10:33,420 --> 01:10:35,550 A ide, ahogy mondta Egy kicsit korábban, 1607 01:10:35,550 --> 01:10:37,270 akkor nem csak ugrani a középső elem. 1608 01:10:37,270 --> 01:10:38,978 Annak érdekében, hogy megtalálják bármely elem, mi valójában 1609 01:10:38,978 --> 01:10:40,780 a séta a teljes lista. 1610 01:10:40,780 --> 01:10:43,910 >> Tehát ha azt akartuk, hogy nem a keresés, a legjobb, amit tehetünk, csak egy lineáris keresést. 1611 01:10:43,910 --> 01:10:45,910 Kezdjük a fejét, mi check-- mondjuk mi vagyunk 1612 01:10:45,910 --> 01:10:47,790 keres 9-- kezdjük meg a fejét. 1613 01:10:47,790 --> 01:10:49,200 Azt mondjuk, ez 9? 1614 01:10:49,200 --> 01:10:49,710 Nem. 1615 01:10:49,710 --> 01:10:50,430 Ez 9? 1616 01:10:50,430 --> 01:10:50,930 Nem. 1617 01:10:50,930 --> 01:10:51,620 Ez 9? 1618 01:10:51,620 --> 01:10:53,730 Igen, megtaláltuk. 1619 01:10:53,730 --> 01:10:56,350 OK, ez minden. 1620 01:10:56,350 --> 01:10:57,940 Itt egy kicsit a pszeudo-kódot. 1621 01:10:57,940 --> 01:11:01,420 Megyek, hogy elhagyja ezt az Ön számára srácok lemorzsolódás át a saját, 1622 01:11:01,420 --> 01:11:04,370 csak azért, mert kifutunk egy kicsit rövid az idő. 1623 01:11:04,370 --> 01:11:05,610 >> Beszéljünk szerelést. 1624 01:11:05,610 --> 01:11:08,644 Láttunk egy nagyon klassz demo Ezt előadás, ahol azt mondta, 1625 01:11:08,644 --> 01:11:11,560 OK, itt van ez a láncolt lista, ahol mindenki mutat egymáshoz, 1626 01:11:11,560 --> 01:11:13,400 és valaki jön fel a színpadra. 1627 01:11:13,400 --> 01:11:17,050 Hogyan írjunk, hogy személy a mi láncolt lista? 1628 01:11:17,050 --> 01:11:20,150 Nos, a rossz utat megtenni, amely Azt hiszem, van amit láttunk először, 1629 01:11:20,150 --> 01:11:22,740 az, amikor az a személy, elöl automatikusan 1630 01:11:22,740 --> 01:11:25,270 Rámutatott, hogy az új ember. 1631 01:11:25,270 --> 01:11:29,057 És akkor egyfajta felhagyott a második felében a listán, igaz? 1632 01:11:29,057 --> 01:11:31,390 Mivel nem tudjuk, hol ez a memóriában többé. 1633 01:11:31,390 --> 01:11:34,750 Tehát nagyon óvatosnak kell a annak reményében, helyezze a dolgokat. 1634 01:11:34,750 --> 01:11:37,860 >> Tehát itt, mondjuk azt akarjuk, hogy tedd 1 elöl a listán. 1635 01:11:37,860 --> 01:11:42,190 Először is, van 1 pont a második element-- vagy az elem 1636 01:11:42,190 --> 01:11:44,170 amely tartalmazza 1. 1637 01:11:44,170 --> 01:11:47,210 Szóval, ezt tesszük, csak azért nem vagyunk veszíteni fog a második félévben. 1638 01:11:47,210 --> 01:11:51,020 És most, mi lehet a feje pont 1. 1639 01:11:51,020 --> 01:11:52,930 Szóval megint, ez csak mint a szuper magas szinten. 1640 01:11:52,930 --> 01:11:55,290 Így tehetjük be egy csomópontot. 1641 01:11:55,290 --> 01:11:57,337 Van egy csomó pszeudo-kód here-- sajnálom, 1642 01:11:57,337 --> 01:11:59,170 Nem tudom, miért vagyok amelyben ez pszeudo-kódot. 1643 01:11:59,170 --> 01:12:00,350 Ez maga a kód. 1644 01:12:00,350 --> 01:12:02,570 Akkor menj nézd meg később. 1645 01:12:02,570 --> 01:12:04,870 >> Rendben, nézzük nagyon quickly-- több kérdésre 1646 01:12:04,870 --> 01:12:07,120 a kapcsolt listák, mielőtt mozogni rá egy pár egyéb adatok 1647 01:12:07,120 --> 01:12:08,450 struktúrák az utolsó 10 perc. 1648 01:12:08,450 --> 01:12:10,340 >> Közönség: Szükség van-e most hogyan kell írni egy teszt? 1649 01:12:10,340 --> 01:12:11,040 >> 1. Előadó: Szükségünk van arra, hogy milyen az alábbiakra: 1650 01:12:11,040 --> 01:12:12,030 >> Közönség: Írja be a tesztet. 1651 01:12:12,030 --> 01:12:14,071 >> 1. Előadó: mi szükség van az alábbiakra: akkor fel kell készülnie 1652 01:12:14,071 --> 01:12:18,870 írni, betét, távolítsa el, és keresni láncolt listák a tesztet. 1653 01:12:18,870 --> 01:12:21,480 Ez olyasmi, amit számíthattak, hogy nem. 1654 01:12:21,480 --> 01:12:22,750 Csak menjen rajta. 1655 01:12:22,750 --> 01:12:26,460 Ha bármilyen kérdése van a kódot, lőni a TF egy e-mailt, 1656 01:12:26,460 --> 01:12:27,750 jöjjön munkaidőben. 1657 01:12:27,750 --> 01:12:30,041 Még mindig sok időt tanulni, hogy ne aggódjon. 1658 01:12:30,041 --> 01:12:32,290 Rendben, minden más kérdései láncolt listák? 1659 01:12:32,290 --> 01:12:32,986 Igen. 1660 01:12:32,986 --> 01:12:37,360 >> Közönség: Tehát, ha nem használja a pointer menni a másikat a jobb 1661 01:12:37,360 --> 01:12:41,308 Mielőtt használja a mutatót Az egyik a bal oldalon, az 1662 01:12:41,308 --> 01:12:43,211 egyenértékű törlése mindent, ugye? 1663 01:12:43,211 --> 01:12:43,877 1. Előadó: Igen. 1664 01:12:43,877 --> 01:12:44,820 Közönség: [hallható]. 1665 01:12:44,820 --> 01:12:47,570 1. Előadó: Jobb, hiszen nem lehet értem, ez valójában még rosszabb. 1666 01:12:47,570 --> 01:12:50,690 Mert nem csak hogy nem tudom hol van, mi már nem használja, 1667 01:12:50,690 --> 01:12:53,580 de we've-- nem vagyunk felszabadítja az emlék már. 1668 01:12:53,580 --> 01:12:58,570 Tehát csak lógott, és nem hasznos lehet, mert nem tudjuk megtalálni. 1669 01:12:58,570 --> 01:12:59,580 Igen, jó kérdés. 1670 01:12:59,580 --> 01:13:01,280 >> Rendben, beszéljünk stack. 1671 01:13:01,280 --> 01:13:03,230 Láttuk halom nagyon gyorsan. 1672 01:13:03,230 --> 01:13:06,280 Ők először tavaly ki adatszerkezeteket. 1673 01:13:06,280 --> 01:13:10,664 Szóval azt hiszem, a stack Annenberg A tálcák ahol verem dolgokat a tetején. 1674 01:13:10,664 --> 01:13:12,580 És ha meg akarsz gyere egy tálcát, te 1675 01:13:12,580 --> 01:13:15,870 Mindig megy, hogy az egyik a top, amely a leginkább recently-- 1676 01:13:15,870 --> 01:13:18,840 ami a dolog, amit a leginkább Nemrég fel a tetején a verem. 1677 01:13:18,840 --> 01:13:22,680 Szóval lehet egyfajta gondolom, ennek a fajta vizuális ha te gondolsz stack. 1678 01:13:22,680 --> 01:13:26,010 És akkor, most már beugrott valami le a tetején a verem. 1679 01:13:26,010 --> 01:13:29,850 >> Ha are-- Ja, és a szó, hogy használni, amikor beszélünk ezeket az adatokat 1680 01:13:29,850 --> 01:13:32,680 szerkezetek általában, ha tenni valamit a veremben, 1681 01:13:32,680 --> 01:13:34,550 azt mondjuk, mi nyomja a veremben. 1682 01:13:34,550 --> 01:13:38,450 És ha vesszük valamit a verem, mondjuk mi leugrás a köteget. 1683 01:13:38,450 --> 01:13:41,470 Ha meg akarsz végrehajtani Egy stack-- amely határozottan 1684 01:13:41,470 --> 01:13:44,840 Javasoljuk, hogy próbálja out-- te szeretne majd nyomon követni, 1685 01:13:44,840 --> 01:13:46,669 mondjuk, amit használ egy tömb. 1686 01:13:46,669 --> 01:13:48,960 Tudom, az előadás beszélgettünk használatával mind a tömbök 1687 01:13:48,960 --> 01:13:51,120 vagy láncolt listák hogy végre egy verem. 1688 01:13:51,120 --> 01:13:53,490 Ha használ tömb, meg kell keep-- 1689 01:13:53,490 --> 01:13:56,750 mentség me-- meg kell nyomon követni A mérete és a kapacitást. 1690 01:13:56,750 --> 01:14:00,820 Tehát a maximális számát hogy a verem fér. 1691 01:14:00,820 --> 01:14:03,240 Kérdések a raktárban 1692 01:14:03,240 --> 01:14:05,657 >> Közönség: Mi a különbség a méret és a kapacitás? 1693 01:14:05,657 --> 01:14:08,573 1. Előadó: A különbség mérete és kapacitása, félelmetes kérdést. 1694 01:14:08,573 --> 01:14:10,330 Tehát mondjuk mi vagyunk egy mezőhöz, és mi 1695 01:14:10,330 --> 01:14:13,340 kiosztani elég hely a 10 egészek. 1696 01:14:13,340 --> 01:14:15,050 És kezdjük, hogy töltse fel, hogy. 1697 01:14:15,050 --> 01:14:17,330 És mi nyomja a dolgokat, és mi pop dolgokat ki. 1698 01:14:17,330 --> 01:14:21,060 Azt akarjuk, hogy nyomon követhesse a maximális számú tudjuk tartani, ez kapacitást. 1699 01:14:21,060 --> 01:14:24,790 És azt akarjuk, hogy nyomon követhesse a aktuális száma van, hogy a méret. 1700 01:14:24,790 --> 01:14:26,530 Jó kérdés. 1701 01:14:26,530 --> 01:14:28,720 Bármi más a raktárban 1702 01:14:28,720 --> 01:14:31,260 Rendben, beszéljünk mintegy meglepetés, sorban állás. 1703 01:14:31,260 --> 01:14:37,034 >> Ellentétben kéményeket, amelyek először a múlt ki, ezek az első, first out. 1704 01:14:37,034 --> 01:14:38,450 Tehát ez az általam elvártnál hiszem, egy sorban. 1705 01:14:38,450 --> 01:14:41,530 Gondoljunk csak rajthoz áll az Apple Store kap bármilyen termék. 1706 01:14:41,530 --> 01:14:44,540 És az első ember a sorban kell az első ember, aki segített. 1707 01:14:44,540 --> 01:14:48,270 Tehát az első dolog, ami tolta a ez az első dolog, ami beugrott. 1708 01:14:48,270 --> 01:14:49,460 Hűvös? 1709 01:14:49,460 --> 01:14:52,890 Nagyon similarly-- ó, a szavakat, hogy használjuk inkább push és pop-- 1710 01:14:52,890 --> 01:14:55,060 amit csak használni, Én sorry-- azt mondjuk, 1711 01:14:55,060 --> 01:14:58,170 ha már üzembe valamit a sorban, azt mondjuk enqueued meg. 1712 01:14:58,170 --> 01:15:00,795 Ha elvisszük valamit a sorban, azt mondjuk dequeued. 1713 01:15:00,795 --> 01:15:01,950 Azt. 1714 01:15:01,950 --> 01:15:05,454 Azt lehet kimondani azokat rossz, de az ötlet. 1715 01:15:05,454 --> 01:15:08,370 És akkor megint, mint halom, ha már végrehajtja ezt a tömböt, 1716 01:15:08,370 --> 01:15:12,350 meg kell nyomon követni a méret, a kapacitás, és a fejét. 1717 01:15:12,350 --> 01:15:13,570 Mit jelent a fejét? 1718 01:15:13,570 --> 01:15:15,278 Miért kell tartanunk követni a fejét? 1719 01:15:15,278 --> 01:15:18,549 1720 01:15:18,549 --> 01:15:21,685 >> Közönség: Mert ez az, ahol az elején a lista. 1721 01:15:21,685 --> 01:15:24,810 1. Előadó: Igen, alapvetően a fej ahol kezdetben a várakozási sor. 1722 01:15:24,810 --> 01:15:29,460 Mert tudjuk, ellentétben halom, which-- Én fogom próbálni, hogy szembenézzen ezzel way-- 1723 01:15:29,460 --> 01:15:33,570 Tudjuk, hogy ez mindig megy zsugorodik így, és növekszik ezen a módon. 1724 01:15:33,570 --> 01:15:37,840 Sorok, az emberek jönnek rá a végén és hagyja a kezdetektől fogva, 1725 01:15:37,840 --> 01:15:40,620 így van, hogy nyomon követhesse hol a kezdet. 1726 01:15:40,620 --> 01:15:43,540 Ez mit értek meg kell nyomon követni, ahol a fej. 1727 01:15:43,540 --> 01:15:45,190 Hűvös? 1728 01:15:45,190 --> 01:15:46,440 Minden rendben. 1729 01:15:46,440 --> 01:15:49,250 Nyolc perc, pár több téma, meg tudjuk csinálni. 1730 01:15:49,250 --> 01:15:51,240 >> Rendben, hash tábla. 1731 01:15:51,240 --> 01:15:53,095 Beszélgettünk nagyon röviden mintegy hash táblák. 1732 01:15:53,095 --> 01:15:55,720 A kvíz, akkor csak meg kell megérteni őket magas szinten. 1733 01:15:55,720 --> 01:15:58,330 Az alapötlet az, hogy van ez az adat. 1734 01:15:58,330 --> 01:16:02,570 És azt akarjuk elérni, hogy az időben ez gyorsabb, mint olyasmi, mint egy kapcsolt 1735 01:16:02,570 --> 01:16:03,070 lista. 1736 01:16:03,070 --> 01:16:05,290 Mert azt mondta, ha mi voltunk Keresés egy láncolt lista, 1737 01:16:05,290 --> 01:16:06,248 amely eltarthat N időt. 1738 01:16:06,248 --> 01:16:08,810 Még hozzáférés is igénybe vehet N alkalommal egy láncolt lista. 1739 01:16:08,810 --> 01:16:12,930 Hash táblák nekünk egy módja, hogy tudjuk, gyorsabban elérje a dolgokat, és így tovább 1740 01:16:12,930 --> 01:16:16,970 Gyorsan keresni dolgokat, anélkül, amelyek a korlátozások tömb 1741 01:16:16,970 --> 01:16:19,030 ahol már rögzített mérettel. 1742 01:16:19,030 --> 01:16:23,950 >> Úgy gondoljuk, egy adatstruktúra, ahol betette az adatok szerkezete 1743 01:16:23,950 --> 01:16:26,620 függ ezen mágikus hash függvény. 1744 01:16:26,620 --> 01:16:30,630 Tehát ebben az esetben, a mágikus hash funkció csak vesz egy szó, 1745 01:16:30,630 --> 01:16:34,027 ellenőrzése, amit az első levél, és akkor csak válogatás betűrendben. 1746 01:16:34,027 --> 01:16:36,110 Tehát lényegében őket különböző vödrök. 1747 01:16:36,110 --> 01:16:39,510 Amikor azt látjuk, banán, azt mondjuk, OK, mondjuk a B vödör. 1748 01:16:39,510 --> 01:16:41,820 Ha látjuk, hogy az Apple, hadd tedd a vödörbe. 1749 01:16:41,820 --> 01:16:44,744 Ha láttunk sárgabarack, hadd tedd a vödörbe. 1750 01:16:44,744 --> 01:16:45,600 OKÉ? 1751 01:16:45,600 --> 01:16:51,090 >> Tegyük fel, hogy én látszó for-- I Nem tudom, mi van a másik gyümölcsöt? 1752 01:16:51,090 --> 01:16:52,920 Tegyük fel, kerestem narancs. 1753 01:16:52,920 --> 01:16:55,340 Mit nézzek meg? 1754 01:16:55,340 --> 01:16:56,420 Az O vödör. 1755 01:16:56,420 --> 01:17:01,450 Igen, már csak egy helyen hogy a narancs lehet, OK? 1756 01:17:01,450 --> 01:17:05,370 Szóval azt mondtam korábban, hogy mi történik if-- is azt mondta korábban, 1757 01:17:05,370 --> 01:17:10,030 mondjuk tesszük sárgabarack in-- de igazán foglalkozik a tény, hogy, ó, nem, 1758 01:17:10,030 --> 01:17:14,990 ha én is fel bogyó, ez fog ütközik banán. 1759 01:17:14,990 --> 01:17:20,160 Hol rakjuk, ha van Már valami a táblázatban? 1760 01:17:20,160 --> 01:17:22,760 Nos, van egy pár lehetőség. 1761 01:17:22,760 --> 01:17:26,160 >> Opció számú lineáris szondázás, ami lényegében azt jelenti, 1762 01:17:26,160 --> 01:17:28,690 Tegyük fel, hogy szeretné kipróbálni, hogy tedd bogyó, és látom, ó, nem, 1763 01:17:28,690 --> 01:17:31,170 banán már ott, Én csak azt mondom OK, hadd 1764 01:17:31,170 --> 01:17:33,810 nézzek a következő rendelkezésre álló helyet. 1765 01:17:33,810 --> 01:17:36,744 Szóval sétálni, azt mondom, ó, nincs semmi a D vödör. 1766 01:17:36,744 --> 01:17:39,410 Nem igazán tudom mondani olyan gyümölcsök hogy az adott betűvel kezdődik D, 1767 01:17:39,410 --> 01:17:41,620 így én csak megy, hogy bogyó van. 1768 01:17:41,620 --> 01:17:42,650 Durian. 1769 01:17:42,650 --> 01:17:44,590 OK, így mivel ott semmi, mégis, 1770 01:17:44,590 --> 01:17:47,020 Én akár azt is csak használja azt a helyet. 1771 01:17:47,020 --> 01:17:48,805 Mi az a hátránya, hogy? 1772 01:17:48,805 --> 01:17:49,300 >> Közönség: Ez elromlott. 1773 01:17:49,300 --> 01:17:50,008 >> 1. Előadó: Sajnáljuk? 1774 01:17:50,008 --> 01:17:51,280 Közönség: Ez elromlott. 1775 01:17:51,280 --> 01:17:53,113 >> 1. Előadó: Ez out-- Rendben, akkor talán a végén 1776 01:17:53,113 --> 01:17:56,380 A dolgok, amelyek nem in-- tárolt gyűjtőzónákba az úton 1777 01:17:56,380 --> 01:17:57,790 hogy elvárjuk, hogy legyen. 1778 01:17:57,790 --> 01:18:00,670 Tehát, ha kerestek A bogyó, mielőtt azt mondtuk, 1779 01:18:00,670 --> 01:18:02,000 ó tudjuk nézni egy vödör. 1780 01:18:02,000 --> 01:18:03,650 Ez csak akkor lenne egy vödör. 1781 01:18:03,650 --> 01:18:07,380 De most tényleg, ez lehet minden vödrök, ugye? 1782 01:18:07,380 --> 01:18:10,400 >> OK, itt egy másik lehetőség, Külön chaining-- 1783 01:18:10,400 --> 01:18:16,630 amely a gondolat, hogy mi lesz hogy egy kicsit később P készlet 5. 1784 01:18:16,630 --> 01:18:19,340 Ahelyett, hogy csak van Egy tér minden vödör, 1785 01:18:19,340 --> 01:18:23,610 miért nem a dolgot, minden vödör egy mutató egy láncolt listában? 1786 01:18:23,610 --> 01:18:28,570 Ahol azt mondjuk, OK, van egy vödör mindenért, ami kezdődik A. 1787 01:18:28,570 --> 01:18:31,990 És ott csak lesz egy kapcsolt listáját gyümölcs kezdetű A. 1788 01:18:31,990 --> 01:18:36,240 Tehát ha kapunk egy új gyümölcsöt, mondjuk mi get-- mi avokádó, van alma, 1789 01:18:36,240 --> 01:18:39,530 Mondjuk, hogy a sárgabarack, hogyan tesszük a listán? 1790 01:18:39,530 --> 01:18:43,330 Nos, hogy kimegyünk a vödör 0, és mi volna csak helyezze azt a mi szeretett listán, 1791 01:18:43,330 --> 01:18:45,320 ilyen egyszerű. 1792 01:18:45,320 --> 01:18:47,160 >> Most Azt mondogatom vödör. 1793 01:18:47,160 --> 01:18:49,470 Mi lehetne végrehajtani ezt számos módon. 1794 01:18:49,470 --> 01:18:52,040 Az egyik tipikus módja, hogy ez a fajta kép azt sugallja, 1795 01:18:52,040 --> 01:18:55,580 van esetleg épp egy sor mutatókat láncolt listák. 1796 01:18:55,580 --> 01:18:58,174 Ez is egy módja tudjuk végre egy hash tábla. 1797 01:18:58,174 --> 01:19:01,090 Közönség: szüksége lenne egy másik listán, mert a banán és a bogyós kívül esnek 1798 01:19:01,090 --> 01:19:01,591 A rend? 1799 01:19:01,591 --> 01:19:03,298 1. Előadó: Megtenné need-- ah, azt 1800 01:19:03,298 --> 01:19:06,310 Kell még egy lista, mert banán és bogyós vannak elromlott? 1801 01:19:06,310 --> 01:19:09,880 Ebben az esetben, a mi hash függvény, amely azt mondja, hogy hova tegye a dolgokat 1802 01:19:09,880 --> 01:19:11,647 nem törődik a második betűt. 1803 01:19:11,647 --> 01:19:14,730 Nem érdekel alphabetizing, ez csak törődik az első betű. 1804 01:19:14,730 --> 01:19:15,672 Kérdés? 1805 01:19:15,672 --> 01:19:18,947 >> Közönség: Mi az a meghatározás, hogy funkciót, és mit néz ez ki? 1806 01:19:18,947 --> 01:19:19,780 1. Előadó: Ah, jó. 1807 01:19:19,780 --> 01:19:22,450 OK, így nem kell Túl sokat aggódsz erre a kvízt. 1808 01:19:22,450 --> 01:19:23,700 Szóval nem hozott a diák. 1809 01:19:23,700 --> 01:19:26,320 Fogunk bevezetni hogy ez a P készlet 5. 1810 01:19:26,320 --> 01:19:31,520 De alapvetően azt mondja, adott Új elem, ahol is mondjam? 1811 01:19:31,520 --> 01:19:35,450 Vagy, mondjuk keresem egy elem, ahol lehet az? 1812 01:19:35,450 --> 01:19:37,860 Igen, jó kérdés. 1813 01:19:37,860 --> 01:19:40,870 >> OK, nagyon gyorsan, a fák és a próbálkozás. 1814 01:19:40,870 --> 01:19:44,779 Szóval egy fa csak bármiféle A szervezett adatok szerkezetét. 1815 01:19:44,779 --> 01:19:47,820 És fogunk látni a sok kép hogy fog ez a szuper világos. 1816 01:19:47,820 --> 01:19:51,180 És egy Trie, amit láttam az osztályban, Ez egy nagyon különleges fajta fa 1817 01:19:51,180 --> 01:19:53,440 hogy lényegében úgy működik, mint többszintű hash tábla. 1818 01:19:53,440 --> 01:19:54,390 Ez nagyszerű. 1819 01:19:54,390 --> 01:19:56,030 Fogunk látni, hogy mindössze egy percet. 1820 01:19:56,030 --> 01:19:57,821 Rendben, szóval beszélni fák először. 1821 01:19:57,821 --> 01:20:01,040 Szóval ez tényleg tipikus példája egy fa, ahol van egy hierarchia. 1822 01:20:01,040 --> 01:20:03,220 Látod, hogy az egyik a legtetején, ugye? 1823 01:20:03,220 --> 01:20:06,190 És elmondhatom, top, mert van egyértelműen rendelési mert 1824 01:20:06,190 --> 01:20:08,260 ezeket a nyilak lefelé. 1825 01:20:08,260 --> 01:20:11,740 Úgy, hogy a dolog a tetején, Hívom, hogy a gyökér. 1826 01:20:11,740 --> 01:20:13,080 Tehát az egyik a gyökér csomópontot. 1827 01:20:13,080 --> 01:20:17,330 És a dolgok az alján, aminek semmi jön le őket, 1828 01:20:17,330 --> 01:20:18,783 Azt mondják, ezek a levél csomópontok. 1829 01:20:18,783 --> 01:20:22,730 Tehát 8,9 5, 6, 7, OK. 1830 01:20:22,730 --> 01:20:27,740 És általában a terminológia mondhatok, az 1-3 szülő. 1831 01:20:27,740 --> 01:20:30,740 Szóval ez a dolog, hogy jön egy felette, és pont azt. 1832 01:20:30,740 --> 01:20:32,710 És 3 1 gyermeke. 1833 01:20:32,710 --> 01:20:34,505 Ez az a dolog, hogy 1 pontot. 1834 01:20:34,505 --> 01:20:35,005 Kérdés? 1835 01:20:35,005 --> 01:20:36,414 >> Közönség: Tud megy vissza Az előző diára, kérem? 1836 01:20:36,414 --> 01:20:37,388 >> 1. Előadó: mehetek vissza az előző diára? 1837 01:20:37,388 --> 01:20:37,888 Persze. 1838 01:20:37,888 --> 01:20:40,640 1839 01:20:40,640 --> 01:20:41,390 Kérdések erről? 1840 01:20:41,390 --> 01:20:42,764 Vagy csak azt akartam, hogy nézd meg? 1841 01:20:42,764 --> 01:20:44,650 Közönség: Csak nem kap rajta. 1842 01:20:44,650 --> 01:20:47,100 >> 1. Előadó: OK, hűvös, igen. 1843 01:20:47,100 --> 01:20:49,846 Ezek mind online, így nem aggódnia, minden szót. 1844 01:20:49,846 --> 01:20:51,720 És az az érdeke, idő, én megyek. 1845 01:20:51,720 --> 01:20:53,270 Rendben van? 1846 01:20:53,270 --> 01:20:53,790 Fantasztikus. 1847 01:20:53,790 --> 01:20:55,720 Oké, rendben. 1848 01:20:55,720 --> 01:20:57,790 Szóval beszéljünk egy nagyon különleges kind-- 1849 01:20:57,790 --> 01:20:59,710 Így áll össze az általános szerkezete a fák, 1850 01:20:59,710 --> 01:21:02,876 ami bármit, lehetővé teszi számunkra, hogy milyen rangot dolgokat hierarchikusan. 1851 01:21:02,876 --> 01:21:06,000 1852 01:21:06,000 --> 01:21:11,110 >> Bináris fák vannak dolgok, ahol minden csomópont legfeljebb két gyermek. 1853 01:21:11,110 --> 01:21:11,690 OKÉ? 1854 01:21:11,690 --> 01:21:14,560 És azt mondtuk, rendben, hogy úgy tűnik, illeszkedik ez a leírás. 1855 01:21:14,560 --> 01:21:16,830 Azt mondta csomópont, nem bináris kereső fa. 1856 01:21:16,830 --> 01:21:19,720 Mi az a bináris kereső fa? 1857 01:21:19,720 --> 01:21:20,440 Ez rendezve. 1858 01:21:20,440 --> 01:21:22,890 Szóval tudom, hogy a bináris kereső fa, 1859 01:21:22,890 --> 01:21:26,580 mindent a tree-- mindent A csomópontok bal kisebb, 1860 01:21:26,580 --> 01:21:28,830 és mindent a csomópontok jobb nagyobb. 1861 01:21:28,830 --> 01:21:30,620 Tehát ez nem egy bináris kereső fa. 1862 01:21:30,620 --> 01:21:32,770 Ez csak egy bináris fa. 1863 01:21:32,770 --> 01:21:35,910 Tehát van nagy csoportja a fák, valamivel kisebb a kategóriában 1864 01:21:35,910 --> 01:21:40,106 A bináris fák, keresés egy-- bináris keresés fák. 1865 01:21:40,106 --> 01:21:41,540 Hűvös? 1866 01:21:41,540 --> 01:21:44,410 Minden rendben. 1867 01:21:44,410 --> 01:21:47,380 >> És most, a legtöbb móka Minden, mi van a próbálkozás. 1868 01:21:47,380 --> 01:21:49,500 Srácok látta ezt képet előadás? 1869 01:21:49,500 --> 01:21:51,790 Igen, meg kell nézni szuper ismerős. 1870 01:21:51,790 --> 01:21:54,252 Nézzük meg, hogyan lehet ténylegesen végrehajtja ezt. 1871 01:21:54,252 --> 01:21:56,210 Vagy valóban, lássuk, Ez meg is jön fel? 1872 01:21:56,210 --> 01:21:56,731 Dehogy. 1873 01:21:56,731 --> 01:21:59,480 Rendben, nem is kell, hogy aggódnia, hogy alacsony szintű cucc. 1874 01:21:59,480 --> 01:22:02,320 Mi lesz bőven ideje hogy foglalkozzon akkor P készlet 5. 1875 01:22:02,320 --> 01:22:05,780 De most, csak nagyon magas szinten, tudom, hogy ez az, aminek látszik. 1876 01:22:05,780 --> 01:22:08,530 Mi jellemezte, mint egyfajta többszintű hash tábla 1877 01:22:08,530 --> 01:22:12,264 where-- mit jelent ez a bolt? 1878 01:22:12,264 --> 01:22:14,430 Ez eltárolja nevét a tudósok, hogy mi is valójában 1879 01:22:14,430 --> 01:22:20,690 keresse meg csak egyfajta követően különböző hash táblák meg, rendben? 1880 01:22:20,690 --> 01:22:24,730 >> És a célja ennek az, elméletben, az általuk nyújtott folyamatos időt felnéz. 1881 01:22:24,730 --> 01:22:29,630 Tehát ha azt szeretné, hogy ellenőrizze, hogy Például aki someone-- 1882 01:22:29,630 --> 01:22:33,410 hogy Mandel ebben Trie, tudtam nagyon gyorsan 1883 01:22:33,410 --> 01:22:36,260 A linear-- Sajnálom, a konstans időt, kitaláljuk 1884 01:22:36,260 --> 01:22:39,010 függetlenül attól, hogy ez a Trie. 1885 01:22:39,010 --> 01:22:41,500 De egy con, az nézze meg, hogy milyen nagy is ez. 1886 01:22:41,500 --> 01:22:44,120 Nem is vagyunk tárolására, hogy sok adatot, és ez óriási. 1887 01:22:44,120 --> 01:22:47,950 Szóval egy nagy con az, hogy használ nagy mennyiségű memóriát. 1888 01:22:47,950 --> 01:22:48,746 Igen. 1889 01:22:48,746 --> 01:22:50,610 >> Közönség: Miért nem gondoskodik konstans időben, pontosan? 1890 01:22:50,610 --> 01:22:51,376 >> 1. Előadó: Még egy időben? 1891 01:22:51,376 --> 01:22:53,360 >> Közönség: Mi a megérzés miért ez biztosítja az állandó idő? 1892 01:22:53,360 --> 01:22:54,610 >> 1. Előadó: Kitűnő kérdés. 1893 01:22:54,610 --> 01:22:56,030 Miért nem biztosít állandó időt? 1894 01:22:56,030 --> 01:22:59,280 Szóval, mit tehetünk az, hadd azt mondják keresünk Mandel. 1895 01:22:59,280 --> 01:23:02,830 Tudjuk, hogy szeretnénk kezdeni Az első szinten M. 1896 01:23:02,830 --> 01:23:06,890 Tudjuk akarjuk követni, hogy E. Tehát ez egy lépést, két lépést, igaz? 1897 01:23:06,890 --> 01:23:10,710 Követjük azt N. követjük a D. Követjük azt E. követjük, hogy L. 1898 01:23:10,710 --> 01:23:15,100 És akkor a következő dolog, amit ellenőrizni says-- ezt a delta mondja Igen, ez 1899 01:23:15,100 --> 01:23:15,990 a mi asztalon. 1900 01:23:15,990 --> 01:23:16,880 Ez az egy szó. 1901 01:23:16,880 --> 01:23:19,900 Ez egy érvényes bejegyzés a Trie. 1902 01:23:19,900 --> 01:23:22,450 Szóval azt mondod, OK, került hét lépésben. 1903 01:23:22,450 --> 01:23:27,200 De ha hozzáadjuk, mint egy kismillió több a tudósok, hogy az adatok szerkezete, 1904 01:23:27,200 --> 01:23:29,470 akkor nem kell ellenőrizni, Azonkívül, egy csomó dolgot. 1905 01:23:29,470 --> 01:23:33,580 Mi csak valaha is van, hogy hét lépésben, a hossza a személy 1906 01:23:33,580 --> 01:23:35,260 név. 1907 01:23:35,260 --> 01:23:39,350 >> Szóval, szeretjük azt hinni, A futásidejű mint tegyük fel, 1908 01:23:39,350 --> 01:23:42,340 növeljük a mérete a adatszerkezet, meddig 1909 01:23:42,340 --> 01:23:44,580 ez fog tartani? 1910 01:23:44,580 --> 01:23:47,372 Ebben az esetben, ha hozzátesszük egy csomó több tudós, ez nem számít. 1911 01:23:47,372 --> 01:23:49,413 Ez még mindig tart, hogy az azonos ideig. 1912 01:23:49,413 --> 01:23:50,350 Ez folyamatos időben. 1913 01:23:50,350 --> 01:23:50,850 Igen. 1914 01:23:50,850 --> 01:23:53,557 >> Közönség: Honnan tudod, hogy nem szkennelni mint a többi számot? 1915 01:23:53,557 --> 01:23:54,932 1. Előadó: Honnan tudom, hogy milyen az alábbiakra: 1916 01:23:54,932 --> 01:23:58,236 Közönség: Mint honnan tudod, mész egyenesen M E és nem az M az A? 1917 01:23:58,236 --> 01:23:59,069 1. Előadó: Ó, persze. 1918 01:23:59,069 --> 01:24:01,620 Mivel tudtam, hogy keresi a szót Mandel, 1919 01:24:01,620 --> 01:24:04,195 és én csak tudom, hogy az M-E. Szóval hogy-- igen, megy előre. 1920 01:24:04,195 --> 01:24:06,528 Közönség: Nem van hogy nézd meg a többi betű 1921 01:24:06,528 --> 01:24:07,870 a többi a [nem hallható]? 1922 01:24:07,870 --> 01:24:10,020 >> 1. Előadó: Ah, nem én nézni the-- OK, nagyszerű. 1923 01:24:10,020 --> 01:24:10,790 Ez egy nagy kérdés. 1924 01:24:10,790 --> 01:24:12,170 Attól függ, hogyan hajtják végre. 1925 01:24:12,170 --> 01:24:15,350 Ha végrehajtására, mert csak mint egy sor tömbök 1926 01:24:15,350 --> 01:24:18,100 ahol tudjuk, hogy az E Mindig a pozíció 0, 1927 01:24:18,100 --> 01:24:21,270 Nem tudom, bármi számú index címen. 1928 01:24:21,270 --> 01:24:24,901 Igen, mi csak Konstans ideje, ne, ne, ne tegye. 1929 01:24:24,901 --> 01:24:25,400 Hűvös. 1930 01:24:25,400 --> 01:24:27,556 Kérdés ott? 1931 01:24:27,556 --> 01:24:30,927 >> Közönség: állandó idő ugyanaz, mint a valós időben? 1932 01:24:30,927 --> 01:24:33,260 1. Előadó: állandó idő ugyanaz a dolog valós időben? 1933 01:24:33,260 --> 01:24:34,799 Nem vagyok egészen biztos benne, valós időben. 1934 01:24:34,799 --> 01:24:36,965 Közönség: Mint alkalom, hogy Szó szerint halad a második 1935 01:24:36,965 --> 01:24:40,150 a második, ahelyett, hogy független változó. 1936 01:24:40,150 --> 01:24:42,960 >> 1. Előadó: Ó, igen, lehet gondolni, hogy ez így. 1937 01:24:42,960 --> 01:24:46,240 Más szóval, ez nem függ a mérete az adatok szerkezetét. 1938 01:24:46,240 --> 01:24:48,310 Ez egy módja annak, hogy belegondolok. 1939 01:24:48,310 --> 01:24:50,510 Más kérdés? 1940 01:24:50,510 --> 01:24:53,120 Talán az első alkalommal történelmünk, kész időben. 1941 01:24:53,120 --> 01:24:57,080 Ha bármilyen kérdésed van, nyugodtan szabadon jönnek kérni minket, menj a rész, 1942 01:24:57,080 --> 01:25:00,190 beszéljen a TF, irodai óra között 8:00 és 08:30 1943 01:25:00,190 --> 01:25:03,985 11:00 hétfőn és kedden, így ez egy kicsit más alkalommal, 1944 01:25:03,985 --> 01:25:05,110 ügyeljen arra, hogy vegye figyelembe, hogy. 1945 01:25:05,110 --> 01:25:06,048 Igen. 1946 01:25:06,048 --> 01:25:08,673 >> Közönség: Szükségünk van tudni ilyesmi parancssori 1947 01:25:08,673 --> 01:25:10,360 dash ls, kötőjel bármi? 1948 01:25:10,360 --> 01:25:11,840 >> 1. Előadó: parancssorból érveket, és a Linux parancsok, 1949 01:25:11,840 --> 01:25:13,010 Igen, meg kell tudni ezeket. 1950 01:25:13,010 --> 01:25:18,234 Very-- ez olyan, mint az a fajta szinten cucc mi fejezet foglalkozik 0, 1951 01:25:18,234 --> 01:25:19,400 amennyire Linux parancsok útközben. 1952 01:25:19,400 --> 01:25:20,942 >> Közönség: Vannak órák a Annenberg? 1953 01:25:20,942 --> 01:25:23,525 1. Előadó: Munkaidő, nem vagyok teljesen biztos benne, hol vannak. 1954 01:25:23,525 --> 01:25:25,980 De akkor ellenőrizze a honlapján, és megmondja neked. 1955 01:25:25,980 --> 01:25:27,499