1 00:00:00,000 --> 00:00:03,269 >> [Musiikkia] 2 00:00:03,269 --> 00:00:05,391 3 00:00:05,391 --> 00:00:06,640 CAMILLE REKHSON: Hei, kaikille. 4 00:00:06,640 --> 00:00:10,120 Tervetuloa CS50 tietovisa nolla arvostelu istunto. 5 00:00:10,120 --> 00:00:10,770 Olen Camille. 6 00:00:10,770 --> 00:00:13,140 Ja aion olla menossa joistakin aiheista sinua 7 00:00:13,140 --> 00:00:16,890 kaverit tänään auttaa sinua valmistautua tietokilpailu. 8 00:00:16,890 --> 00:00:20,840 Joten tässä on meidän viitteellinen aiheluettelo sinua 9 00:00:20,840 --> 00:00:23,210 olisi tunnettava varten tietokilpailu. 10 00:00:23,210 --> 00:00:25,740 Nämä otettiin suoraan alkaen oppimäärä. 11 00:00:25,740 --> 00:00:26,990 Tiedän, että se tuntuu paljon. 12 00:00:26,990 --> 00:00:30,870 Mutta luottaa minuun, olet oppinut kaikki nämä asiat viime viikkoina. 13 00:00:30,870 --> 00:00:33,210 >> Joten me ehdottomasti menossa yli paljon näitä tänään. 14 00:00:33,210 --> 00:00:35,825 Mutta myös kestää jonkin aikaa teidän oma tarkistamaan näitä asioita. 15 00:00:35,825 --> 00:00:38,450 Ja jos et ole perehtynyt mitä jotkut näistä asioista ovat, 16 00:00:38,450 --> 00:00:42,400 Muista kysyä yksi meistä. 17 00:00:42,400 --> 00:00:45,985 Myös virallista sana on tietokilpailu, mene tästä linkistä. 18 00:00:45,985 --> 00:00:48,860 Tämä on kaikki tiedot jolla huone sinun täytyy mennä, 19 00:00:48,860 --> 00:00:52,960 hajosi aakkosjärjestyksessä, ja myös joitakin vihjeitä siitä, mitä materiaaleja 20 00:00:52,960 --> 00:00:56,470 sinun pitäisi opiskella ja millaisia tietokilpailu kysymyksiä, voit odottaa. 21 00:00:56,470 --> 00:01:01,090 Joten varmista tarkistaa, että ulos. 22 00:01:01,090 --> 00:01:03,810 >> Myös muutamia vinkkejä, kun valmistautuvat tenttiin. 23 00:01:03,810 --> 00:01:05,730 Harjoitella koodaus paperilla. 24 00:01:05,730 --> 00:01:09,280 Tiedän, että olet tottunut ottaa IDE tarkistaa oman virheitä sinulle, 25 00:01:09,280 --> 00:01:12,280 ja it's-- kun kirjoitat sen ylös, se on hieman erilainen kuin ottaa 26 00:01:12,280 --> 00:01:13,113 kirjoittaa asioita. 27 00:01:13,113 --> 00:01:14,560 Joten käytännössä tekee joitakin koodaus. 28 00:01:14,560 --> 00:01:17,910 Hyviä toimintoja harjoitella teet ovat strlen ja atoi, 29 00:01:17,910 --> 00:01:20,450 nähdä, jos voisit kirjoittaa ne pois omasta. 30 00:01:20,450 --> 00:01:21,970 Tunnettava ongelma sarjaa. 31 00:01:21,970 --> 00:01:24,200 Useimpina vuosina on kysymykset, jotka liittyvät 32 00:01:24,200 --> 00:01:25,700 joitakin ongelmia asetettu materiaalia. 33 00:01:25,700 --> 00:01:30,480 Joten varmista, että ymmärrät miten kaikki ongelma sarjaa. 34 00:01:30,480 --> 00:01:35,240 >> Kokeile joitakin vanhoja tietokilpailuja alle 75 minuutin aikarajoitus. 35 00:01:35,240 --> 00:01:37,290 Paljon tietokilpailuja voi olla sellainen pitkä. 36 00:01:37,290 --> 00:01:39,680 Joten se on hyvä tapa antaa itsellesi käytäntö, 37 00:01:39,680 --> 00:01:41,650 ja kuinka kauan se vie, ja miten 38 00:01:41,650 --> 00:01:45,360 tulee jakaa aika varmistaa olet kaiken loppuun mennessä. 39 00:01:45,360 --> 00:01:49,690 Ja myös, saat yhden sivun, kaksipuolinen viittaus arkki 40 00:01:49,690 --> 00:01:52,962 että voit kirjoittaa mitä haluavat edelleen käyttää aikana tietokilpailu. 41 00:01:52,962 --> 00:01:54,670 Joten kun luot että se on myös 42 00:01:54,670 --> 00:01:57,860 todella loistava tapa opiskella, koska voit eräänlainen voidaan tarkistaa asioita 43 00:01:57,860 --> 00:01:59,610 kun kirjoitat sitä. 44 00:01:59,610 --> 00:02:05,421 >> Joten kaikki yleiset kysymyksiä tietokilpailu, tai miten se toimii? 45 00:02:05,421 --> 00:02:05,921 Joo. 46 00:02:05,921 --> 00:02:09,167 >> Yleisö: Will että aiheluettelo että juuri osoitti olla käytettävissämme 47 00:02:09,167 --> 00:02:09,820 verkossa? 48 00:02:09,820 --> 00:02:12,736 >> CAMILLE REKHSON: Tämä koko dia Näytä postitetaan verkkosivuilla. 49 00:02:12,736 --> 00:02:16,040 Myös video nykypäivän katsaus istunto on verkkosivuilla. 50 00:02:16,040 --> 00:02:19,250 Joten älä murehdi liikaa kirjallisesti asioita alas koko. 51 00:02:19,250 --> 00:02:20,437 Se tulee kaikki on siellä. 52 00:02:20,437 --> 00:02:21,270 Muita kysymyksiä? 53 00:02:21,270 --> 00:02:23,810 54 00:02:23,810 --> 00:02:26,960 OK, joten Eiköhän aloiteta. 55 00:02:26,960 --> 00:02:30,860 >> Niin yksi asia on tunnettava on erilaiset tiedot ja koko 56 00:02:30,860 --> 00:02:32,486 että he ottavat. 57 00:02:32,486 --> 00:02:35,360 Tämä voi myös olla hyvä asia kirjoita alas teidän viite levyt, 58 00:02:35,360 --> 00:02:37,240 vain varmista, että olet muistaa kaikki nämä. 59 00:02:37,240 --> 00:02:39,200 But-- joten merkkiä ovat 1 tavu. 60 00:02:39,200 --> 00:02:40,700 Ints ovat 4 tavua. 61 00:02:40,700 --> 00:02:44,450 Pitkä, pitkä, joka on pohjimmiltaan enemmän tilaa kokonaisluku, on 8 tavua. 62 00:02:44,450 --> 00:02:46,560 Float on 4 tavua. 63 00:02:46,560 --> 00:02:50,620 Kaksinkertainen, joka pohjimmiltaan antaa sinulle enemmän tilaa tallentaa float, on 8 tavua. 64 00:02:50,620 --> 00:02:54,210 Ja sitten osoitin on myös 8 tavua. 65 00:02:54,210 --> 00:02:56,270 Koskevia kysymyksiä? 66 00:02:56,270 --> 00:03:00,380 67 00:03:00,380 --> 00:03:05,580 >> Joten binary on aihe olemme katettu hieman tämän lukukauden. 68 00:03:05,580 --> 00:03:07,910 Joten tehdä joitakin harjoitella muuntaa 69 00:03:07,910 --> 00:03:10,000 välillä binary ja desimaalin. 70 00:03:10,000 --> 00:03:13,950 Joten kellään mitään käsitystä, mitä että ensimmäinen olisi? 71 00:03:13,950 --> 00:03:32,840 72 00:03:32,840 --> 00:03:34,860 Kukaan? 73 00:03:34,860 --> 00:03:36,270 Joo, se on 42. 74 00:03:36,270 --> 00:03:39,200 Joten jos muistat, kukin paikoista binary 75 00:03:39,200 --> 00:03:41,860 on pohjimmiltaan kuin 2 siihen paikkaan valtaa. 76 00:03:41,860 --> 00:03:43,750 >> Niin että ensimmäinen paikka on 2 0 valtaa. 77 00:03:43,750 --> 00:03:46,710 Ja meillä on 0 siellä, niin mitään. 78 00:03:46,710 --> 00:03:48,700 Seuraava paikka on 2 ensimmäisen valtaa. 79 00:03:48,700 --> 00:03:51,220 Ja meillä on 1 siellä, niin että on pohjimmiltaan 2. 80 00:03:51,220 --> 00:03:53,642 Seuraava paikka on 2 Toinen, joka on 4. 81 00:03:53,642 --> 00:03:54,850 Meillä ei ole mitään siellä. 82 00:03:54,850 --> 00:03:59,390 Seuraava paikka yli on 2 kolmas, mikä olisi 8. 83 00:03:59,390 --> 00:04:02,230 Ja meillä on yksi siellä. 84 00:04:02,230 --> 00:04:03,470 Ja me jatkaa. 85 00:04:03,470 --> 00:04:07,720 Että last-- kauimpana vasen on, jos meillä on 32. 86 00:04:07,720 --> 00:04:13,437 Ja niin, me pohjimmiltaan on 32 plus 8 plus 2 saada 42. 87 00:04:13,437 --> 00:04:14,020 Kysymyksiä? 88 00:04:14,020 --> 00:04:15,820 >> Yleisö: Mikä alaindeksi? 89 00:04:15,820 --> 00:04:17,399 >> CAMILLE REKHSON: alaindeksi pohjimmiltaan kertoo se binary. 90 00:04:17,399 --> 00:04:18,230 Joten siellä on 2 siellä. 91 00:04:18,230 --> 00:04:20,579 Jos oli like-- seuraavassa yksi, tai kun olemme muuntaa desimaalin 92 00:04:20,579 --> 00:04:24,350 binary, siellä on 10 näyttää meille, että tämä numero on alun perin desimaalin. 93 00:04:24,350 --> 00:04:25,194 >> Yleisö: Kiitos. 94 00:04:25,194 --> 00:04:26,110 >> CAMILLE REKHSON: Joo. 95 00:04:26,110 --> 00:04:28,790 Muita kysymyksiä, että yksi? 96 00:04:28,790 --> 00:04:31,110 OK, joten yritetään seuraavan yksi sitten, desimaalin binary. 97 00:04:31,110 --> 00:04:35,034 Joten kun 50 ja laittoi että binary. 98 00:04:35,034 --> 00:04:35,950 Miten teet sen? 99 00:04:35,950 --> 00:04:44,331 100 00:04:44,331 --> 00:04:45,317 Joo. 101 00:04:45,317 --> 00:04:49,754 >> Yleisö: 110010. 102 00:04:49,754 --> 00:04:50,760 >> CAMILLE REKHSON: Kyllä. 103 00:04:50,760 --> 00:04:54,410 Joten one-- helppo tapa ajatella muuntamiseen desimaalin binary 104 00:04:54,410 --> 00:04:57,950 on to-- se auttaa usein kirjoittaa mitä eri valtuuksia 2 ovat. 105 00:04:57,950 --> 00:05:01,460 Ja sitten läpi sen, ja katso riippumatta korkein yksi niistä 106 00:05:01,460 --> 00:05:05,320 on, että voit laittaa sisään desimaaliluku menemättä sen yli. 107 00:05:05,320 --> 00:05:09,040 >> Joten tässä tapauksessa, yksi toimivalta 2 on 32. 108 00:05:09,040 --> 00:05:10,560 Joten 32 menee 50. 109 00:05:10,560 --> 00:05:14,100 Mutta seuraavan käynnistyksen olisi 64, joka ilmeisesti ei sovi 50. 110 00:05:14,100 --> 00:05:16,343 Niinpä korkein meillä on 32. 111 00:05:16,343 --> 00:05:17,343 Seuraava alas 16. 112 00:05:17,343 --> 00:05:20,140 Ja 32 plus 16 on vain 48. 113 00:05:20,140 --> 00:05:21,350 Niin että vielä sopii 50. 114 00:05:21,350 --> 00:05:22,722 Joten meillä on 1: n molemmissa näistä. 115 00:05:22,722 --> 00:05:25,180 Ja sitten jos meidän pitää menossa alas, ainoa asia, meidän jäljellä 116 00:05:25,180 --> 00:05:27,510 on 2 enemmän saada 48-50. 117 00:05:27,510 --> 00:05:31,860 Niin sitten meillä on 1 tässä asennossa, ja 0 viimeisessä asennossa. 118 00:05:31,860 --> 00:05:35,371 Koska ei ole mitään vuonna 2 0-sijalle. 119 00:05:35,371 --> 00:05:37,120 Kysymyksiä muuntaa desimaalin binääri? 120 00:05:37,120 --> 00:05:40,830 121 00:05:40,830 --> 00:05:44,100 >> Joten nyt yritetään tehdä jotkut binary lisäksi. 122 00:05:44,100 --> 00:05:47,235 Kuinka kun lisäät nämä kaksi ylös? 123 00:05:47,235 --> 00:05:47,735 Joo. 124 00:05:47,735 --> 00:05:51,130 >> Yleisö: 11100. 125 00:05:51,130 --> 00:05:52,110 >> CAMILLE REKHSON: Kyllä. 126 00:05:52,110 --> 00:05:55,540 Näin tehdessään lisäksi binary on melko paljon samaa kuin tekevät sitä desimaalin. 127 00:05:55,540 --> 00:05:59,390 Paitsi jos sinulla on kaksi 1 olemuksen lasketaan yhteen, 1 plus 1 on 2, 128 00:05:59,390 --> 00:06:02,980 mutta 2 binary on 1 0. 129 00:06:02,980 --> 00:06:07,090 Joten sinun on suoritettava 1, ja pitää kuljettaa se niille pari saraketta. 130 00:06:07,090 --> 00:06:10,260 Ja muuta kuin, että vain lisätä normaalisti. 131 00:06:10,260 --> 00:06:13,125 Kaikki kysymykset siitä? 132 00:06:13,125 --> 00:06:13,625 Joo. 133 00:06:13,625 --> 00:06:16,487 >> Yleisö: Anteeksi, mikä on viimeinen paikka? 134 00:06:16,487 --> 00:06:18,475 On kuusi numeroa. 135 00:06:18,475 --> 00:06:23,260 Joten vasemmassa reunassa, mitä arvo on se? 136 00:06:23,260 --> 00:06:24,760 CAMILLE REKHSON: Tällä pohja yksi? 137 00:06:24,760 --> 00:06:26,340 Yleisö: Päällä yksi, 50. 138 00:06:26,340 --> 00:06:27,340 CAMILLE REKHSON: yli 50? 139 00:06:27,340 --> 00:06:29,040 Voi, niin vasemmanpuoleisesta yksi on 32. 140 00:06:29,040 --> 00:06:29,760 >> Yleisö: 32? 141 00:06:29,760 --> 00:06:36,770 >> CAMILLE REKHSON: Joo, niin se olisi olla 32, 16, sitten 8, 4, 2, 0-- tai 1. 142 00:06:36,770 --> 00:06:39,380 No, se on 2 nollas, joka on 1. 143 00:06:39,380 --> 00:06:41,110 Joo. 144 00:06:41,110 --> 00:06:43,834 Muita kysymyksiä tästä? 145 00:06:43,834 --> 00:06:47,420 OK, joten niin me aiomme tehdä hieman heksadesimaalinumeron. 146 00:06:47,420 --> 00:06:49,570 Joten tämä voisi olla hieman vähemmän tuttuja, 147 00:06:49,570 --> 00:06:51,680 koska tiedän olemme tehneet paljon enemmän binary. 148 00:06:51,680 --> 00:06:54,050 Mutta todella hyvä tapa ajatella heksadesimaali 149 00:06:54,050 --> 00:06:57,540 on hajottaa binary numeron 4-bittinen paloina. 150 00:06:57,540 --> 00:07:00,950 Koska jokainen 4 bittiä binääriluvun on pohjimmiltaan 151 00:07:00,950 --> 00:07:04,560 yksi heksadesimaalilukuina. 152 00:07:04,560 --> 00:07:07,420 >> Joten jos meillä on tämä ensimmäinen, meillä on pohjimmiltaan kahdeksan 1: n. 153 00:07:07,420 --> 00:07:08,620 Joten ne voidaan jakaa up-- 154 00:07:08,620 --> 00:07:09,600 >> Yleisö: 255. 155 00:07:09,600 --> 00:07:10,933 >> CAMILLE REKHSON: Sano se uudestaan. 156 00:07:10,933 --> 00:07:13,772 Yleisö: 255 desimaalin, tai 0xFF heksadesimaalimuodossa. 157 00:07:13,772 --> 00:07:14,980 CAMILLE REKHSON: Joo, se on. 158 00:07:14,980 --> 00:07:18,860 Joten, jos jaat että ylös kahteen 4-bittinen paloina, 159 00:07:18,860 --> 00:07:20,950 olemme periaatteessa on neljä sarjaa 1. 160 00:07:20,950 --> 00:07:22,880 Joka on maximum-- periaatteessa suurin 161 00:07:22,880 --> 00:07:24,329 voimme saada 4-bittiä binary. 162 00:07:24,329 --> 00:07:27,120 Ja suurin saisimme varten että heksadesimaalisena olisi F. 163 00:07:27,120 --> 00:07:30,290 Joten meillä olisi kaksi F: n. 164 00:07:30,290 --> 00:07:31,800 Kaikki kysymykset siitä? 165 00:07:31,800 --> 00:07:32,490 Joo? 166 00:07:32,490 --> 00:07:35,184 >> Yleisö: Voitko toistaa sitä. 167 00:07:35,184 --> 00:07:36,100 CAMILLE REKHSON: Toki. 168 00:07:36,100 --> 00:07:39,160 Joten jokainen, periaatteessa, paikka heksadesimaalisten on 169 00:07:39,160 --> 00:07:42,570 joka vastaa 4-bitin binäärisen. 170 00:07:42,570 --> 00:07:46,830 Joten helpoin tapa tehdä tämä on rikkoa sitä ylös 4-bittinen paloina. 171 00:07:46,830 --> 00:07:48,690 Joten tässä tapauksessa, olemme kahdeksan 1: n. 172 00:07:48,690 --> 00:07:51,010 Joten jos me jakaa ne kahteen 4-bittinen paloina, 173 00:07:51,010 --> 00:07:54,350 meillä olisi kaksi neljästä 1: n. 174 00:07:54,350 --> 00:07:57,181 Ja jokainen näistä vastaa F. 175 00:07:57,181 --> 00:07:58,930 Jos luulet about-- Tiedän aivomme ovat 176 00:07:58,930 --> 00:08:00,415 Tällainen langallinen ajatella enemmän kautta desimaalin, 177 00:08:00,415 --> 00:08:01,831 koska sitähän olemme tottuneet. 178 00:08:01,831 --> 00:08:06,030 Joten yksi tapa voit ajatella sitä neljä 1: n on yhtä suuri kuin 15 desimaalin. 179 00:08:06,030 --> 00:08:12,960 Ja 15 heksadesimaali- on F. Niin, että toinen tapa voit ajatella sen läpi. 180 00:08:12,960 --> 00:08:13,459 Joo. 181 00:08:13,459 --> 00:08:14,790 >> Yleisö: Mikä 0x varten? 182 00:08:14,790 --> 00:08:18,240 >> CAMILLE REKHSON: 0x tarkoittaa että se on heksadesimaali. 183 00:08:18,240 --> 00:08:21,900 Joten me vain laittaa, että etuliite siellä, normaalisti. 184 00:08:21,900 --> 00:08:24,396 Muita kysymyksiä, jotka. 185 00:08:24,396 --> 00:08:27,100 OK, joten yritetään menossa muulla tavalla sen jälkeen. 186 00:08:27,100 --> 00:08:28,712 Tässä tapauksessa me have-- pahoillani? 187 00:08:28,712 --> 00:08:29,628 Yleisö: [äänetön]. 188 00:08:29,628 --> 00:08:32,095 189 00:08:32,095 --> 00:08:33,720 CAMILLE REKHSON: Menemme binary. 190 00:08:33,720 --> 00:08:36,039 Niin, menossa toiseen suuntaan. 191 00:08:36,039 --> 00:08:42,090 Mutta tässä tapauksessa, meillä on 5 ja A. Jos siis miettiä tätä, 192 00:08:42,090 --> 00:08:46,260 jos jokainen those-- 5 ja ovat molemmat menossa edustamaan 4-bittinen kimpale, 193 00:08:46,260 --> 00:08:49,003 kuinka sanoisit 5 binary? 194 00:08:49,003 --> 00:08:51,120 >> Yleisö: 0101. 195 00:08:51,120 --> 00:08:53,100 >> CAMILLE REKHSON: Joo, niin se on 0101 osa. 196 00:08:53,100 --> 00:08:55,250 Ja sitten miten sanoisit in-- 197 00:08:55,250 --> 00:08:56,910 >> Yleisö: 10. 198 00:08:56,910 --> 00:08:58,243 CAMILLE REKHSON: Sano it-- anteeksi? 199 00:08:58,243 --> 00:08:58,990 Yleisö: 10. 200 00:08:58,990 --> 00:09:02,052 CAMILLE REKHSON: Joo, niin se toinen osa sitä. 201 00:09:02,052 --> 00:09:04,010 Ja sitten, jos laitat nämä kaksi yhdessä, se on 202 00:09:04,010 --> 00:09:06,440 miten saat täyden binaarikoodi heksadesimaali. 203 00:09:06,440 --> 00:09:06,940 Joo? 204 00:09:06,940 --> 00:09:10,620 >> Yleisö: Tietää, että on 1010, sinun täytyy muistaa se? 205 00:09:10,620 --> 00:09:12,460 Tai voit like-- 206 00:09:12,460 --> 00:09:14,380 >> CAMILLE REKHSON: Joten jos sinä-- differe-- niin 207 00:09:14,380 --> 00:09:16,790 kun olet menossa läpi binary, pohjimmiltaan binary 208 00:09:16,790 --> 00:09:20,550 on 0 kautta 9 ja sitten kautta F sen 16 asioita. 209 00:09:20,550 --> 00:09:25,420 Joten jos aina 0 9--, jos sinä-- 9 ja sitten, pohjimmiltaan 210 00:09:25,420 --> 00:09:29,640 jos me muuntaa sen desimaaliluvuksi, olisi kuten 10, B olisi kuin 11. 211 00:09:29,640 --> 00:09:35,616 Ja jos ajattelee binary 1010 on 8 ja 2, 212 00:09:35,616 --> 00:09:37,990 koska nämä ovat kaksi paikkoja, jotka lisätä enintään 10, joka 213 00:09:37,990 --> 00:09:41,820 Juuri vastaa. 214 00:09:41,820 --> 00:09:45,114 Niin, että on tavallaan helppo tapa ajatella, että. 215 00:09:45,114 --> 00:09:46,405 Muut kysymykset heksadesimaalimuodossa. 216 00:09:46,405 --> 00:09:50,510 217 00:09:50,510 --> 00:09:56,870 >> OK, joten nyt me otamme katsokaa bittioperaatioiden. 218 00:09:56,870 --> 00:09:58,882 Joten nämä voivat varmasti keksiä tietokilpailu. 219 00:09:58,882 --> 00:10:00,590 Tiedän, että meillä ei työskennellyt niitä paljon. 220 00:10:00,590 --> 00:10:02,756 Mutta me vain teemme hieman uudelleen näitä. 221 00:10:02,756 --> 00:10:05,490 Joten toivottavasti nämä ovat hieman enemmän tutulta. 222 00:10:05,490 --> 00:10:10,220 Joten kuusi bittioperaatioiden että olemme on lueteltu tässä. 223 00:10:10,220 --> 00:10:13,340 Ja he anna meidän manipuloida yksittäisiä bittejä. 224 00:10:13,340 --> 00:10:16,676 Joten JA operaattori on yksi et-merkki. 225 00:10:16,676 --> 00:10:18,550 Älä sekoita että kaksinkertainen et-merkki, 226 00:10:18,550 --> 00:10:21,840 joka on looginen ja että antaa meidän vertailla kahta asiaa. 227 00:10:21,840 --> 00:10:25,860 >> Yhden ja on se, miten voimme manipuloida asioita peiton. 228 00:10:25,860 --> 00:10:29,910 Joten tämä antaa meille tuloksen 1, jos molemmat argumentteja että olemme vertaamalla 229 00:10:29,910 --> 00:10:32,440 ovat same-- tai ovat 1. 230 00:10:32,440 --> 00:10:39,370 Ja pystypalkki, OR, antaa meitä 1, jos ainakin yksi niistä on 1. 231 00:10:39,370 --> 00:10:41,460 Joten periaatteessa juuri mitä sanat merkitsevät. 232 00:10:41,460 --> 00:10:46,640 JA, jos kaksi bittiä ovat 1, 1 ja 1 antaa meille 1. 233 00:10:46,640 --> 00:10:51,769 Mutta OR, jos se on 0 tai 1, tai 1 tai 1, kummassakin tapauksessa, 234 00:10:51,769 --> 00:10:53,060 meillä on 1 olevan yksi heistä. 235 00:10:53,060 --> 00:10:54,101 Niin silloin pääsisimme 1. 236 00:10:54,101 --> 00:10:56,320 Yleisö: Mitä tarkoitat että se sanoo se antaa 1? 237 00:10:56,320 --> 00:10:58,236 >> CAMILLE REKHSON: tulos. Tavallaan, kuten sinäkin 238 00:10:58,236 --> 00:11:05,060 would-- jos teit 0 ja 1, tulos, joka olisi 1-- tai 0 239 00:11:05,060 --> 00:11:08,920 ja 1 tuloksella että olisi 0, sorry. 240 00:11:08,920 --> 00:11:12,190 Joo, se oli eräänlainen lausekkeen tulos. 241 00:11:12,190 --> 00:11:16,520 Ja sitten, tämä Järjestelmäkohdistin symboli on XOR, tai yksinomainen OR. 242 00:11:16,520 --> 00:11:21,920 Niin se tarkoittaa vain yksi tai täsmälleen toinen argumentit on yhtä suuri kuin 1. 243 00:11:21,920 --> 00:11:24,210 Ja sitten se antaisi sinulle 1. 244 00:11:24,210 --> 00:11:27,370 >> Pikku koukeroinen linja on NOT operaattori. 245 00:11:27,370 --> 00:11:31,940 Joten toisin kuin muut heistä, jotka toimivat pari bittejä, 246 00:11:31,940 --> 00:11:34,930 EI operaattori kestää vain yksi bitti, ja käännä se. 247 00:11:34,930 --> 00:11:37,640 Joten jos give-- jos teet EI 0, se antaa sinulle 1. 248 00:11:37,640 --> 00:11:40,248 Ja jos et 1, se antaisi sinulle 0. 249 00:11:40,248 --> 00:11:40,748 Joo? 250 00:11:40,748 --> 00:11:41,150 >> Yleisö: Mitä eroa välillä TAI yhdellä rivillä 251 00:11:41,150 --> 00:11:41,983 ja tai kahdella? 252 00:11:41,983 --> 00:11:44,430 253 00:11:44,430 --> 00:11:46,930 CAMILLE REKHSON: Niin OR kanssa kaksi riviä on looginen OR. 254 00:11:46,930 --> 00:11:52,430 Niin se vertaamiseen kaksi täyttä kokonaislukuja, tai two-- 255 00:11:52,430 --> 00:11:53,730 onko asiat ovat yhtäläiset. 256 00:11:53,730 --> 00:11:58,340 Tai kuten tähän on sama kuin tämä, TAI tämä on yhtä suuri kuin tämän tyyppinen asia. 257 00:11:58,340 --> 00:12:04,090 Kun taas yhden baari OR, on tehdä asioita peiton. 258 00:12:04,090 --> 00:12:04,590 Joo. 259 00:12:04,590 --> 00:12:06,680 >> Yleisö: Mitä tarkoitat peiton? 260 00:12:06,680 --> 00:12:10,330 >> CAMILLE REKHSON: Niin peiton toimii suoraan bitit binary. 261 00:12:10,330 --> 00:12:11,596 >> Yleisö: Voi, näen. 262 00:12:11,596 --> 00:12:15,000 >> CAMILLE REKHSON: Joo, niin kanssa 0: n ja 1: n. 263 00:12:15,000 --> 00:12:18,310 Teemme pari esimerkkejä tästä jälkeen, juuri niin se ei ole liian sekava. 264 00:12:18,310 --> 00:12:20,970 Ja sitten kaksi viimeistä ovat vasen muutos ja siirto oikealle. 265 00:12:20,970 --> 00:12:23,970 Jotka ovat periaatteessa kaksi vähemmän kuin merkkejä tai kaksi enemmän kuin merkkejä. 266 00:12:23,970 --> 00:12:26,294 Ja he siirtynyt hieman tietty määrä paikkoja 267 00:12:26,294 --> 00:12:27,710 että annat sille suuntaan. 268 00:12:27,710 --> 00:12:29,980 Joten olisi joko siirtää se vasemmalle tai oikealle. 269 00:12:29,980 --> 00:12:30,480 Joo? 270 00:12:30,480 --> 00:12:32,470 Yleisö: Mikä syntaksi käynnissä? 271 00:12:32,470 --> 00:12:33,950 >> CAMILLE REKHSON: Aiomme läpi esimerkiksi toinen. 272 00:12:33,950 --> 00:12:35,680 Joten toivottavasti, jotka auttavat. 273 00:12:35,680 --> 00:12:41,060 Kysyttävää juuri mitä kuuluu täällä, before-- OK. 274 00:12:41,060 --> 00:12:43,821 Niin menee läpi joitakin esimerkkejä. 275 00:12:43,821 --> 00:12:45,070 Aloitetaan ja ykkösiä. 276 00:12:45,070 --> 00:12:47,880 Mitä saamme, jos teimme 0 ja 1? 277 00:12:47,880 --> 00:12:48,899 >> Yleisö: 0. 278 00:12:48,899 --> 00:12:50,690 CAMILLE REKHSON: OK, ja jos emme 1 JA 1? 279 00:12:50,690 --> 00:12:51,622 Yleisö: 1. 280 00:12:51,622 --> 00:12:54,490 CAMILLE REKHSON: Joo, mitä jos emme 0 tai yksi? 281 00:12:54,490 --> 00:12:55,094 Yleisö: 1. 282 00:12:55,094 --> 00:12:56,510 CAMILLE REKHSON: Miten noin 1 tai 1? 283 00:12:56,510 --> 00:12:57,404 Yleisö: 1. 284 00:12:57,404 --> 00:13:00,410 CAMILLE REKHSON: OK, entä 0 XOR 1? 285 00:13:00,410 --> 00:13:01,380 Yleisö: 1. 286 00:13:01,380 --> 00:13:03,120 CAMILLE REKHSON: Ja 1 XOR 1? 287 00:13:03,120 --> 00:13:03,902 Yleisö: 0. 288 00:13:03,902 --> 00:13:05,360 CAMILLE REKHSON: Olette hyvä. 289 00:13:05,360 --> 00:13:06,510 Entä EI 0? 290 00:13:06,510 --> 00:13:07,265 >> Yleisö: 1. 291 00:13:07,265 --> 00:13:08,390 CAMILLE REKHSON: Ja EI 1? 292 00:13:08,390 --> 00:13:09,602 Yleisö: 0. 293 00:13:09,602 --> 00:13:12,810 CAMILLE REKHSON: OK, ja sitten tämä viimeinen yksi on pikkuinen siirtymisen kanssa. 294 00:13:12,810 --> 00:13:18,700 Jos siis alun perin X olevan 8, ja sitten y on x siirtynyt vasemmalle 3, 295 00:13:18,700 --> 00:13:19,760 mitä se meille? 296 00:13:19,760 --> 00:13:20,676 >> Yleisö: [äänetön]. 297 00:13:20,676 --> 00:13:22,817 298 00:13:22,817 --> 00:13:24,150 CAMILLE REKHSON: Sano se uudestaan. 299 00:13:24,150 --> 00:13:26,740 Yleisö: [äänetön]. 300 00:13:26,740 --> 00:13:28,766 CAMILLE REKHSON: Niin, tämä todella antaa meille 64. 301 00:13:28,766 --> 00:13:29,876 Yleisö: [äänetön]. 302 00:13:29,876 --> 00:13:32,250 CAMILLE REKHSON: Joten olen vain menossa kirjoittamaan tätä täällä, 303 00:13:32,250 --> 00:13:34,700 joten tämä tekee hieman järkeä. 304 00:13:34,700 --> 00:13:45,120 Jos meillä on 2 0, 2 1, 2 2, 2-3 tulee olemaan 8. 305 00:13:45,120 --> 00:13:52,380 Ja jos me haluamme siirtää sen 3 enemmän bittejä vasemmalle, että olisi 2 4, 306 00:13:52,380 --> 00:13:57,270 2 ja 5, ja 2 6, ja 2 6 64. 307 00:13:57,270 --> 00:13:59,920 308 00:13:59,920 --> 00:14:01,110 Onko se järkevää? 309 00:14:01,110 --> 00:14:05,291 310 00:14:05,291 --> 00:14:05,791 Kyllä. 311 00:14:05,791 --> 00:14:08,725 >> Yleisö: Onko että siirtyminen kaikki 1: n ja 0 n binääriluvun the-- 312 00:14:08,725 --> 00:14:09,600 >> CAMILLE REKHSON: Kyllä. 313 00:14:09,600 --> 00:14:12,150 314 00:14:12,150 --> 00:14:15,170 Ja sinun ei tarvitse huolehtia siitä tietokilpailu näistä on negatiivinen. 315 00:14:15,170 --> 00:14:19,510 Emme tee sinusta käsitellä negatiivinen muutoksia millään tavalla. 316 00:14:19,510 --> 00:14:24,070 Muita kysymyksiä tästä? 317 00:14:24,070 --> 00:14:24,570 Kyllä. 318 00:14:24,570 --> 00:14:30,570 >> Yleisö: Jos se siirtyy oikealle, on jotain, joka wasn't-- mitään, 319 00:14:30,570 --> 00:14:33,220 ei ollut alun perin osa juttu 0? 320 00:14:33,220 --> 00:14:37,110 >> CAMILLE REKHSON: Joo, olisit vain lisätä 0 n on alkuperäisessä. 321 00:14:37,110 --> 00:14:38,110 Joo. 322 00:14:38,110 --> 00:14:41,540 >> Yleisö: Mikä on, että 100 siirretään oikealle kolme kertaa? 323 00:14:41,540 --> 00:14:43,290 CAMILLE REKHSON: 100 siirretään oikealle, 324 00:14:43,290 --> 00:14:46,057 jotta veisi kaikki 1: n ja 0: n ja vain siirtää niitä 325 00:14:46,057 --> 00:14:48,515 oikealle niin monta kertaa kuin voit se siirtää oikealle. 326 00:14:48,515 --> 00:14:50,452 >> Yleisö: [äänetön]? 327 00:14:50,452 --> 00:14:53,160 CAMILLE REKHSON: No, 100-- ovat puhut 100 binary, 328 00:14:53,160 --> 00:14:53,910 tai 100 desimaalin? 329 00:14:53,910 --> 00:14:55,750 Yleisö: Olen pahoillani, 100 binary. 330 00:14:55,750 --> 00:14:58,916 >> CAMILLE REKHSON: 100 binary, jos siirtää sen right-- 331 00:14:58,916 --> 00:15:01,040 jos siirtää oikealle kerran, siitä tulisi 10. 332 00:15:01,040 --> 00:15:04,430 Jos vaihdat sitä oikealle kahdesti, siitä tulisi 001. 333 00:15:04,430 --> 00:15:07,590 Ja sitten jos siirtää sen uudelleen, te tavallaan menettää hieman. 334 00:15:07,590 --> 00:15:09,610 Joo, se on vain 0. 335 00:15:09,610 --> 00:15:12,140 Muita kysymyksiä tästä? 336 00:15:12,140 --> 00:15:12,835 Kyllä. 337 00:15:12,835 --> 00:15:14,695 >> Yleisö: Niin se tulee 000. 338 00:15:14,695 --> 00:15:17,020 >> CAMILLE REKHSON: Kyllä. 339 00:15:17,020 --> 00:15:22,150 OK, joten mennään läpi hieman ASCII matematiikka. 340 00:15:22,150 --> 00:15:25,120 Joten hahmot voivat olennaisesti rinnastetaan kokonaislukuja 341 00:15:25,120 --> 00:15:28,290 perustuu niiden ASCII-arvoihin. 342 00:15:28,290 --> 00:15:35,250 Joten jos me istuimme int vastaa 65, int B vastaa plus 1, int char C vastaa 343 00:15:35,250 --> 00:15:39,565 D miinus 1, ja nieriää D vastaa 68, mitä tulostaa alareunassa? 344 00:15:39,565 --> 00:15:46,150 345 00:15:46,150 --> 00:15:49,720 >> Joten, olemme painatus these-- siunata sinä-- olemme 346 00:15:49,720 --> 00:15:53,520 tulostus nämä kaikki ulos merkkiä perusteella prosenttia C. 347 00:15:53,520 --> 00:15:56,320 Joten olemme periaatteessa tulostamalla merkki kaikkien neljän 348 00:15:56,320 --> 00:15:58,600 näistä muuttujista. 349 00:15:58,600 --> 00:16:04,280 Kuten vihje, 65 on ASCII-arvo Pääoman A. Ehkä se auttoi. 350 00:16:04,280 --> 00:16:04,780 Mitä? 351 00:16:04,780 --> 00:16:05,530 >> Yleisö: ABCD. 352 00:16:05,530 --> 00:16:07,780 >> CAMILLE REKHSON: Joo, niin tämä tulostaa tarkalleen 353 00:16:07,780 --> 00:16:10,290 ABCD koska asetamme int vastaa ASCII-arvon A. 354 00:16:10,290 --> 00:16:13,085 Joten jos me painamme että ulos merkki, me vain saada pääomaa, 355 00:16:13,085 --> 00:16:15,540 Plus 1 olisi pääoma B ASCII. 356 00:16:15,540 --> 00:16:19,260 D miinus 1 olisi pääoma C ASCII. 357 00:16:19,260 --> 00:16:25,185 Ja 68 on ASCII-arvo D. Kysymyksiä ASCII? 358 00:16:25,185 --> 00:16:25,685 Kyllä. 359 00:16:25,685 --> 00:16:31,370 >> Yleisö: Niin, ympärille lainausmerkit , Tekee sen muutos on ASCII? 360 00:16:31,370 --> 00:16:34,456 >> CAMILLE REKHSON: Se uses-- se count-- puolilainausmerkkejä ympäri 361 00:16:34,456 --> 00:16:35,330 tekee siitä merkki. 362 00:16:35,330 --> 00:16:37,600 Ja jos olet tekemisissä se määrä form-- 363 00:16:37,600 --> 00:16:40,320 niin kun, kuten tässä tapauksessa, se on käsitellään kuten int-- 364 00:16:40,320 --> 00:16:44,664 se käsittelisi jossa se on ASCII-arvo. 365 00:16:44,664 --> 00:16:45,164 Kyllä. 366 00:16:45,164 --> 00:16:50,060 >> Yleisö: Oletteko suositella, että meillä on ASCII-taulukkoa? 367 00:16:50,060 --> 00:16:51,900 >> CAMILLE REKHSON: En think-- 368 00:16:51,900 --> 00:16:54,720 >> Yleisö: Vai olisiko vain tekemisissä näiden? 369 00:16:54,720 --> 00:16:56,210 >> CAMILLE REKHSON: Minusta meidän tekisin sen helposti asioita. 370 00:16:56,210 --> 00:16:58,168 En usko, että se olisi satuttaa kirjoittaa ehkä 371 00:16:58,168 --> 00:17:02,653 mitä pääoman ja pienet ovat, vain mitä nämä alueet ovat alkaen. 372 00:17:02,653 --> 00:17:05,819 Mutta en usko sinun täytyy ottaa kaikki tilaa laittaa koko ASCII pöytä. 373 00:17:05,819 --> 00:17:06,803 Joo. 374 00:17:06,803 --> 00:17:09,755 >> Yleisö: Mitä eroa välillä sanomalla int ja char C, 375 00:17:09,755 --> 00:17:12,720 kuin sinulla huipulla? 376 00:17:12,720 --> 00:17:17,380 >> CAMILLE REKHSON: Joten se on vain miten joka tallennetaan muistiin. 377 00:17:17,380 --> 00:17:20,010 Mutta voit käsitellä sitä joko tavalla. 378 00:17:20,010 --> 00:17:23,274 Kuten näemme täällä, me teemme tulosta ulos kuin merkki. 379 00:17:23,274 --> 00:17:24,690 Yleisö: Niin, että sama kuin? 380 00:17:24,690 --> 00:17:25,606 CAMILLE REKHSON: Joo. 381 00:17:25,606 --> 00:17:28,030 382 00:17:28,030 --> 00:17:29,537 Muita kysymyksiä? 383 00:17:29,537 --> 00:17:32,022 >> Yleisö: Niin, prosenttia C sanoo tulostaa merkkiä? 384 00:17:32,022 --> 00:17:33,016 >> CAMILLE REKHSON: Kyllä. 385 00:17:33,016 --> 00:17:35,501 >> Yleisö: Joten vaikka on vain on määritelty kokonaisluku, 386 00:17:35,501 --> 00:17:37,569 jos yritämme tulostaa nieriä kuin 65, se would-- 387 00:17:37,569 --> 00:17:40,110 CAMILLE REKHSON: Se menisi pohjimmiltaan menee ASCII kaavio 388 00:17:40,110 --> 00:17:42,990 ja saa mitä merkkiä ASCII kaavio, että 65. 389 00:17:42,990 --> 00:17:43,840 >> Yleisö: Kiitos. 390 00:17:43,840 --> 00:17:44,756 >> CAMILLE REKHSON: Joo. 391 00:17:44,756 --> 00:17:45,445 Kyllä? 392 00:17:45,445 --> 00:17:50,620 >> Yleisö: Joten jos et% I% I, % I% I olisi se vain print-- 393 00:17:50,620 --> 00:17:52,620 CAMILLE REKHSON: Joo, jos ei kaikki 4% I: n, se 394 00:17:52,620 --> 00:17:57,170 tulostaisi ASCII arvot kaikki neljä näistä. 395 00:17:57,170 --> 00:17:59,483 Muita kysymyksiä? 396 00:17:59,483 --> 00:18:06,310 OK, joten soveltamisala, periaatteessa tämä auttaa meitä selvittämään, missä 397 00:18:06,310 --> 00:18:08,450 muuttuja olemassa ohjelmaan. 398 00:18:08,450 --> 00:18:11,910 Joten olemme puhuneet kaksi erilaista tyyppisiä laajuus, globaali ja paikallinen. 399 00:18:11,910 --> 00:18:14,560 >> Jos muuttuja on maailmanlaajuisesti scoped, se tarkoittaa koko ohjelma 400 00:18:14,560 --> 00:18:16,292 on pääsy että muuttuja. 401 00:18:16,292 --> 00:18:18,000 Ja jos maailmanlaajuisesti soveltamisala muuttuja, sinua 402 00:18:18,000 --> 00:18:19,510 julistaa, että se ennen päätehtävä. 403 00:18:19,510 --> 00:18:20,830 Joten se tehdään oikein suoralta kädeltä. 404 00:18:20,830 --> 00:18:22,950 Ja sitten koko ohjelma voi käyttää sitä. 405 00:18:22,950 --> 00:18:26,070 >> Jos se on vain paikallisesti scoped, että muuttuja rajoittuu tietylle alueelle. 406 00:18:26,070 --> 00:18:29,705 Joten jos julistaa sisällä varten silmukan, vain että silmukka voi käyttää sitä. 407 00:18:29,705 --> 00:18:31,580 Tai jos julistaa sisällä erityistoiminto, 408 00:18:31,580 --> 00:18:34,940 ainoastaan, että toimintoa voidaan käyttää sitä. 409 00:18:34,940 --> 00:18:38,265 Kysymyksiä soveltamisalaa. 410 00:18:38,265 --> 00:18:41,570 >> OK, joten toiminto prototyyppien. 411 00:18:41,570 --> 00:18:45,360 Periaatteessa koska C, kun se kokoaa, lukee ylhäältä alas. 412 00:18:45,360 --> 00:18:48,800 Jos julistaa toiminto myöhään koodissa, 413 00:18:48,800 --> 00:18:51,670 kääntäjä ei tiedä että tämä tehtävä on olemassa. 414 00:18:51,670 --> 00:18:55,690 Joten mitä käytämme prototyyppejä, joka pohjimmiltaan kertoo kääntäjä, 415 00:18:55,690 --> 00:18:58,710 Tämän toiminnon olemassa, siirry katso sen myöhemmin koodissa. 416 00:18:58,710 --> 00:19:00,900 Niin että teet toiminto prototyyppi 417 00:19:00,900 --> 00:19:03,020 Juuri näin aloitat pois kirjoittaminen toiminto. 418 00:19:03,020 --> 00:19:05,310 Annat palautuva, funktion nimi, 419 00:19:05,310 --> 00:19:08,930 ja sitten argumentteja että tämä tehtävä vie. 420 00:19:08,930 --> 00:19:13,970 >> Joten, katsomaan nopeasti Esimerkiksi tässä Isojen meidän toiminto että käytämme täällä 421 00:19:13,970 --> 00:19:15,340 on pohjimmiltaan kuutio toiminto. 422 00:19:15,340 --> 00:19:19,170 Joten ryhtyy kokonaisluku ja palaavat kuution, että kokonaisluku. 423 00:19:19,170 --> 00:19:23,190 Joten koska olemme kirjoitettu, että toiminto alla päätehtävä, 424 00:19:23,190 --> 00:19:26,300 ja haluamme käyttää lähtö that-- tai me 425 00:19:26,300 --> 00:19:28,630 haluavat, että toiminto meidän päätehtävä, 426 00:19:28,630 --> 00:19:31,980 laitamme sen prototyyppi tavalla yläreunassa ohjelmamme. 427 00:19:31,980 --> 00:19:34,460 Ja sitten kun me kutsumme se meidän päätehtävä, 428 00:19:34,460 --> 00:19:38,800 kääntäjä tietää, että tämä tehtävä on kirjallinen myöhemmin, ja menee etsimään sitä, 429 00:19:38,800 --> 00:19:40,910 ja käyttää sitä oikein. 430 00:19:40,910 --> 00:19:45,190 Kysymyksiä prototyyppien? 431 00:19:45,190 --> 00:19:45,690 Kyllä. 432 00:19:45,690 --> 00:19:46,940 >> Yleisö: Mitä järkeä? 433 00:19:46,940 --> 00:19:49,374 434 00:19:49,374 --> 00:19:50,915 En saa pisteen prototyyppien. 435 00:19:50,915 --> 00:19:52,820 Miksi ei vain se siellä? 436 00:19:52,820 --> 00:19:54,903 >> CAMILLE REKHSON: No jos se on täällä, silloin kun 437 00:19:54,903 --> 00:19:57,020 saat linja kuutioon X teidän päätehtävä, 438 00:19:57,020 --> 00:19:59,495 kääntäjä ei ole aavistustakaan, että kuutio toiminto todella on olemassa. 439 00:19:59,495 --> 00:20:01,310 >> Yleisö: Etkö voisi vain laittaa sen eteen? 440 00:20:01,310 --> 00:20:02,350 >> CAMILLE REKHSON: Se parempi koodaus käytäntö 441 00:20:02,350 --> 00:20:04,150 laittaa se teidän päätehtävä. 442 00:20:04,150 --> 00:20:06,350 Joten siksi olisimme tehdä prototyyppien. 443 00:20:06,350 --> 00:20:07,680 Vain koska, jos oli paljon toimintoja, 444 00:20:07,680 --> 00:20:10,180 se olisi todella sotkuinen lukea läpi kaikkia niitä toimintoja 445 00:20:10,180 --> 00:20:12,030 ennen kuin saat liha ohjelman. 446 00:20:12,030 --> 00:20:13,888 Joo, ja teillä oli q-- 447 00:20:13,888 --> 00:20:16,796 >> Yleisö: Niin, julistaa muuttuja ylös yläreunassa 448 00:20:16,796 --> 00:20:18,795 joten voit käyttää sitä, tehdä se globaali muuttuja? 449 00:20:18,795 --> 00:20:21,119 Onko se tämän kaltaista jossa se toteaa sen 450 00:20:21,119 --> 00:20:23,660 siellä, niin että se tietää, että se tulee käyttää sitä myöhemmin 451 00:20:23,660 --> 00:20:24,762 ja voit käyttää sitä? 452 00:20:24,762 --> 00:20:26,146 >> CAMILLE REKHSON: Joo. 453 00:20:26,146 --> 00:20:26,646 Kyllä. 454 00:20:26,646 --> 00:20:30,414 >> Yleisö: Pitäisikö the-- ylimääräisiä toiminnot luoda avaimen ulkopuolella 455 00:20:30,414 --> 00:20:31,840 tämä asia, or-- 456 00:20:31,840 --> 00:20:33,760 >> CAMILLE REKHSON: Joo, jos olet muiden, functions-- tärkein 457 00:20:33,760 --> 00:20:36,385 itsessään on function-- joten jos luot muita toimintoja, 458 00:20:36,385 --> 00:20:37,555 niiden pitäisi olla ulkopuolella. 459 00:20:37,555 --> 00:20:38,055 Kyllä? 460 00:20:38,055 --> 00:20:39,734 >> Yleisö: Mikä prosenttia D? 461 00:20:39,734 --> 00:20:42,150 CAMILLE REKHSON: Prosenttia D on sama asia kuin prosenttia I. 462 00:20:42,150 --> 00:20:45,915 Se viittaa kokonaisluku. 463 00:20:45,915 --> 00:20:47,895 Kyllä. 464 00:20:47,895 --> 00:20:50,370 >> Yleisö: Mikä on int main tekee? 465 00:20:50,370 --> 00:20:51,724 Mikä se oli mitätön? 466 00:20:51,724 --> 00:20:53,890 CAMILLE REKHSON: Void sanoo se vie argumentteja. 467 00:20:53,890 --> 00:20:55,320 Yleisö: [äänetön]. 468 00:20:55,320 --> 00:20:57,570 CAMILLE REKHSON: Voitko puhua vähän kovempaa, anteeksi? 469 00:20:57,570 --> 00:21:00,153 Yleisö: Joo, anteeksi, miksi laitat mitätön ensimmäinen, 470 00:21:00,153 --> 00:21:02,297 ja sitten int tulo toinen? 471 00:21:02,297 --> 00:21:04,720 472 00:21:04,720 --> 00:21:07,470 CAMILLE REKHSON: Voi, että kaksi different-- varten päätehtävä 473 00:21:07,470 --> 00:21:09,290 verrattuna kuution toiminto? 474 00:21:09,290 --> 00:21:13,360 Joten päätehtävä, käytämme mitätön, koska siellä 475 00:21:13,360 --> 00:21:16,870 ei parametreja ryhdytty. 476 00:21:16,870 --> 00:21:19,425 Kun taas kuutio toiminto, meillä on panos. 477 00:21:19,425 --> 00:21:22,300 Siksi sanotaan int, syöttö, koska on olemassa perusteluja, että olemme 478 00:21:22,300 --> 00:21:24,571 ottaen ajaa meidän tehtävämme. 479 00:21:24,571 --> 00:21:25,070 Joo. 480 00:21:25,070 --> 00:21:27,770 481 00:21:27,770 --> 00:21:30,464 Onko kysymyksiä? 482 00:21:30,464 --> 00:21:34,520 >> OK, ja sitten nopeasti liukulukuja epätarkkuutta. 483 00:21:34,520 --> 00:21:37,200 Joten meillä on äärettömän monta reaalilukuja. 484 00:21:37,200 --> 00:21:38,950 Mutta vain rajallinen määrä bittejä 485 00:21:38,950 --> 00:21:42,880 että voimme käyttää näyttämään niitä numeroita, ja edustaa heitä. 486 00:21:42,880 --> 00:21:45,020 Niin silloin päädymme joidenkin epätarkkuutta. 487 00:21:45,020 --> 00:21:49,190 Ja teidän numerot eivät aina olla varsin juuri 488 00:21:49,190 --> 00:21:51,810 luulet he ovat, kun olet käsittelevät liukulukuja. 489 00:21:51,810 --> 00:21:53,650 Tämä on vain jotain hyvä tietää. 490 00:21:53,650 --> 00:21:56,628 Kysymyksiä tähän? 491 00:21:56,628 --> 00:21:59,610 Kyllä. 492 00:21:59,610 --> 00:22:02,090 >> Yleisö: Onko tämä viittaavat ajatusta vähän ylivuoto 493 00:22:02,090 --> 00:22:03,089 joka oli luento? 494 00:22:03,089 --> 00:22:06,080 Oliko se jotain erottaa? 495 00:22:06,080 --> 00:22:09,650 >> CAMILLE REKHSON: He täysin erillinen, joo. 496 00:22:09,650 --> 00:22:11,160 OK, suuri. 497 00:22:11,160 --> 00:22:16,369 498 00:22:16,369 --> 00:22:17,452 PULAK Goyal: Hei, kaikille. 499 00:22:17,452 --> 00:22:19,872 Nimeni on Pulak, ja minä olla menossa yli osoittimia. 500 00:22:19,872 --> 00:22:23,260 501 00:22:23,260 --> 00:22:25,720 OK, joten katsotaanpa ensin ajatella mitä muisti näyttää. 502 00:22:25,720 --> 00:22:28,610 Joten kuten näette täällä, me ottaa muistia ja jaamme sen 503 00:22:28,610 --> 00:22:30,090 osaksi joukko lohkoja. 504 00:22:30,090 --> 00:22:33,150 Ja me viittaus kuhunkin lohko osoitteen, eikö? 505 00:22:33,150 --> 00:22:37,196 Ja ei kukaan muista mitä tyyppi merkintätapa käytämme kuvaamaan osoite? 506 00:22:37,196 --> 00:22:38,510 >> Yleisö: Heksadesimaali 0X. 507 00:22:38,510 --> 00:22:39,510 >> PULAK Goyal: Heksadesimaali, eikö? 508 00:22:39,510 --> 00:22:41,509 Joten 0X tarkoittaa olemme puhumme heksadesimaalimuodossa. 509 00:22:41,509 --> 00:22:45,740 510 00:22:45,740 --> 00:22:48,360 OK, joten miten luomme osoittimet? 511 00:22:48,360 --> 00:22:51,960 Joten otamme tyyppi, me laittaa it-- lisätä tähti siihen, 512 00:22:51,960 --> 00:22:53,760 ja sitten lisäämme muuttujan nimi. 513 00:22:53,760 --> 00:22:59,280 Joten esimerkit olemme nähneet ovat int tähti X, nieriää tähti y, ja kellua aloita z. 514 00:22:59,280 --> 00:23:01,380 Joten kun sanon int tähti X, voi joku kertoa minulle 515 00:23:01,380 --> 00:23:03,965 mitä olen sellainen puhu siellä? 516 00:23:03,965 --> 00:23:05,710 >> Yleisö: sijainti levyn. 517 00:23:05,710 --> 00:23:06,890 >> PULAK Goyal: Anteeksi, mitä? 518 00:23:06,890 --> 00:23:07,723 Voitko toistaa tuon? 519 00:23:07,723 --> 00:23:09,250 Yleisö: sijainti levy. 520 00:23:09,250 --> 00:23:12,390 >> PULAK Goyal: Niin actually-- niin mitä Tarkoitin, on kun meillä on int tähti X, 521 00:23:12,390 --> 00:23:14,400 sanomme luo osoitin, ja se 522 00:23:14,400 --> 00:23:17,130 voi tallentaa osoitteen muuttuja, joka on int, eikö? 523 00:23:17,130 --> 00:23:21,810 Joten char tähti y, Luomme osoitin 524 00:23:21,810 --> 00:23:24,220 johon voi tallentaa osoite muuttujan, joka on merkkiä. 525 00:23:24,220 --> 00:23:26,270 Jotta järkevää kaikille? 526 00:23:26,270 --> 00:23:29,600 OK, viileä 527 00:23:29,600 --> 00:23:33,450 >> OK, joten osoittimet, on kaksi tärkeää toimintaa voimme tehdä. 528 00:23:33,450 --> 00:23:36,630 On viitataan, ja siellä dereferencing. 529 00:23:36,630 --> 00:23:37,130 Joo? 530 00:23:37,130 --> 00:23:38,760 >> Yleisö: Voisitko mennä hieman hitaammin? 531 00:23:38,760 --> 00:23:39,510 >> PULAK Goyal: Toki. 532 00:23:39,510 --> 00:23:45,350 Joo, so-- Joo, kysy kysymyksiä menen pitkin jos sinä-- jos jokin on epäselvää. 533 00:23:45,350 --> 00:23:47,240 Joten olemme löytymistä ja dereferencing. 534 00:23:47,240 --> 00:23:51,680 Joten kun haluat saada osoitteeseen muuttujan, käytä & -merkki. 535 00:23:51,680 --> 00:23:53,620 Joten sanoa ilmoitettu int x jonnekin. 536 00:23:53,620 --> 00:23:57,450 Ja haluan saada osoitteen että ja siirtää sen, tekisin ampersand x. 537 00:23:57,450 --> 00:24:01,260 Ja kun haluat saada liittyvän arvon osoitin, 538 00:24:01,260 --> 00:24:04,670 käytät dereference operaattorin, joka on tähti. 539 00:24:04,670 --> 00:24:08,570 >> Joten avulla sanoa saaneeni int tähti X, ja Minulla oli se osoittaa jotain. 540 00:24:08,570 --> 00:24:13,510 Jos haluan saada arvon miltä osoittaen, haluan vain tehdä tähti x. 541 00:24:13,510 --> 00:24:14,960 Onko selvä? 542 00:24:14,960 --> 00:24:16,390 Kaikki kysymykset siitä? 543 00:24:16,390 --> 00:24:18,129 Joo. 544 00:24:18,129 --> 00:24:25,275 >> Yleisö: Joten yleensä, te ei voi tehdä x ja tähti 545 00:24:25,275 --> 00:24:27,135 x sama X. 546 00:24:27,135 --> 00:24:28,740 Pitääkö tämä paikkansa? 547 00:24:28,740 --> 00:24:31,800 Koska jos x on muuttuja, niin sinulla on 548 00:24:31,800 --> 00:24:35,980 tehdä x saada että se on osoitin. 549 00:24:35,980 --> 00:24:40,810 Mutta jos x on osoitin, sinun täytyy tehdä tähti x saada muuttuja. 550 00:24:40,810 --> 00:24:43,240 >> PULAK Goyal: Kyllä, niin kysymys oli siitä, milloin 551 00:24:43,240 --> 00:24:45,750 käytämme star-- kun käyttäisit tähti, 552 00:24:45,750 --> 00:24:47,470 ja kun käytämme et-merkki, ja voimme 553 00:24:47,470 --> 00:24:49,160 käyttää sitä samantyyppisiä muuttuja? 554 00:24:49,160 --> 00:24:51,810 Joten yleensä jos sinulla on, esimerkiksi int x, 555 00:24:51,810 --> 00:24:55,170 voit useimmiten käyttää ampersand saada osoitteen että. 556 00:24:55,170 --> 00:24:58,220 Koska se ei tee järkevää kunnioitus osaksi X. 557 00:24:58,220 --> 00:25:04,220 Katsoo, että jos meillä olisi int tähti X, olisit käyttää dereference toiminta 558 00:25:04,220 --> 00:25:07,910 koska se ei ole mitään järkeä käyttää x kyseisessä asiassa. 559 00:25:07,910 --> 00:25:09,582 Onko se järkevää? 560 00:25:09,582 --> 00:25:13,192 >> Yleisö: Joten et voi ja, ja sitten osoitin? 561 00:25:13,192 --> 00:25:14,900 PULAK Goyal: Joten teknisesti, oikeastaan 562 00:25:14,900 --> 00:25:16,870 voi tehdä -merkki osoittimen. 563 00:25:16,870 --> 00:25:18,984 Mutta se ulos laajuus tämän luokan. 564 00:25:18,984 --> 00:25:21,900 Sillä purpose-- oman kaverit " tarkoituksiin, kun on viitteitä, 565 00:25:21,900 --> 00:25:25,191 haluat käyttää dereference operaattori saada liittyvän arvon että. 566 00:25:25,191 --> 00:25:27,380 Ja kun sinulla on säännöllinen muuttujia, kuten int x, 567 00:25:27,380 --> 00:25:31,410 haluat käyttää et-merkki operaattorin saada osoitteen että. 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, joten Katsotaanpa osoittimet ja mitä tapahtuu konepellin alle. 571 00:25:38,850 --> 00:25:42,640 Joten ensimmäinen asia, tein tässä ilmoitettu int x on yhtä kuin 5. 572 00:25:42,640 --> 00:25:48,460 Osoite Tämän muuttujan on 0x04, ja arvo on 5. 573 00:25:48,460 --> 00:25:52,940 Joten mitä tapahtuu kanssa seuraavalle riville. 574 00:25:52,940 --> 00:25:55,130 Joten nyt me julistamme osoitin. 575 00:25:55,130 --> 00:26:01,450 Sen osoite on 0x08, ja sen arvo on osoite x. 576 00:26:01,450 --> 00:26:05,220 Tarkoittaako tämä järkevää kaikille? 577 00:26:05,220 --> 00:26:06,507 Kaikki kysymykset siitä? 578 00:26:06,507 --> 00:26:09,130 579 00:26:09,130 --> 00:26:13,080 >> OK, ja nyt katsotaan mitä tapahtuu seuraavalle riville. 580 00:26:13,080 --> 00:26:18,140 Niinpä tämän seuraavalle riville, olemme osoite kopion ollessa 0x10, 581 00:26:18,140 --> 00:26:20,780 ja sen arvo on 5. 582 00:26:20,780 --> 00:26:23,570 Joten syy saimme viisi on sanoimme, me dereference 583 00:26:23,570 --> 00:26:26,740 osoitin, jota julisti int tähden. 584 00:26:26,740 --> 00:26:35,797 Ja niin se went-- kun dereference se, se sanoi, OK, mikä on korttipaikkaan 0x04. 585 00:26:35,797 --> 00:26:36,630 Ja se meni että. 586 00:26:36,630 --> 00:26:40,785 Ja mikä X on x0-- 0x04, ja arvo on 5. 587 00:26:40,785 --> 00:26:41,660 Onko siinä järkeä? 588 00:26:41,660 --> 00:26:42,334 Joo? 589 00:26:42,334 --> 00:26:50,090 >> Yleisö: Miksi kopio osoite vain 4 tavua yläpuolella X osoitin? 590 00:26:50,090 --> 00:26:52,318 >> PULAK Goyal: Kyllä, tämä on virhe on-- 591 00:26:52,318 --> 00:26:55,304 >> CAMILLE REKHSON: Niin, kyllä, muistan tämä on kirjoitettu heksadesimaalimuodossa. 592 00:26:55,304 --> 00:26:56,220 PULAK Goyal: Ai, joo. 593 00:26:56,220 --> 00:26:58,615 CAMILLE REKHSON: Eli tämä on todella 8 ja sitten 16 594 00:26:58,615 --> 00:27:00,960 koska sanoimme, että osoitin, muistaa, 595 00:27:00,960 --> 00:27:05,330 meidän IDE tulee olemaan 8 tavua pitkä. 596 00:27:05,330 --> 00:27:06,080 PULAK Goyal: Joo. 597 00:27:06,080 --> 00:27:09,160 598 00:27:09,160 --> 00:27:12,540 Joten vain olla selkeä, osoittimet ovat 8 tavua. 599 00:27:12,540 --> 00:27:14,160 Int on 4 tavua. 600 00:27:14,160 --> 00:27:18,380 Joten miksi mitä hyppäsi 0x04 ja 0x08 601 00:27:18,380 --> 00:27:20,980 on koska jouduimme tehdä hyppy 8 tavua. 602 00:27:20,980 --> 00:27:24,396 Ja sitten for-- alkaen kopio on vain int, 603 00:27:24,396 --> 00:27:26,020 se on 4 tavua, joka on puolet 8 tavua. 604 00:27:26,020 --> 00:27:29,970 Joten me vain siirtyä 0x10, joka on kaksi päässä 0x08. 605 00:27:29,970 --> 00:27:33,100 606 00:27:33,100 --> 00:27:34,570 Muita kysymyksiä? 607 00:27:34,570 --> 00:27:36,850 OK, let's-- joo? 608 00:27:36,850 --> 00:27:39,245 >> Yleisö: Miksei arvo int kopio 609 00:27:39,245 --> 00:27:45,000 vain the-- miksi se 5 sijaan 0x04? 610 00:27:45,000 --> 00:27:46,270 >> PULAK Goyal: OK, miksi se 5? 611 00:27:46,270 --> 00:27:51,600 OK, joten kun the-- joten tehdään ensimmäinen ajattele tätä kannalta tyyppejä. 612 00:27:51,600 --> 00:27:55,600 Joten sanon int kopio on yhtä suuri kuin osoitin tähden. 613 00:27:55,600 --> 00:27:57,490 Joten mikä on tyyppi osoitin? 614 00:27:57,490 --> 00:27:59,310 Se on int tähden. 615 00:27:59,310 --> 00:28:03,850 Ja kun minä dereference että, tyyppi tulee int. 616 00:28:03,850 --> 00:28:06,570 Joten mitä odotamme tallentamaan tässä todella int. 617 00:28:06,570 --> 00:28:07,965 Onko siinä järkeä? 618 00:28:07,965 --> 00:28:09,090 Yleisö: Toki, hieman. 619 00:28:09,090 --> 00:28:11,465 PULAK Goyal: Joten yleensä kun luulet kannalta tyyppejä, 620 00:28:11,465 --> 00:28:15,607 se auttaa sinua ymmärtämään, mitä on tyyppi arvo, joka pitäisi mennä sinne. 621 00:28:15,607 --> 00:28:17,940 Joten voit yleensä sulkea pois paljon näitä yleisiä virheitä 622 00:28:17,940 --> 00:28:21,790 ajattelemalla kannalta tyyppejä. 623 00:28:21,790 --> 00:28:23,612 Anna minun mennä läpi hieman dioja. 624 00:28:23,612 --> 00:28:26,070 Ja voimme saada kysymyksiä loppuun osoittimen osassa. 625 00:28:26,070 --> 00:28:28,910 626 00:28:28,910 --> 00:28:32,290 OK, joten meillä on buginen ohjelma täällä. 627 00:28:32,290 --> 00:28:35,460 Ja niin tekee anyone-- voi joku kertoa minulle, mikä on vialla tämän ohjelman? 628 00:28:35,460 --> 00:28:39,000 629 00:28:39,000 --> 00:28:40,820 Oikea, joten mitä olemme odottaa tehdä täällä 630 00:28:40,820 --> 00:28:44,520 is-- mitä haluamme tehdä on otettava muuttuja int x 631 00:28:44,520 --> 00:28:48,350 ja käännä it-- tehdä siitä yhtä suuri 5 sijasta 3 ja tulosta se. 632 00:28:48,350 --> 00:28:49,640 Mutta se ei tapahdu. 633 00:28:49,640 --> 00:28:50,950 Voiko joku kertoa minulle, miksi? 634 00:28:50,950 --> 00:28:51,934 Kyllä? 635 00:28:51,934 --> 00:28:54,840 >> Yleisö: Kun toiminto to_five vie X kuin se väite, 636 00:28:54,840 --> 00:28:58,130 se ei ota X itse, mutta sen sijaan luo kopion,, on se. 637 00:28:58,130 --> 00:29:00,115 Ja se muodostaa operaatioita että. 638 00:29:00,115 --> 00:29:02,614 Mutta koska se, et muuta todellista arvoa x. 639 00:29:02,614 --> 00:29:03,970 Koska olet [kuultavissa]. 640 00:29:03,970 --> 00:29:07,950 >> PULAK Goyal: Oikea, oikea, joten kun me kutsumme 641 00:29:07,950 --> 00:29:10,100 toiminto to_five, mitä me teemme ajattelee, 642 00:29:10,100 --> 00:29:12,550 anna minulle kopio arvo tuon toiminnan. 643 00:29:12,550 --> 00:29:16,010 Tämä toiminto, sitten, on menossa ja tekee joitakin manipulointia. 644 00:29:16,010 --> 00:29:21,260 Mutta kun se palaa, se on nyt ulos soveltamisalasta ja päätehtävä täällä. 645 00:29:21,260 --> 00:29:24,750 Ja niin x on vielä, itse asiassa, yhtä kuin 3, ja me painamme 3. 646 00:29:24,750 --> 00:29:26,445 OK, joten katsotaanpa miten tämä tapahtuu. 647 00:29:26,445 --> 00:29:29,430 648 00:29:29,430 --> 00:29:31,180 >> OK, joten ei ole mitään ilmoitettu. 649 00:29:31,180 --> 00:29:34,490 Sitten, tässä, x on yhtä suuri kuin 3. 650 00:29:34,490 --> 00:29:40,820 Ja nyt se is-- asemassa kaksi, ei ole vielä laajuudeltaan. 651 00:29:40,820 --> 00:29:46,790 Ja nyt menemme asentoon kolme, jos nyt oletetaan arvo 3. 652 00:29:46,790 --> 00:29:49,380 Neljän, nyt muuttaa 5. 653 00:29:49,380 --> 00:29:53,290 Mutta nyt, kun me hypätä takaisin viisi, joka on print, 654 00:29:53,290 --> 00:29:55,380 on nyt soveltamisalan ulkopuolella. 655 00:29:55,380 --> 00:29:57,450 Ja x on edelleen yhtä suuri kuin 3. 656 00:29:57,450 --> 00:29:59,700 Onko tämä järkevää kaikille? 657 00:29:59,700 --> 00:30:03,010 OK, joten nyt puhutaanpa miten voimme käyttää osoittimia korjata. 658 00:30:03,010 --> 00:30:06,140 Onko kellään mitään ideoita miten voisi korjata tämän käyttämällä osoittimia? 659 00:30:06,140 --> 00:30:08,710 660 00:30:08,710 --> 00:30:11,490 >> Yleisö: Otat int tähden sijasta int varten to_five. 661 00:30:11,490 --> 00:30:12,530 >> PULAK Goyal: Anteeksi, voisitteko puhua? 662 00:30:12,530 --> 00:30:15,266 >> Yleisö: Otat int tähden sijasta int varten to_five. 663 00:30:15,266 --> 00:30:16,140 PULAK Goyal: OK, kyllä. 664 00:30:16,140 --> 00:30:20,250 Joten pass-- sijaan kulkee vain arvo, nyt kulkea sitä viitteenä. 665 00:30:20,250 --> 00:30:21,690 Tämä uusi toiminto, eikö? 666 00:30:21,690 --> 00:30:25,210 Ja niin johtamalla osoite, me voi tehdä manipulointia on osoite. 667 00:30:25,210 --> 00:30:27,400 Ja niin olemme todella, itse asiassa muuttumassa X. 668 00:30:27,400 --> 00:30:30,570 Joten miten se toimii. 669 00:30:30,570 --> 00:30:32,950 >> OK, joten tässä esimerkissä korjasimme sen. 670 00:30:32,950 --> 00:30:38,000 Olemme muuttaneet allekirjoitus on to_five toteuttaa int 671 00:30:38,000 --> 00:30:40,540 tähti sijasta vain int täällä. 672 00:30:40,540 --> 00:30:45,470 Sitten dereference tämä ja antaa 5 sitä. 673 00:30:45,470 --> 00:30:48,090 Ja nyt tämä tahto, itse asiassa, tulosta 5. 674 00:30:48,090 --> 00:30:51,960 Joten miten vaiheet töissä täällä. 675 00:30:51,960 --> 00:30:55,200 >> Joten ensimmäinen askel, mikään ei ilmoitettu vielä. 676 00:30:55,200 --> 00:31:00,140 Joten tässä, toisen vaiheen, Olemme mainittu x on yhtä suuri kuin 3, 677 00:31:00,140 --> 00:31:03,970 mutta on edelleen soveltamisalan ulkopuolella. 678 00:31:03,970 --> 00:31:08,100 Nyt kolmannen linja, meillä on x on edelleen yhtä suuri kuin kolme. 679 00:31:08,100 --> 00:31:14,150 Ja nyt, olemme ylittäneet in-- mitä tallennettu on nyt osoite x. 680 00:31:14,150 --> 00:31:16,760 Tarkoittaako tämä järkevää kaikille, miten saimme sen? 681 00:31:16,760 --> 00:31:21,470 Oikea, meillä on amper-- näin ohitimme et-x toiminto 682 00:31:21,470 --> 00:31:23,040 to_five. 683 00:31:23,040 --> 00:31:30,330 Ja sitten seuraavalle riville, mitä teemme, on meillä dereference. 684 00:31:30,330 --> 00:31:36,120 >> Ja dereferencing, pystymme muuttaa x arvo 3-5. 685 00:31:36,120 --> 00:31:38,560 Koska X asuu kyseisessä osoitteessa 0x12. 686 00:31:38,560 --> 00:31:42,440 687 00:31:42,440 --> 00:31:45,810 Ja sitten lopuksi, kun palaamme takaisin päävalikkoon, 688 00:31:45,810 --> 00:31:50,570 vaikka tämä on nyt pois laajuus, olemme itse asiassa muuttunut X. 689 00:31:50,570 --> 00:31:51,570 Ja se on 5. 690 00:31:51,570 --> 00:31:55,160 Kysyttävää? 691 00:31:55,160 --> 00:31:56,036 Joo? 692 00:31:56,036 --> 00:31:58,185 >> Yleisö: Voitko kertoa minulle mitä -merkki X oli? 693 00:31:58,185 --> 00:32:00,004 Luulin et-merkki oli kuin JA. 694 00:32:00,004 --> 00:32:03,480 695 00:32:03,480 --> 00:32:07,210 >> PULAK Goyal: Kyllä, joten käytämme samoja symboli monia eri asioita. 696 00:32:07,210 --> 00:32:11,470 Joten tässä, kun have-- vuonna Tässä tapauksessa, kun sinulla on, 697 00:32:11,470 --> 00:32:19,380 Olen guess-- joten tässä tapauksessa, kun olet tekemisissä osoittimia, 698 00:32:19,380 --> 00:32:23,640 kun laitat et-merkki edessä ja int, muuttuja int tai char, 699 00:32:23,640 --> 00:32:28,609 tai virtaus, mitä sanot on, anna minulle osoite tämän. 700 00:32:28,609 --> 00:32:31,900 Mutta mitä olit ajatellut, kun muu käyttäisit et-merkki on, sanokaamme, 701 00:32:31,900 --> 00:32:33,180 kohteessa jos ilmoitus. 702 00:32:33,180 --> 00:32:39,256 Sinulla on tosi, ja joitakin muuttujia että arvioida noin Boolen, 703 00:32:39,256 --> 00:32:41,380 ja joitakin muita muuttujia että vahvistaa jotkut Boolen 704 00:32:41,380 --> 00:32:42,880 ja haluat saada ja tuon. 705 00:32:42,880 --> 00:32:44,552 Sitten voit käyttää ampersand. 706 00:32:44,552 --> 00:32:47,510 SPEAKER 1: Joo, niin juuri tänään, olemme puhui kolme eri käyttötarkoituksiin 707 00:32:47,510 --> 00:32:48,250 ja et-merkki. 708 00:32:48,250 --> 00:32:51,040 Meillä on kaksi et-, joka on mitä Pulak on juuri kuvattu. 709 00:32:51,040 --> 00:32:53,420 Meillä on yksi et-merkki, joka on mitä Camille kuvattu 710 00:32:53,420 --> 00:32:54,897 aikaisemmin, mikä on yksi ampersand. 711 00:32:54,897 --> 00:32:56,685 Ja se on peiton JA. 712 00:32:56,685 --> 00:32:59,640 Ja huomaa, että molemmat ehdollinen AND-- tai, anteeksi, 713 00:32:59,640 --> 00:33:04,180 looginen AND ja verkon peiton JA, ne on kaksi numeroa, eikö? 714 00:33:04,180 --> 00:33:07,354 Se oli jotain et-merkki et-merkki jotain, 715 00:33:07,354 --> 00:33:09,350 jotain et-merkki jotain. 716 00:33:09,350 --> 00:33:13,862 Täällä, kun meidän on vain et-merkki jotain, joka on dereferencing. 717 00:33:13,862 --> 00:33:15,830 >> PULAK Goyal: Joo, hyvä kysymys. 718 00:33:15,830 --> 00:33:16,677 Joo. 719 00:33:16,677 --> 00:33:21,150 >> Yleisö: Miksi linjassa 5a ja tähti tulla N /? 720 00:33:21,150 --> 00:33:25,520 Miksi he eivät juuri sellainen säilyttää samat arvot edellisestä linja? 721 00:33:25,520 --> 00:33:28,000 >> PULAK Goyal: Koska olemme poistui toiminto. 722 00:33:28,000 --> 00:33:30,894 Ja niin mitä happens-- joten what-- nyt olemme 723 00:33:30,894 --> 00:33:33,060 pois soveltamisalasta tämän tehtävän, mitä tapahtuu todella 724 00:33:33,060 --> 00:33:37,770 on ne poistetaan muistista. 725 00:33:37,770 --> 00:33:38,808 Joo. 726 00:33:38,808 --> 00:33:42,982 >> Yleisö: Välillä 3 tai 4 tähden vastaa 5. 727 00:33:42,982 --> 00:33:43,690 PULAK Goyal: Kyllä. 728 00:33:43,690 --> 00:33:45,575 Yleisö: Mitä että tarkalleen tarkoittavat? 729 00:33:45,575 --> 00:33:46,950 PULAK Goyal: Mitä se tarkoittaa? 730 00:33:46,950 --> 00:33:47,380 Yleisö: Joo. 731 00:33:47,380 --> 00:33:49,088 PULAK Goyal: Niin kysymys oli, mitä on 732 00:33:49,088 --> 00:33:52,300 that-- mitä teet verkossa kun sanomme, tähti on yhtä kuin 5? 733 00:33:52,300 --> 00:33:55,210 Muista siis tähti dereference operaattori. 734 00:33:55,210 --> 00:33:58,640 Joten kun tässä tapauksessa, on osoitin. 735 00:33:58,640 --> 00:34:00,030 Se int tähden. 736 00:34:00,030 --> 00:34:03,710 Joten kun me dereference mukaan käyttämällä tähti, mitä sanomme 737 00:34:03,710 --> 00:34:11,250 on, löytää minkä varastoidaan osoite, tallennetaan a-- niin take-- niin, 738 00:34:11,250 --> 00:34:13,280 juuri nyt, on joitakin osoite tallennetaan se. 739 00:34:13,280 --> 00:34:19,920 Mene jossa osoitteeseen pistettä, ja nyt muuttaa mitä se on viisi. 740 00:34:19,920 --> 00:34:20,420 Joo. 741 00:34:20,420 --> 00:34:23,390 >> Yleisö: Voitko sanoa se yksinkertaisemmin? 742 00:34:23,390 --> 00:34:27,360 Muuta osoite 5. 743 00:34:27,360 --> 00:34:31,070 >> PULAK Goyal: Emme ole muuttamalla osoitteen 5. 744 00:34:31,070 --> 00:34:36,340 On joitakin osoite se, joka on osoitteen olevan muuttujan. 745 00:34:36,340 --> 00:34:39,570 Ja niin mitä sanomme kun me dereference on, 746 00:34:39,570 --> 00:34:42,630 nyt haluamme change-- olemme nyt löytymistä 747 00:34:42,630 --> 00:34:45,135 muuttujan edun suoraan. 748 00:34:45,135 --> 00:34:48,499 Onko se järkevää? 749 00:34:48,499 --> 00:34:52,280 >> SPEAKER 1: Toinen tapa ajatella se on go-- joten on osoite. 750 00:34:52,280 --> 00:34:55,310 Tähti sanoo mennä, että käsitellä ja katsoa sen arvo. 751 00:34:55,310 --> 00:34:58,000 Ja nyt asetettu sen arvo 5. 752 00:34:58,000 --> 00:35:00,920 Niin se sanoo, siirry osoite x, joka 753 00:35:00,920 --> 00:35:05,720 tulee olemaan mitä tallennettu vuonna, ja muuttaa sitä 5. 754 00:35:05,720 --> 00:35:06,470 PULAK Goyal: Joo? 755 00:35:06,470 --> 00:35:10,817 Yleisö: Eli sijainti silloin osoitin on menossa, osoite. 756 00:35:10,817 --> 00:35:14,270 Mutta arvo on määritetty arvo osoitteen perusteella. 757 00:35:14,270 --> 00:35:15,020 PULAK Goyal: Joo. 758 00:35:15,020 --> 00:35:18,076 759 00:35:18,076 --> 00:35:19,367 Muita kysymyksiä tästä? 760 00:35:19,367 --> 00:35:22,774 761 00:35:22,774 --> 00:35:23,940 Yleisö: Minulla on kysymys. 762 00:35:23,940 --> 00:35:25,664 PULAK Goyal: Joo, anteeksi. 763 00:35:25,664 --> 00:35:30,324 Yleisö: Joten kun store-- niin jos sanot [kuultavissa]. 764 00:35:30,324 --> 00:35:31,032 PULAK Goyal: Kyllä. 765 00:35:31,032 --> 00:35:34,448 Yleisö: Onko sinulla Säilytä x et-merkki? 766 00:35:34,448 --> 00:35:37,376 Miksi et voi vain sanoa X ennen int [äänetön]? 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 Yleisö: [äänetön]. 770 00:35:42,090 --> 00:35:43,673 PULAK Goyal: Niin on sinun question-- OH. 771 00:35:43,673 --> 00:35:47,160 772 00:35:47,160 --> 00:35:51,300 Joten kysymys on, miksi ei voi we-- toiminnon to_five, miksei me 773 00:35:51,300 --> 00:35:52,590 vain pass x, eikö? 774 00:35:52,590 --> 00:35:53,570 >> Yleisö: Oikea. 775 00:35:53,570 --> 00:35:59,570 >> PULAK Goyal: OK, joo, joten tämä uudelleen menee takaisin meidän keskustelua tyyppejä. 776 00:35:59,570 --> 00:36:06,080 Joten toiminto to_five on nyt odottaa tyyppi int tähti. 777 00:36:06,080 --> 00:36:07,660 Joten mikä on tyyppi x? 778 00:36:07,660 --> 00:36:09,800 X on vain int. 779 00:36:09,800 --> 00:36:13,530 Mutta mitä tämä toiminto odottaa on int tähden. 780 00:36:13,530 --> 00:36:16,910 Joten se odottaa muuttuja on osoite tallennetaan se. 781 00:36:16,910 --> 00:36:20,250 Niin, että miten sinä-- laittaa et-merkki, ja niin se on 782 00:36:20,250 --> 00:36:22,560 miten me kulkea -osoite, joka on now-- 783 00:36:22,560 --> 00:36:25,120 ja että tulkitsee kuten int tähden, joo. 784 00:36:25,120 --> 00:36:26,700 Suuri kysymys. 785 00:36:26,700 --> 00:36:29,300 Muita kysymyksiä tästä? 786 00:36:29,300 --> 00:36:29,800 OK, viileä. 787 00:36:29,800 --> 00:36:32,870 788 00:36:32,870 --> 00:36:37,020 >> OK, joten nyt puhutaan noin osoitin aritmeettinen. 789 00:36:37,020 --> 00:36:40,050 Joten tässä, lisäämällä ja vähentämällä i säätää osoitin 790 00:36:40,050 --> 00:36:43,950 i kertaa koko tyypin osoittimen tavuja. 791 00:36:43,950 --> 00:36:46,170 Joten katsotaanpa miten se näyttää. 792 00:36:46,170 --> 00:36:49,640 Joten tässä, olemme julisti int x vastaa 5. 793 00:36:49,640 --> 00:36:56,120 Ja nyt aiomme julistaa osoitin y, ja kulkea osoite x siellä. 794 00:36:56,120 --> 00:36:58,910 Meillä on siis, että. 795 00:36:58,910 --> 00:37:01,005 Joten X säilytetään 0x04. 796 00:37:01,005 --> 00:37:03,960 Joten nyt y on yhtä suuri kuin. 797 00:37:03,960 --> 00:37:12,260 Ja voi joku kertoa minulle, mitä he ajattelevat tapahtuu, kun teemme y plus on 1? 798 00:37:12,260 --> 00:37:19,100 799 00:37:19,100 --> 00:37:19,771 Joo? 800 00:37:19,771 --> 00:37:24,010 >> Yleisö: Aikooko se muuttuu 0 kertaa 0 8? 801 00:37:24,010 --> 00:37:25,342 >> PULAK Goyal: Koko, ja type-- 802 00:37:25,342 --> 00:37:27,789 >> Yleisö: Olet muuttamassa osoite. 803 00:37:27,789 --> 00:37:29,080 PULAK Goyal: Joo se was-- kyllä. 804 00:37:29,080 --> 00:37:31,130 Niin oikein. 805 00:37:31,130 --> 00:37:33,110 Joten se muuttuu 0x08. 806 00:37:33,110 --> 00:37:38,750 Ja because-- joten sinun käyttää tätä kaava, 1 kertaa koko osoittimen 807 00:37:38,750 --> 00:37:42,354 ja osoittimet ovat size-- 808 00:37:42,354 --> 00:37:44,050 >> [OPISKELIJAT Murmur] 809 00:37:44,050 --> 00:37:45,190 >> PULAK Goyal: Oikea. 810 00:37:45,190 --> 00:37:46,150 >> [OPISKELIJAT Murmur] 811 00:37:46,150 --> 00:37:49,230 >> SPEAKER 1: Niin tyyppi, joka osoitin to-- 812 00:37:49,230 --> 00:37:51,862 >> PULAK Goyal: Onko, joo, Joo, 4 tavua. 813 00:37:51,862 --> 00:37:53,930 >> SPEAKER 1: Niin ints 4 tavua. 814 00:37:53,930 --> 00:38:01,260 >> PULAK Goyal: Joten jos olisimme a-- katsotaanpa sanomme julisti, luulisin, nieriää. 815 00:38:01,260 --> 00:38:06,830 Mitä that-- joten Sanotaan on char X yhtä suuri tai jotain. 816 00:38:06,830 --> 00:38:14,400 Ja meillä oli osoite että 0x04, mikä olisi y plus on 1 tehdä nyt? 817 00:38:14,400 --> 00:38:14,960 Anteeksi mitä? 818 00:38:14,960 --> 00:38:16,099 >> Yleisö: 0x05. 819 00:38:16,099 --> 00:38:17,140 PULAK Goyal: 0x05, oikea. 820 00:38:17,140 --> 00:38:18,520 Onko kaikkien nähdä, että? 821 00:38:18,520 --> 00:38:20,212 OK, ja nyt sanotaan se kellua. 822 00:38:20,212 --> 00:38:20,962 Mitä tapahtuisi? 823 00:38:20,962 --> 00:38:25,210 824 00:38:25,210 --> 00:38:26,130 Kukaan? 825 00:38:26,130 --> 00:38:28,066 Joten kellukkeet ovat, kuinka monta tavua? 826 00:38:28,066 --> 00:38:28,860 >> Yleisö: 4 tavua. 827 00:38:28,860 --> 00:38:29,651 >> PULAK Goyal: Oikea. 828 00:38:29,651 --> 00:38:32,661 Joten se olisi sama asia kuin tämä. 829 00:38:32,661 --> 00:38:33,160 Viileä. 830 00:38:33,160 --> 00:38:36,230 831 00:38:36,230 --> 00:38:40,180 OK, ja nyt puhutaan noin viitteitä ja taulukot. 832 00:38:40,180 --> 00:38:44,210 Joten näit tämän päälle edellinen kaksi p sarjaa, 833 00:38:44,210 --> 00:38:48,570 jossa voimme treat-- niin taulukot ja osoittimet eivät ole sama asia. 834 00:38:48,570 --> 00:38:51,170 Mutta voimme käsitellä taulukoita osoittimia. 835 00:38:51,170 --> 00:38:55,550 Joten tässä, meillä on tämä joukko täällä, jossa on kolme korttipaikkaa. 836 00:38:55,550 --> 00:38:57,570 Ensimmäisen slot-- me on yksi, kaksi ja kolme. 837 00:38:57,570 --> 00:39:00,930 >> Joten jos we-- jotta voimme antaa että sanomalla, meillä on joukko, 838 00:39:00,930 --> 00:39:02,080 dereference että. 839 00:39:02,080 --> 00:39:04,579 Ja sitten kun me dereference että, mitä me oikeastaan ​​teemme 840 00:39:04,579 --> 00:39:05,910 viittaa samaan paikkaan. 841 00:39:05,910 --> 00:39:09,230 Joten tähti array on 1. 842 00:39:09,230 --> 00:39:11,020 Me could- miten voisi me kirjoittaa that-- mitä 843 00:39:11,020 --> 00:39:13,404 Vaihtoehtoinen tapa voisimme kirjoittaa, että? 844 00:39:13,404 --> 00:39:14,840 >> Yleisö: Array 0 yhtäläinen 1. 845 00:39:14,840 --> 00:39:17,100 >> PULAK Goyal: Aivan, ei kaikki nähdä, että? 846 00:39:17,100 --> 00:39:18,320 Niin sama juttu täällä. 847 00:39:18,320 --> 00:39:24,060 Joten kun meillä on joukko plus 1, me do-- niin even-- 848 00:39:24,060 --> 00:39:28,890 muistamme aritmeettinen että me puhui juuri, kun me teemme plus 1 849 00:39:28,890 --> 00:39:32,120 tai siirtää sen yli 4 tavua, oikea. 850 00:39:32,120 --> 00:39:33,170 Onko kaikkien nähdä, että? 851 00:39:33,170 --> 00:39:35,753 Ja että puoli, kun me dereference että voimme asettaa, että 2. 852 00:39:35,753 --> 00:39:37,710 Ja näin asetamme seuraavan lohkon 2. 853 00:39:37,710 --> 00:39:41,640 Ja niin vaihtoehtoinen tapa kirjoittaa että olisi myös joukko kiinnike 854 00:39:41,640 --> 00:39:44,436 0 kiinnike on 1. 855 00:39:44,436 --> 00:39:47,070 >> Yleisö: Tarvitsetko suluissa? 856 00:39:47,070 --> 00:39:50,840 >> PULAK Goyal: Kyllä, koska olet dereferencing koko määrä 857 00:39:50,840 --> 00:39:53,460 array plus 1. 858 00:39:53,460 --> 00:39:56,829 OK, ja sama asia array plus 2. 859 00:39:56,829 --> 00:39:57,870 Kysyttävää? 860 00:39:57,870 --> 00:39:58,369 Joo. 861 00:39:58,369 --> 00:40:01,340 Yleisö: Niin array on automaattisesti 0? 862 00:40:01,340 --> 00:40:03,054 >> PULAK Goyal: Array is-- Anteeksi, mitä? 863 00:40:03,054 --> 00:40:03,962 >> Yleisö: Array on 0. 864 00:40:03,962 --> 00:40:07,140 Osoite matriisi on vain 0. 865 00:40:07,140 --> 00:40:10,200 >> PULAK Goyal: Joten kysymys oli, on osoite array vain 0? 866 00:40:10,200 --> 00:40:11,950 Eli ei, array on joitakin osoite. 867 00:40:11,950 --> 00:40:14,930 Joten kun me dereference se, that's-- joten voit ajatella about-- 868 00:40:14,930 --> 00:40:18,230 kirjaimellisesti kuin osoitin osoittelee alkuun jono. 869 00:40:18,230 --> 00:40:19,390 Niin että on joitakin osoite. 870 00:40:19,390 --> 00:40:20,580 Emme tiedä mitä se on. 871 00:40:20,580 --> 00:40:24,170 Mutta kun me dereference se, tiedämme se on alussa jono. 872 00:40:24,170 --> 00:40:25,980 Ja niin kun siirrymme vuoteen 1, me vain liikkuvat 873 00:40:25,980 --> 00:40:29,090 suhteessa kun tämä osoite oli. 874 00:40:29,090 --> 00:40:30,480 Muita kysymyksiä? 875 00:40:30,480 --> 00:40:31,419 Joo? 876 00:40:31,419 --> 00:40:35,559 >> Yleisö: Joten jos et array kiinnike plus 1-- 877 00:40:35,559 --> 00:40:37,350 PULAK Goyal: Anteeksi, I-- voisitteko puhua? 878 00:40:37,350 --> 00:40:41,174 Yleisö: Joo, jos et array kiinnike [kuultavissa]. 879 00:40:41,174 --> 00:40:45,227 Joten sitten jos laitat pointer-- 880 00:40:45,227 --> 00:40:46,810 PULAK Goyal: Anteeksi, en kuule sinua. 881 00:40:46,810 --> 00:40:48,100 Voitteko sanoa vielä kerran? 882 00:40:48,100 --> 00:40:49,470 >> Yleisö: Olet OK. 883 00:40:49,470 --> 00:40:50,870 >> PULAK Goyal: OK, sorry. 884 00:40:50,870 --> 00:40:51,420 OK, viileä. 885 00:40:51,420 --> 00:40:52,200 Any-- joo. 886 00:40:52,200 --> 00:40:55,710 Joten kun menet array kiinnike 3-- 887 00:40:55,710 --> 00:40:56,570 >> PULAK Goyal: Joo. 888 00:40:56,570 --> 00:40:59,832 >> Yleisö: --isn't there-- ei se on neljä paikkoja kuten 0, 1, 2, ja 3? 889 00:40:59,832 --> 00:41:02,630 Miksi se ei int array 2? 890 00:41:02,630 --> 00:41:07,850 >> PULAK Goyal: Ei, niin vain yleissopimuksen C is-- kun julistaa array, 891 00:41:07,850 --> 00:41:12,010 we-- numero laitoimme sinne on kuinka monta lähtö haluamme. 892 00:41:12,010 --> 00:41:16,970 Mutta indeksit array ovat todella array 0, array 1, ja array 2. 893 00:41:16,970 --> 00:41:19,780 Joten se on vain yleissopimuksen miten me julistamisesta taulukot. 894 00:41:19,780 --> 00:41:20,880 Joo, muita kysymyksiä? 895 00:41:20,880 --> 00:41:21,380 Joo. 896 00:41:21,380 --> 00:41:23,750 Yleisö: Joten olemme yhä puhumme viitteitä, eikö? 897 00:41:23,750 --> 00:41:24,500 PULAK Goyal: Joo. 898 00:41:24,500 --> 00:41:28,600 Yleisö: Voisitko vielä tehdä tähti array 0 on 1? 899 00:41:28,600 --> 00:41:32,870 PULAK Goyal: Ei, ei, so-- OK, joten kysymys oli voisi 900 00:41:32,870 --> 00:41:37,370 et vain tähti array kiinnike nolla, ja sitten sanoa, että yhtä 1. 901 00:41:37,370 --> 00:41:40,000 Niin, ei, mitä sanomme tässä on, että voimme think-- 902 00:41:40,000 --> 00:41:42,600 voimme käsitellä taulukoita osoittimia. 903 00:41:42,600 --> 00:41:44,970 Joten me have-- mitä olemme sanonta on meillä on kaksi tapaa 904 00:41:44,970 --> 00:41:47,370 nyt viittaus samassa korttelissa. 905 00:41:47,370 --> 00:41:52,270 Joten doing-- jos sinulla on joukko nolla, tyyppi, joka on nyt int. 906 00:41:52,270 --> 00:41:55,264 Ja jos otat tähti, joka, saat kelpaa juttu. 907 00:41:55,264 --> 00:41:57,680 Joten mitä sanomme täällä, on on olemassa kaksi vaihtoehtoisia tapoja 908 00:41:57,680 --> 00:41:59,100 viitata samassa korttelissa. 909 00:41:59,100 --> 00:42:01,860 Voit joko tehdä array kannatin 0 on 1. 910 00:42:01,860 --> 00:42:06,420 Tai voit tehdä dereference array, ja on, että 0. 911 00:42:06,420 --> 00:42:08,621 Joten vain kaksi tapaa tehdä sama asia. 912 00:42:08,621 --> 00:42:09,120 Joo. 913 00:42:09,120 --> 00:42:15,270 >> Yleisö: Miksi ei ole sitä koko int 1 lisätä to-- 914 00:42:15,270 --> 00:42:17,650 >> PULAK Goyal: koko int 1. 915 00:42:17,650 --> 00:42:19,900 >> Yleisö: Koska se liikkuu kertaluonteinen. 916 00:42:19,900 --> 00:42:23,620 >> PULAK Goyal: Koska se juuri niin C toimii. 917 00:42:23,620 --> 00:42:26,460 Se on vain tapa osoitin aritmeettinen on määritelty. 918 00:42:26,460 --> 00:42:27,854 Se vie osoitin. 919 00:42:27,854 --> 00:42:30,020 Ja sitten mitä lisäät sen, se tulee kertoa, että 920 00:42:30,020 --> 00:42:34,770 koon riippumatta pekarminnet on, joo. 921 00:42:34,770 --> 00:42:35,480 Joo. 922 00:42:35,480 --> 00:42:39,595 >> Yleisö: Joten sanot voimme käsitellä osoittimet ja taulukot sama, 923 00:42:39,595 --> 00:42:40,720 mutta että ne ovat erilaisia. 924 00:42:40,720 --> 00:42:41,950 Joten mikä tekee niistä erilaisia? 925 00:42:41,950 --> 00:42:45,070 Mitä voimme tehdä kanssa yksi mutta ei muita? 926 00:42:45,070 --> 00:42:52,390 >> PULAK Goyal: varten tämän luokka, mielestäni it's-- mitä tehdä sinä-- 927 00:42:52,390 --> 00:42:56,270 >> SPEAKER 1: Niin, we-- OK, niin, sillä Jos esimerkiksi varata muistia 928 00:42:56,270 --> 00:42:59,680 ja sinulla on osoittimen kokonaisluku, esimerkiksi. 929 00:42:59,680 --> 00:43:01,890 Jos olet yrittänyt aloittaa tekee osoitin aritmeettinen 930 00:43:01,890 --> 00:43:05,890 ja ylittävät muistin määrää te varattu, sinun törmätä virheitä. 931 00:43:05,890 --> 00:43:08,250 Tiedämme kanssa paneelit, me sanoa etuajassa, OK, minä 932 00:43:08,250 --> 00:43:11,400 haluavat allocate-- tähän olennaisesti sanoo, haluan jakaa 933 00:43:11,400 --> 00:43:13,490 tarpeeksi tilaa kolme kokonaislukua. 934 00:43:13,490 --> 00:43:17,820 Ja nyt voimme käsitellä muistia kuin jos meillä on kaikki kolme näistä kokonaislukuja. 935 00:43:17,820 --> 00:43:19,460 Onko tällaista järkeä? 936 00:43:19,460 --> 00:43:22,042 >> PULAK Goyal: Joo. 937 00:43:22,042 --> 00:43:22,542 Joo. 938 00:43:22,542 --> 00:43:24,778 >> Yleisö: Niin tähti array, että osoitetaan 1 939 00:43:24,778 --> 00:43:26,657 0-indeksi array? 940 00:43:26,657 --> 00:43:27,365 PULAK Goyal: Kyllä. 941 00:43:27,365 --> 00:43:31,160 942 00:43:31,160 --> 00:43:34,439 >> Yleisö: Joten, mikä on jälkeen Seuraavat kaksi riviä kannalta the-- I 943 00:43:34,439 --> 00:43:36,980 ymmärtää, että yrität käyttää osoitin aritmeettinen täällä, 944 00:43:36,980 --> 00:43:39,355 mutta jälleen kerran, en ymmärrä mikä osoitin aritmeettinen on. 945 00:43:39,355 --> 00:43:43,869 Joten array plus 1, olet sanomalla, että olet nyt 946 00:43:43,869 --> 00:43:47,540 menossa halua puhua ensimmäinen indeksi array. 947 00:43:47,540 --> 00:43:50,050 >> PULAK Goyal: Oikea, ja niin syy, joka toimii on joukko, 948 00:43:50,050 --> 00:43:52,970 täällä, voimme ajatella kuin int tähti. 949 00:43:52,970 --> 00:43:56,110 Ja niin kun emme osoitin aritmeettinen sitä, muistaa kaava jossa 950 00:43:56,110 --> 00:43:59,020 otamme the-- luulisin riippumatta nykyinen osoite on, 951 00:43:59,020 --> 00:44:02,100 ja sitten kun lisäämme 1 se, me itse 952 00:44:02,100 --> 00:44:06,620 moninkertaistaa 1 koon mukaan asia olemme manipuloimalla. 953 00:44:06,620 --> 00:44:09,090 Joten tässä tapauksessa, koko int. 954 00:44:09,090 --> 00:44:11,634 Ja sitten siirrymme se välittämään tämän paljon. 955 00:44:11,634 --> 00:44:14,419 >> SPEAKER 1: Niin teeskennellä sinulla b array tähden. 956 00:44:14,419 --> 00:44:15,335 PULAK Goyal: OK, joo. 957 00:44:15,335 --> 00:44:16,005 SPEAKER 1: kädelläsi. 958 00:44:16,005 --> 00:44:16,505 Mene tänne. 959 00:44:16,505 --> 00:44:18,350 PULAK Goyal: Tai voin just-- joo. 960 00:44:18,350 --> 00:44:23,660 Joten here-- OK, joten array at alussa, on juuri täällä. 961 00:44:23,660 --> 00:44:29,155 Joten kun me dereference array, olimme vain viitaten ensimmäisen lohkon täällä. 962 00:44:29,155 --> 00:44:36,620 Mutta nyt kun en array plus 1, että is-- että nuoli on nyt täällä. 963 00:44:36,620 --> 00:44:38,250 Onko se järkevää? 964 00:44:38,250 --> 00:44:46,690 Oikea, koska tämä lohko on koon int, joka on 4 tavua. 965 00:44:46,690 --> 00:44:53,540 Ja niin, mitä teemme on olemme liikkuvat että osoitinta 4 tavua yli. 966 00:44:53,540 --> 00:44:56,080 Aina kun teemme aritmeettinen sitä, se on aina 967 00:44:56,080 --> 00:44:59,730 siirrä se lisäyksin 4 tavua. 968 00:44:59,730 --> 00:45:01,902 Koska tämä on kuin int tähden. 969 00:45:01,902 --> 00:45:04,970 Onko siinä järkeä? 970 00:45:04,970 --> 00:45:05,470 OK. 971 00:45:05,470 --> 00:45:07,770 >> Yleisö: Eli asioita array olivat 5 tavua, olisimme siirtää sen 5 bytes-- 972 00:45:07,770 --> 00:45:10,853 >> PULAK Goyal: Oikea, joten jos meillä olisi char tähti, olisimme siirtää sitä 1 tavu vain. 973 00:45:10,853 --> 00:45:13,670 Joten jos kyseessä on char tähteä, se olisi vain olla siirtää sen yli 1. 974 00:45:13,670 --> 00:45:15,420 Yleisö: Saadaksesi seuraavaksi tarvitset tähti. 975 00:45:15,420 --> 00:45:18,099 PULAK Goyal: Joo, joo, ei se järkevää? 976 00:45:18,099 --> 00:45:19,890 SPEAKER 1: Voimme keskustella siitä lisää myöhemmin. 977 00:45:19,890 --> 00:45:21,530 PULAK Goyal: Joo, joo, varmasti. 978 00:45:21,530 --> 00:45:23,214 OK, viileä. 979 00:45:23,214 --> 00:45:24,630 Siirrytään seuraavaan osaan. 980 00:45:24,630 --> 00:45:27,182 981 00:45:27,182 --> 00:45:28,140 SPEAKER 1: Voi, OK viileä. 982 00:45:28,140 --> 00:45:29,205 Joo, se olen minä. 983 00:45:29,205 --> 00:45:30,330 Hyvä, mahtava. 984 00:45:30,330 --> 00:45:35,064 OK, viileä, joten nyt olemme päälle hieman yleisempää tietoa muistiin. 985 00:45:35,064 --> 00:45:37,730 Myös, arvostan sitä, että he olivat menossa melko nopeasti. 986 00:45:37,730 --> 00:45:40,230 Se on paljon materiaalia saada läpi puolitoista tuntia. 987 00:45:40,230 --> 00:45:42,880 Mutta onko aiheita sinua halua mennä syvällisempää osaksi, 988 00:45:42,880 --> 00:45:44,630 aiomme olla virka tällä viikolla 989 00:45:44,630 --> 00:45:46,340 jossa voit keskustella kanssamme one. 990 00:45:46,340 --> 00:45:49,240 Tai voit vain tulla ylös end ja me keskustella asioista. 991 00:45:49,240 --> 00:45:52,130 Ja kuten aina, tuntuu vapaasti esittää kysymyksiä. 992 00:45:52,130 --> 00:45:52,695 Mahtava. 993 00:45:52,695 --> 00:45:55,820 Joten tässä on meidän kuva muistin olemme nähneet luento miljardia kertaa. 994 00:45:55,820 --> 00:45:58,610 Ja tiedämme, että tämä pino kasvaa pohjasta 995 00:45:58,610 --> 00:46:00,214 ja kasa kasvaa alaspäin. 996 00:46:00,214 --> 00:46:03,380 Ja mitä eroa asiat että pidämme kasaan ja asioita 997 00:46:03,380 --> 00:46:05,981 että pidämme pinoon? 998 00:46:05,981 --> 00:46:07,397 Joku heittää jotain siellä. 999 00:46:07,397 --> 00:46:10,806 1000 00:46:10,806 --> 00:46:11,780 Joo. 1001 00:46:11,780 --> 00:46:14,215 >> Yleisö: Onko pino asioita, jotka ovat vain 1002 00:46:14,215 --> 00:46:18,095 impermanent muuttujia että olemme vain julistamisesta käyttää tiettyjä toimintoja? 1003 00:46:18,095 --> 00:46:19,220 SPEAKER 1: Kaunis, joo. 1004 00:46:19,220 --> 00:46:23,007 Joten tahansa, jos, katsotaanpa sanovat olemme toiminto, 1005 00:46:23,007 --> 00:46:24,590 ja meidän on vain joitakin paikallisia muuttujia. 1006 00:46:24,590 --> 00:46:26,214 Ne ovat menossa päätyä pinoon. 1007 00:46:26,214 --> 00:46:30,020 Jos sen sijaan, kutsumme malloc ja todella varata muistia, 1008 00:46:30,020 --> 00:46:32,290 että aina tulee kasaan. 1009 00:46:32,290 --> 00:46:35,100 Niin, joo Cool? 1010 00:46:35,100 --> 00:46:38,672 >> Ja niin muista, että kaikki muisti että haluatte käyttää käyttäen malloc, 1011 00:46:38,672 --> 00:46:40,130 että menee päätyä kasaan. 1012 00:46:40,130 --> 00:46:42,019 Ja jos unohdat vapaa se, tietokoneen 1013 00:46:42,019 --> 00:46:43,810 aio tietää, että olet tehnyt sen kanssa. 1014 00:46:43,810 --> 00:46:45,560 Joten se on juuri menossa hengailla siellä muistissa. 1015 00:46:45,560 --> 00:46:47,412 Ja olet pohjimmiltaan vuotaa että muisti. 1016 00:46:47,412 --> 00:46:48,120 Olet menettää sitä. 1017 00:46:48,120 --> 00:46:51,840 Koska et koskaan kertonut tietokone, hei Olen lopettanut sen käyttämisen, vapaasti käyttää, 1018 00:46:51,840 --> 00:46:53,632 laittaa muita asioita siellä. 1019 00:46:53,632 --> 00:46:54,470 Viileä. 1020 00:46:54,470 --> 00:46:55,928 Kaikki kysymykset siellä? 1021 00:46:55,928 --> 00:46:56,428 Kyllä. 1022 00:46:56,428 --> 00:46:58,808 >> Yleisö: Millainen muistia on pino? 1023 00:46:58,808 --> 00:46:59,974 Non dynaaminen rehu, delegoitu? 1024 00:46:59,974 --> 00:47:01,200 Mitä te kutsutte sitä? 1025 00:47:01,200 --> 00:47:03,870 >> SPEAKER 1: Toki, niin voisit ajatella sitä paikallisia muuttujia. 1026 00:47:03,870 --> 00:47:10,137 Todellinen puhelut toimintoja aiot pinota. 1027 00:47:10,137 --> 00:47:10,720 Jotain muuta? 1028 00:47:10,720 --> 00:47:11,220 Joo? 1029 00:47:11,220 --> 00:47:14,627 Yleisö: Miten ilmaiseksi muistia lisätty the-- 1030 00:47:14,627 --> 00:47:17,710 SPEAKER 1: Toki, niin kun jakaa muisti kasaan, soitat malloc. 1031 00:47:17,710 --> 00:47:20,543 Ja niin sitten joka antaa sinulle takaisin osoitin joihinkin osoite muistiin. 1032 00:47:20,543 --> 00:47:22,630 Niin sanovat soitit että osoitin, eikö? 1033 00:47:22,630 --> 00:47:24,970 Sitten, sanoit ilmaiseksi osoitin. 1034 00:47:24,970 --> 00:47:27,351 Ja joka vapauttaa muistia. 1035 00:47:27,351 --> 00:47:27,850 Viileä. 1036 00:47:27,850 --> 00:47:28,660 Muita kysymyksiä? 1037 00:47:28,660 --> 00:47:28,880 Kyllä. 1038 00:47:28,880 --> 00:47:30,838 >> Yleisö: Mitä dynaamisesti tarkoittaa? 1039 00:47:30,838 --> 00:47:32,345 1040 00:47:32,345 --> 00:47:35,381 >> SPEAKER 1: dynaamisesti tarkoittaa, aikana ohjelma. 1041 00:47:35,381 --> 00:47:37,630 Joten kun soitat malloc vuonna keskellä ohjelmaa, 1042 00:47:37,630 --> 00:47:40,510 alussa ohjelman, ei ole muistia varattu. 1043 00:47:40,510 --> 00:47:42,600 Ja kun tietokone selata, että koodi, 1044 00:47:42,600 --> 00:47:44,280 se tulee jakaa muistin. 1045 00:47:44,280 --> 00:47:46,507 Niin, että mitä me tarkoitamme dynaamisesti. 1046 00:47:46,507 --> 00:47:47,090 Hyvä kysymys. 1047 00:47:47,090 --> 00:47:48,309 Joo? 1048 00:47:48,309 --> 00:47:50,809 Yleisö: Kun määritellään array hakasulkeissa, 1049 00:47:50,809 --> 00:47:54,154 tekee sen vielä [äänetön]? 1050 00:47:54,154 --> 00:47:55,570 SPEAKER 1: Se on hyvä kysymys. 1051 00:47:55,570 --> 00:48:00,320 Uskon, että kun olet jakaa taulukon, se todella laittaa sen pinoon. 1052 00:48:00,320 --> 00:48:03,008 En ole myönteisesti että, joten älä lainata minulle. 1053 00:48:03,008 --> 00:48:04,430 >> SPEAKER 2: Luulen it-- joo se laittaa sen pinoon. 1054 00:48:04,430 --> 00:48:05,763 >> SPEAKER 1: Laittaa se pinoon. 1055 00:48:05,763 --> 00:48:07,044 OK, viileä, vahvisti. 1056 00:48:07,044 --> 00:48:07,710 Muita kysymyksiä? 1057 00:48:07,710 --> 00:48:08,030 Joo? 1058 00:48:08,030 --> 00:48:10,946 >> Yleisö: Kun siirtää malloc, ei tietokone automaattisesti 1059 00:48:10,946 --> 00:48:12,910 varata muistia muuttujia? 1060 00:48:12,910 --> 00:48:14,660 SPEAKER 1: Joo, sillä paikallinen muuttujat, 1061 00:48:14,660 --> 00:48:16,724 se automaattisesti asettaa muisti pinoon. 1062 00:48:16,724 --> 00:48:18,640 Yleisö: Mikä on järkeä on käyttää malloc? 1063 00:48:18,640 --> 00:48:19,840 SPEAKER 1: Mikä järkeä on käyttää malloc? 1064 00:48:19,840 --> 00:48:22,850 Joten näimme joukko esimerkkejä, kuten esimerkiksi käyttämällä swap, 1065 00:48:22,850 --> 00:48:25,690 jossa haluamme soveltamisalaan muuttuja olla jotain 1066 00:48:25,690 --> 00:48:27,940 ulkopuolella vain sen funktiokutsua. 1067 00:48:27,940 --> 00:48:29,875 Ja me haluamme jotain että voimme kulkea ympäri 1068 00:48:29,875 --> 00:48:31,750 ja että voimme käyttää eri paikoista. 1069 00:48:31,750 --> 00:48:33,791 Siellä me haluaisi laittaa muisti kasaan. 1070 00:48:33,791 --> 00:48:37,835 Niin, että kaikki nämä eri toimintoja voi käyttää sitä. 1071 00:48:37,835 --> 00:48:40,510 >> Yleisö: Voitko selittää sen? 1072 00:48:40,510 --> 00:48:44,770 >> SPEAKER 1: Niin yksi vaihtoehto is-- niin Kysymys oli, voimme vain allocate-- 1073 00:48:44,770 --> 00:48:47,660 pahoillani, voimme julistaa globaali muuttuja, olennaisesti. 1074 00:48:47,660 --> 00:48:48,560 Tämä on yksi vaihtoehto. 1075 00:48:48,560 --> 00:48:50,893 Mutta paljon niitä, ne taipumus saada todella sotkuinen. 1076 00:48:50,893 --> 00:48:52,847 Ja ajattelemme yleensä ja että huono suunnittelu. 1077 00:48:52,847 --> 00:48:53,821 Joo. 1078 00:48:53,821 --> 00:48:56,580 Viileä, muita kysymyksiä? 1079 00:48:56,580 --> 00:48:57,140 Mahtava. 1080 00:48:57,140 --> 00:48:58,789 OK, liikkuvat. 1081 00:48:58,789 --> 00:49:00,580 Joten tämä on todella miten me varata muistia. 1082 00:49:00,580 --> 00:49:02,670 Olemme puhuneet tästä vähän. 1083 00:49:02,670 --> 00:49:04,240 Käytämme tätä toimintoa kutsutaan malloc. 1084 00:49:04,240 --> 00:49:07,850 Ja kerrot sen, kuinka monta tavua muisti, niin kuinka monta tavua kasaan, 1085 00:49:07,850 --> 00:49:08,610 haluat. 1086 00:49:08,610 --> 00:49:13,120 Ja se tulee palauttaa osoitteeseen, joten osoitin, pala muistin 1087 00:49:13,120 --> 00:49:14,500 että se on varattu sinulle. 1088 00:49:14,500 --> 00:49:17,080 Joten tyyppi tulee olemaan mitätön tähti. 1089 00:49:17,080 --> 00:49:21,310 Se tulee olemaan osoitin Mitä ikinä päättää laittaa sinne. 1090 00:49:21,310 --> 00:49:23,530 Aina soitat malloc, olemme jo sanoneet 1091 00:49:23,530 --> 00:49:25,640 sinun täytyy vapauttaa niin me ei ole muistivuotoja. 1092 00:49:25,640 --> 00:49:27,170 >> Mikä muu asia että ehdottomasti 1093 00:49:27,170 --> 00:49:29,185 täytyy tehdä joka ikinen kun soitat malloc? 1094 00:49:29,185 --> 00:49:31,210 1095 00:49:31,210 --> 00:49:32,210 OK, sinun täytyy vapauttaa se. 1096 00:49:32,210 --> 00:49:34,010 Mikä on toinen asia? 1097 00:49:34,010 --> 00:49:35,890 Tarkista null, kaunis. 1098 00:49:35,890 --> 00:49:38,850 Niin, joo, se on oikea siellä ylös pöydällä. 1099 00:49:38,850 --> 00:49:42,120 Jos yrittäisi jakaa muistia ja sinulla ei ole muistia jäljellä, 1100 00:49:42,120 --> 00:49:44,940 tietokone aikoo sanoa, Minulla ei ole mitään antaa sinulle. 1101 00:49:44,940 --> 00:49:47,650 Ja se antaa sinulle takaisin null. 1102 00:49:47,650 --> 00:49:48,400 Kysymyksiä että? 1103 00:49:48,400 --> 00:49:49,290 Joo. 1104 00:49:49,290 --> 00:49:52,995 >> Yleisö: Miksi haluat joskus julistaa osoitin tietyntyyppisiä 1105 00:49:52,995 --> 00:49:56,329 kun mitätön tähti voi käsitellä kaikki osoitin tyypit anyways? 1106 00:49:56,329 --> 00:49:57,370 SPEAKER 1: Hyvä kysymys. 1107 00:49:57,370 --> 00:50:00,590 Miksi sanomme int tähti toisin kuin mitätöidä tähti 1108 00:50:00,590 --> 00:50:03,740 kun mitätön tähti voi hoitaa kaiken? 1109 00:50:03,740 --> 00:50:06,390 Joten emme halua koskaan nimenomaisesti valettu viitteitä. 1110 00:50:06,390 --> 00:50:07,940 Se on vain huono käytäntö. 1111 00:50:07,940 --> 00:50:11,850 Mutta me puhumme int tähteä aivan kuten ymmärrystä, 1112 00:50:11,850 --> 00:50:14,195 tämä on osoitin kokonaisluku. 1113 00:50:14,195 --> 00:50:14,850 >> Yleisö: OK. 1114 00:50:14,850 --> 00:50:17,558 >> SPEAKER 1: Joo, ja se mahdollistaa voit muokata arvoja se 1115 00:50:17,558 --> 00:50:18,667 kokonaislukuina. 1116 00:50:18,667 --> 00:50:20,008 >> Yleisö: Voi, OK. 1117 00:50:20,008 --> 00:50:22,250 Ja mitätön tähti ei anna sinun tehdä sitä? 1118 00:50:22,250 --> 00:50:25,070 >> SPEAKER 1: Se riippuu yhteydessä Joo, joten älä huoli 1119 00:50:25,070 --> 00:50:28,460 älä huoli liikaa minkälaiset siellä. 1120 00:50:28,460 --> 00:50:32,620 Juuri tietää, että yleensä, malloc palauttaa osoittimen jotain. 1121 00:50:32,620 --> 00:50:33,520 Hyvä kysymys. 1122 00:50:33,520 --> 00:50:37,260 >> Yleisö: Miksi kerrot se kertaa 10? [KUULUMATON]. 1123 00:50:37,260 --> 00:50:40,150 >> SPEAKER 1: Toki, joten olin vain tekee satunnaisia ​​esimerkki tässä, missä 1124 00:50:40,150 --> 00:50:42,840 Halusin käyttää riittävästi tilaa tallentaa 10 kokonaislukuja. 1125 00:50:42,840 --> 00:50:44,320 Vain satunnainen valinta. 1126 00:50:44,320 --> 00:50:45,250 Joo. 1127 00:50:45,250 --> 00:50:45,440 Joo, mitä kuuluu? 1128 00:50:45,440 --> 00:50:47,440 >> Yleisö: Mitä sinä tarkoittaa tarkistamalla null? 1129 00:50:47,440 --> 00:50:51,351 Haluatko tarkistaa osoitin for tai malloc? 1130 00:50:51,351 --> 00:50:52,350 SPEAKER 1: Kyllä, tarkalleen. 1131 00:50:52,350 --> 00:50:54,599 Joten kysymys oli, mitä me tarkoitamme kurissa null? 1132 00:50:54,599 --> 00:50:57,880 Haluamme to-- milloin kutsumme malloc ja olemme palanneet osoitin, 1133 00:50:57,880 --> 00:51:01,110 haluamme sanoa, on osoitin yhtä null? 1134 00:51:01,110 --> 00:51:02,610 Niin kirjaimellisesti PTR. 1135 00:51:02,610 --> 00:51:05,620 On PTR yhtä null. 1136 00:51:05,620 --> 00:51:06,958 Kyllä. 1137 00:51:06,958 --> 00:51:08,832 Yleisö: Niin, olin kiltti ja ihmettelevät, jos 1138 00:51:08,832 --> 00:51:14,013 alustaa osoittimen malloc, ei sen osoittamaan alkuun malloc? 1139 00:51:14,013 --> 00:51:15,097 Koska jos se array-- 1140 00:51:15,097 --> 00:51:16,554 SPEAKER 1: Se on hyvä kysymys. 1141 00:51:16,554 --> 00:51:19,200 Joo, jos soitat malloc, osoitin että it-- sanokaamme, 1142 00:51:19,200 --> 00:51:21,700 joten tässä me jakaa 10 tavua muistia. 1143 00:51:21,700 --> 00:51:23,830 Joten, olen pahoillani, tarpeeksi tilaa 10 kokonaislukuja, 1144 00:51:23,830 --> 00:51:28,220 aiomme saada osoitteen että ensimmäinen pala muistia. 1145 00:51:28,220 --> 00:51:29,880 Se on hyvä kysymys. 1146 00:51:29,880 --> 00:51:30,481 Joo. 1147 00:51:30,481 --> 00:51:34,810 >> Yleisö: Allokoimalla 10 laajaa kokonaislukuja, 1148 00:51:34,810 --> 00:51:38,177 voisitteko itse käyttää sitä osoittimen like-- lähes 1149 00:51:38,177 --> 00:51:39,372 kuin joukko kokonaislukuja? 1150 00:51:39,372 --> 00:51:41,830 SPEAKER 1: Joo, niin voitte käyttää sitä joukko kokonaislukuja? 1151 00:51:41,830 --> 00:51:45,970 Joo, juuri tämä on mitä Pulak vain osoitimme on-- pari liukuu sitten, 1152 00:51:45,970 --> 00:51:48,680 jossa sanomme, OK, tämä on oikeastaan ​​vain sellainen of-- me 1153 00:51:48,680 --> 00:51:50,805 voi ajatella sitä joukko 10 kokonaislukuja. 1154 00:51:50,805 --> 00:51:52,222 Se vain sattuu olemaan kasaan. 1155 00:51:52,222 --> 00:51:54,971 Yleisö: Mutta et voisi käyttää se hakasulku merkintätapa? 1156 00:51:54,971 --> 00:51:58,220 SPEAKER 1: Olet itse voi käyttää se hakasulje merkintää, joo. 1157 00:51:58,220 --> 00:52:00,221 Voit käsitellä niitä samalla. 1158 00:52:00,221 --> 00:52:00,720 Kyllä. 1159 00:52:00,720 --> 00:52:02,420 >> Yleisö: Miksi Pointer koskaan olla tyhjä? 1160 00:52:02,420 --> 00:52:04,170 >> SPEAKER 1: Miksi Pointer koskaan olla tyhjä? 1161 00:52:04,170 --> 00:52:06,570 Jos käytät kaikki ylös muistin kasaan. 1162 00:52:06,570 --> 00:52:09,141 Jos ohjelma on syövät, syövät, syövät muistia, 1163 00:52:09,141 --> 00:52:11,890 ja ei ole mitään vasemmalle, sitten malloc tulee say-- jos sanot, 1164 00:52:11,890 --> 00:52:14,760 Haluan 100 enemmän tavua, se tulee sanoa, minulla ei ole 100 tavua. 1165 00:52:14,760 --> 00:52:15,740 Tässä null. 1166 00:52:15,740 --> 00:52:18,780 Tämä tarkoittaa, olen epäonnistunut. 1167 00:52:18,780 --> 00:52:20,516 Kyllä. 1168 00:52:20,516 --> 00:52:22,830 >> Yleisö: Siinä tapauksessa, null ole mitään, eikö? 1169 00:52:22,830 --> 00:52:24,110 >> SPEAKER 1: Kyllä, että tapaus, null ole mitään. 1170 00:52:24,110 --> 00:52:24,943 Sinulla ei ole osoitetta. 1171 00:52:24,943 --> 00:52:28,065 Ei ole muistia. 1172 00:52:28,065 --> 00:52:31,500 Hyvä, liikkuvat. 1173 00:52:31,500 --> 00:52:34,976 OK, Puhutaanpa todella nopeasti noin puskurin ylivuoto. 1174 00:52:34,976 --> 00:52:38,210 Kun me saatamme kohdata puskurin ylivuoto? 1175 00:52:38,210 --> 00:52:42,980 Sanotaan meillä a-- me jakaa kimpale muistia, 1176 00:52:42,980 --> 00:52:44,720 ja aiomme kirjoittaa merkkijono. 1177 00:52:44,720 --> 00:52:47,240 Ja aiomme sanoa, OK, aion jakaa 1178 00:52:47,240 --> 00:52:49,320 tarpeeksi tilaa kuusi merkkiä. 1179 00:52:49,320 --> 00:52:51,680 Ja aion kysyä käyttäjä panoksensa. 1180 00:52:51,680 --> 00:52:54,470 Ja käyttäjä syöttää, esimerkiksi, hei. 1181 00:52:54,470 --> 00:52:56,430 Ja joka sopii täydellisesti hieno koska meillä on 1182 00:52:56,430 --> 00:53:00,790 tilaa kaikille merkkiä Hei, ja null päättyy merkki. 1183 00:53:00,790 --> 00:53:02,840 Paljon tilaa, ei ole ongelma. 1184 00:53:02,840 --> 00:53:08,010 >> Mutta mitä jos annamme mahdollisuuden sillä paha käyttäjä voi käyttää meidän ohjelma, 1185 00:53:08,010 --> 00:53:13,152 ja he kirjoita ole kuusi merkkiä, tai ei viisi merkkiä, mutta miljoona. 1186 00:53:13,152 --> 00:53:15,860 Ne pitävät kirjoittamalla, ja kirjoittamalla, ja kirjoittamalla, mitä tulee tapahtumaan? 1187 00:53:15,860 --> 00:53:18,220 No me vain antaa tietokone enough-- tai pahoillani, 1188 00:53:18,220 --> 00:53:23,350 me vain antoi tämän merkkijono tilaa 5 merkkiä. 1189 00:53:23,350 --> 00:53:28,300 Joten, aiomme saada jotain Tämän, jossa paha henkilö on 1190 00:53:28,300 --> 00:53:31,750 kirjoittamalla tulo voi korvata puskurin koko, 1191 00:53:31,750 --> 00:53:35,922 ja voi mennä todella ohi määrä että se on alun perin myönnetty. 1192 00:53:35,922 --> 00:53:38,380 Ja sitten, mitä voit tehdä, todella paha mitä voit tehdä, 1193 00:53:38,380 --> 00:53:40,260 on korvata palautusosoite. 1194 00:53:40,260 --> 00:53:42,010 Mikä tarkoittaa periaatteessa sitä voit eräänlainen ottaa 1195 00:53:42,010 --> 00:53:45,110 valvonta käyttäytymistä ohjelman. 1196 00:53:45,110 --> 00:53:47,880 Niin hyvin korkealla tasolla puskurin ylivuoto on kun 1197 00:53:47,880 --> 00:53:49,960 voit jakaa jonkin verran muistia. 1198 00:53:49,960 --> 00:53:53,060 Ja sitten sinä-- tätä, koska olet ottaen käyttäjä syöttää tai jotain 1199 00:53:53,060 --> 00:53:57,190 kuten that-- ylität rajat mitä olet perin myönnetty 1200 00:53:57,190 --> 00:53:59,955 ja aloittaa Messing ohjelma. 1201 00:53:59,955 --> 00:54:00,455 Kyllä? 1202 00:54:00,455 --> 00:54:03,220 >> Yleisö: Miksi ei, että vain palata segmentointi vika? 1203 00:54:03,220 --> 00:54:05,594 >> SPEAKER 1: Miksi ei, että palata segmentointi vika? 1204 00:54:05,594 --> 00:54:06,570 Se voisi. 1205 00:54:06,570 --> 00:54:10,030 Joskus kääntäjä tai aikana joku runtime 1206 00:54:10,030 --> 00:54:11,430 on todella menossa tarkistaa, että. 1207 00:54:11,430 --> 00:54:13,890 Jos tiettyjä asioita tapahtuu, ja tämä on tavallaan alemman tason, 1208 00:54:13,890 --> 00:54:15,610 sinun täytyy tietää. 1209 00:54:15,610 --> 00:54:18,820 Mutta jos et suunnitella Näiden järjestelmien oikein, 1210 00:54:18,820 --> 00:54:21,170 niin sinulla on mahdollisuus ja ei kiinni sitä ja vain 1211 00:54:21,170 --> 00:54:24,844 jolloin tietokone take-- pahalle hallita tietokonettasi. 1212 00:54:24,844 --> 00:54:25,344 Joo. 1213 00:54:25,344 --> 00:54:26,260 >> Yleisö: [äänetön]? 1214 00:54:26,260 --> 00:54:28,934 1215 00:54:28,934 --> 00:54:29,600 SPEAKER 1: Toki. 1216 00:54:29,600 --> 00:54:33,800 Voi, kun sanon puskuri, minä vain tarkoitan muistin määrää, että olet varattu. 1217 00:54:33,800 --> 00:54:39,090 Joten tässä minä sanoin, OH, olemme myönnetty kuusi char-- tarpeeksi tilaa kuusi merkkiä. 1218 00:54:39,090 --> 00:54:42,880 Ja minä vain soittaa, että minun puskuri jossa voisin kirjoittaa tietoa. 1219 00:54:42,880 --> 00:54:44,390 Joo. 1220 00:54:44,390 --> 00:54:46,791 Muita kysymyksiä tästä? 1221 00:54:46,791 --> 00:54:47,290 Joo. 1222 00:54:47,290 --> 00:54:49,150 >> Yleisö: Miten se pysäytetään? 1223 00:54:49,150 --> 00:54:50,274 Miten lopettaa sen? 1224 00:54:50,274 --> 00:54:51,440 SPEAKER 1: Awesome kysymys. 1225 00:54:51,440 --> 00:54:52,240 Miten lopettaa sen? 1226 00:54:52,240 --> 00:54:54,110 Miten voit estää puskurin ylivuodon? 1227 00:54:54,110 --> 00:54:59,160 No yksi tapa tehdä se on jotain GetString, jossa jatkuvasti lisätä 1228 00:54:59,160 --> 00:55:03,200 muistin määrää myönnämme jos käyttäjä syöttää paljon tekstiä. 1229 00:55:03,200 --> 00:55:07,570 Toinen asia on, jos vain haluavat kuusi merkkiä, tehdä nopeasti tarkistaa. 1230 00:55:07,570 --> 00:55:11,220 Sano vain syöttää kuusi merkkiä. 1231 00:55:11,220 --> 00:55:12,444 Joo. 1232 00:55:12,444 --> 00:55:14,360 Joten sanoa olit työskentelevät on-- aiomme 1233 00:55:14,360 --> 00:55:16,985 mennä web tavaraa hieman myöhemmin course-- mutta katsotaanpa 1234 00:55:16,985 --> 00:55:21,422 sanoa olet työskennellyt lomakkeella, olisit vain raja kuinka paljon voisi luovutettava. 1235 00:55:21,422 --> 00:55:22,378 Joo. 1236 00:55:22,378 --> 00:55:24,768 >> Yleisö: GetString vetää muisti pino, eikö? 1237 00:55:24,768 --> 00:55:25,444 Vain selventää? 1238 00:55:25,444 --> 00:55:26,485 SPEAKER 1: Vielä kerran? 1239 00:55:26,485 --> 00:55:28,400 Yleisö: Onko GetString ottaa muisti pinosta? 1240 00:55:28,400 --> 00:55:31,210 SPEAKER 1: Uskon Getm-- get int vie muisti kasaan 1241 00:55:31,210 --> 00:55:32,911 koska se vaatii alloc. 1242 00:55:32,911 --> 00:55:33,452 Yleisö: Oh. 1243 00:55:33,452 --> 00:55:33,951 OK. 1244 00:55:33,951 --> 00:55:35,750 SPEAKER 1: Joo, malloc ja realloc. 1245 00:55:35,750 --> 00:55:37,120 Muita kysymyksiä? 1246 00:55:37,120 --> 00:55:37,803 Joo. 1247 00:55:37,803 --> 00:55:40,650 >> Yleisö: So määrittelemällä koko puskuroinnin, 1248 00:55:40,650 --> 00:55:42,733 voit estää joku että voimme pistää koodi 1249 00:55:42,733 --> 00:55:45,700 että voi liukua ohi [kuultavissa]. 1250 00:55:45,700 --> 00:55:48,130 >> SPEAKER 1: Niin, määrittelemällä puskurin koko, 1251 00:55:48,130 --> 00:55:50,760 olet sanonut, OK tässä miten paljon muistia voimme käyttää. 1252 00:55:50,760 --> 00:55:55,550 Jos avulla käyttäjä voi kirjoittaa sen yli, sitten aiot törmätä ongelmiin. 1253 00:55:55,550 --> 00:55:57,930 Käydä järkeen. 1254 00:55:57,930 --> 00:55:59,370 Mahtava. 1255 00:55:59,370 --> 00:56:00,640 Siirrytään pitkin. 1256 00:56:00,640 --> 00:56:02,320 Selvä. 1257 00:56:02,320 --> 00:56:06,652 Puhuminen virheitä, tässä on joitakin yhteisiä virheilmoituksia 1258 00:56:06,652 --> 00:56:09,860 että ehkä saapunut kun olit koodaus, työskentelevät ongelman sarjaa. 1259 00:56:09,860 --> 00:56:12,320 Hyvin mahdollista, että yksi nämä näkyy päälle tietokilpailu 1260 00:56:12,320 --> 00:56:15,090 jos viime vuosina on viitteitä. 1261 00:56:15,090 --> 00:56:17,580 Joten, vastaukset ovat eräänlainen tänne taululle. 1262 00:56:17,580 --> 00:56:19,510 Mutta voit huutaa lisää. 1263 00:56:19,510 --> 00:56:21,280 >> Miksi voisi segmentointi vika tapahtuu? 1264 00:56:21,280 --> 00:56:24,279 Miksi saattaa saat segmentointi vika kun olet suorittaa ohjelma? 1265 00:56:24,279 --> 00:56:26,760 1266 00:56:26,760 --> 00:56:28,230 >> Yleisö: [äänetön]. 1267 00:56:28,230 --> 00:56:29,500 >> SPEAKER 1: Hyvä. 1268 00:56:29,500 --> 00:56:32,820 Joo, jos yritämme pääsy muisti, joka ei ole antanut meille. 1269 00:56:32,820 --> 00:56:34,610 Jos me dereference nollaosoittimen. 1270 00:56:34,610 --> 00:56:38,610 Esimerkiksi, jos me kutsumme malloc, ja unohda tarkistaa, jos se on nolla, 1271 00:56:38,610 --> 00:56:42,250 ja me vain kokeilla sitä, tietokoneen aio antaa meille segmentointi vika. 1272 00:56:42,250 --> 00:56:42,750 Hyvä. 1273 00:56:42,750 --> 00:56:46,680 Entä implisiittinen ilmoitus toimii? 1274 00:56:46,680 --> 00:56:48,589 Mitä se tarkoittaa? 1275 00:56:48,589 --> 00:56:51,380 Yleisö: Yrität käyttää toiminto että et ole määrittänyt. 1276 00:56:51,380 --> 00:56:52,130 SPEAKER 1: Hyvä. 1277 00:56:52,130 --> 00:56:54,504 Yrität käyttää toimintoa että et ole määrittänyt. 1278 00:56:54,504 --> 00:56:56,000 Jotta voisi olla yksi kaksi asiaa. 1279 00:56:56,000 --> 00:56:59,320 Ehkä se oli kuin esimerkki Camille osoitimme aiemmin. 1280 00:56:59,320 --> 00:57:02,330 Ja sinulla on päätehtävä joka vaatii jotain kutsutaan kuutio. 1281 00:57:02,330 --> 00:57:04,371 Ja sanokaamme unohdit kirjoittaa tämän prototyyppi. 1282 00:57:04,371 --> 00:57:07,540 Unohdit sanoa, hei tietokone, Minulla on tämä toiminto nimeltään kuutio. 1283 00:57:07,540 --> 00:57:09,380 Näet sen myöhemmin. 1284 00:57:09,380 --> 00:57:12,440 Sanotaan unohdit kirjoittaa prototyyppi, saatat saada tämän virheen. 1285 00:57:12,440 --> 00:57:14,820 Toinen asia on, sanokaamme yritit käyttää printf, 1286 00:57:14,820 --> 00:57:16,880 ja unohdin sisällyttää standardin kirjasto, 1287 00:57:16,880 --> 00:57:20,240 sitten se tulee sanoa implisiittinen ilmoitus toiminto. 1288 00:57:20,240 --> 00:57:22,800 Ja viimeisenä, mutta ei vähäisimpänä, pimeän tunniste. 1289 00:57:22,800 --> 00:57:23,300 Joo. 1290 00:57:23,300 --> 00:57:24,841 >> Yleisö: Sinulla ongelma soveltamisala. 1291 00:57:24,841 --> 00:57:28,728 Kuten ehkä yrität soittaa paikallinen muuttuja, joka on 1292 00:57:28,728 --> 00:57:30,884 eri eräänlainen alueen. 1293 00:57:30,884 --> 00:57:33,550 SPEAKER 1: Suuri, joten jos sinulla on muuttuja, joka ei ole laajuudeltaan, 1294 00:57:33,550 --> 00:57:36,890 ja yrität käyttää sitä, olet menossa saada pulassa. 1295 00:57:36,890 --> 00:57:40,960 Ja vain yleisemmin, sanokaamme yrität käyttää X, alati sanoen int 1296 00:57:40,960 --> 00:57:45,140 X vastaa 5, niin olet menossa joutua vaikeuksiin. 1297 00:57:45,140 --> 00:57:47,640 Anteeksi, kysymyksiä tästä? 1298 00:57:47,640 --> 00:57:49,330 Mahtava, chugging varrella. 1299 00:57:49,330 --> 00:57:55,692 >> OK, rekursio, miksi might-- katsotaanpa see-- Menetin sch-- oh tässä sitä mennään, 1300 00:57:55,692 --> 00:57:57,400 Varmista vain, että olemme suunnilleen aikataulussa. 1301 00:57:57,400 --> 00:57:59,060 Hyvä, viileä. 1302 00:57:59,060 --> 00:58:03,150 OK, rekursio, yleinen ajatus of rekursio, rekursiivinen funktio 1303 00:58:03,150 --> 00:58:05,380 on toiminto, joka kutsuu itseään. 1304 00:58:05,380 --> 00:58:08,170 OK, joten se mitä minä tarkoittaa ohjelman käsite 1305 00:58:08,170 --> 00:58:11,130 jolloin toiminto kutsuu itseään. 1306 00:58:11,130 --> 00:58:16,210 Mikä olisi some-- mitä hyvä syy käyttää rekursion? 1307 00:58:16,210 --> 00:58:17,550 Kun se voisi olla hyödyllistä? 1308 00:58:17,550 --> 00:58:20,926 Tai whats ohjelma, joka todella omiaan rekursio? 1309 00:58:20,926 --> 00:58:22,330 >> Yleisö: Binary haku. 1310 00:58:22,330 --> 00:58:25,500 >> SPEAKER 1: Binary haku omiaan rekursio, 1311 00:58:25,500 --> 00:58:29,060 koska sinulla on tämä ongelma, että te voi hajottaa pienemmiksi paloiksi, 1312 00:58:29,060 --> 00:58:32,330 ja jatkuvasti suorittaa samaa algoritmia sitä. 1313 00:58:32,330 --> 00:58:37,790 Tämä johtaa monissa tapauksissa enemmän tyylikäs koodi, joka on tarkempi. 1314 00:58:37,790 --> 00:58:40,500 Me vain olemme esimerkki binary haku. 1315 00:58:40,500 --> 00:58:43,100 Toinen esimerkki on yhdistää lajitella. 1316 00:58:43,100 --> 00:58:45,920 Joskus, kun ajattelee algoritmi, kuten kertoma, 1317 00:58:45,920 --> 00:58:47,410 se vain tuntuu rekursiivinen, eikö? 1318 00:58:47,410 --> 00:58:52,440 Koska tiedämme, että kertoman 5 on factorial 4 kertaa 5. 1319 00:58:52,440 --> 00:58:56,080 Ja niin kun asetat ongelma että tapa, se vain tuntuu rekursiivinen. 1320 00:58:56,080 --> 00:58:58,530 Jotta olisi loistava tapa kirjoittaa se. 1321 00:58:58,530 --> 00:58:59,425 Kysymyksiä? 1322 00:58:59,425 --> 00:59:00,395 Kyllä. 1323 00:59:00,395 --> 00:59:01,850 >> Yleisö: Mikä perustapaus? 1324 00:59:01,850 --> 00:59:02,770 >> SPEAKER 1: Voi mitä perustapaus? 1325 00:59:02,770 --> 00:59:04,680 Sanoin, älä unohda sisällyttää perustapaus. 1326 00:59:04,680 --> 00:59:07,690 Sanotaan olivat kirjallisesti kertoma toiminnon, 1327 00:59:07,690 --> 00:59:09,620 ja teemme kertoma 5. 1328 00:59:09,620 --> 00:59:12,352 Ja me tiedämme kertoma 5 on 5 kertaa kertoma 4, 1329 00:59:12,352 --> 00:59:13,310 blaa, blaa, blaa, blaa. 1330 00:59:13,310 --> 00:59:14,360 Kuinka me tiedämme, milloin lopettaa? 1331 00:59:14,360 --> 00:59:16,276 Mistä tiedämme, että me oikeastaan ​​numero? 1332 00:59:16,276 --> 00:59:20,180 Koska jos me pidetään kutsuvan kertoma, emme koskaan saa vastausta, eikö? 1333 00:59:20,180 --> 00:59:24,470 Joten kun me tiedämme, miten pysähtyä esimerkiksi kertoma. 1334 00:59:24,470 --> 00:59:25,460 Kuka tahansa, joo. 1335 00:59:25,460 --> 00:59:27,764 >> Yleisö: Kun 1 kertoma on 1. 1336 00:59:27,764 --> 00:59:28,430 SPEAKER 1: Hyvä. 1337 00:59:28,430 --> 00:59:29,530 Joten me tiedämme. 1338 00:59:29,530 --> 00:59:33,400 Voimme itsestään selvänä, että 1 kertoma on 1. 1339 00:59:33,400 --> 00:59:36,570 Joten jos saamme siihen pisteeseen, jossa me soitat kertoma 1, 1340 00:59:36,570 --> 00:59:38,050 vain mennä eteenpäin ja palata 1. 1341 00:59:38,050 --> 00:59:39,180 Ja se on teidän perustapaus. 1342 00:59:39,180 --> 00:59:45,040 Koska tiedämme, kun olemme osuma että, ja me aina osuu, että me never-- 1343 00:59:45,040 --> 00:59:48,800 emme vain jatka ikuisesti. 1344 00:59:48,800 --> 00:59:50,700 Muita kysymyksiä rekursio? 1345 00:59:50,700 --> 00:59:51,630 Kyllä. 1346 00:59:51,630 --> 00:59:54,420 >> Yleisö: Joten kun palaat 1, se vain automaattisesti 1347 00:59:54,420 --> 00:59:56,290 lopettaa ohjelman, eikö? 1348 00:59:56,290 --> 00:59:59,390 >> SPEAKER 1: Joo niin kun soittaa paluu 1, if-- sanokaamme, 1349 00:59:59,390 --> 01:00:04,480 sanokaamme kertoma 2 puhelujen kertoma 1, kertoma 1 1350 01:00:04,480 --> 01:00:06,120 vain käsi takaisin 1. 1351 01:00:06,120 --> 01:00:12,790 Ja nyt kertoma 2 sanoo OK, 2 kertaa 1 on 2, ja palata että vastaus. 1352 01:00:12,790 --> 01:00:14,260 Kyllä. 1353 01:00:14,260 --> 01:00:16,710 >> Yleisö: Onko meillä huolehtia noin soveltamisalaa recursion 1354 01:00:16,710 --> 01:00:20,150 kun mennä algoritmi? 1355 01:00:20,150 --> 01:00:21,880 >> SPEAKER 1: Ah, kyllä. 1356 01:00:21,880 --> 01:00:25,060 Kyllä, sinun tarvitse huolehtia laajuus yhteydessä rekursion. 1357 01:00:25,060 --> 01:00:29,820 Joten vain määrittämiä että ajon toiminto 1358 01:00:29,820 --> 01:00:32,170 tulevat olemaan hyödyllinen. 1359 01:00:32,170 --> 01:00:33,792 Joo hyvä kysymys. 1360 01:00:33,792 --> 01:00:35,250 Selvä, nyt pitää liikkuvat pitkin. 1361 01:00:35,250 --> 01:00:37,320 Koska meillä on paljon materiaali päästä läpi. 1362 01:00:37,320 --> 01:00:41,080 Mutta kuten sanoin, rohkeasti osuma virka, tai meille jälkikäteen. 1363 01:00:41,080 --> 01:00:42,850 >> Tämä on vain todella nopeasti liukumäki. 1364 01:00:42,850 --> 01:00:45,150 Opimme paljon hakuja ja lajittelee. 1365 01:00:45,150 --> 01:00:47,400 Ole hyvä, kiltti, kiltti, nämä osat ovat verkossa, 1366 01:00:47,400 --> 01:00:51,240 Uskon klo cs50.net/quizzes. 1367 01:00:51,240 --> 01:00:53,762 Joten mene tätä kaavio ja laita se oma mielipiteesi levyt, 1368 01:00:53,762 --> 01:00:55,470 koska siellä on kysymys tästä. 1369 01:00:55,470 --> 01:00:56,682 Älkää ymmärtäkö väärin. 1370 01:00:56,682 --> 01:00:58,390 Vain hyvin nopeasti, mitä tämä kaavio tarkoittaa, 1371 01:00:58,390 --> 01:01:04,370 on se puhuu Big O, jonka tiedämme olla yläraja algoritmien 1372 01:01:04,370 --> 01:01:05,150 käyntiaika. 1373 01:01:05,150 --> 01:01:08,080 Ja meillä on Omega, joka on olemaan alaraja 1374 01:01:08,080 --> 01:01:10,290 ja algoritmien runtime. 1375 01:01:10,290 --> 01:01:10,840 OK? 1376 01:01:10,840 --> 01:01:12,480 >> Yleisö: [äänetön]. 1377 01:01:12,480 --> 01:01:12,800 >> SPEAKER 1: Joo, mitä viimeinen asia? 1378 01:01:12,800 --> 01:01:13,380 Mikä theta? 1379 01:01:13,380 --> 01:01:16,850 Se on, jos we-- olemme vain menossa välitä tässä luokassa tapauksessa 1380 01:01:16,850 --> 01:01:19,381 jossa meidän ylärajaa ja meidän alaraja ovat samat. 1381 01:01:19,381 --> 01:01:22,005 Joo, se on ainoa kerta, kun se on menossa keksiä tässä luokassa. 1382 01:01:22,005 --> 01:01:23,320 OK, aion jatkaa. 1383 01:01:23,320 --> 01:01:26,490 Jos et ole ottanut kuvan, Lupaan nämä on verkossa. 1384 01:01:26,490 --> 01:01:28,220 >> OK, mahtava, tietueet. 1385 01:01:28,220 --> 01:01:29,810 Miksi ehkä haluamme structs? 1386 01:01:29,810 --> 01:01:34,110 Mikä hyödyllinen syy saatamme haluta structs. 1387 01:01:34,110 --> 01:01:36,277 Joku huutaa jotain. 1388 01:01:36,277 --> 01:01:38,110 No katsokaamme Esimerkiksi taululle. 1389 01:01:38,110 --> 01:01:41,090 Sanotaan olemme tekemisissä kaikki nämä opiskelijat. 1390 01:01:41,090 --> 01:01:44,900 Jos Teemme ohjelmaa CS50, on kuin 800 henkilöä. 1391 01:01:44,900 --> 01:01:47,890 Meidän on write-- aiomme täytyy käsitellä paljon tietoa 1392 01:01:47,890 --> 01:01:49,020 opiskelijoista. 1393 01:01:49,020 --> 01:01:50,990 Olisi mukavaa, jos voisimme sellainen ryhmä 1394 01:01:50,990 --> 01:01:54,460 this-- kaikki tiedot, jotka liittyy oppilaan 1395 01:01:54,460 --> 01:01:56,027 yhdeksi tietotyyppi. 1396 01:01:56,027 --> 01:01:58,360 Mutta me tiedämme, ei ole tietoja tyyppi kutsutaan, opiskelija, eikö? 1397 01:01:58,360 --> 01:02:01,890 Meillä on kokonaisluku, meillä kellua, meillä merkkijono, tai char tähti, 1398 01:02:01,890 --> 01:02:03,920 mutta meillä ei ole, opiskelija. 1399 01:02:03,920 --> 01:02:08,680 >> Joten voimme tehdä on oikeastaan ​​eräänlainen määritellä oma rakenne, kutsuvat sitä opiskelija, 1400 01:02:08,680 --> 01:02:12,440 ja voimme liittää joitakin eri alojen kanssa struct. 1401 01:02:12,440 --> 01:02:14,410 Joten tässä tapauksessa, katsotaanpa että meillä on opiskelija. 1402 01:02:14,410 --> 01:02:17,350 Ja asioita, joita välitämme Tietoja ovat opiskelijakortti numero 1403 01:02:17,350 --> 01:02:19,500 ja opiskelijan nimi. 1404 01:02:19,500 --> 01:02:24,175 Ja nyt voimme liittää tämän ID ja tämä nimi tietyllä opiskelija. 1405 01:02:24,175 --> 01:02:25,300 Katsotaanpa esimerkkejä. 1406 01:02:25,300 --> 01:02:28,860 1407 01:02:28,860 --> 01:02:33,490 >> OK, joten tässä sanon, OK, katsotaanpa että haluamme tehdä opiskelija. 1408 01:02:33,490 --> 01:02:35,050 Kutsun häntä opiskelija 1. 1409 01:02:35,050 --> 01:02:38,850 Ja hänen henkilötunnus, vuonna Tällöin voimme käyttää 1410 01:02:38,850 --> 01:02:45,200 tekemällä ihan opiskelijan nimi piste kentän haluamme päästä. 1411 01:02:45,200 --> 01:02:49,110 Joten tämä tulee vain olla opiskelija 1 piste tunnus, ja me aseta se on 1. 1412 01:02:49,110 --> 01:02:52,300 Koska muistaa, sanoimme, että Tunnus tulee olemaan kokonaisluku. 1413 01:02:52,300 --> 01:02:56,540 Ja hyvin samalla tavalla, voimme sanoa, tämä opiskelijan nimi tulee olemaan Davin, 1414 01:02:56,540 --> 01:02:57,760 esimerkiksi. 1415 01:02:57,760 --> 01:03:01,420 Joten voimme vain käyttää alalla of struct tällä piste. 1416 01:03:01,420 --> 01:03:03,098 Kysymyksiä että? 1417 01:03:03,098 --> 01:03:03,598 Joo. 1418 01:03:03,598 --> 01:03:05,582 >> Yleisö: Onko mitään keinoa suojaamaan muuttujia? 1419 01:03:05,582 --> 01:03:08,560 Onko mitään keinoa suojella muuttujiin olemasta ulkoisesti näytetty? 1420 01:03:08,560 --> 01:03:10,726 >> SPEAKER 1: Onko kuitenkin suojata muuttujat 1421 01:03:10,726 --> 01:03:12,680 olemasta ulkoisesti näytetty? 1422 01:03:12,680 --> 01:03:13,750 Ei soveltamisalaan CS50. 1423 01:03:13,750 --> 01:03:16,680 1424 01:03:16,680 --> 01:03:17,977 Muita kysymyksiä? 1425 01:03:17,977 --> 01:03:18,476 Joo. 1426 01:03:18,476 --> 01:03:18,942 >> Yleisö: Mikä on typedef struct? 1427 01:03:18,942 --> 01:03:20,192 Mitä jokaisen komponentin tarkoittaa? 1428 01:03:20,192 --> 01:03:22,937 1429 01:03:22,937 --> 01:03:24,520 SPEAKER 1: Ah, mikä on typedef struct? 1430 01:03:24,520 --> 01:03:26,240 Mitä jokainen komponentti tarkoittaa tämän kaveri? 1431 01:03:26,240 --> 01:03:26,850 >> Yleisö: Joo. 1432 01:03:26,850 --> 01:03:27,683 >> SPEAKER 1: OK, viileä. 1433 01:03:27,683 --> 01:03:31,200 Joten tämä sanoo, hei tietokone, I haluat luoda uuden rakenteen. 1434 01:03:31,200 --> 01:03:34,970 Ja aion määritellä määritelmä sitä, niin että voisin käyttää sitä 1435 01:03:34,970 --> 01:03:37,520 ikään kuin se olisi tyyppi koko minun ohjelma. 1436 01:03:37,520 --> 01:03:39,300 OK, joten haluan määritellä rakenne. 1437 01:03:39,300 --> 01:03:41,650 Ja olen nyt olemaan osaa käyttää sitä tyyppiä. 1438 01:03:41,650 --> 01:03:43,400 Ja sen nimi on opiskelija. 1439 01:03:43,400 --> 01:03:45,730 Ja tässä ovat sen aloilla. 1440 01:03:45,730 --> 01:03:48,130 >> Yleisö: Niin on, että typedef struct [äänetön]? 1441 01:03:48,130 --> 01:03:50,592 1442 01:03:50,592 --> 01:03:53,800 SPEAKER 1: Jos haluat pystyä käyttää struct koko ohjelma, 1443 01:03:53,800 --> 01:03:57,910 ja useimmissa tapauksissa CS50 me tehdä, meidän on sanottava tyyppi Def. 1444 01:03:57,910 --> 01:04:01,190 Ja jonka avulla se voi käyttää sitä samaa että käytämme kuten int tai kellua. 1445 01:04:01,190 --> 01:04:04,168 Tietokone aina tiedä, mitä se on. 1446 01:04:04,168 --> 01:04:04,668 Joo. 1447 01:04:04,668 --> 01:04:06,560 >> Yleisö: Voimmeko kirjoittaa tämä otsikossa tiedoston? 1448 01:04:06,560 --> 01:04:07,060 >> SPEAKER 1: Anteeksi. 1449 01:04:07,060 --> 01:04:08,600 Älä kirjoitamme tätä otsikkotiedosto? 1450 01:04:08,600 --> 01:04:11,410 Voisit kirjoittaa tämän yläosassa teidän ohjelma, yläosassa oman C-ohjelma. 1451 01:04:11,410 --> 01:04:13,010 Joo, se olisi kaikkein kohtuullinen paikka se. 1452 01:04:13,010 --> 01:04:13,509 Takaisin sinne. 1453 01:04:13,509 --> 01:04:15,704 Yleisö: sama kysymys, joten ennen tärkein? 1454 01:04:15,704 --> 01:04:18,870 SPEAKER 1: Oikea, tarvitset tämän olevan jostain, että jokainen voi käyttää sitä. 1455 01:04:18,870 --> 01:04:20,612 Joten ennen tärkein teidän tapauksessa, joo. 1456 01:04:20,612 --> 01:04:23,820 Yleisö: Onko eroa laskemisesta opiskelija päälle ja pohjassa? 1457 01:04:23,820 --> 01:04:25,810 SPEAKER 1: Ah, on olemassa ero laskemisesta opiskelija 1458 01:04:25,810 --> 01:04:26,840 päälle tai pohjassa? 1459 01:04:26,840 --> 01:04:29,650 Let-- paitsi että kysymys, ja kun pääsemme liittyvät luettelot, 1460 01:04:29,650 --> 01:04:31,020 näemme että, OK? 1461 01:04:31,020 --> 01:04:32,750 Niin pitää kiinni, että yhden sekunnin. 1462 01:04:32,750 --> 01:04:37,080 Viimeinen asia, jonka haluan mainita tässä, on sen sijaan, että rakenne, 1463 01:04:37,080 --> 01:04:41,180 meillä on osoitin rakenteen, voimme muuttaa merkintätapa 1464 01:04:41,180 --> 01:04:42,480 olla hieman mukavampaa. 1465 01:04:42,480 --> 01:04:45,810 >> Voimme sanoa, sanokaamme meillä Osoitin opiskelija eikä vain 1466 01:04:45,810 --> 01:04:47,040 opiskelija. 1467 01:04:47,040 --> 01:04:52,460 Jos haluamme saada kentän sijaan doing, hyvin mennä epäviittausongelman osoitin, 1468 01:04:52,460 --> 01:04:54,100 ja sitten käyttää kentän nimi. 1469 01:04:54,100 --> 01:04:57,310 Tämä merkintätapa näyttää hieman sotkuinen kanssa tähdittävät piste. 1470 01:04:57,310 --> 01:05:00,790 Täysin oikea, mutta jollaisia puhtaamman tapa tehdä se, 1471 01:05:00,790 --> 01:05:03,280 on vain sanoa osoitin nuoli nimi. 1472 01:05:03,280 --> 01:05:11,460 Ja että itse asiassa yhdistää dereferencing ja päästä yhdessä kaunis symboli. 1473 01:05:11,460 --> 01:05:12,470 Kysymyksiä että? 1474 01:05:12,470 --> 01:05:13,760 >> Yleisö: Vain sanoa, että vielä kerran. 1475 01:05:13,760 --> 01:05:14,480 >> SPEAKER 1: Sano että vielä kerran. 1476 01:05:14,480 --> 01:05:16,021 >> Yleisö: Mitä sanoit. 1477 01:05:16,021 --> 01:05:17,870 SPEAKER 1: Toki, täsmälleen mitä juuri sanoin. 1478 01:05:17,870 --> 01:05:21,580 Jos meillä on osoitin opiskelija pikemminkin kuin opiskelija itse, 1479 01:05:21,580 --> 01:05:25,410 me can-- yksi tapa, että voimme käyttää kenttä on dereference sitä, ja sitten 1480 01:05:25,410 --> 01:05:27,110 pääsy nimi. 1481 01:05:27,110 --> 01:05:29,040 Toinen, mukavampi tapa me voi tehdä sen, mikä on vain 1482 01:05:29,040 --> 01:05:33,550 hieman syntaktisen sokeria, on vain tehdä osoitin nuoli nimi. 1483 01:05:33,550 --> 01:05:38,190 Ja joka tulee yhdistää dereferencing ja päästä sisään. 1484 01:05:38,190 --> 01:05:40,400 Joo, aika siistiä. 1485 01:05:40,400 --> 01:05:41,260 Selvä. 1486 01:05:41,260 --> 01:05:44,390 >> Joten Puhutaanpa toinen kysymys. 1487 01:05:44,390 --> 01:05:46,520 Katsotaanpa hypätä solmuja, joka aiomme käyttää 1488 01:05:46,520 --> 01:05:49,120 linkitetään luetellaan vain toinen. 1489 01:05:49,120 --> 01:05:53,580 Joten tässä, huomaat että siellä on sana solmu sekä pohjassa, 1490 01:05:53,580 --> 01:05:55,160 ja päällä. 1491 01:05:55,160 --> 01:05:59,040 Ennen, kun olimme määritellään opiskelija, meillä oli vain opiskelija pohjassa. 1492 01:05:59,040 --> 01:06:00,470 Meillä ei ollut opiskelija päällä. 1493 01:06:00,470 --> 01:06:01,902 Jokainen tietää mahdollinen syy? 1494 01:06:01,902 --> 01:06:02,860 Mikä ero on? 1495 01:06:02,860 --> 01:06:03,360 Joo. 1496 01:06:03,360 --> 01:06:06,212 Yleisö: Eli käytät solmu on määritelmä solmun, 1497 01:06:06,212 --> 01:06:08,254 joten se on rekursiivinen juttu? 1498 01:06:08,254 --> 01:06:08,920 SPEAKER 1: Hyvä. 1499 01:06:08,920 --> 01:06:13,230 Joo, meidän meidän solmut on osoitin muihin solmuihin. 1500 01:06:13,230 --> 01:06:17,640 Joten koska käytämme tämän tyyppistä ennen kuin se on todella määritelty, 1501 01:06:17,640 --> 01:06:20,613 meidän täytyy laittaa sen yläosassa juuri niin se tietää, mitä se on. 1502 01:06:20,613 --> 01:06:22,446 Yleisö: Joten me vielä tarvitset sitä alareunassa? 1503 01:06:22,446 --> 01:06:23,338 SPEAKER 1: Kyllä. 1504 01:06:23,338 --> 01:06:24,754 Yleisö: Niin aina alareunassa. 1505 01:06:24,754 --> 01:06:26,090 SPEAKER 1: aina alareunassa. 1506 01:06:26,090 --> 01:06:29,410 Joten kaikki sinun tulee on se alareunassa. 1507 01:06:29,410 --> 01:06:30,720 Muita kysymyksiä? 1508 01:06:30,720 --> 01:06:33,511 Selvä, niin antaa todella puhua noin linkitettyjen listojen todella nopeasti. 1509 01:06:33,511 --> 01:06:36,510 Joten linkitettyjen listojen are-- käytämme niitä sen sijaan, että taulukot joissakin tapauksissa, 1510 01:06:36,510 --> 01:06:40,030 koska tiedämme, että paneelit ovat kiinteä pituus, kun taas linkitettyjen listojen 1511 01:06:40,030 --> 01:06:42,670 voimme kasvaa ja kutistua kuin haluamme. 1512 01:06:42,670 --> 01:06:45,790 Joten tämä on esimerkki siitä, mitä linkitetty lista voisi näyttää. 1513 01:06:45,790 --> 01:06:48,590 Mitä meidän täytyy nähdä on johtaja luettelon. 1514 01:06:48,590 --> 01:06:50,330 Joten jos luettelo alkaa. 1515 01:06:50,330 --> 01:06:53,010 Ja sitten hän solmu, kukin myöhempi solmu, on 1516 01:06:53,010 --> 01:06:55,880 vastuussa tietää jos seuraava solmu on. 1517 01:06:55,880 --> 01:07:00,950 Joten tässä tapauksessa, solmu, joka tallentaa 1 vastaa tietää missä 3. 1518 01:07:00,950 --> 01:07:04,540 Henkilö, joka tallentaa 3 vastuussa tietäen jossa 9 on. 1519 01:07:04,540 --> 01:07:06,230 Ja 9 ei ole kukaan muu osoittamaan. 1520 01:07:06,230 --> 01:07:08,750 Se on listan loppuun, niin se vain sanoo null. 1521 01:07:08,750 --> 01:07:09,250 OK? 1522 01:07:09,250 --> 01:07:10,530 >> Yleisö: Mitä järkeä tämän? 1523 01:07:10,530 --> 01:07:11,480 >> SPEAKER 1: Mitä järkeä tämän? 1524 01:07:11,480 --> 01:07:12,105 >> Yleisö: Joo. 1525 01:07:12,105 --> 01:07:15,390 SPEAKER 1: Koska, katsotaanpa sanoa, että meillä on joitakin tietoja. 1526 01:07:15,390 --> 01:07:18,480 Ja emme tiedä tarkalleen, kuinka paljon tietoa haluamme etuajassa. 1527 01:07:18,480 --> 01:07:22,479 Joten array, sanokaamme jossa haluat laskea ihmiset ensimmäisessä rivissä. 1528 01:07:22,479 --> 01:07:24,020 Mahdollisuudet ovat se ei tule muuttaa. 1529 01:07:24,020 --> 01:07:28,120 Voimme vain sanoa, OK, minä haluavat taulukon koko kuusi. 1530 01:07:28,120 --> 01:07:30,120 Mutta jos haluamme jotain että tulee muuttumaan. 1531 01:07:30,120 --> 01:07:32,900 >> Esimerkiksi, sanokaamme Yritin seurata opiskelijoiden 1532 01:07:32,900 --> 01:07:35,330 kun he tulevat huoneeseen Tarkastelun istuntoa. 1533 01:07:35,330 --> 01:07:38,420 Minulla ei ole aavistustakaan, kuinka moni teistä ihmiset ovat menossa näy. 1534 01:07:38,420 --> 01:07:43,094 Joten en ehkä tietorakenne että voin laajentaa ja kutistua. 1535 01:07:43,094 --> 01:07:45,510 Koska ehkä joku jättää, ehkä joku tulee. 1536 01:07:45,510 --> 01:07:48,386 Ja niin milloin tahansa, me voi lisätä tai poistaa solmuja. 1537 01:07:48,386 --> 01:07:49,771 Cool, suuri kysymys. 1538 01:07:49,771 --> 01:07:50,270 Joo. 1539 01:07:50,270 --> 01:07:52,311 >> Yleisö: Jos et voi käyttää jotain GetString 1540 01:07:52,311 --> 01:07:55,750 joka pitää kerroit saat enemmän tietoja kuin tarvitset sitä, miksi tarvitset tätä liian? 1541 01:07:55,750 --> 01:07:57,625 >> SPEAKER 1: Miksi Käytätkö linkitetty lista, kun 1542 01:07:57,625 --> 01:07:59,440 voit käyttää jotain GetString? 1543 01:07:59,440 --> 01:08:01,640 Se on hyvä kysymys. 1544 01:08:01,640 --> 01:08:04,240 Muista, että Get-- yksi downfalls GetString 1545 01:08:04,240 --> 01:08:06,750 on, että emme tehneet hyvin hyvää työtä vapauttaa että muisti, 1546 01:08:06,750 --> 01:08:09,320 ja otimme käyttöön joukko muisti vuotaa ohjelmasi? 1547 01:08:09,320 --> 01:08:15,037 Voisit ottaa sen staattisesti kokoinen joukko ja ne kasvavat sitä. 1548 01:08:15,037 --> 01:08:16,870 Mutta sinun täytyy löytää uusia paikkoja muistiin. 1549 01:08:16,870 --> 01:08:18,359 Se olisi vain paljon yläpuolella. 1550 01:08:18,359 --> 01:08:21,050 >> Yksi mukavia asioita liittyy luettelot toisin kuin paneelit, on taulukot 1551 01:08:21,050 --> 01:08:22,830 ovat kaikki samassa paikassa muistiin. 1552 01:08:22,830 --> 01:08:25,540 Sen täytyy olla jatkuva paloina muisti. 1553 01:08:25,540 --> 01:08:29,920 Kun taas linkitettyjen listojen, 2 ja 3 täysin eri paikoissa. 1554 01:08:29,920 --> 01:08:31,880 Kuten 2 on täällä, ja 3 on täällä. 1555 01:08:31,880 --> 01:08:34,421 Ja niin kauan kuin he ovat osoitin toisiinsa, se on hieno. 1556 01:08:34,421 --> 01:08:35,830 Me tiedämme, että voimme löytää ne. 1557 01:08:35,830 --> 01:08:37,084 Kysymys tuolla? 1558 01:08:37,084 --> 01:08:40,563 >> Yleisö: GetString on funktio vuonna CS50 kirjastossa, eikö? 1559 01:08:40,563 --> 01:08:42,060 Se ei ole olemassa todellisia ohjelmia. 1560 01:08:42,060 --> 01:08:42,851 >> SPEAKER 1: Oikein. 1561 01:08:42,851 --> 01:08:44,130 Oikea, se on toinen asia. 1562 01:08:44,130 --> 01:08:47,210 GetString ei ole olemassa ulkopuolella yhteydessä CS50. 1563 01:08:47,210 --> 01:08:47,710 Joo. 1564 01:08:47,710 --> 01:08:54,556 >> Yleisö: Joten ei se, että kaksi voisi olla todella kaukana toisistaan, 1565 01:08:54,556 --> 01:08:59,859 tekee sen vaikutus tehokkuus päästä elementit listalla? 1566 01:08:59,859 --> 01:09:01,359 SPEAKER 1: Tämä on suuri kysymys. 1567 01:09:01,359 --> 01:09:04,278 Kysymys oli, tekee sen vaikutus tehokkuus päästä 1568 01:09:04,278 --> 01:09:05,819 nämä eri tekijät luettelossa. 1569 01:09:05,819 --> 01:09:06,930 Oikeastaan ​​kyllä. 1570 01:09:06,930 --> 01:09:09,569 Koska tiedämme if-- katsotaanpa että haluamme päästä 1571 01:09:09,569 --> 01:09:14,520 toinen elementti array, tiedämme voimme vain tehdä array kannatin 1, oikea. 1572 01:09:14,520 --> 01:09:16,630 Se on aina menossa olla samassa paikassa. 1573 01:09:16,630 --> 01:09:20,720 Mutta jos haluamme päästä, että 3, emme voi vain sanoa, mene saada että 3. 1574 01:09:20,720 --> 01:09:24,009 Meidän on sanottava, OK, aloita listan alkuun, 1575 01:09:24,009 --> 01:09:26,050 ja nyt meillä on todellakin kulkea kunnes 1576 01:09:26,050 --> 01:09:28,149 löytää numero olemme kiinnostuneita. 1577 01:09:28,149 --> 01:09:30,790 >> Joten tässä tapauksessa sanomme, OK tämä on ensimmäinen numero. 1578 01:09:30,790 --> 01:09:32,207 Niin olennaisesti, että indeksi 0. 1579 01:09:32,207 --> 01:09:33,790 Nyt meidän on löydettävä toinen numero. 1580 01:09:33,790 --> 01:09:34,740 Se on indeksi 1. 1581 01:09:34,740 --> 01:09:39,180 Niin että on todella menossa to-- vain pääsy, vie N aikaa. 1582 01:09:39,180 --> 01:09:42,027 Viileä, iso vanha N. Joo. 1583 01:09:42,027 --> 01:09:43,903 >> Yleisö: Mitä kukin lista? 1584 01:09:43,903 --> 01:09:45,401 Ovatko he kukin paneelit, vai mitä? 1585 01:09:45,401 --> 01:09:46,859 SPEAKER 1: Se on hyvä kysymys. 1586 01:09:46,859 --> 01:09:48,950 Mitkä ovat kukin rakenteet, jotka olen tehnyt? 1587 01:09:48,950 --> 01:09:51,649 Ne ovat solmuja. 1588 01:09:51,649 --> 01:09:53,720 Joten jokainen näistä pienistä rakenne on kaksi osaa. 1589 01:09:53,720 --> 01:09:55,264 Se on kokonaisluku, joka pitää. 1590 01:09:55,264 --> 01:09:57,180 Se todelliset tiedot että se pitää kiinni. 1591 01:09:57,180 --> 01:09:58,770 Se on sellainen hyödyllinen osa. 1592 01:09:58,770 --> 01:10:00,820 Ja, tämä on mitä tekee linkitetty lista, 1593 01:10:00,820 --> 01:10:03,690 se on osoitin seuraavaan solmuun. 1594 01:10:03,690 --> 01:10:05,260 Mahtava kysymys. 1595 01:10:05,260 --> 01:10:11,320 Selvä, joten katsotaanpa hyvin nopeasti tarkastella joitakin esimerkkejä siitä, mitä 1596 01:10:11,320 --> 01:10:12,820 voisimme tehdä linkitettyjen listojen. 1597 01:10:12,820 --> 01:10:16,920 >> Joten erittäin nopea esimerkki on, Oletetaan haluamme tehdä haun. 1598 01:10:16,920 --> 01:10:20,240 Millaisia ​​hakutoiminto teemme linkitettyjen listojen? 1599 01:10:20,240 --> 01:10:21,150 >> Yleisö: Binary. 1600 01:10:21,150 --> 01:10:21,900 >> SPEAKER 1: Binary. 1601 01:10:21,900 --> 01:10:23,408 Miksi emme voi käyttää binary haku? 1602 01:10:23,408 --> 01:10:25,181 >> Yleisö: [äänetön]. 1603 01:10:25,181 --> 01:10:28,180 SPEAKER 1: Oikea, koska binary haku, jouduimme vedota siihen 1604 01:10:28,180 --> 01:10:31,300 että voisimme vain hypätä array milloin tahansa. 1605 01:10:31,300 --> 01:10:33,420 Voisimme vain sanoa, go keskelle elementtiä. 1606 01:10:33,420 --> 01:10:35,550 Kanssa täällä, kuten sanoimme hieman aikaisemmin, 1607 01:10:35,550 --> 01:10:37,270 emme voi vain hypätä keskimmäinen elementti. 1608 01:10:37,270 --> 01:10:38,978 Jotta löytää mitään elementti, me oikeastaan 1609 01:10:38,978 --> 01:10:40,780 täytyy kävellä läpi koko lista. 1610 01:10:40,780 --> 01:10:43,910 >> Joten jos halusimme tehdä haun, parasta mitä voimme tehdä on vain lineaarinen haku. 1611 01:10:43,910 --> 01:10:45,910 Aloitamme kärjessä, me check-- Sanotaan olemme 1612 01:10:45,910 --> 01:10:47,790 etsivät 9-- aloitamme kärjessä. 1613 01:10:47,790 --> 01:10:49,200 Sanomme, on tämä 9? 1614 01:10:49,200 --> 01:10:49,710 Ei. 1615 01:10:49,710 --> 01:10:50,430 Onko tämä 9? 1616 01:10:50,430 --> 01:10:50,930 Ei. 1617 01:10:50,930 --> 01:10:51,620 Onko tämä 9? 1618 01:10:51,620 --> 01:10:53,730 Kyllä, löysimme sen. 1619 01:10:53,730 --> 01:10:56,350 OK, siinä kaikki, että. 1620 01:10:56,350 --> 01:10:57,940 Tässä hieman pseudo-koodin. 1621 01:10:57,940 --> 01:11:01,420 Aion jättää tämän sinulle kaverit vaihtuvuus yli oman, 1622 01:11:01,420 --> 01:11:04,370 vain koska olemme käynnissä hieman vähän aikaa. 1623 01:11:04,370 --> 01:11:05,610 >> Lets puhua paikoilleen. 1624 01:11:05,610 --> 01:11:08,644 Näimme todella cool demo tämä luento jossa sanoimme, 1625 01:11:08,644 --> 01:11:11,560 OK, meillä on tämä linkitetty lista, jossa jokainen on osoittaa toisiinsa, 1626 01:11:11,560 --> 01:11:13,400 ja joku tulee lavalle. 1627 01:11:13,400 --> 01:11:17,050 Miten lisäämme että henkilö meidän linkitetty lista? 1628 01:11:17,050 --> 01:11:20,150 No, väärä tapa tehdä, joka on mielestäni mitä näimme ensin, 1629 01:11:20,150 --> 01:11:22,740 on, kun henkilö edessä automaattisesti 1630 01:11:22,740 --> 01:11:25,270 osoitti uuden henkilön. 1631 01:11:25,270 --> 01:11:29,057 Ja sitten me tavallaan hylätty jälkipuoliskolla luettelon, eikö? 1632 01:11:29,057 --> 01:11:31,390 Koska emme tiedä missä se on muistissa enää. 1633 01:11:31,390 --> 01:11:34,750 Joten olla erittäin varovainen järjestystä, jossa lisäämme asioita. 1634 01:11:34,750 --> 01:11:37,860 >> Joten tässä, sanokaamme haluamme siirrä 1 edessä listallamme. 1635 01:11:37,860 --> 01:11:42,190 Ensinnäkin, meillä on 1 piste Toinen element-- tai elementti 1636 01:11:42,190 --> 01:11:44,170 joka sisältää 1. 1637 01:11:44,170 --> 01:11:47,210 Niin, teemme sen, juuri niin emme ole menossa menettää jälkipuoliskolla. 1638 01:11:47,210 --> 01:11:51,020 Ja nyt, meillä voi olla pää kohta 1. 1639 01:11:51,020 --> 01:11:52,930 Joten jälleen, tämä on vain kuten Super korkealla tasolla. 1640 01:11:52,930 --> 01:11:55,290 Näin me lisättäisiin solmu. 1641 01:11:55,290 --> 01:11:57,337 Meillä on paljon pseudo-koodi here-- pahoillani, 1642 01:11:57,337 --> 01:11:59,170 En tiedä, miksi olen kutsuen sitä pseudo-koodi. 1643 01:11:59,170 --> 01:12:00,350 Se on todellinen koodi. 1644 01:12:00,350 --> 01:12:02,570 Voit mennä tarkistaa sitä myöhemmin. 1645 01:12:02,570 --> 01:12:04,870 >> Selvä, nyt hyvin quickly-- kysyttävää 1646 01:12:04,870 --> 01:12:07,120 Satunnainen luetteloihin ennen kuin Siirrä päälle pari muita tietoja 1647 01:12:07,120 --> 01:12:08,450 rakenteet meidän viimeiset 10 minuuttia. 1648 01:12:08,450 --> 01:12:10,340 >> Yleisö: Pitääkö meidän nyt miten kirjoittaa se testi? 1649 01:12:10,340 --> 01:12:11,040 >> SPEAKER 1: Tarvitsemmeko tietää miten to-- 1650 01:12:11,040 --> 01:12:12,030 >> Yleisö: Kirjoita se testi. 1651 01:12:12,030 --> 01:12:14,071 >> SPEAKER 1: Me tarvitsemme to-- sinun pitäisi olla valmis 1652 01:12:14,071 --> 01:12:18,870 kirjoittaa, lisätä, poistaa, ja etsi linkitettyjen listojen testi. 1653 01:12:18,870 --> 01:12:21,480 Tämä on jotain, että me voisi odottaa sinun tekevän. 1654 01:12:21,480 --> 01:12:22,750 Vain mennä sen yli. 1655 01:12:22,750 --> 01:12:26,460 Jos sinulla on kysyttävää koodi, ampua TF sähköpostia, 1656 01:12:26,460 --> 01:12:27,750 tullut virka. 1657 01:12:27,750 --> 01:12:30,041 Vielä paljon aikaa opiskelemaan, ei hätää. 1658 01:12:30,041 --> 01:12:32,290 Selvä, kaikki muut kysyttävää liittyvät luettelot? 1659 01:12:32,290 --> 01:12:32,986 Kyllä. 1660 01:12:32,986 --> 01:12:37,360 >> Yleisö: Joten jos et käytä osoitin mennä toinen oikealla 1661 01:12:37,360 --> 01:12:41,308 ennen kuin käytät osoitin toinen vasemmalla, joka on 1662 01:12:41,308 --> 01:12:43,211 vastaa poistaminen kaiken, eikö? 1663 01:12:43,211 --> 01:12:43,877 SPEAKER 1: Joo. 1664 01:12:43,877 --> 01:12:44,820 Yleisö: [äänetön]. 1665 01:12:44,820 --> 01:12:47,570 SPEAKER 1: Oikea, koska emme voi saada se, se on oikeastaan ​​vielä pahempaa. 1666 01:12:47,570 --> 01:12:50,690 Koska me emme vain tiedä missä se on, emme voi enää käyttää sitä, 1667 01:12:50,690 --> 01:12:53,580 mutta we've-- emme ole vapauttaa että muisti enää. 1668 01:12:53,580 --> 01:12:58,570 Joten se on vain hengailu eikä olla hyödyllinen, koska emme voi löytää sitä. 1669 01:12:58,570 --> 01:12:59,580 Joo, viileä kysymys. 1670 01:12:59,580 --> 01:13:01,280 >> Selvä, puhutaanpa pinot. 1671 01:13:01,280 --> 01:13:03,230 Näimme pinot hyvin nopeasti. 1672 01:13:03,230 --> 01:13:06,280 Ne ovat ensimmäinen viimeinen ulos tietorakenteita. 1673 01:13:06,280 --> 01:13:10,664 Joten ajattelemme pinot Annenberg tarjottimia jossa pino asioita päälle. 1674 01:13:10,664 --> 01:13:12,580 Ja jos aiot hakemaan tarjotin, olet 1675 01:13:12,580 --> 01:13:15,870 aina menossa ottamaan yksi alkuun, joka on kaikkein recently-- 1676 01:13:15,870 --> 01:13:18,840 joka on mitä meidän eniten äskettäin laittaa päälle pinon. 1677 01:13:18,840 --> 01:13:22,680 Voit siis sellaista ajatella tällaista visuaalinen kun olet ajatellut pinot. 1678 01:13:22,680 --> 01:13:26,010 Ja sitten, olemme piipahti jotain päältä pinon. 1679 01:13:26,010 --> 01:13:29,850 >> Jos me are-- oh, ja sanat, jotka me käyttää, kun puhumme nämä tiedot 1680 01:13:29,850 --> 01:13:32,680 rakenteet on yleensä, jos laittaa jotain pinoon, 1681 01:13:32,680 --> 01:13:34,550 sanomme me työntämällä sitä pinoon. 1682 01:13:34,550 --> 01:13:38,450 Ja jos otamme jotain pinosta, sanomme me popping pinosta. 1683 01:13:38,450 --> 01:13:41,470 Jos aiot toteuttaa stack-- joka Olen ehdottomasti 1684 01:13:41,470 --> 01:13:44,840 Suosittelen yrität out-- olet menossa haluavat seurata, 1685 01:13:44,840 --> 01:13:46,669 sanokaamme käytät array. 1686 01:13:46,669 --> 01:13:48,960 Tiedän luento puhuimme Tietoja käytetään sekä paneelit 1687 01:13:48,960 --> 01:13:51,120 tai linkitettyjen listojen toteuttaa pino. 1688 01:13:51,120 --> 01:13:53,490 Jos käytät array, sinun täytyy keep-- 1689 01:13:53,490 --> 01:13:56,750 tekosyy me-- meidän täytyy seurata koon ja kapasiteetin. 1690 01:13:56,750 --> 01:14:00,820 Joten enimmäismäärä että pino mahtuu. 1691 01:14:00,820 --> 01:14:03,240 Kysymyksiä pinot? 1692 01:14:03,240 --> 01:14:05,657 >> Yleisö: Mitä eroa välillä koko ja kapasiteetti? 1693 01:14:05,657 --> 01:14:08,573 SPEAKER 1: ero koko ja kapasiteetti, mahtava kysymys. 1694 01:14:08,573 --> 01:14:10,330 Joten sanokaamme olemme käyttämällä erilaisia, ja me 1695 01:14:10,330 --> 01:14:13,340 käyttää riittävästi tilaa 10 kokonaislukuja. 1696 01:14:13,340 --> 01:14:15,050 Ja alamme täyttää että jopa. 1697 01:14:15,050 --> 01:14:17,330 Ja me push asioita, ja me pop asiat pois. 1698 01:14:17,330 --> 01:14:21,060 Haluamme seurata enintään numero voimme pitää, että kapasiteetti. 1699 01:14:21,060 --> 01:14:24,790 Ja haluamme seurata nykyinen määrä meillä on, se on koko. 1700 01:14:24,790 --> 01:14:26,530 Hyvä kysymys. 1701 01:14:26,530 --> 01:14:28,720 Mitään muuta pinot? 1702 01:14:28,720 --> 01:14:31,260 Hyvä on, jutellaan noin yllätys, jonoja. 1703 01:14:31,260 --> 01:14:37,034 >> Toisin pinot, jotka ovat ensin viimeksi ulos, nämä ovat first in, first out. 1704 01:14:37,034 --> 01:14:38,450 Joten tämä on like-- ajatella linjaa. 1705 01:14:38,450 --> 01:14:41,530 Ajattele riviin Apple Myymälä saada mitä tuote. 1706 01:14:41,530 --> 01:14:44,540 Ja ensimmäinen henkilö linjassa pitäisi on ensimmäinen henkilö, joka on auttanut. 1707 01:14:44,540 --> 01:14:48,270 Niin ensimmäinen asia, joka työnnetään on tämä ensimmäinen asia, joka piipahti. 1708 01:14:48,270 --> 01:14:49,460 Viileä? 1709 01:14:49,460 --> 01:14:52,890 Erittäin similarly-- oh, sanoja käytämme sijasta push ja pop-- 1710 01:14:52,890 --> 01:14:55,060 joka Käytin, Olen sorry-- on sanomme, 1711 01:14:55,060 --> 01:14:58,170 jos me laitamme jotain osaksi jono, sanomme enqueued sitä. 1712 01:14:58,170 --> 01:15:00,795 Jos otamme jotain jono, sanomme dequeued. 1713 01:15:00,795 --> 01:15:01,950 Se. 1714 01:15:01,950 --> 01:15:05,454 I voidaan lausumalla ne väärässä, mutta saat ajatus. 1715 01:15:05,454 --> 01:15:08,370 Ja sitten taas, kuten pinoja, jos me täytäntöönpanossa kuten array, 1716 01:15:08,370 --> 01:15:12,350 meidän täytyy seurata koko, kapasiteetti, ja pää. 1717 01:15:12,350 --> 01:15:13,570 Mitä tarkoitan pää? 1718 01:15:13,570 --> 01:15:15,278 Miksi meidän täytyy pitää kirjaa pään? 1719 01:15:15,278 --> 01:15:18,549 1720 01:15:18,549 --> 01:15:21,685 >> Yleisö: Koska se on silloin, alkuun listasi on. 1721 01:15:21,685 --> 01:15:24,810 SPEAKER 1: Joo, pohjimmiltaan pää on jossa alussa meidän jono on. 1722 01:15:24,810 --> 01:15:29,460 Koska tiedämme, toisin kuin pinoja, which-- Aion yrittää vastata tähän way-- 1723 01:15:29,460 --> 01:15:33,570 me tiedämme, että se on aina menossa kutistua tällä tavalla ja kasvaa tällä tavalla. 1724 01:15:33,570 --> 01:15:37,840 Jonot, ihmiset tulevat päälle loppuun ja jätä alusta alkaen, 1725 01:15:37,840 --> 01:15:40,620 joten meidän täytyy seurata missä alku on. 1726 01:15:40,620 --> 01:15:43,540 Sitä minä tarkoitan meidän seurata missä pää on. 1727 01:15:43,540 --> 01:15:45,190 Viileä? 1728 01:15:45,190 --> 01:15:46,440 Selvä. 1729 01:15:46,440 --> 01:15:49,250 Kahdeksan minuuttia, pari Lisää aiheita, voimme tehdä sen. 1730 01:15:49,250 --> 01:15:51,240 >> Selvä, tiiviste. 1731 01:15:51,240 --> 01:15:53,095 Puhuimme hyvin lyhyesti noin hash taulukoita. 1732 01:15:53,095 --> 01:15:55,720 Varten tietokilpailu, sinun tarvitsee vain ymmärtää ne korkealla tasolla. 1733 01:15:55,720 --> 01:15:58,330 Perusajatuksena on sinulla on nämä tiedot. 1734 01:15:58,330 --> 01:16:02,570 Ja haluamme käyttää sitä ajoissa, joka on nopeammin kuin jotain liittyy 1735 01:16:02,570 --> 01:16:03,070 lista. 1736 01:16:03,070 --> 01:16:05,290 Koska me sanoi, jos olisimme hakuja linkitetty lista, 1737 01:16:05,290 --> 01:16:06,248 että voisi N aikaa. 1738 01:16:06,248 --> 01:16:08,810 Jopa pääsy voi kestää N kertaa linkitetty lista. 1739 01:16:08,810 --> 01:16:12,930 Hash taulukot antavat meille niin, että voimme nopeammin saada asioita, ja lisää 1740 01:16:12,930 --> 01:16:16,970 nopeasti etsiä asioita, ilman joilla rajoitukset array 1741 01:16:16,970 --> 01:16:19,030 jossa on kiinteä koko. 1742 01:16:19,030 --> 01:16:23,950 >> Joten ajattelemme tietorakenne jossa, jossa laitamme sen tietorakenteen 1743 01:16:23,950 --> 01:16:26,620 on riippuvainen tästä maaginen tiivistefunktio. 1744 01:16:26,620 --> 01:16:30,630 Joten tässä tapauksessa, maaginen hash toiminto on vain ottaa sana, 1745 01:16:30,630 --> 01:16:34,027 tarkkailun mitä ensimmäinen kirjain on, ja sitten vain lajittelu aakkosjärjestyksessä. 1746 01:16:34,027 --> 01:16:36,110 Joten me oleellisesti laittaa ne eri kauhat. 1747 01:16:36,110 --> 01:16:39,510 Kun näemme banaani, sanomme, OK, nyt laittaa B ämpäri. 1748 01:16:39,510 --> 01:16:41,820 Kun näemme Apple, katsotaanpa laita se ämpäri. 1749 01:16:41,820 --> 01:16:44,744 Jos näimme aprikoosi, katsotaanpa laittaa ämpäri. 1750 01:16:44,744 --> 01:16:45,600 OK? 1751 01:16:45,600 --> 01:16:51,090 >> Joten kai olisin etsimässä for-- I eivät tiedä, mitä toinen hedelmiä? 1752 01:16:51,090 --> 01:16:52,920 Oletetaan Etsin oranssi. 1753 01:16:52,920 --> 01:16:55,340 Jos minun pitäisi näyttää? 1754 01:16:55,340 --> 01:16:56,420 Ö ämpäri. 1755 01:16:56,420 --> 01:17:01,450 Joo, on olemassa vain yksi paikka että oranssi voisi olla, OK? 1756 01:17:01,450 --> 01:17:05,370 Sanoin aiemmin, mitä tapahtuu if-- hyvin aiemmin sanoin, 1757 01:17:05,370 --> 01:17:10,030 sanokaamme laitamme aprikoosi in-- mutta minä todella käsitellä että, Voi ei, 1758 01:17:10,030 --> 01:17:14,990 jos olisin laittaa marja, se on menossa ristiriidassa banaani. 1759 01:17:14,990 --> 01:17:20,160 Jos laitamme sen, jos on olemassa jo jotain meidän taulukossa? 1760 01:17:20,160 --> 01:17:22,760 No, meillä on pari vaihtoehtoa. 1761 01:17:22,760 --> 01:17:26,160 >> Vaihtoehto numero yksi on lineaarinen hyvää, mikä tarkoittaa periaatteessa sitä, 1762 01:17:26,160 --> 01:17:28,690 sanokaamme Haluan yrittää laittaa marja, ja näen, Voi ei, 1763 01:17:28,690 --> 01:17:31,170 banaanit jo siellä, Olen vain sanoa kunnossa, anna 1764 01:17:31,170 --> 01:17:33,810 minua etsimään seuraavan saatavilla paikalla. 1765 01:17:33,810 --> 01:17:36,744 Joten kävelen, minä sanon, OH, siellä mitään D ämpäri. 1766 01:17:36,744 --> 01:17:39,410 En todellakaan voi ajatella mitään hedelmiä jotka alkavat kirjaimella D, 1767 01:17:39,410 --> 01:17:41,620 joten olen juuri menossa laittaa marja siellä. 1768 01:17:41,620 --> 01:17:42,650 Durian. 1769 01:17:42,650 --> 01:17:44,590 OK, joten koska ei ole mitään siellä vielä, 1770 01:17:44,590 --> 01:17:47,020 Voisin yhtä hyvin käyttää sitä paikalla. 1771 01:17:47,020 --> 01:17:48,805 Mikä haitta, että? 1772 01:17:48,805 --> 01:17:49,300 >> Yleisö: Se on epäkunnossa. 1773 01:17:49,300 --> 01:17:50,008 >> SPEAKER 1: Anteeksi? 1774 01:17:50,008 --> 01:17:51,280 Yleisö: Se on epäkunnossa. 1775 01:17:51,280 --> 01:17:53,113 >> SPEAKER 1: Se on out-- oikea, saatamme päätyä 1776 01:17:53,113 --> 01:17:56,380 asioita, jotka eivät ole in-- tallennettu kauhat tavalla 1777 01:17:56,380 --> 01:17:57,790 että odotamme niiden olevan. 1778 01:17:57,790 --> 01:18:00,670 Joten jos me etsivät marjastus, ennen sanoimme, 1779 01:18:00,670 --> 01:18:02,000 oh voimme katsoa yhdessä ämpäri. 1780 01:18:02,000 --> 01:18:03,650 Se voisi olla vain yksi ämpäri. 1781 01:18:03,650 --> 01:18:07,380 Mutta nyt, todella, se voisi olla kaikissa kauhat, eikö? 1782 01:18:07,380 --> 01:18:10,400 >> OK, tässä on toinen vaihtoehto, erillinen chaining-- 1783 01:18:10,400 --> 01:18:16,630 joka on ajatus siitä, että olemme menossa käyttää hieman myöhemmin P asetettu 5. 1784 01:18:16,630 --> 01:18:19,340 Pikemminkin kuin vain yhden tilan kussakin ämpäri, 1785 01:18:19,340 --> 01:18:23,610 miksi emme ole kunkin ämpäri olla osoitin linkitetty lista? 1786 01:18:23,610 --> 01:18:28,570 Jos sanomme, OK, on ​​ämpäri kaikesta joka alkaa A. 1787 01:18:28,570 --> 01:18:31,990 Ja siellä on juuri menossa on linkitetty Luettelo hedelmät, jotka alkavat A. 1788 01:18:31,990 --> 01:18:36,240 Joten jos saamme uuden hedelmä, sanokaamme me get-- me avokado, meillä on omena, 1789 01:18:36,240 --> 01:18:39,530 Sanotaan saamme aprikoosi, kuinka voisimme laittaa luettelossa? 1790 01:18:39,530 --> 01:18:43,330 No olimme mennä koriin 0, ja haluamme vain aseta se meidän piti luettelossa, 1791 01:18:43,330 --> 01:18:45,320 helppoa kuin mikä. 1792 01:18:45,320 --> 01:18:47,160 >> Nyt minä pitää sanoa ämpäri. 1793 01:18:47,160 --> 01:18:49,470 Voisimme toteuttaa tämän useilla tavoilla. 1794 01:18:49,470 --> 01:18:52,040 Yksi tyypillinen tapa, että tämä Tällainen kuva viittaa, 1795 01:18:52,040 --> 01:18:55,580 on ehkä ottaa joukko osoittimia liittyvät luettelot. 1796 01:18:55,580 --> 01:18:58,174 Se on yksi tapa voimme toteuttaa hash table. 1797 01:18:58,174 --> 01:19:01,090 Yleisö: Olisiko tarvitset toisen luettelosta, koska banaani ja marja ovat poissa 1798 01:19:01,090 --> 01:19:01,591 tilauksen? 1799 01:19:01,591 --> 01:19:03,298 SPEAKER 1: Voisitko need-- ah, voisitteko 1800 01:19:03,298 --> 01:19:06,310 on toinen lista, koska banaani ja marja ovat epäkunnossa? 1801 01:19:06,310 --> 01:19:09,880 Tässä tapauksessa meidän hajautusfunktio, joka kertoo meille, mihin asiat 1802 01:19:09,880 --> 01:19:11,647 ei välitä toinen kirjain. 1803 01:19:11,647 --> 01:19:14,730 Se ei välitä alphabetizing, se vain välitä ensimmäinen kirjain. 1804 01:19:14,730 --> 01:19:15,672 Kysymys? 1805 01:19:15,672 --> 01:19:18,947 >> YLEISÖ: Mikä on määritelmä, joka toiminto, ja mitä se näyttää? 1806 01:19:18,947 --> 01:19:19,780 SPEAKER 1: Ah, hyvä. 1807 01:19:19,780 --> 01:19:22,450 OK, joten emme tarvitse huolehdi liikaa tämän tietovisan. 1808 01:19:22,450 --> 01:19:23,700 Joten en laita diat. 1809 01:19:23,700 --> 01:19:26,320 Aiomme ottaa käyttöön sen P: lle 5. 1810 01:19:26,320 --> 01:19:31,520 Mutta pohjimmiltaan, se sanoo, koska uusi elementti, jos minun pitäisi laittaa se? 1811 01:19:31,520 --> 01:19:35,450 Tai, sanokaamme Etsin elementti, jossa se voisi olla? 1812 01:19:35,450 --> 01:19:37,860 Joo, suuri kysymys. 1813 01:19:37,860 --> 01:19:40,870 >> OK, hyvin nopeasti, puita ja yrittää. 1814 01:19:40,870 --> 01:19:44,779 Joten puu on juuri minkäänlaista järjestäytyneen tietorakenne. 1815 01:19:44,779 --> 01:19:47,820 Ja aiomme nähdä paljon kuvia jotka tekevät tämän erittäin selväksi. 1816 01:19:47,820 --> 01:19:51,180 Ja trie, joka näimme luokassa, on hyvin erikoinen puu 1817 01:19:51,180 --> 01:19:53,440 että pohjimmiltaan toimii kuten monitasoinen tiiviste. 1818 01:19:53,440 --> 01:19:54,390 Se on super cool. 1819 01:19:54,390 --> 01:19:56,030 Aiomme nähdä sen vain sekunnin. 1820 01:19:56,030 --> 01:19:57,821 Selvä, joten katsotaanpa puhua puita ensin. 1821 01:19:57,821 --> 01:20:01,040 Joten tämä on todella tyypillinen esimerkki puu, jossa meillä on hierarkia. 1822 01:20:01,040 --> 01:20:03,220 Näet, että yksi on hyvin alkuun, eikö? 1823 01:20:03,220 --> 01:20:06,190 Ja voin sanoa alkuun koska siellä selvästi tilaus, koska me 1824 01:20:06,190 --> 01:20:08,260 nämä nuolet menossa alaspäin. 1825 01:20:08,260 --> 01:20:11,740 Niin että, asia huipulla, Pyydän, että juurisolmu. 1826 01:20:11,740 --> 01:20:13,080 Joten yksi on juuri solmu. 1827 01:20:13,080 --> 01:20:17,330 Ja asiat alareunassa, joilla ei ole mitään irtoamassa, 1828 01:20:17,330 --> 01:20:18,783 Sanon nämä ovat lehtisolmut. 1829 01:20:18,783 --> 01:20:22,730 Joten 8,9 5, 6, 7, OK. 1830 01:20:22,730 --> 01:20:27,740 Ja yleensä terminologia me voi sanoa on, 1 on 3: n vanhempi. 1831 01:20:27,740 --> 01:20:30,740 Joten se on asia, joka tulee tason yläpuolella, ja pisteitä sen. 1832 01:20:30,740 --> 01:20:32,710 Ja 3 on 1 lapsi. 1833 01:20:32,710 --> 01:20:34,505 Se on asia, joka 1 pistettä. 1834 01:20:34,505 --> 01:20:35,005 Kysymys? 1835 01:20:35,005 --> 01:20:36,414 >> Yleisö: Voitko palata Edellinen dia, kiitos? 1836 01:20:36,414 --> 01:20:37,388 >> SPEAKER 1: Voinko mennä takaisin edelliseen diaan? 1837 01:20:37,388 --> 01:20:37,888 Kaikin mokomin. 1838 01:20:37,888 --> 01:20:40,640 1839 01:20:40,640 --> 01:20:41,390 Kysymyksiä tähän? 1840 01:20:41,390 --> 01:20:42,764 Tai et vain halunnut katsoa sitä? 1841 01:20:42,764 --> 01:20:44,650 Yleisö: En vain saada läpi. 1842 01:20:44,650 --> 01:20:47,100 >> SPEAKER 1: OK, viileä, joo. 1843 01:20:47,100 --> 01:20:49,846 Nämä ovat kaikki verkossa, joten ei pelätä jokaista sanaa. 1844 01:20:49,846 --> 01:20:51,720 Ja edun mukaista aika, aion mennä. 1845 01:20:51,720 --> 01:20:53,270 Onko se ok? 1846 01:20:53,270 --> 01:20:53,790 Mahtava. 1847 01:20:53,790 --> 01:20:55,720 OK, viileä. 1848 01:20:55,720 --> 01:20:57,790 Joten puhua hyvin erityinen kind-- 1849 01:20:57,790 --> 01:20:59,710 joten meillä on näiden yleisten rakenne puiden, 1850 01:20:59,710 --> 01:21:02,876 joka on vain jotain, joka antaa meille sellaista listalla asioita hierarkkisesti. 1851 01:21:02,876 --> 01:21:06,000 1852 01:21:06,000 --> 01:21:11,110 >> Binary puut ovat asioita, joissa jokainen solmu on korkeintaan kaksi lasta. 1853 01:21:11,110 --> 01:21:11,690 OK? 1854 01:21:11,690 --> 01:21:14,560 Ja minä sanoin, OK, niin että näyttää sopimaan tähän kuvaukseen. 1855 01:21:14,560 --> 01:21:16,830 Sanoin solmu, ei binäärihakupuu. 1856 01:21:16,830 --> 01:21:19,720 Mikä binäärihakupuu? 1857 01:21:19,720 --> 01:21:20,440 Se on järjestetty. 1858 01:21:20,440 --> 01:21:22,890 Niin tiedät, että binäärihakupuu, 1859 01:21:22,890 --> 01:21:26,580 kaiken tree-- kaiken solmuihin vasemmalla on pienempi, 1860 01:21:26,580 --> 01:21:28,830 ja kaiken solmut oikeus on suurempi. 1861 01:21:28,830 --> 01:21:30,620 Joten tämä ei ole binäärihakupuu. 1862 01:21:30,620 --> 01:21:32,770 Tämä on vain binääripuu. 1863 01:21:32,770 --> 01:21:35,910 Joten meillä on suuri luokka puita, hieman pienempi kategoria 1864 01:21:35,910 --> 01:21:40,106 binary puita, haku a-- binäärihakupuu puita. 1865 01:21:40,106 --> 01:21:41,540 Viileä? 1866 01:21:41,540 --> 01:21:44,410 Selvä. 1867 01:21:44,410 --> 01:21:47,380 >> Ja nyt, useimmat hauskaa kaikki, meillä on yrittää. 1868 01:21:47,380 --> 01:21:49,500 Te näki tätä kuvaa luento? 1869 01:21:49,500 --> 01:21:51,790 Joo, se pitäisi näyttää erittäin tuttuja. 1870 01:21:51,790 --> 01:21:54,252 Katsotaanpa, miten voisimme todella toteuttaa tätä. 1871 01:21:54,252 --> 01:21:56,210 Tai oikeastaan, katsotaanpa, ei että vaikka keksiä? 1872 01:21:56,210 --> 01:21:56,731 Ehei. 1873 01:21:56,731 --> 01:21:59,480 Okei, emme edes tarvitse murehdi alhainen kamaa. 1874 01:21:59,480 --> 01:22:02,320 Meillä on runsaasti aikaa puuttua niin P asetettu 5. 1875 01:22:02,320 --> 01:22:05,780 Mutta nyt, vain hyvin korkea, me tietää, että tämä on mitä se näyttää. 1876 01:22:05,780 --> 01:22:08,530 Me kuvaili sitä eräänlainen monitasoinen tiiviste 1877 01:22:08,530 --> 01:22:12,264 where-- mitä tässä kaupassa? 1878 01:22:12,264 --> 01:22:14,430 Tämä tallentaa nimet tutkijat että voimme todella 1879 01:22:14,430 --> 01:22:20,690 etsiä mukaan juuri sellainen seuraavista eri hash taulukoita alas, okei? 1880 01:22:20,690 --> 01:22:24,730 >> Ja tarkoituksena on, teoriassa, ne tarjoavat jatkuvaa aikaa etsiä. 1881 01:22:24,730 --> 01:22:29,630 Joten jos haluan tarkistaa, että esimerkiksi, kuka someone-- 1882 01:22:29,630 --> 01:22:33,410 että Mandel on tässä trie, voisin hyvin nopeasti 1883 01:22:33,410 --> 01:22:36,260 vuonna linear-- Olen pahoillani, vuonna vakio aika, selvittää 1884 01:22:36,260 --> 01:22:39,010 onko se on trie. 1885 01:22:39,010 --> 01:22:41,500 Mutta con, on tarkastella, miten suuri tämä on. 1886 01:22:41,500 --> 01:22:44,120 Emme edes varastointia että paljon tietoa, ja se on valtava. 1887 01:22:44,120 --> 01:22:47,950 Joten yksi iso con on, että se käyttää suuren määrän muistia. 1888 01:22:47,950 --> 01:22:48,746 Kyllä. 1889 01:22:48,746 --> 01:22:50,610 >> Yleisö: Miksi se antaa vakio aikaa, tarkalleen? 1890 01:22:50,610 --> 01:22:51,376 >> SPEAKER 1: Vielä kerran? 1891 01:22:51,376 --> 01:22:53,360 >> Yleisö: Mikä intuitio miksi se tarjoaa jatkuvasti aikaa? 1892 01:22:53,360 --> 01:22:54,610 >> SPEAKER 1: Erinomainen kysymys. 1893 01:22:54,610 --> 01:22:56,030 Miksi se antaa jatkuvaa aika? 1894 01:22:56,030 --> 01:22:59,280 Joten mitä voimme tehdä on, katsotaanpa sanoa etsimme Mandel. 1895 01:22:59,280 --> 01:23:02,830 Tiedämme, että haluamme aloittaa ensimmäisen tason M. 1896 01:23:02,830 --> 01:23:06,890 Tiedämme haluamme seurata sen E. Joten se ottaa yksi askel, kaksi askelta, eikö? 1897 01:23:06,890 --> 01:23:10,710 Seuraamme sen N. Seuraamme sitä D. Seuraamme sen E. Seuraamme sen L. 1898 01:23:10,710 --> 01:23:15,100 Ja sitten seuraava asia tarkistamme says-- tämä delta sanoo Kyllä, se on 1899 01:23:15,100 --> 01:23:15,990 meidän pöytä. 1900 01:23:15,990 --> 01:23:16,880 Se on sana. 1901 01:23:16,880 --> 01:23:19,900 Tämä on kelvollinen merkintä meidän trie. 1902 01:23:19,900 --> 01:23:22,450 Joten sanot, OK, että kesti seitsemän vaihetta. 1903 01:23:22,450 --> 01:23:27,200 Mutta jos lisäsimme kuin lukemattomia enemmän tutkijat tämän tietorakenne, 1904 01:23:27,200 --> 01:23:29,470 meidän ei tarvitse tarkistaa lukemattomia enemmän asioita. 1905 01:23:29,470 --> 01:23:33,580 Olemme aina vain täytyy ottaa seitsemän vaihetta, pituus henkilön 1906 01:23:33,580 --> 01:23:35,260 nimi. 1907 01:23:35,260 --> 01:23:39,350 >> Joten, haluamme ajatella runtime kuten, kai 1908 01:23:39,350 --> 01:23:42,340 lisäämme koko meidän tietorakenne, kuinka paljon kauemmin 1909 01:23:42,340 --> 01:23:44,580 se aikoo ryhtyä? 1910 01:23:44,580 --> 01:23:47,372 Tässä tapauksessa, jos lisäämme nippu lisää tutkijoita, sillä ei ole väliä. 1911 01:23:47,372 --> 01:23:49,413 Se on edelleen vie saman verran aikaa. 1912 01:23:49,413 --> 01:23:50,350 Se on jatkuva aika. 1913 01:23:50,350 --> 01:23:50,850 Kyllä. 1914 01:23:50,850 --> 01:23:53,557 >> Yleisö: Mistä tiedät ei skannata yli muut numerot? 1915 01:23:53,557 --> 01:23:54,932 SPEAKER 1: Mistä tiedän, kuinka to-- 1916 01:23:54,932 --> 01:23:58,236 Yleisö: Kuten Mistä tiedät menet suoraan M E eikä M? 1917 01:23:58,236 --> 01:23:59,069 SPEAKER 1: Voi, varmasti. 1918 01:23:59,069 --> 01:24:01,620 Koska Tiesin etsivät sanan Mandel, 1919 01:24:01,620 --> 01:24:04,195 ja minä vain tiedän sen M-E. Joten that-- joo, mennä eteenpäin. 1920 01:24:04,195 --> 01:24:06,528 Yleisö: Eikö teillä katsomaan muut kirjaimet 1921 01:24:06,528 --> 01:24:07,870 muualla [äänetön]? 1922 01:24:07,870 --> 01:24:10,020 >> SPEAKER 1: Ah, ei minulla katsomaan the-- OK, suuri. 1923 01:24:10,020 --> 01:24:10,790 Tämä on suuri kysymys. 1924 01:24:10,790 --> 01:24:12,170 Se riippuu siitä, miten toteutamme sen. 1925 01:24:12,170 --> 01:24:15,350 Jos toteutamme sitä vain kuten sarjan paneelit 1926 01:24:15,350 --> 01:24:18,100 jos me tiedämme, että E on aina asennossa 0, 1927 01:24:18,100 --> 01:24:21,270 En tiedä, mitä numero indeksi on. 1928 01:24:21,270 --> 01:24:24,901 Joo, voimme vain tehdä vakio aika, älä, älä, älä, tee. 1929 01:24:24,901 --> 01:24:25,400 Viileä. 1930 01:24:25,400 --> 01:24:27,556 Kysymys tuolla? 1931 01:24:27,556 --> 01:24:30,927 >> Yleisö: on vakio aika sama asia kuin reaaliajassa? 1932 01:24:30,927 --> 01:24:33,260 SPEAKER 1: Onko vakio aika sama asia on reaaliaikainen? 1933 01:24:33,260 --> 01:24:34,799 En ole aivan varma reaaliajassa on. 1934 01:24:34,799 --> 01:24:36,965 Yleisö: Kuten aika kirjaimellisesti etenee toinen 1935 01:24:36,965 --> 01:24:40,150 sekunnilta sen sijaan, että riippumaton muuttuja. 1936 01:24:40,150 --> 01:24:42,960 >> SPEAKER 1: Joo, sinä voi ajatella niin. 1937 01:24:42,960 --> 01:24:46,240 Toisin sanoen, se ei ole riippuvainen koosta tietorakenteen. 1938 01:24:46,240 --> 01:24:48,310 Se on tapa ajatella sitä. 1939 01:24:48,310 --> 01:24:50,510 Muita kysymyksiä? 1940 01:24:50,510 --> 01:24:53,120 Ehkä ensimmäistä kertaa historia, lopetimme ajoissa. 1941 01:24:53,120 --> 01:24:57,080 Jos sinulla on kysyttävää, ota vapaasti tulla kysyä meiltä, ​​siirry osaan, 1942 01:24:57,080 --> 01:25:00,190 kerro TF, toimisto tuntia ovat 8:00 ja 8:30 1943 01:25:00,190 --> 01:25:03,985 klo 11.00 maanantaina ja tiistaina, niin se on hieman eri aikaan, 1944 01:25:03,985 --> 01:25:05,110 joten varmista, että Huomaa, että. 1945 01:25:05,110 --> 01:25:06,048 Joo. 1946 01:25:06,048 --> 01:25:08,673 >> Yleisö: Tarvitsemmeko tietää tavaraa kuten komentoriviargumentteja, 1947 01:25:08,673 --> 01:25:10,360 viiva ls, viiva riippumatta? 1948 01:25:10,360 --> 01:25:11,840 >> SPEAKER 1: Komentorivi argumentteja, ja Linux komennot, 1949 01:25:11,840 --> 01:25:13,010 Kyllä, sinun täytyy tietää ne. 1950 01:25:13,010 --> 01:25:18,234 Very-- se on kuin eräänlainen tason tavaraa kävimme 0 kohdassa, 1951 01:25:18,234 --> 01:25:19,400 sikäli kuin linux komennot mennä. 1952 01:25:19,400 --> 01:25:20,942 >> Yleisö: Ovatko tuntia Annenberg? 1953 01:25:20,942 --> 01:25:23,525 SPEAKER 1: Aukioloajat, en ole täysin varma, missä ne ovat. 1954 01:25:23,525 --> 01:25:25,980 Mutta voit tarkistaa verkkosivuilla, ja se kertoo. 1955 01:25:25,980 --> 01:25:27,499