1 00:00:00,000 --> 00:00:03,269 >> [TÓNLIST spila] 2 00:00:03,269 --> 00:00:05,391 3 00:00:05,391 --> 00:00:06,640 CAMILLE REKHSON: Hi, allir. 4 00:00:06,640 --> 00:00:10,120 Velkomin á CS50 quiz núll endurskoðun fundur. 5 00:00:10,120 --> 00:00:10,770 Ég er Camille. 6 00:00:10,770 --> 00:00:13,140 Og ég ætla að vera að fara yfir sum málefni með þér 7 00:00:13,140 --> 00:00:16,890 krakkar í dag til að hjálpa þér undirbúa sig fyrir prófið. 8 00:00:16,890 --> 00:00:20,840 Svo er hér okkar ekki tæmandi listi yfir efni sem þú 9 00:00:20,840 --> 00:00:23,210 ætti að vera kunnugt um próf. 10 00:00:23,210 --> 00:00:25,740 Þessar voru teknar beint frá kennsluáætlun. 11 00:00:25,740 --> 00:00:26,990 Ég veit að það virðist eins og a einhver fjöldi. 12 00:00:26,990 --> 00:00:30,870 En treystu mér, hefur þú lært allt þetta á undanförnum vikum. 13 00:00:30,870 --> 00:00:33,210 >> Þannig að við munum örugglega vera að fara yfir mikið af þessum í dag. 14 00:00:33,210 --> 00:00:35,825 En einnig að taka smá tíma á þinn eigin til að endurskoða þessa hluti. 15 00:00:35,825 --> 00:00:38,450 Og ef þú værir ekki kunnugt hvað sumir af þessum hlutum eru, 16 00:00:38,450 --> 00:00:42,400 vertu viss um að spyrja einn af okkur. 17 00:00:42,400 --> 00:00:45,985 Einnig, vegna opinbers orð á spurningakeppni, fara á þennan tengil. 18 00:00:45,985 --> 00:00:48,860 Þetta mun hafa allar upplýsingar sem herbergi sem þú þarft að fara í, 19 00:00:48,860 --> 00:00:52,960 skipt upp í stafrófsröð, og einnig nokkrar ábendingar um hvað efni 20 00:00:52,960 --> 00:00:56,470 þú ættir að vera að læra, og hvaða tegund af quiz spurningum sem þú getur búist við. 21 00:00:56,470 --> 00:01:01,090 Svo tryggja að athuga það út. 22 00:01:01,090 --> 00:01:03,810 >> Einnig, sumir ábendingar um þegar þér eru að undirbúa fyrir prófið. 23 00:01:03,810 --> 00:01:05,730 Æfðu erfðaskrá á pappír. 24 00:01:05,730 --> 00:01:09,280 Ég veit að þú hefur fengið að nota til að hafa IDE stöðva fyrir villur fyrir þig, 25 00:01:09,280 --> 00:01:12,280 og it's-- þegar þú ert að skrifa það upp, það er svolítið öðruvísi en að þurfa 26 00:01:12,280 --> 00:01:13,113 að skrifa það út. 27 00:01:13,113 --> 00:01:14,560 Svo æfa gera sumir kóðun. 28 00:01:14,560 --> 00:01:17,910 Nokkur góð aðgerðir til að æfa gera eru strlen og atoi, 29 00:01:17,910 --> 00:01:20,450 sjá hvort þú gætir skrifað þá út á eigin spýtur. 30 00:01:20,450 --> 00:01:21,970 Vera kunnugt um vandamál setur. 31 00:01:21,970 --> 00:01:24,200 Flest ár eru spurningar sem tengjast 32 00:01:24,200 --> 00:01:25,700 að sumir af the vandamál að setja efni. 33 00:01:25,700 --> 00:01:30,480 Svo tryggja að þú skiljir hvernig á að gera allt vandamál setur. 34 00:01:30,480 --> 00:01:35,240 >> Reyna að gera sumir af gömlu prófum undir 75 mínútna tíma þvingun. 35 00:01:35,240 --> 00:01:37,290 A einhver fjöldi af the Skyndipróf getur verið góður af lengi. 36 00:01:37,290 --> 00:01:39,680 Svo það er góð leið til að gefa sjálfur sumir æfa, 37 00:01:39,680 --> 00:01:41,650 og hversu lengi það mun taka þig, og hvernig þér 38 00:01:41,650 --> 00:01:45,360 ætti að skipta tíma til að ganga úr skugga um að þú klára allt í lok. 39 00:01:45,360 --> 00:01:49,690 Og einnig, þú færð eina síðu, tvíhliða tilvísun lak 40 00:01:49,690 --> 00:01:52,962 að þú getur skrifað hvað sem þú vilja til að nota á prófinu. 41 00:01:52,962 --> 00:01:54,670 Svo þegar þú ert að búa það, það er líka 42 00:01:54,670 --> 00:01:57,860 mjög góð leið til að læra af því þú munt konar vera að skoða hlutina 43 00:01:57,860 --> 00:01:59,610 eins og þú ert að skrifa það. 44 00:01:59,610 --> 00:02:05,421 >> Svo allir almennar spurningar um quiz, eða hvernig það virkar? 45 00:02:05,421 --> 00:02:05,921 Já. 46 00:02:05,921 --> 00:02:09,167 >> Áhorfendur: Mun þessi listi af efni sem þú sýndi bara vera í boði fyrir okkur 47 00:02:09,167 --> 00:02:09,820 á netinu? 48 00:02:09,820 --> 00:02:12,736 >> CAMILLE REKHSON: Þetta allt renna sýning verða settar á vef. 49 00:02:12,736 --> 00:02:16,040 Einnig, the vídeó endurskoðun í dag fundur verður á heimasíðu. 50 00:02:16,040 --> 00:02:19,250 Svo ekki hafa áhyggjur of mikill óður skrifa það niður á öllu. 51 00:02:19,250 --> 00:02:20,437 Það verður allt að vera þar. 52 00:02:20,437 --> 00:02:21,270 Aðrar spurningar? 53 00:02:21,270 --> 00:02:23,810 54 00:02:23,810 --> 00:02:26,960 OK, þannig að við skulum byrja. 55 00:02:26,960 --> 00:02:30,860 >> Svo eitt að vera kunnugt er mismunandi gerðir gagna og stærð 56 00:02:30,860 --> 00:02:32,486 að þeir taka á sig. 57 00:02:32,486 --> 00:02:35,360 Þetta getur einnig vera a mikill hlutur til að skrifa niður á viðmiðunartímabilinu blaði þínu, 58 00:02:35,360 --> 00:02:37,240 bara til að tryggja að þú muna allt. 59 00:02:37,240 --> 00:02:39,200 But-- svo stafir eru 1 bæti. 60 00:02:39,200 --> 00:02:40,700 Ints eru 4 bytes. 61 00:02:40,700 --> 00:02:44,450 A langur, langur, sem er í grundvallaratriðum meira pláss fyrir heiltölu, er 8 bæti. 62 00:02:44,450 --> 00:02:46,560 A fljóta er 4 bæti. 63 00:02:46,560 --> 00:02:50,620 A tvöfaldur, sem í grundvallaratriðum gefur þér meira pláss til að geyma fljóta, er 8 bæti. 64 00:02:50,620 --> 00:02:54,210 Og þá er bendillinn einnig 8 bytes. 65 00:02:54,210 --> 00:02:56,270 Einhverjar spurningar um þetta? 66 00:02:56,270 --> 00:03:00,380 67 00:03:00,380 --> 00:03:05,580 >> Svo er tvöfaldur annað efni sem við höfum falla svolítið á þessari önn. 68 00:03:05,580 --> 00:03:07,910 Svo skulum gera sumir æfa með umbreyta 69 00:03:07,910 --> 00:03:10,000 milli tvöfaldur og tugabrot. 70 00:03:10,000 --> 00:03:13,950 Svo einhver hafa allir hugmynd um hvað sem fyrst myndi vera? 71 00:03:13,950 --> 00:03:32,840 72 00:03:32,840 --> 00:03:34,860 Einhver? 73 00:03:34,860 --> 00:03:36,270 Já, það er 42. 74 00:03:36,270 --> 00:03:39,200 Svo ef þú manst hver af þeim stöðum í tveimur 75 00:03:39,200 --> 00:03:41,860 er í grundvallaratriðum eins 2 til valda þeim stað er. 76 00:03:41,860 --> 00:03:43,750 >> Svo að fyrst blettur er 2 til 0 völd. 77 00:03:43,750 --> 00:03:46,710 Og við höfum 0 þar, svo ekkert þar. 78 00:03:46,710 --> 00:03:48,700 Næsta stað er 2 til fyrsta aflið. 79 00:03:48,700 --> 00:03:51,220 Og við eigum a 1 þar, svo er það í grundvallaratriðum a 2. 80 00:03:51,220 --> 00:03:53,642 Næsta staður er 2 til annað, sem er 4. 81 00:03:53,642 --> 00:03:54,850 Við höfum ekki neitt þar. 82 00:03:54,850 --> 00:03:59,390 Næsta sæti yfir er 2 til þriðja, sem væri 8. 83 00:03:59,390 --> 00:04:02,230 Og við höfum einn þar. 84 00:04:02,230 --> 00:04:03,470 Og við höldum áfram. 85 00:04:03,470 --> 00:04:07,720 Sem last-- á lengst til vinstri er einn þar sem við höfum 32. 86 00:04:07,720 --> 00:04:13,437 Og svo höfum við í rauninni 32 plús 8 plús 2 til að fá 42. 87 00:04:13,437 --> 00:04:14,020 Einhverjar spurningar? 88 00:04:14,020 --> 00:04:15,820 >> Áhorfendur: Hvað er hnéleturs fyrir? 89 00:04:15,820 --> 00:04:17,399 >> CAMILLE REKHSON: The hnéleturs grundvallaratriðum segir okkur að það er tvöfaldur. 90 00:04:17,399 --> 00:04:18,230 Svo er það 2 þar. 91 00:04:18,230 --> 00:04:20,579 Ef það voru like-- í næsta einn, eða þegar við erum að breyta aukastaf 92 00:04:20,579 --> 00:04:24,350 tveimur, það er 10 sýna okkur að þessi tala er upphaflega í aukastaf. 93 00:04:24,350 --> 00:04:25,194 >> Áhorfendur: Þakka þér. 94 00:04:25,194 --> 00:04:26,110 >> CAMILLE REKHSON: Já. 95 00:04:26,110 --> 00:04:28,790 Aðrar spurningar um það eitt? 96 00:04:28,790 --> 00:04:31,110 OK, þannig að við skulum reyna næsta einn þá aukastaf að tvöfaldur. 97 00:04:31,110 --> 00:04:35,034 Svo að taka 50 og setja það í tvöfaldur. 98 00:04:35,034 --> 00:04:35,950 Hvernig myndir þú gera það? 99 00:04:35,950 --> 00:04:44,331 100 00:04:44,331 --> 00:04:45,317 Já. 101 00:04:45,317 --> 00:04:49,754 >> Áhorfendur: 110.010. 102 00:04:49,754 --> 00:04:50,760 >> CAMILLE REKHSON: Já. 103 00:04:50,760 --> 00:04:54,410 Svo one-- auðveld leið til að hugsa um umbreyta frá aukastaf til tvöfaldur 104 00:04:54,410 --> 00:04:57,950 er to-- það hjálpar oft að skrifa út hvað mismunandi völd 2 eru. 105 00:04:57,950 --> 00:05:01,460 Og þá fara í gegnum það, og sjá hvað hæsta einn af þeim 106 00:05:01,460 --> 00:05:05,320 er að þú getur sett í til heiltala án þess að fara yfir það. 107 00:05:05,320 --> 00:05:09,040 >> Þannig að í þessu tilfelli, einn af vald 2 er 32. 108 00:05:09,040 --> 00:05:10,560 Svo 32 fer í 50. 109 00:05:10,560 --> 00:05:14,100 En næsta máttur upp væri 64, sem augljóslega passar ekki inn í 50. 110 00:05:14,100 --> 00:05:16,343 Svo er hæsta við höfum 32. 111 00:05:16,343 --> 00:05:17,343 Næsta einn niður í 16. 112 00:05:17,343 --> 00:05:20,140 Og 32 plús 16 er aðeins 48. 113 00:05:20,140 --> 00:05:21,350 Svo að enn passar inn 50. 114 00:05:21,350 --> 00:05:22,722 Þannig að við höfum 1 í bæði þeirra. 115 00:05:22,722 --> 00:05:25,180 Og þá ef við höldum að fara niður, það eina sem við þurfum vinstri 116 00:05:25,180 --> 00:05:27,510 er 2 meira til að fá frá 48 til 50. 117 00:05:27,510 --> 00:05:31,860 Svo þá höfum við 1 í þeirri stöðu, og 0 í neðstu stöðu. 118 00:05:31,860 --> 00:05:35,371 Vegna þess að það er ekkert í að 2 til 0-sæti. 119 00:05:35,371 --> 00:05:37,120 Spurningar um að breyta aukastaf tveimur? 120 00:05:37,120 --> 00:05:40,830 121 00:05:40,830 --> 00:05:44,100 >> Svo nú skulum reyna að gera sumir tvöfaldur viðbót. 122 00:05:44,100 --> 00:05:47,235 Hvernig þegar þú bætir við þá tvo upp? 123 00:05:47,235 --> 00:05:47,735 Já. 124 00:05:47,735 --> 00:05:51,130 >> Áhorfendur: 11100. 125 00:05:51,130 --> 00:05:52,110 >> CAMILLE REKHSON: Já. 126 00:05:52,110 --> 00:05:55,540 Svo er að gera viðbót í tvöfaldur nokkuð mikill the sami eins og að gera það í aukastaf. 127 00:05:55,540 --> 00:05:59,390 Nema ef þú hefur tvær 1 er velferð bætt saman, 1 plús 1 er 2, 128 00:05:59,390 --> 00:06:02,980 en 2 í tvöfaldur er 1 0. 129 00:06:02,980 --> 00:06:07,090 Þannig að þú þarft að bera 1, og halda flytja það fyrir þá nokkra dálka. 130 00:06:07,090 --> 00:06:10,260 Og annað en það, bara bæta venjulega. 131 00:06:10,260 --> 00:06:13,125 Einhverjar spurningar um það? 132 00:06:13,125 --> 00:06:13,625 Já. 133 00:06:13,625 --> 00:06:16,487 >> Áhorfendur: Því miður, það er síðasta sæti? 134 00:06:16,487 --> 00:06:18,475 Það er sex tölur. 135 00:06:18,475 --> 00:06:23,260 Svo dálknum lengst til vinstri, hvaða gildi er það? 136 00:06:23,260 --> 00:06:24,760 CAMILLE REKHSON: Á þessum botn einn? 137 00:06:24,760 --> 00:06:26,340 Áhorfendur: Á efstu einn, fyrir 50. 138 00:06:26,340 --> 00:06:27,340 CAMILLE REKHSON: Fyrir 50? 139 00:06:27,340 --> 00:06:29,040 Ó, svo lengst til vinstri er einn 32. 140 00:06:29,040 --> 00:06:29,760 >> Áhorfendur: 32? 141 00:06:29,760 --> 00:06:36,770 >> CAMILLE REKHSON: Já, svo það myndi vera 32, 16, þá 8, 4, 2, 0-- eða 1. 142 00:06:36,770 --> 00:06:39,380 Jæja, það er 2 í zeroth, sem er 1. 143 00:06:39,380 --> 00:06:41,110 Já. 144 00:06:41,110 --> 00:06:43,834 Aðrar spurningar um þetta? 145 00:06:43,834 --> 00:06:47,420 OK, svo þá erum við að fara að gera svolítið með sextánskur. 146 00:06:47,420 --> 00:06:49,570 Þannig að þetta gæti verið svolítið minna þekki, 147 00:06:49,570 --> 00:06:51,680 vegna þess að ég veit að við höfum gert a einhver fjöldi fleiri með tvöfaldur. 148 00:06:51,680 --> 00:06:54,050 En mjög góð leið til að hugsa um sextánskur 149 00:06:54,050 --> 00:06:57,540 er að brjóta upp tvöfaldur Fjöldi í 4 bita klumpur. 150 00:06:57,540 --> 00:07:00,950 Því að hver 4 bita af a tvöfaldur fjöldi er í grundvallaratriðum 151 00:07:00,950 --> 00:07:04,560 einn af sextánskur númer. 152 00:07:04,560 --> 00:07:07,420 >> Svo ef við höfum þetta fyrstu, við höfum í grundvallaratriðum átta 1 er. 153 00:07:07,420 --> 00:07:08,620 Svo þá er hægt að skipta up-- 154 00:07:08,620 --> 00:07:09,600 >> Áhorfendur: 255. 155 00:07:09,600 --> 00:07:10,933 >> CAMILLE REKHSON: Segja það aftur. 156 00:07:10,933 --> 00:07:13,772 Áhorfendur: 255 í aukastaf, eða 0xff í sextánskur. 157 00:07:13,772 --> 00:07:14,980 CAMILLE REKHSON: Já, er það. 158 00:07:14,980 --> 00:07:18,860 Svo, ef þú hættu að upp í tveimur 4-bita bitum, 159 00:07:18,860 --> 00:07:20,950 við höfum í grundvallaratriðum fjórum sinnum 1. 160 00:07:20,950 --> 00:07:22,880 Sem er maximum-- grundvallaratriðum hámarks 161 00:07:22,880 --> 00:07:24,329 við getum fengið með 4-bita í tvöfaldur. 162 00:07:24,329 --> 00:07:27,120 Og hámarks við gætum fengið fyrir að í sextánskur væri F. 163 00:07:27,120 --> 00:07:30,290 Svo við myndum hafa tvær F er. 164 00:07:30,290 --> 00:07:31,800 Einhverjar spurningar um það? 165 00:07:31,800 --> 00:07:32,490 Já? 166 00:07:32,490 --> 00:07:35,184 >> Áhorfendur: Getur þú endurtaka það. 167 00:07:35,184 --> 00:07:36,100 CAMILLE REKHSON: Jú. 168 00:07:36,100 --> 00:07:39,160 Svo að hver, í grundvallaratriðum, staður sextánskur er 169 00:07:39,160 --> 00:07:42,570 jafngildir i 4-bita í tvískiptri. 170 00:07:42,570 --> 00:07:46,830 Svo auðveldasta leiðin til að gera þetta er að brjóta það upp í 4 bita klumpur. 171 00:07:46,830 --> 00:07:48,690 Þannig að í þessu tilfelli höfum við átta 1 er. 172 00:07:48,690 --> 00:07:51,010 Þannig að ef við hættu þá í tveimur 4-bita bitum, 173 00:07:51,010 --> 00:07:54,350 við hefðum tvö sett af fjórum 1 áratugnum. 174 00:07:54,350 --> 00:07:57,181 Og hver og einn af þeim jafngildir F. 175 00:07:57,181 --> 00:07:58,930 Ef þú heldur about-- Ég veit gáfur okkar eru 176 00:07:58,930 --> 00:08:00,415 konar hlerunarbúnað að hugsa meira um aukastaf, 177 00:08:00,415 --> 00:08:01,831 því það er það sem við erum að venjast. 178 00:08:01,831 --> 00:08:06,030 Svo ein leið sem þú gætir hugsað það sem fjögur 1 er jafnt og 15 í aukastaf. 179 00:08:06,030 --> 00:08:12,960 Og 15 í sextánskur er F. Svo er Önnur leið sem þú getur hugsa um það. 180 00:08:12,960 --> 00:08:13,459 Já. 181 00:08:13,459 --> 00:08:14,790 >> Áhorfendur: Hvað er 0x fyrir? 182 00:08:14,790 --> 00:08:18,240 >> CAMILLE REKHSON: The 0x merkir að það er sextánskur. 183 00:08:18,240 --> 00:08:21,900 Þannig að við settum bara að forskeytið þar, venjulega. 184 00:08:21,900 --> 00:08:24,396 Aðrir spurningar um það. 185 00:08:24,396 --> 00:08:27,100 OK, þannig að við skulum reyna að fara á hinn veginn þá. 186 00:08:27,100 --> 00:08:28,712 Í þessu tilfelli erum við have-- hryggur? 187 00:08:28,712 --> 00:08:29,628 Áhorfendur: [inaudible]. 188 00:08:29,628 --> 00:08:32,095 189 00:08:32,095 --> 00:08:33,720 CAMILLE REKHSON: Við erum að fara að tvöfaldur. 190 00:08:33,720 --> 00:08:36,039 Svo, fara í hina áttina. 191 00:08:36,039 --> 00:08:42,090 En í þessu tilfelli höfum við 5 og A. Svo ef við hugsum um þetta, 192 00:08:42,090 --> 00:08:46,260 ef hver those-- 5 og A eru bæði að fara til að tákna 4-bita klumpur, 193 00:08:46,260 --> 00:08:49,003 hvernig myndir þú segja 5 í tvöfaldur? 194 00:08:49,003 --> 00:08:51,120 >> Áhorfendur: 0101. 195 00:08:51,120 --> 00:08:53,100 >> CAMILLE REKHSON: Já, svo það er 0101 hluti. 196 00:08:53,100 --> 00:08:55,250 Og þá hvernig myndir þú segja A in-- 197 00:08:55,250 --> 00:08:56,910 >> Áhorfendur: 10. 198 00:08:56,910 --> 00:08:58,243 CAMILLE REKHSON: Segja it-- hryggur? 199 00:08:58,243 --> 00:08:58,990 Áhorfendur: 10. 200 00:08:58,990 --> 00:09:02,052 CAMILLE REKHSON: Já, svo það er seinni hluti af því. 201 00:09:02,052 --> 00:09:04,010 Og þá, ef þú setur þeir tveir saman, það er 202 00:09:04,010 --> 00:09:06,440 hvernig þú færð fullt tvöfaldur fyrir sextánskur. 203 00:09:06,440 --> 00:09:06,940 Já? 204 00:09:06,940 --> 00:09:10,620 >> Áhorfendur: Að vita að A er 1010, þú þarft að leggja á minnið það? 205 00:09:10,620 --> 00:09:12,460 Eða getur þú like-- 206 00:09:12,460 --> 00:09:14,380 >> CAMILLE REKHSON: Svo ef you-- að differe-- svo 207 00:09:14,380 --> 00:09:16,790 þegar þú ert að fara í gegnum tvöfaldur, í grundvallaratriðum tvöfaldur 208 00:09:16,790 --> 00:09:20,550 hefur 0 til 9 og þá a gegnum F að 16 hlutum þess. 209 00:09:20,550 --> 00:09:25,420 Svo ef alla leið 0 til 9-- ef you-- 9 og þá A, í grundvallaratriðum 210 00:09:25,420 --> 00:09:29,640 ef við breytt það í fjölda, A væri eins 10, B væri eins 11. 211 00:09:29,640 --> 00:09:35,616 Og ef þér finnst um það tvöfaldur 1010 er 8 og 2, 212 00:09:35,616 --> 00:09:37,990 vegna þess að þeir eru tveir stöðum sem bæta allt að 10, sem 213 00:09:37,990 --> 00:09:41,820 er einmitt það sem A jafngildir. 214 00:09:41,820 --> 00:09:45,114 Svo er það góður af auðvelt leið til að hugsa um það. 215 00:09:45,114 --> 00:09:46,405 Aðrir spurningar um sextánskur. 216 00:09:46,405 --> 00:09:50,510 217 00:09:50,510 --> 00:09:56,870 >> OK, svo nú erum við að fara að taka a líta á Bita rekstraraðila. 218 00:09:56,870 --> 00:09:58,882 Svo þetta getur örugglega koma upp á spurningakeppni. 219 00:09:58,882 --> 00:10:00,590 Ég veit að við höfum ekki unnið með þeim mikið. 220 00:10:00,590 --> 00:10:02,756 En við erum bara að fara að gera smá endurskoðun þeirra. 221 00:10:02,756 --> 00:10:05,490 Svo vonandi munu vera svolítið meira þekki þig. 222 00:10:05,490 --> 00:10:10,220 Svo sex Bita rekstraraðila sem við höfum eru hér. 223 00:10:10,220 --> 00:10:13,340 Og þeir láta okkur vinna einstök bita. 224 00:10:13,340 --> 00:10:16,676 Svo og rekstraraðili er einn merkið. 225 00:10:16,676 --> 00:10:18,550 Ekki rugla því við tvöfaldur merkið, 226 00:10:18,550 --> 00:10:21,840 sem er rökrétt og að leyfir okkur saman tvennt. 227 00:10:21,840 --> 00:10:25,860 >> Einn og er hvernig við getum vinna hlutina Bita. 228 00:10:25,860 --> 00:10:29,910 Svo gefur þetta okkur niðurstöðu 1 ef bæði af rökum sem við erum að bera saman 229 00:10:29,910 --> 00:10:32,440 eru same-- eða eru 1. 230 00:10:32,440 --> 00:10:39,370 Og lóðrétt strik, OR, mun gefa US 1 ef að minnsta kosti eitt af þeim er 1. 231 00:10:39,370 --> 00:10:41,460 Svo í rauninni nákvæmlega hvað orð gefa til kynna. 232 00:10:41,460 --> 00:10:46,640 Og ef tveir bitar eru 1, 1 og 1 gefur okkur 1. 233 00:10:46,640 --> 00:10:51,769 En með eða, ef það er 0 eða 1, eða 1 eða 1, í báðum tilvikum, 234 00:10:51,769 --> 00:10:53,060 Við höfum 1 eins og að vera einn af þeim. 235 00:10:53,060 --> 00:10:54,101 Svo þá myndum við fá 1. 236 00:10:54,101 --> 00:10:56,320 Áhorfendur: Hvað meinarðu að það segir það gefur 1? 237 00:10:56,320 --> 00:10:58,236 >> CAMILLE REKHSON: The úrslit. Konar, eins og þú 238 00:10:58,236 --> 00:11:05,060 would-- ef þú gerðir 0 og 1, Niðurstaðan af því yrði 1-- eða 0 239 00:11:05,060 --> 00:11:08,920 og 1 með þeim afleiðingum að sem myndi vera 0, því miður. 240 00:11:08,920 --> 00:11:12,190 Já, það var góður af afleiðing af tjáningu. 241 00:11:12,190 --> 00:11:16,520 Og þá, þetta bendillinn tákn er XOR, eða einkarétt OR. 242 00:11:16,520 --> 00:11:21,920 Svo það þýðir eingöngu einn eða nákvæmlega einn af tveimur rök er jafnt og 1. 243 00:11:21,920 --> 00:11:24,210 Og þá það myndi gefa þér 1. 244 00:11:24,210 --> 00:11:27,370 >> Litli hlykkjóttu línu er EKKI stjórnandi. 245 00:11:27,370 --> 00:11:31,940 Svo ólíkt the hvíla af þeim, sem starfa á a par af bitum, 246 00:11:31,940 --> 00:11:34,930 sem EKKI stjórnandi tekur aðeins einn hluti, og snýst það. 247 00:11:34,930 --> 00:11:37,640 Svo ef þú give-- ef þú gerir EKKI 0, það myndi gefa þér 1. 248 00:11:37,640 --> 00:11:40,248 Og ef þú ert ekki 1, það myndi gefa þér 0. 249 00:11:40,248 --> 00:11:40,748 Já? 250 00:11:40,748 --> 00:11:41,150 >> Áhorfendur: Hver er munurinn milli eða með einni línu 251 00:11:41,150 --> 00:11:41,983 og eða með tveimur? 252 00:11:41,983 --> 00:11:44,430 253 00:11:44,430 --> 00:11:46,930 CAMILLE REKHSON: Svo OR með tvær línur er rökrétt OR. 254 00:11:46,930 --> 00:11:52,430 Svo er það að bera saman svo tvö heiltölur eða two-- 255 00:11:52,430 --> 00:11:53,730 til að sjá hvort það eru jafnir. 256 00:11:53,730 --> 00:11:58,340 Eða eins og að gera þetta er jafh þeim, OR er jafn þessari tegund hlutur. 257 00:11:58,340 --> 00:12:04,090 En einn bar eða, er að gera hlutina Bita. 258 00:12:04,090 --> 00:12:04,590 Já. 259 00:12:04,590 --> 00:12:06,680 >> Áhorfendur: Hvað áttu við með Bita? 260 00:12:06,680 --> 00:12:10,330 >> CAMILLE REKHSON: Svo Bita er að vinna beint við bitum í tvöfaldur. 261 00:12:10,330 --> 00:12:11,596 >> Áhorfendur: Oh, ég sé. 262 00:12:11,596 --> 00:12:15,000 >> CAMILLE REKHSON: Já, svo vinna með 0 og 1 er. 263 00:12:15,000 --> 00:12:18,310 Við munum gera nokkra dæmi um þetta eftir, bara svo það er ekki of ruglingslegt. 264 00:12:18,310 --> 00:12:20,970 Og þá síðustu tveir eru VINSTRI SHIFT og rétt vakt. 265 00:12:20,970 --> 00:12:23,970 Sem eru í grundvallaratriðum tvær minna en merki eða tveimur meira en merki. 266 00:12:23,970 --> 00:12:26,294 Og þeir færst til hluti sem gefin tala af stöðum 267 00:12:26,294 --> 00:12:27,710 að þú gefa það í þá átt. 268 00:12:27,710 --> 00:12:29,980 Þannig að það myndi annað hvort skipta henni til vinstri eða hægri. 269 00:12:29,980 --> 00:12:30,480 Já? 270 00:12:30,480 --> 00:12:32,470 Áhorfendur: Hvað er setningafræði til að keyra? 271 00:12:32,470 --> 00:12:33,950 >> CAMILLE REKHSON: Við erum að fara að fara í gegnum td í sekúndu. 272 00:12:33,950 --> 00:12:35,680 Svo vonandi, sem mun hjálpa. 273 00:12:35,680 --> 00:12:41,060 Einhverjar spurningar um rétt hvað er upp hér, before-- OK. 274 00:12:41,060 --> 00:12:43,821 Svo að fara í gegnum nokkur dæmi. 275 00:12:43,821 --> 00:12:45,070 Við skulum byrja með AND sjálfur. 276 00:12:45,070 --> 00:12:47,880 Hvað myndum við fá ef við gerðum 0 og 1? 277 00:12:47,880 --> 00:12:48,899 >> Áhorfendur: 0. 278 00:12:48,899 --> 00:12:50,690 CAMILLE REKHSON: OK, og ef við gerðum 1 og 1? 279 00:12:50,690 --> 00:12:51,622 Áhorfendur: 1. 280 00:12:51,622 --> 00:12:54,490 CAMILLE REKHSON: Já, hvað ef við gerðum 0 eða einn? 281 00:12:54,490 --> 00:12:55,094 Áhorfendur: 1. 282 00:12:55,094 --> 00:12:56,510 CAMILLE REKHSON: Hvað um 1 eða 1? 283 00:12:56,510 --> 00:12:57,404 Áhorfendur: 1. 284 00:12:57,404 --> 00:13:00,410 CAMILLE REKHSON: OK, hvernig væri 0 XOR 1? 285 00:13:00,410 --> 00:13:01,380 Áhorfendur: 1. 286 00:13:01,380 --> 00:13:03,120 CAMILLE REKHSON: And 1 XOR 1? 287 00:13:03,120 --> 00:13:03,902 Áhorfendur: 0. 288 00:13:03,902 --> 00:13:05,360 CAMILLE REKHSON: Þú krakkar eru góð. 289 00:13:05,360 --> 00:13:06,510 Hvernig væri EKKI 0? 290 00:13:06,510 --> 00:13:07,265 >> Áhorfendur: 1. 291 00:13:07,265 --> 00:13:08,390 CAMILLE REKHSON: Og ekki 1? 292 00:13:08,390 --> 00:13:09,602 Áhorfendur: 0. 293 00:13:09,602 --> 00:13:12,810 CAMILLE REKHSON: OK, og þá er þetta síðasta einn er a lítill einn með að breytast. 294 00:13:12,810 --> 00:13:18,700 Þannig að ef við setjum upphaflega x að vera 8 og þá er y x færst til vinstri 3, 295 00:13:18,700 --> 00:13:19,760 hvað myndi það gefa okkur? 296 00:13:19,760 --> 00:13:20,676 >> Áhorfendur: [inaudible]. 297 00:13:20,676 --> 00:13:22,817 298 00:13:22,817 --> 00:13:24,150 CAMILLE REKHSON: Segja það aftur. 299 00:13:24,150 --> 00:13:26,740 Áhorfendur: [inaudible]. 300 00:13:26,740 --> 00:13:28,766 CAMILLE REKHSON: Svo, þetta reyndar gefur okkur 64. 301 00:13:28,766 --> 00:13:29,876 Áhorfendur: [inaudible]. 302 00:13:29,876 --> 00:13:32,250 CAMILLE REKHSON: Þannig að ég er bara að fara að skrifa þetta upp hér, 303 00:13:32,250 --> 00:13:34,700 þannig að þetta gerir smá skilningi. 304 00:13:34,700 --> 00:13:45,120 Ef við höfum 2 til 0, 2 til 1, 2 til 2, 2 til 3 er að fara að vera 8. 305 00:13:45,120 --> 00:13:52,380 Og ef við viljum skipta í 3 fleiri bita til vinstri, sem myndi vera 2 til 4, 306 00:13:52,380 --> 00:13:57,270 2 til 5, og 2 til 6, og 2 til 6 er 64. 307 00:13:57,270 --> 00:13:59,920 308 00:13:59,920 --> 00:14:01,110 Er að vit? 309 00:14:01,110 --> 00:14:05,291 310 00:14:05,291 --> 00:14:05,791 Já. 311 00:14:05,791 --> 00:14:08,725 >> Áhorfendur: Er að breyting allar 1 er og 0 í tvöfaldur fjöldi til the-- 312 00:14:08,725 --> 00:14:09,600 >> CAMILLE REKHSON: Já. 313 00:14:09,600 --> 00:14:12,150 314 00:14:12,150 --> 00:14:15,170 Og þú þarft ekki að hafa áhyggjur á quiz um þetta er neikvæð. 315 00:14:15,170 --> 00:14:19,510 Við munum ekki gera þér að takast á við neikvæð breyting á nokkurn hátt. 316 00:14:19,510 --> 00:14:24,070 Aðrar spurningar um þetta? 317 00:14:24,070 --> 00:14:24,570 Já. 318 00:14:24,570 --> 00:14:30,570 >> Áhorfendur: Ef það er að breytast til hægri, er eitthvað sem wasn't-- neitt sem 319 00:14:30,570 --> 00:14:33,220 var ekki upphaflega hluti af hlutur 0? 320 00:14:33,220 --> 00:14:37,110 >> CAMILLE REKHSON: Já, þú myndir bara bæta 0 er á í upprunalegu. 321 00:14:37,110 --> 00:14:38,110 Já. 322 00:14:38,110 --> 00:14:41,540 >> Áhorfendur: Svo er það 100 sem færst til hægri þrisvar? 323 00:14:41,540 --> 00:14:43,290 CAMILLE REKHSON: 100 færst til hægri, 324 00:14:43,290 --> 00:14:46,057 svo það myndi taka allt af 1 og 0 og bara skipta þeim 325 00:14:46,057 --> 00:14:48,515 til hægri eins oft og þú það til að skipta til hægri. 326 00:14:48,515 --> 00:14:50,452 >> Áhorfendur: [inaudible]? 327 00:14:50,452 --> 00:14:53,160 CAMILLE REKHSON: Jæja, eru 100-- að tala um 100 í tvöfaldur, 328 00:14:53,160 --> 00:14:53,910 eða 100 í aukastaf? 329 00:14:53,910 --> 00:14:55,750 Áhorfendur: Fyrirgefðu, 100 í tvöfaldur. 330 00:14:55,750 --> 00:14:58,916 >> CAMILLE REKHSON: 100 í tvöfaldur, ef þú skiptir það til right-- 331 00:14:58,916 --> 00:15:01,040 ef þú skiptir til hægri einu sinni, myndi það verða 10. 332 00:15:01,040 --> 00:15:04,430 Ef þú skiptir það til hægri tvisvar, það yrði 001. 333 00:15:04,430 --> 00:15:07,590 Og þá ef þú skiptir það aftur, þú konar missa hluti. 334 00:15:07,590 --> 00:15:09,610 Já, það er bara 0. 335 00:15:09,610 --> 00:15:12,140 Aðrar spurningar um þetta? 336 00:15:12,140 --> 00:15:12,835 Já. 337 00:15:12,835 --> 00:15:14,695 >> Áhorfendur: Svo þá verður 000. 338 00:15:14,695 --> 00:15:17,020 >> CAMILLE REKHSON: Já. 339 00:15:17,020 --> 00:15:22,150 OK, þannig að við skulum fara í gegnum a smá ASCII stærðfræði. 340 00:15:22,150 --> 00:15:25,120 Svo stafir getur í raun að meðhöndla eins og heiltölur 341 00:15:25,120 --> 00:15:28,290 byggt á ASCII gildi þeirra. 342 00:15:28,290 --> 00:15:35,250 Þannig að ef við sátum INT A jafngildir 65, int B jafngildir A plús 1, int bleikju C jafngildir 343 00:15:35,250 --> 00:15:39,565 D mínus 1, og viðarkol, D jafngildir 68, hvað myndi prenta út neðst? 344 00:15:39,565 --> 00:15:46,150 345 00:15:46,150 --> 00:15:49,720 >> Svo erum við að prenta these-- blessa you-- við erum 346 00:15:49,720 --> 00:15:53,520 prentun þetta allt út eins og Chars miðað við prósent C. 347 00:15:53,520 --> 00:15:56,320 Þannig að við erum í rauninni að prenta út eðli gildi öllum fjórum 348 00:15:56,320 --> 00:15:58,600 þessara breyta. 349 00:15:58,600 --> 00:16:04,280 Sem vott, 65 er ASCII gildi fjármagns A. Kannski hjálpaði það. 350 00:16:04,280 --> 00:16:04,780 Hvað? 351 00:16:04,780 --> 00:16:05,530 >> Áhorfendur: ABCD. 352 00:16:05,530 --> 00:16:07,780 >> CAMILLE REKHSON: Já, svo þetta myndi prenta út nákvæmlega 353 00:16:07,780 --> 00:16:10,290 ABCD vegna við setjum int A jafnt ASCII gildi A. 354 00:16:10,290 --> 00:16:13,085 Þannig að ef við prenta það út eins og a eðli, fáum við bara fjármagni, 355 00:16:13,085 --> 00:16:15,540 A plús 1 væri höfuðborg B í ASCII. 356 00:16:15,540 --> 00:16:19,260 D mínus 1 væri höfuðborg C í ASCII. 357 00:16:19,260 --> 00:16:25,185 Og 68 er ASCII gildi D. Spurningar um ASCII? 358 00:16:25,185 --> 00:16:25,685 Já. 359 00:16:25,685 --> 00:16:31,370 >> Áhorfendur: Svo gæsalöppum utan A, þýðir það breyta til ASCII? 360 00:16:31,370 --> 00:16:34,456 >> CAMILLE REKHSON: Það uses-- það count-- einn vitna í kringum A 361 00:16:34,456 --> 00:16:35,330 gerir það eðli. 362 00:16:35,330 --> 00:16:37,600 Og ef þú ert að takast á við það í fjölda form-- 363 00:16:37,600 --> 00:16:40,320 svo þegar, eins og í þessu tilfelli, það er meðhöndlaður sem er int-- 364 00:16:40,320 --> 00:16:44,664 þá myndi takast með það ASCII gildi. 365 00:16:44,664 --> 00:16:45,164 Já. 366 00:16:45,164 --> 00:16:50,060 >> Áhorfendur: Ert þú mæla með því að höfum við ASCII tilvísun borð? 367 00:16:50,060 --> 00:16:51,900 >> CAMILLE REKHSON: Ég think-- ekki 368 00:16:51,900 --> 00:16:54,720 >> Áhorfendur: Eða myndi það aðeins að takast á við þetta? 369 00:16:54,720 --> 00:16:56,210 >> CAMILLE REKHSON: Ég held að við myndi gera það með einföldum hlutum. 370 00:16:56,210 --> 00:16:58,168 Ég held ekki að það myndi meiða til að skrifa niður kannski 371 00:16:58,168 --> 00:17:02,653 hvað höfuðborg A og lágstafir A eru bara hvað þessir svið eru að byrja með. 372 00:17:02,653 --> 00:17:05,819 En ég held ekki að þú þarft að taka allt pláss til að setja alla ASCII töflu. 373 00:17:05,819 --> 00:17:06,803 Já. 374 00:17:06,803 --> 00:17:09,755 >> Áhorfendur: Hver er munurinn milli segja int A og bleikju C, 375 00:17:09,755 --> 00:17:12,720 eins og þú gerir efst? 376 00:17:12,720 --> 00:17:17,380 >> CAMILLE REKHSON: Svo það er bara hvernig sem er geymd í minni. 377 00:17:17,380 --> 00:17:20,010 En þú getur meðhöndla það hvort vegur. 378 00:17:20,010 --> 00:17:23,274 Eins og við sjáum hér, gera við prenta út A sem persónu. 379 00:17:23,274 --> 00:17:24,690 Áhorfendur: Svo er það sama og A? 380 00:17:24,690 --> 00:17:25,606 CAMILLE REKHSON: Já. 381 00:17:25,606 --> 00:17:28,030 382 00:17:28,030 --> 00:17:29,537 Aðrar spurningar? 383 00:17:29,537 --> 00:17:32,022 >> Áhorfendur: Svo prósent C er að segja prenta char? 384 00:17:32,022 --> 00:17:33,016 >> CAMILLE REKHSON: Já. 385 00:17:33,016 --> 00:17:35,501 >> Áhorfendur: Svo jafnvel ef A hefur aðeins verið skilgreind sem heiltala, 386 00:17:35,501 --> 00:17:37,569 ef við reynum að prenta a bleikju sem 65, would-- það 387 00:17:37,569 --> 00:17:40,110 CAMILLE REKHSON: Það myndi fara til grundvallaratriðum fer til ASCII töfluna 388 00:17:40,110 --> 00:17:42,990 og fær hvað sem stafi í ASCII graf fyrir 65. 389 00:17:42,990 --> 00:17:43,840 >> Áhorfendur: Þakka þér. 390 00:17:43,840 --> 00:17:44,756 >> CAMILLE REKHSON: Já. 391 00:17:44,756 --> 00:17:45,445 Já? 392 00:17:45,445 --> 00:17:50,620 >> Áhorfendur: Svo ef þú gerðir% i,% I, % I,% I, það myndi bara print-- 393 00:17:50,620 --> 00:17:52,620 CAMILLE REKHSON: Já, ef þú gerðir allt 4% I er, það 394 00:17:52,620 --> 00:17:57,170 myndi prenta út ASCII Gildi öllum fjórum þessara. 395 00:17:57,170 --> 00:17:59,483 Aðrar spurningar? 396 00:17:59,483 --> 00:18:06,310 OK, svo umfang, í grundvallaratriðum þetta hjálpar okkur að ákvarða hvar 397 00:18:06,310 --> 00:18:08,450 breytu er í forritinu. 398 00:18:08,450 --> 00:18:11,910 Þannig að við höfum talað um tvo mismunandi tegundir umfang, hnattrænum og staðbundnum. 399 00:18:11,910 --> 00:18:14,560 >> Ef breyta er á heimsvísu scoped, það þýðir allt program 400 00:18:14,560 --> 00:18:16,292 hefur aðgang að breytunni. 401 00:18:16,292 --> 00:18:18,000 Og ef þú heimsvísu Umfang breytu, þú 402 00:18:18,000 --> 00:18:19,510 lýsa það áður meginvirkni þinn. 403 00:18:19,510 --> 00:18:20,830 Svo það er gert strax the kylfa. 404 00:18:20,830 --> 00:18:22,950 Og þá allt þitt Forritið er hægt að nálgast það. 405 00:18:22,950 --> 00:18:26,070 >> Ef það er aðeins staðbundið scoped, sem breyta bundin við ákveðin svæði. 406 00:18:26,070 --> 00:18:29,705 Svo ef þú lýsa innan fyrir lykkju, aðeins að fyrir lykkju getur nálgast það. 407 00:18:29,705 --> 00:18:31,580 Eða ef þú lýsa innan ákveðna aðgerð, 408 00:18:31,580 --> 00:18:34,940 bara að virka getur nálgast það. 409 00:18:34,940 --> 00:18:38,265 Spurningar um gildissvið. 410 00:18:38,265 --> 00:18:41,570 >> OK, svo virka prototyping. 411 00:18:41,570 --> 00:18:45,360 Grundvallaratriðum vegna C, þegar það safnar, les ofan frá og niður. 412 00:18:45,360 --> 00:18:48,800 Ef þú játar með aðgerð seint í kóðanum þínum, 413 00:18:48,800 --> 00:18:51,670 þýðandinn veit ekki sem að virka fyrir hendi. 414 00:18:51,670 --> 00:18:55,690 Svo það sem við notum eru frumgerðir, sem í grundvallaratriðum segja þýðanda, 415 00:18:55,690 --> 00:18:58,710 þessi aðgerð til, farðu líta fyrir það síðar í kóðanum. 416 00:18:58,710 --> 00:19:00,900 Svo leið að þú gerir fall frumgerð 417 00:19:00,900 --> 00:19:03,020 er nákvæmlega hvernig þú byrjar burt skrifa virka. 418 00:19:03,020 --> 00:19:05,310 Þú gefur aftur gerð, nafn virka, 419 00:19:05,310 --> 00:19:08,930 og þá hvaða rök sem að virka tekur. 420 00:19:08,930 --> 00:19:13,970 >> Svo, til að líta á a fljótur dæmi, í þessu Case fallið sem við erum með hér 421 00:19:13,970 --> 00:19:15,340 er í grundvallaratriðum a teningur virka. 422 00:19:15,340 --> 00:19:19,170 Svo að taka í heiltala og skila teningur þeirrar tölu. 423 00:19:19,170 --> 00:19:23,190 Það vegna þess að við höfum skrifað að virka undir meginvirkni, 424 00:19:23,190 --> 00:19:26,300 og við viljum að nota framleiðsla that-- eða við 425 00:19:26,300 --> 00:19:28,630 vil að virka í meginvirkni okkar, 426 00:19:28,630 --> 00:19:31,980 við setjum frumgerð leið sína efst á dagskrá okkar. 427 00:19:31,980 --> 00:19:34,460 Og svo þegar við köllum það í meginvirkni okkar, 428 00:19:34,460 --> 00:19:38,800 þýðandinn veit að það virka er skrifað síðar, og mun fara leita að því, 429 00:19:38,800 --> 00:19:40,910 og mun nota það rétt. 430 00:19:40,910 --> 00:19:45,190 Spurningar um prototyping? 431 00:19:45,190 --> 00:19:45,690 Já. 432 00:19:45,690 --> 00:19:46,940 >> Áhorfendur: Svo hvað er málið? 433 00:19:46,940 --> 00:19:49,374 434 00:19:49,374 --> 00:19:50,915 Ég fæ ekki að benda á prototyping. 435 00:19:50,915 --> 00:19:52,820 Hvers vegna ekki bara að hafa það þarna niðri? 436 00:19:52,820 --> 00:19:54,903 >> CAMILLE REKHSON: Jæja, ef það er hérna, svo þegar 437 00:19:54,903 --> 00:19:57,020 þú færð að stilla teningur af x í meginvirkni þinn, 438 00:19:57,020 --> 00:19:59,495 þýðandinn mun ekki hafa hugmynd um að teningur virka í raun til. 439 00:19:59,495 --> 00:20:01,310 >> Áhorfendur: Gat ekki þú bara setja það fyrir framan? 440 00:20:01,310 --> 00:20:02,350 >> CAMILLE REKHSON: Það er betra erfðaskrá æfa 441 00:20:02,350 --> 00:20:04,150 að setja það undir meginvirkni þinn. 442 00:20:04,150 --> 00:20:06,350 Svo það er hvers vegna við gerðum gera prototyping. 443 00:20:06,350 --> 00:20:07,680 Bara vegna þess, ef þér hafði mikið af störfum, 444 00:20:07,680 --> 00:20:10,180 það væri mjög sóðalegur til lesa í gegnum alla þá virka 445 00:20:10,180 --> 00:20:12,030 áður en þú færð að kjöt af forritinu. 446 00:20:12,030 --> 00:20:13,888 Já, og þú hefðir q-- 447 00:20:13,888 --> 00:20:16,796 >> Áhorfendur: Svo er að lýsa breyta þinn upp efst 448 00:20:16,796 --> 00:20:18,795 svo þú getur nálgast það, gera það global breyta? 449 00:20:18,795 --> 00:20:21,119 Er að svipað þessu þar sem það er að lýsa það 450 00:20:21,119 --> 00:20:23,660 upp þar, þannig að það veit að það er að fara að opna það seinna 451 00:20:23,660 --> 00:20:24,762 og þú getur notað það? 452 00:20:24,762 --> 00:20:26,146 >> CAMILLE REKHSON: Já. 453 00:20:26,146 --> 00:20:26,646 Já. 454 00:20:26,646 --> 00:20:30,414 >> Áhorfendur: Ætti the-- allir viðbótar aðgerðir sem þú búa til lykil utan 455 00:20:30,414 --> 00:20:31,840 þessi orð, or-- 456 00:20:31,840 --> 00:20:33,760 >> CAMILLE REKHSON: Já, ef þú ert skapa annað functions-- Main 457 00:20:33,760 --> 00:20:36,385 sjálft er function-- svo ef þú ert að búa aðrar aðgerðir, 458 00:20:36,385 --> 00:20:37,555 þeir ættu að vera úti. 459 00:20:37,555 --> 00:20:38,055 Já? 460 00:20:38,055 --> 00:20:39,734 >> Áhorfendur: Hvað er prósent D? 461 00:20:39,734 --> 00:20:42,150 CAMILLE REKHSON: Hlutfall D er sama og prósent I. 462 00:20:42,150 --> 00:20:45,915 Það vísar til heiltala. 463 00:20:45,915 --> 00:20:47,895 Já. 464 00:20:47,895 --> 00:20:50,370 >> Áhorfendur: Svo er það int helstu gera? 465 00:20:50,370 --> 00:20:51,724 Hvað var það ógilt? 466 00:20:51,724 --> 00:20:53,890 CAMILLE REKHSON: Void segir það tekur á engin rök. 467 00:20:53,890 --> 00:20:55,320 Áhorfendur: [inaudible]. 468 00:20:55,320 --> 00:20:57,570 CAMILLE REKHSON: Getur þú tala smá hávær, því miður? 469 00:20:57,570 --> 00:21:00,153 Áhorfendur: Já, því miður, af hverju gerði þú setur ógilt í fyrsta einn, 470 00:21:00,153 --> 00:21:02,297 og þá int inntak fyrir þann seinni? 471 00:21:02,297 --> 00:21:04,720 472 00:21:04,720 --> 00:21:07,470 CAMILLE REKHSON: Ó, að tveir different-- fyrir meginvirkni 473 00:21:07,470 --> 00:21:09,290 móti teningur virka? 474 00:21:09,290 --> 00:21:13,360 Svo í the aðalæð virka, við notum ógilt vegna þess að það 475 00:21:13,360 --> 00:21:16,870 Engar breytur sem eru gerðar í. 476 00:21:16,870 --> 00:21:19,425 En í teningur virka, höfum við inntak. 477 00:21:19,425 --> 00:21:22,300 Það er hvers vegna það segir int, inntak, vegna þess að það eru rök að við erum 478 00:21:22,300 --> 00:21:24,571 taka í að keyra fallið. 479 00:21:24,571 --> 00:21:25,070 Já. 480 00:21:25,070 --> 00:21:27,770 481 00:21:27,770 --> 00:21:30,464 Eru það eru spurningar? 482 00:21:30,464 --> 00:21:34,520 >> OK, og þá fljótt fljótandi-lið ónákvæmni. 483 00:21:34,520 --> 00:21:37,200 Þannig að við höfum óendanlega margar rauntölur. 484 00:21:37,200 --> 00:21:38,950 En það eru aðeins endanlega fjölda bita 485 00:21:38,950 --> 00:21:42,880 að við getum notað til að sýna þeim tölur, og tákna þau. 486 00:21:42,880 --> 00:21:45,020 Svo þá við enda upp með sumir ónákvæmni. 487 00:21:45,020 --> 00:21:49,190 Og númer þitt verður ekki alltaf að vera alveg nákvæmlega hvað 488 00:21:49,190 --> 00:21:51,810 þú heldur að þeir eru þegar þú ert takast á við fljótandi punkta. 489 00:21:51,810 --> 00:21:53,650 Þetta er bara eitthvað gott að vita. 490 00:21:53,650 --> 00:21:56,628 Spurningar um þetta? 491 00:21:56,628 --> 00:21:59,610 Já. 492 00:21:59,610 --> 00:22:02,090 >> Áhorfendur: Er þetta vísa að hugmyndin um bita flæða 493 00:22:02,090 --> 00:22:03,089 sem var í fyrirlestri? 494 00:22:03,089 --> 00:22:06,080 Var að eitthvað skilja? 495 00:22:06,080 --> 00:22:09,650 >> CAMILLE REKHSON: Þeir eru fullkomlega aðskilin, já. 496 00:22:09,650 --> 00:22:11,160 OK, frábært. 497 00:22:11,160 --> 00:22:16,369 498 00:22:16,369 --> 00:22:17,452 Pulak Goyal: Hi, allir. 499 00:22:17,452 --> 00:22:19,872 Mitt nafn er Pulak, og ég ætla að vera að fara yfir ábendingum. 500 00:22:19,872 --> 00:22:23,260 501 00:22:23,260 --> 00:22:25,720 Fyrst hugsa OK, þannig að við skulum um hvað minni lítur út. 502 00:22:25,720 --> 00:22:28,610 Svo eins og þú sérð hér, við taka minni og við skipta því upp 503 00:22:28,610 --> 00:22:30,090 í fullt af blokkum. 504 00:22:30,090 --> 00:22:33,150 Og við tilvísun hver loka á eftir heimilisfangi, ekki satt? 505 00:22:33,150 --> 00:22:37,196 Og er einhver man hvaða tegund af ritháttur við notum til að lýsa netfang? 506 00:22:37,196 --> 00:22:38,510 >> Áhorfendur: sextánskur, 0x. 507 00:22:38,510 --> 00:22:39,510 >> Pulak Goyal: sextánskur, ekki satt? 508 00:22:39,510 --> 00:22:41,509 Svo þýðir 0x við erum að tala um sextánskur. 509 00:22:41,509 --> 00:22:45,740 510 00:22:45,740 --> 00:22:48,360 OK, svo hvernig við að búa ábendingum? 511 00:22:48,360 --> 00:22:51,960 Svo við tökum gerð, við setja it-- bæta stjörnuna við það, 512 00:22:51,960 --> 00:22:53,760 og þá erum við að bæta breytu nafn. 513 00:22:53,760 --> 00:22:59,280 Svo dæmi sem við höfum séð eru INT Star X, CH stjörnu Y, og fljóta byrja z. 514 00:22:59,280 --> 00:23:01,380 Svo þegar ég segi INT stjarna x, getur einhver sagt mér 515 00:23:01,380 --> 00:23:03,965 hvað ég er góður af að tala um það? 516 00:23:03,965 --> 00:23:05,710 >> Áhorfendur: Staðsetning diskinn. 517 00:23:05,710 --> 00:23:06,890 >> Pulak Goyal: Því miður, hvað? 518 00:23:06,890 --> 00:23:07,723 Getur þú endurtekið þetta? 519 00:23:07,723 --> 00:23:09,250 Áhorfendur: Staðsetning diskur. 520 00:23:09,250 --> 00:23:12,390 >> Pulak Goyal: Svo actually-- svo hvað Ég ætlaði, er þegar við höfum int stjörnu x, 521 00:23:12,390 --> 00:23:14,400 við erum að segja er að búa bendi, og það 522 00:23:14,400 --> 00:23:17,130 getur geymt veffang a breyta sem er int, ekki satt? 523 00:23:17,130 --> 00:23:21,810 Svo með bleikju stjörnu Y, við erum að búa bendi 524 00:23:21,810 --> 00:23:24,220 sem getur geymt tölu breytu sem er bleikju. 525 00:23:24,220 --> 00:23:26,270 Þannig að skynsamleg að allir? 526 00:23:26,270 --> 00:23:29,600 OK, flott 527 00:23:29,600 --> 00:23:33,450 >> OK, svo með ábendingum, það eru tvö mikilvæg aðgerðir sem við getum gert. 528 00:23:33,450 --> 00:23:36,630 Það er tilvísun, og það er dereferencing. 529 00:23:36,630 --> 00:23:37,130 Já? 530 00:23:37,130 --> 00:23:38,760 >> Áhorfendur: Gætirðu farið svolítið hægar? 531 00:23:38,760 --> 00:23:39,510 >> Pulak Goyal: Jú. 532 00:23:39,510 --> 00:23:45,350 Já, so-- já, spyrja spurninga sem ég fer með ef you-- ef eitthvað er óljóst. 533 00:23:45,350 --> 00:23:47,240 Þannig að við höfum tilvísanir og dereferencing. 534 00:23:47,240 --> 00:23:51,680 Svo þegar þú vilt fá heimilisfang breytu, þá nota merkið. 535 00:23:51,680 --> 00:23:53,620 Svo skulum segja að ég lýsti int x einhvers staðar. 536 00:23:53,620 --> 00:23:57,450 Og ég vil fá tölu sem og gefa það í, ég myndi gera merkið x. 537 00:23:57,450 --> 00:24:01,260 Og þegar þú vilt fá gildi í tengslum við músina, 538 00:24:01,260 --> 00:24:04,670 þú notar dereference rekstraraðila, sem er stjarna. 539 00:24:04,670 --> 00:24:08,570 >> Svo skulum segja að ég hafði int stjörnu x, og Ég hafði það bendir til eitthvað. 540 00:24:08,570 --> 00:24:13,510 Ef ég vil fá á gildi þess sem það er bendir til, ég myndi bara gera stjörnu x. 541 00:24:13,510 --> 00:24:14,960 Er það ljóst? 542 00:24:14,960 --> 00:24:16,390 Einhverjar spurningar um það? 543 00:24:16,390 --> 00:24:18,129 Já. 544 00:24:18,129 --> 00:24:25,275 >> Áhorfendur: Svo almennt, þér mun ekki vera fær um að gera á x og stjarnan 545 00:24:25,275 --> 00:24:27,135 x með sama x. 546 00:24:27,135 --> 00:24:28,740 Er það rétt? 547 00:24:28,740 --> 00:24:31,800 Vegna þess að ef X er breyta, þá verður þú 548 00:24:31,800 --> 00:24:35,980 að gera á x til að fá að það er bendi. 549 00:24:35,980 --> 00:24:40,810 En ef x er bendi, þá þarftu að gera stjörnu x til að fá breytu. 550 00:24:40,810 --> 00:24:43,240 >> Pulak Goyal: Já, svo Spurningin var um þegar 551 00:24:43,240 --> 00:24:45,750 gera við nota star-- þegar myndir þú nota stjörnuna, 552 00:24:45,750 --> 00:24:47,470 og þegar við notum merkið, og getum við 553 00:24:47,470 --> 00:24:49,160 nota það með sömu tegund breytu? 554 00:24:49,160 --> 00:24:51,810 Svo yfirleitt ef þú ert, Til dæmis, er int x, 555 00:24:51,810 --> 00:24:55,170 þú vildi aðallega að nota merkið til að fá heimilisfangið af því. 556 00:24:55,170 --> 00:24:58,220 Vegna þess að það er ekki að gera vit í að virðingu í x. 557 00:24:58,220 --> 00:25:04,220 En ef við hefðum INT stjörnu x, þú vilt vera með dereference rekstur 558 00:25:04,220 --> 00:25:07,910 vegna þess að það myndi gera ekkert vit að nota á x í því tilfelli. 559 00:25:07,910 --> 00:25:09,582 Er að vit? 560 00:25:09,582 --> 00:25:13,192 >> Áhorfendur: Svo þú getur ekki og, og þá bendi? 561 00:25:13,192 --> 00:25:14,900 Pulak Goyal: Svo þú tæknilega, reyndar 562 00:25:14,900 --> 00:25:16,870 getur gert merkið á músina. 563 00:25:16,870 --> 00:25:18,984 En það er út af Umfang þessum flokki. 564 00:25:18,984 --> 00:25:21,900 Fyrir purpose-- fyrir krakkar þinna tilgangi, þegar þú ert ábendingum, 565 00:25:21,900 --> 00:25:25,191 þú vilt nota dereference rekstraraðila til að fá gildi í tengslum við það. 566 00:25:25,191 --> 00:25:27,380 Og þegar þú ert venjulegur breytur, eins og int x, 567 00:25:27,380 --> 00:25:31,410 þú vilt nota merkið rekstraraðila til að fá tölu sem. 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, þannig að við skulum líta á ábendingum og hvað gerist undir hetta. 571 00:25:38,850 --> 00:25:42,640 Svo er það fyrsta sem ég gerði hér uppgefið int x er jafnt og 5. 572 00:25:42,640 --> 00:25:48,460 Heimilisfangið þessarar breytu er 0x04, og gildið er 5. 573 00:25:48,460 --> 00:25:52,940 Svo skulum sjá hvað gerist með næstu línu. 574 00:25:52,940 --> 00:25:55,130 Svo nú erum við að lýsa yfir músina. 575 00:25:55,130 --> 00:26:01,450 Netfang hennar er 0x08, og þess gildi er heimilisfang x. 576 00:26:01,450 --> 00:26:05,220 Er að skynsamleg að allir? 577 00:26:05,220 --> 00:26:06,507 Einhverjar spurningar um það? 578 00:26:06,507 --> 00:26:09,130 579 00:26:09,130 --> 00:26:13,080 >> OK, og nú skulum sjá hvað gerist með næstu línu. 580 00:26:13,080 --> 00:26:18,140 Svo með þetta í næstu línu, höfum við veffang afrit vera 0x10, 581 00:26:18,140 --> 00:26:20,780 og gildi þess er 5. 582 00:26:20,780 --> 00:26:23,570 Þannig að ástæða við fengum fimm er ég sagði, við dereference 583 00:26:23,570 --> 00:26:26,740 músina, sem við lýst int stjörnu. 584 00:26:26,740 --> 00:26:35,797 Og svo það went-- þegar við dereference það, það sagði, OK, hvað er í rifa 0x04. 585 00:26:35,797 --> 00:26:36,630 Og það fór að því. 586 00:26:36,630 --> 00:26:40,785 Og hvað x er x0-- 0x04, og gildið er 5. 587 00:26:40,785 --> 00:26:41,660 Er að skynsamleg? 588 00:26:41,660 --> 00:26:42,334 Já? 589 00:26:42,334 --> 00:26:50,090 >> Áhorfendur: Hvers vegna er heimilisfang á eintak er bara 4 bytes ofan x músina? 590 00:26:50,090 --> 00:26:52,318 >> Pulak Goyal: Já, þetta er mistök on-- 591 00:26:52,318 --> 00:26:55,304 >> CAMILLE REKHSON: Svo, já, muna þetta er skrifað í sextánskur. 592 00:26:55,304 --> 00:26:56,220 Pulak Goyal: Ó, já. 593 00:26:56,220 --> 00:26:58,615 CAMILLE REKHSON: Þannig að þetta er í raun 8 og þá 16 594 00:26:58,615 --> 00:27:00,960 vegna þess að við sagði að bendillinn, muna, 595 00:27:00,960 --> 00:27:05,330 í IDE okkar er að fara að vera 8 bæti. 596 00:27:05,330 --> 00:27:06,080 Pulak Goyal: Já. 597 00:27:06,080 --> 00:27:09,160 598 00:27:09,160 --> 00:27:12,540 Svo bara að vera skýr, ábendingum 8 bæti. 599 00:27:12,540 --> 00:27:14,160 Int er 4 bæti. 600 00:27:14,160 --> 00:27:18,380 Svo ástæðan hvað stökk frá 0x04 til 0x08 601 00:27:18,380 --> 00:27:20,980 er vegna þess að við þurftum að gera stökk 8 bæti. 602 00:27:20,980 --> 00:27:24,396 Og þá for-- síðan eftirlíking er bara int, 603 00:27:24,396 --> 00:27:26,020 það er 4 bæti, sem er helmingur af 8 bæti. 604 00:27:26,020 --> 00:27:29,970 Þannig að við að hoppa bara til 0x10, sem er tvisvar í burtu frá 0x08. 605 00:27:29,970 --> 00:27:33,100 606 00:27:33,100 --> 00:27:34,570 Aðrar spurningar? 607 00:27:34,570 --> 00:27:36,850 OK, let's-- já? 608 00:27:36,850 --> 00:27:39,245 >> Áhorfendur: Hvers vegna er ekki gildi int afrit 609 00:27:39,245 --> 00:27:45,000 bara the-- hvers vegna er það 5 í stað 0x04? 610 00:27:45,000 --> 00:27:46,270 >> Pulak Goyal: OK, hvers vegna er það 5? 611 00:27:46,270 --> 00:27:51,600 OK, þannig að þegar the-- skulum svo fyrst hugsa um þetta í skilmálar af gerðum. 612 00:27:51,600 --> 00:27:55,600 Þannig að ég ætla að segja int afrit er jafn músina stjörnu. 613 00:27:55,600 --> 00:27:57,490 Svo er það tegund af músina? 614 00:27:57,490 --> 00:27:59,310 Það er int stjarna. 615 00:27:59,310 --> 00:28:03,850 Og þegar ég dereference að gerð verður int. 616 00:28:03,850 --> 00:28:06,570 Svo það sem við búast við að geyma hér er í raun int. 617 00:28:06,570 --> 00:28:07,965 Er að skynsamleg? 618 00:28:07,965 --> 00:28:09,090 Áhorfendur: Jú, svolítið. 619 00:28:09,090 --> 00:28:11,465 Pulak Goyal: Svo yfirleitt þegar þú hugsa í skilmálar af gerðum, 620 00:28:11,465 --> 00:28:15,607 það hjálpar þér að skilja hvað er tegund af verðmæti sem ætti að fara þar. 621 00:28:15,607 --> 00:28:17,940 Svo þú getur venjulega útiloka a einhver fjöldi af þessum algengar villur 622 00:28:17,940 --> 00:28:21,790 með því að hugsa í skilmálar af gerðum. 623 00:28:21,790 --> 00:28:23,612 Leyfðu mér að fara í gegnum a lítill fleiri glærur. 624 00:28:23,612 --> 00:28:26,070 Og við getum fengið spurningar á the endir af the músina kafla. 625 00:28:26,070 --> 00:28:28,910 626 00:28:28,910 --> 00:28:32,290 OK, þannig að við höfum þrjótur forrit hér. 627 00:28:32,290 --> 00:28:35,460 Og svo er anyone-- getur einhver sagt mér hvað er athugavert við þetta forrit? 628 00:28:35,460 --> 00:28:39,000 629 00:28:39,000 --> 00:28:40,820 Einmitt, svo hvað við erum búast við að gera hér 630 00:28:40,820 --> 00:28:44,520 is-- hvað við viljum gera er að taka breyta int x 631 00:28:44,520 --> 00:28:48,350 og snúa it-- gera það jafn 5 í stað 3 og þá prenta það. 632 00:28:48,350 --> 00:28:49,640 En það er ekki að gerast. 633 00:28:49,640 --> 00:28:50,950 Getur einhver sagt mér hvers vegna? 634 00:28:50,950 --> 00:28:51,934 Já? 635 00:28:51,934 --> 00:28:54,840 >> Áhorfendur: Þegar aðgerð to_five tekur x eins og það er rök, 636 00:28:54,840 --> 00:28:58,130 það tekur ekki x sjálfu sér, en í stað þess skapar afrit, A, af því. 637 00:28:58,130 --> 00:29:00,115 Og myndar starfsemi á því. 638 00:29:00,115 --> 00:29:02,614 En af því, þú ert ekki breyta verðgildi x. 639 00:29:02,614 --> 00:29:03,970 Þar sem þú ert [inaudible]. 640 00:29:03,970 --> 00:29:07,950 >> Pulak Goyal: Hægri, rétt, þannig að þegar við köllum 641 00:29:07,950 --> 00:29:10,100 virka to_five, hvað við erum að gera er að hugsa, 642 00:29:10,100 --> 00:29:12,550 gefa mér afrit af gildi að því virka. 643 00:29:12,550 --> 00:29:16,010 Það virka, þá er að fara og gera sumir meðhöndlun. 644 00:29:16,010 --> 00:29:21,260 En þegar það skilar, það er nú út umfangs the aðalæð virka hér. 645 00:29:21,260 --> 00:29:24,750 Og svo x er enn, í raun, jafnt 3, og við prentað 3. 646 00:29:24,750 --> 00:29:26,445 OK, þannig að við skulum sjá hvernig þetta gerist. 647 00:29:26,445 --> 00:29:29,430 648 00:29:29,430 --> 00:29:31,180 >> OK, þannig að það er ekkert lýst. 649 00:29:31,180 --> 00:29:34,490 Þá, hér, x er jafnt og 3. 650 00:29:34,490 --> 00:29:40,820 Og nú is-- það á stöðu tvö og tvö, er enn ekki að umfangi. 651 00:29:40,820 --> 00:29:46,790 Og nú erum við að fara til staða þrjú, þar sem nú er gert ráð fyrir gildi 3. 652 00:29:46,790 --> 00:29:49,380 Á fjórum, breyting við nú til 5. 653 00:29:49,380 --> 00:29:53,290 En nú, þegar við að hoppa til baka fimm, sem er prenta yfirlýsingu, 654 00:29:53,290 --> 00:29:55,380 a er nú út af umfangi. 655 00:29:55,380 --> 00:29:57,450 Og X er enn jafnt 3. 656 00:29:57,450 --> 00:29:59,700 Er þetta skynsamleg alla? 657 00:29:59,700 --> 00:30:03,010 OK, svo nú skulum við tala um hvernig við getum notað ábendingum til að laga þetta. 658 00:30:03,010 --> 00:30:06,140 Hefur einhver hefur einhverjar hugmyndir hvernig við gæti lagað þetta með því að nota ábendingar? 659 00:30:06,140 --> 00:30:08,710 660 00:30:08,710 --> 00:30:11,490 >> Áhorfendur: Þú tekur í int stjörnu í stað þess að int fyrir to_five. 661 00:30:11,490 --> 00:30:12,530 >> Pulak Goyal: Því miður, þú getur talað upp? 662 00:30:12,530 --> 00:30:15,266 >> Áhorfendur: Þú tekur í int stjörnu í stað þess að int fyrir to_five. 663 00:30:15,266 --> 00:30:16,140 Pulak Goyal: OK, já. 664 00:30:16,140 --> 00:30:20,250 Svo skulum pass-- stað brottför bara gildi, við skulum gefa það með tilvísun. 665 00:30:20,250 --> 00:30:21,690 Þessi nýja aðgerð, ekki satt? 666 00:30:21,690 --> 00:30:25,210 Og svo með því að hleypa heimilisfang í, við getur gert meðhöndlun á heimilisfang. 667 00:30:25,210 --> 00:30:27,400 Og svo við erum í raun og veru, í raun að breyta x. 668 00:30:27,400 --> 00:30:30,570 Svo skulum sjá hvernig það virkar. 669 00:30:30,570 --> 00:30:32,950 >> OK, svo í þessu dæmi við fastur það. 670 00:30:32,950 --> 00:30:38,000 Við höfum breytt undirskrift okkar af to_five að taka í int 671 00:30:38,000 --> 00:30:40,540 stjörnu í stað þess að vera int hér. 672 00:30:40,540 --> 00:30:45,470 Þá erum við dereference þetta a og tengja 5 til þess. 673 00:30:45,470 --> 00:30:48,090 Og nú mun þetta í raun prenta 5. 674 00:30:48,090 --> 00:30:51,960 Þannig að við skulum sjá hvernig skref vinna hér. 675 00:30:51,960 --> 00:30:55,200 >> Svo með fyrsta skrefið, það er ekkert lýst enn. 676 00:30:55,200 --> 00:31:00,140 Svo hér, með öðru þrepi, við höfum sagt x er jafnt 3, 677 00:31:00,140 --> 00:31:03,970 en er samt út af umfangi. 678 00:31:03,970 --> 00:31:08,100 Nú eftir þriðju línu, höfum við x er enn jafn þremur. 679 00:31:08,100 --> 00:31:14,150 Og nú höfum við staðist in-- hvað er geymd í er nú heimilisfang x. 680 00:31:14,150 --> 00:31:16,760 Er að skynsamleg að allir, hvernig við fengum það? 681 00:31:16,760 --> 00:31:21,470 Hægri, höfum við amper-- sem er hvernig við staðist merkið x í aðgerð 682 00:31:21,470 --> 00:31:23,040 to_five. 683 00:31:23,040 --> 00:31:30,330 Og þá í næstu línu, hvað við gerum, er við dereference a. 684 00:31:30,330 --> 00:31:36,120 >> Og með því að dereferencing a, við erum fær um að breyta gildi x 3 til 5. 685 00:31:36,120 --> 00:31:38,560 Vegna x býr á þetta netfang 0x12. 686 00:31:38,560 --> 00:31:42,440 687 00:31:42,440 --> 00:31:45,810 Og þá loks þegar við aftur til baka til main, 688 00:31:45,810 --> 00:31:50,570 þó þetta er nú út af umfang, við höfum í raun breyst x. 689 00:31:50,570 --> 00:31:51,570 Og það er 5. 690 00:31:51,570 --> 00:31:55,160 Einhverjar spurningar um þetta? 691 00:31:55,160 --> 00:31:56,036 Já? 692 00:31:56,036 --> 00:31:58,185 >> Áhorfendur: Getur þú sagt mér hvað merkið x var? 693 00:31:58,185 --> 00:32:00,004 Ég hélt merkið var eins og. 694 00:32:00,004 --> 00:32:03,480 695 00:32:03,480 --> 00:32:07,210 >> Pulak Goyal: Já, svo við notum sömu Táknið fyrir mörgum mismunandi hlutum. 696 00:32:07,210 --> 00:32:11,470 Svo hér, þegar þú have-- í þetta mál, þegar þú hefur, 697 00:32:11,470 --> 00:32:19,380 Ég guess-- þannig að í þessu tilfelli, þegar þú ert að takast á við ábendingum, 698 00:32:19,380 --> 00:32:23,640 þegar þú setur merkið framan af int, breytilegum INT, eða bleikju, 699 00:32:23,640 --> 00:32:28,609 eða flæði, hvað þú ert að segja er, gefa mér heimilisfang þessu. 700 00:32:28,609 --> 00:32:31,900 En hvað þú varst að hugsa um, þegar annað þú myndir nota merkið er, við skulum segja, 701 00:32:31,900 --> 00:32:33,180 í if yfirlýsingu. 702 00:32:33,180 --> 00:32:39,256 Þú ert sannur, og sumar breytur sem meta að einhverju Boolean, 703 00:32:39,256 --> 00:32:41,380 og nokkrar aðrar breytur að staðfesta sumir Boolean 704 00:32:41,380 --> 00:32:42,880 og þú vilt fá sem og af því. 705 00:32:42,880 --> 00:32:44,552 Síðan sem þú myndir nota merkið. 706 00:32:44,552 --> 00:32:47,510 Ræðumaður 1: Já, svo bara í dag, höfum við talaði um þrjú mismunandi notkun 707 00:32:47,510 --> 00:32:48,250 af merkið. 708 00:32:48,250 --> 00:32:51,040 Við höfum tvær -merkið, sem er hvað Pulak hefur bara lýst. 709 00:32:51,040 --> 00:32:53,420 Við höfum eina merkið sem er það Camille lýst 710 00:32:53,420 --> 00:32:54,897 fyrr, sem er eitt merkið. 711 00:32:54,897 --> 00:32:56,685 Og það er fyrir Bita OG. 712 00:32:56,685 --> 00:32:59,640 Og eftir að bæði skilyrt AND-- eða, hryggur, 713 00:32:59,640 --> 00:33:04,180 rökrétt og og Bita AND, hafa þeir tvær tölur, ekki satt? 714 00:33:04,180 --> 00:33:07,354 Það var eitthvað merkið merkið eitthvað, 715 00:33:07,354 --> 00:33:09,350 eitthvað merkið eitthvað. 716 00:33:09,350 --> 00:33:13,862 Hér, þegar við höfum bara merkið eitthvað, sem er dereferencing. 717 00:33:13,862 --> 00:33:15,830 >> Pulak Goyal: Já, mikil spurning. 718 00:33:15,830 --> 00:33:16,677 Já. 719 00:33:16,677 --> 00:33:21,150 >> Áhorfendur: Hvers vegna í línu 5a og stjörnumerkja verða N / A? 720 00:33:21,150 --> 00:33:25,520 Hvers vegna gera þeir ekki bara svona halda í sömu gildi frá fyrri línu? 721 00:33:25,520 --> 00:33:28,000 >> Pulak Goyal: Vegna við höfum lauk aðgerðina. 722 00:33:28,000 --> 00:33:30,894 Og svo hvað happens-- svo what-- nú erum við 723 00:33:30,894 --> 00:33:33,060 utan umfangs að virka, hvað gerist í raun 724 00:33:33,060 --> 00:33:37,770 er þeir eru fjarlægðir úr minni. 725 00:33:37,770 --> 00:33:38,808 Já. 726 00:33:38,808 --> 00:33:42,982 >> Áhorfendur: Milli 3 eða 4 stjörnu a er 5. 727 00:33:42,982 --> 00:33:43,690 Pulak Goyal: Já. 728 00:33:43,690 --> 00:33:45,575 Áhorfendur: Hvað þýðir það nákvæmlega tákna? 729 00:33:45,575 --> 00:33:46,950 Pulak Goyal: Hvað þýðir það? 730 00:33:46,950 --> 00:33:47,380 Áhorfendur: Já. 731 00:33:47,380 --> 00:33:49,088 Pulak Goyal: Svo Spurningin var, hvað er 732 00:33:49,088 --> 00:33:52,300 that-- hvað ert þú að gera á netinu þegar við segjum, stjarnan er jafnt og 5? 733 00:33:52,300 --> 00:33:55,210 Svo man stjörnuna á dereference rekstraraðila. 734 00:33:55,210 --> 00:33:58,640 Þannig að þegar, í þessu tilfelli, er bendi. 735 00:33:58,640 --> 00:34:00,030 Það er int stjarna. 736 00:34:00,030 --> 00:34:03,710 Svo þegar við dereference a eftir með stjörnuna, hvað við erum að segja 737 00:34:03,710 --> 00:34:11,250 er farið að hvað sem er geymd í heimilisfang, geymd í a-- svo take-- svo, 738 00:34:11,250 --> 00:34:13,280 núna er, sumir heimilisfang geyma í henni. 739 00:34:13,280 --> 00:34:19,920 Fara á hvar þessi heimilisfangi benda til, og nú breytt hvað sem er til fimm. 740 00:34:19,920 --> 00:34:20,420 Já. 741 00:34:20,420 --> 00:34:23,390 >> Áhorfendur: Getur þú sagt það í einfaldari hugtökum? 742 00:34:23,390 --> 00:34:27,360 Breyta heimilisfangi a til 5. 743 00:34:27,360 --> 00:34:31,070 >> Pulak Goyal: Við erum ekki breyta veffang til 5. 744 00:34:31,070 --> 00:34:36,340 A hefur einhverja tölu í það, sem er heimilisfang breytu af áhuga. 745 00:34:36,340 --> 00:34:39,570 Og svo það sem við erum að segja þegar við dereference er, 746 00:34:39,570 --> 00:34:42,630 nú viljum við change-- við erum nú að vísa 747 00:34:42,630 --> 00:34:45,135 áhugi breytu beint. 748 00:34:45,135 --> 00:34:48,499 Er að vit? 749 00:34:48,499 --> 00:34:52,280 >> Ræðumaður 1: Önnur leið til að hugsa af því er go-- svo er verið heimilisfang. 750 00:34:52,280 --> 00:34:55,310 Stjarnan segir fara til að heimilisfang og líta á gildi þess. 751 00:34:55,310 --> 00:34:58,000 Og nú setja gildi þess til 5. 752 00:34:58,000 --> 00:35:00,920 Svo það segir, fara í heimilisfang af x, sem 753 00:35:00,920 --> 00:35:05,720 er að fara að vera það sem er vistað í, og breyta því í 5. 754 00:35:05,720 --> 00:35:06,470 Pulak Goyal: Já? 755 00:35:06,470 --> 00:35:10,817 Áhorfendur: Svo er staða þar bendillinn er að fara, á netfangið. 756 00:35:10,817 --> 00:35:14,270 En gildi er úthlutað gildi byggt á heimilisfang. 757 00:35:14,270 --> 00:35:15,020 Pulak Goyal: Já. 758 00:35:15,020 --> 00:35:18,076 759 00:35:18,076 --> 00:35:19,367 Aðrar spurningar um þetta? 760 00:35:19,367 --> 00:35:22,774 761 00:35:22,774 --> 00:35:23,940 Áhorfendur: Ég er með spurningu. 762 00:35:23,940 --> 00:35:25,664 Pulak Goyal: Já, því miður. 763 00:35:25,664 --> 00:35:30,324 Áhorfendur: Svo þegar þú store-- svo ef þú ert að segja [inaudible] a. 764 00:35:30,324 --> 00:35:31,032 Pulak Goyal: Já. 765 00:35:31,032 --> 00:35:34,448 Áhorfendur: Þarf að geyma X merkið? 766 00:35:34,448 --> 00:35:37,376 Hvers vegna er ekki hægt að segja bara x áður int þinn [inaudible]? 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 Áhorfendur: [inaudible]. 770 00:35:42,090 --> 00:35:43,673 Pulak Goyal: er svo question-- Oh. 771 00:35:43,673 --> 00:35:47,160 772 00:35:47,160 --> 00:35:51,300 Svo spurningin er, hvers vegna er ekki hægt að we-- að virka to_five, hvers vegna getum við ekki 773 00:35:51,300 --> 00:35:52,590 bara fara x, ekki satt? 774 00:35:52,590 --> 00:35:53,570 >> Áhorfendur: Hægri. 775 00:35:53,570 --> 00:35:59,570 >> Pulak Goyal: OK, já, svo þetta aftur fer aftur til umræðu okkar um gerðum. 776 00:35:59,570 --> 00:36:06,080 Svo virka to_five er nú von á tegund INT stjörnu. 777 00:36:06,080 --> 00:36:07,660 Svo er það tegund af x? 778 00:36:07,660 --> 00:36:09,800 X er bara int. 779 00:36:09,800 --> 00:36:13,530 En hvað þessi aðgerð ráð er int stjarna. 780 00:36:13,530 --> 00:36:16,910 Svo það ráð breytu sem hefur heimilisfang geymdar í það. 781 00:36:16,910 --> 00:36:20,250 Svo er það hvernig you-- setja merkið, og svo er það 782 00:36:20,250 --> 00:36:22,560 hvernig við framhjá í heimilisfang, sem er now-- 783 00:36:22,560 --> 00:36:25,120 og að túlkar sem sem int stjarna, já. 784 00:36:25,120 --> 00:36:26,700 Frábær spurning. 785 00:36:26,700 --> 00:36:29,300 Aðrar spurningar um þetta? 786 00:36:29,300 --> 00:36:29,800 OK, flott. 787 00:36:29,800 --> 00:36:32,870 788 00:36:32,870 --> 00:36:37,020 >> OK, svo nú skulum við tala um músina tölur. 789 00:36:37,020 --> 00:36:40,050 Svo hér, bæta við og draga Ég stillir músina 790 00:36:40,050 --> 00:36:43,950 eftir i sinnum the stærð af tegund músina bæti. 791 00:36:43,950 --> 00:36:46,170 Svo skulum líta á hvernig það lítur út. 792 00:36:46,170 --> 00:36:49,640 Svo hér höfum við lýst int x jafngildir 5. 793 00:36:49,640 --> 00:36:56,120 Og nú erum við að fara að lýsa yfir músina Y, og fara í heimilisfang x þar. 794 00:36:56,120 --> 00:36:58,910 Þannig að við höfum það. 795 00:36:58,910 --> 00:37:01,005 Svo x er geymt á 0x04. 796 00:37:01,005 --> 00:37:03,960 Svo nú er y jöfn að. 797 00:37:03,960 --> 00:37:12,260 Og getur einhver sagt mér hvað þeir hugsa mun gerast þegar við gerum Y plús er 1? 798 00:37:12,260 --> 00:37:19,100 799 00:37:19,100 --> 00:37:19,771 Já? 800 00:37:19,771 --> 00:37:24,010 >> Áhorfendur: Mun það breyta til 0 sinnum 0 8? 801 00:37:24,010 --> 00:37:25,342 >> Pulak Goyal: Stærð og type-- 802 00:37:25,342 --> 00:37:27,789 >> Áhorfendur: Þú ert að flytja á netfangið. 803 00:37:27,789 --> 00:37:29,080 Pulak Goyal: Já það was-- já. 804 00:37:29,080 --> 00:37:31,130 So-- rétt. 805 00:37:31,130 --> 00:37:33,110 Svo það mun breytast til 0x08. 806 00:37:33,110 --> 00:37:38,750 Og because-- svo þú vilt nota þetta uppskrift, 1 sinnum the stærð af the músina 807 00:37:38,750 --> 00:37:42,354 og ábendingum um size-- 808 00:37:42,354 --> 00:37:44,050 >> [NEMENDUR Sextán] 809 00:37:44,050 --> 00:37:45,190 >> Pulak Goyal: Hægri. 810 00:37:45,190 --> 00:37:46,150 >> [NEMENDUR Sextán] 811 00:37:46,150 --> 00:37:49,230 >> Ræðumaður 1: Svo gerð sem The Pointer stig to-- 812 00:37:49,230 --> 00:37:51,862 >> Pulak Goyal: Er, já, já, það er 4 bæti. 813 00:37:51,862 --> 00:37:53,930 >> Ræðumaður 1: Svo ints eru 4 bytes. 814 00:37:53,930 --> 00:38:01,260 >> Pulak Goyal: Svo ef við hefðum a-- skulum segja við lýst, ég held, char. 815 00:38:01,260 --> 00:38:06,830 Hvað myndi that-- þannig að við skulum segja að við hafa Char x jafn eða eitthvað. 816 00:38:06,830 --> 00:38:14,400 Og við höfðum veffang sem á 0x04, hvað myndi Y plús jafngildir 1 gera núna? 817 00:38:14,400 --> 00:38:14,960 Því miður, hvað? 818 00:38:14,960 --> 00:38:16,099 >> Áhorfendur: 0x05. 819 00:38:16,099 --> 00:38:17,140 Pulak Goyal: 0x05, ekki satt. 820 00:38:17,140 --> 00:38:18,520 Þurfa allir að sjá það? 821 00:38:18,520 --> 00:38:20,212 OK, og nú skulum segja að það er fljóta. 822 00:38:20,212 --> 00:38:20,962 Hvað myndi gerast? 823 00:38:20,962 --> 00:38:25,210 824 00:38:25,210 --> 00:38:26,130 Einhver? 825 00:38:26,130 --> 00:38:28,066 Svo flýtur eru hversu margir bæti? 826 00:38:28,066 --> 00:38:28,860 >> Áhorfendur: 4 bytes. 827 00:38:28,860 --> 00:38:29,651 >> Pulak Goyal: Hægri. 828 00:38:29,651 --> 00:38:32,661 Svo það væri það sama og þetta. 829 00:38:32,661 --> 00:38:33,160 Cool. 830 00:38:33,160 --> 00:38:36,230 831 00:38:36,230 --> 00:38:40,180 OK, og nú skulum við tala um ábendingum og fylki. 832 00:38:40,180 --> 00:38:44,210 Svo þú sást þetta á fyrri tveimur p setur, 833 00:38:44,210 --> 00:38:48,570 þar sem við getum treat-- svo fylki og ábendingum eru ekki það sama. 834 00:38:48,570 --> 00:38:51,170 En við getum meðhöndla fylki sem ábendingum. 835 00:38:51,170 --> 00:38:55,550 Svo hér höfum við þetta fylki hér, sem hefur þrjár rifa. 836 00:38:55,550 --> 00:38:57,570 Í fyrsta slot-- vér hefur einn, tvo og þrjá. 837 00:38:57,570 --> 00:39:00,930 >> Svo ef we-- svo við getum tengt að með því að segja, við höfum fjölda, 838 00:39:00,930 --> 00:39:02,080 dereference það. 839 00:39:02,080 --> 00:39:04,579 Og svo þegar við dereference að, hvað við erum í raun að gera 840 00:39:04,579 --> 00:39:05,910 er að vísa til sama rifa. 841 00:39:05,910 --> 00:39:09,230 Svo stjörnu array jafngildir 1. 842 00:39:09,230 --> 00:39:11,020 Við could- hvernig gat við að skrifa that-- hvað er 843 00:39:11,020 --> 00:39:13,404 varamaður leið að við getum skrifað það? 844 00:39:13,404 --> 00:39:14,840 >> Áhorfendur: Array 0 jafnt 1. 845 00:39:14,840 --> 00:39:17,100 >> Pulak Goyal: Einmitt, er allir sjá að? 846 00:39:17,100 --> 00:39:18,320 Svo sama á við hér. 847 00:39:18,320 --> 00:39:24,060 Svo þegar við höfum fjölbreytta plús 1, do-- við svo even-- 848 00:39:24,060 --> 00:39:28,890 muna með tölur sem við bara talað um, þegar við gerum auk 1 849 00:39:28,890 --> 00:39:32,120 eða færa það yfir af 4 bæti, ekki satt. 850 00:39:32,120 --> 00:39:33,170 Þurfa allir að sjá það? 851 00:39:33,170 --> 00:39:35,753 Og það hlið, þegar við dereference að við getum sett það í 2. 852 00:39:35,753 --> 00:39:37,710 Og það er hvernig við setjum næstu blokk til 2. 853 00:39:37,710 --> 00:39:41,640 Og svo varamaður leið til að skrifa sem myndi einnig vera array krappi 854 00:39:41,640 --> 00:39:44,436 0 krappi er 1. 855 00:39:44,436 --> 00:39:47,070 >> Áhorfendur: Þarft þú sviga? 856 00:39:47,070 --> 00:39:50,840 >> Pulak Goyal: Já, vegna þess að þú ert dereferencing allt magn 857 00:39:50,840 --> 00:39:53,460 array auk 1. 858 00:39:53,460 --> 00:39:56,829 OK, og sama fyrir fylking plús 2. 859 00:39:56,829 --> 00:39:57,870 Einhverjar spurningar um þetta? 860 00:39:57,870 --> 00:39:58,369 Já. 861 00:39:58,369 --> 00:40:01,340 Áhorfendur: Svo er array sjálfkrafa sett á 0? 862 00:40:01,340 --> 00:40:03,054 >> Pulak Goyal: Array is-- hryggur, hvað? 863 00:40:03,054 --> 00:40:03,962 >> Áhorfendur: Array er 0. 864 00:40:03,962 --> 00:40:07,140 Heimilisfang array er bara 0. 865 00:40:07,140 --> 00:40:10,200 >> Pulak Goyal: Svo spurningin var, er heimilisfang fylkisins bara 0? 866 00:40:10,200 --> 00:40:11,950 Svo, nei, array hefur einhverja tölu. 867 00:40:11,950 --> 00:40:14,930 Svo þegar við dereference það, that's-- svo þú getur hugsa about-- 868 00:40:14,930 --> 00:40:18,230 bókstaflega eins og músina bendir að í upphafi fylki. 869 00:40:18,230 --> 00:40:19,390 Svo hefur það einhverja tölu. 870 00:40:19,390 --> 00:40:20,580 Við vitum ekki hvað það er. 871 00:40:20,580 --> 00:40:24,170 En þegar við dereference það, við vitum það er upphaf fylkisins. 872 00:40:24,170 --> 00:40:25,980 Og svo þegar við færa frá 1, við erum bara að færa 873 00:40:25,980 --> 00:40:29,090 miðað við hvar sem netfang var. 874 00:40:29,090 --> 00:40:30,480 Aðrar spurningar? 875 00:40:30,480 --> 00:40:31,419 Já? 876 00:40:31,419 --> 00:40:35,559 >> Áhorfendur: Svo ef þú gerir array krappi auk 1-- 877 00:40:35,559 --> 00:40:37,350 Pulak Goyal: Því miður, I-- gætir þú tala upp? 878 00:40:37,350 --> 00:40:41,174 Áhorfendur: Já, ef þú gerir array krappi [inaudible]. 879 00:40:41,174 --> 00:40:45,227 Svo þá ef þú setur pointer-- 880 00:40:45,227 --> 00:40:46,810 Pulak Goyal: Sorry, ég heyri ekki í þér. 881 00:40:46,810 --> 00:40:48,100 Þú getur sagt það einu sinni enn? 882 00:40:48,100 --> 00:40:49,470 >> Áhorfendur: Þú ert í lagi. 883 00:40:49,470 --> 00:40:50,870 >> Pulak Goyal: OK, því miður. 884 00:40:50,870 --> 00:40:51,420 OK, flott. 885 00:40:51,420 --> 00:40:52,200 Any-- já. 886 00:40:52,200 --> 00:40:55,710 Svo þegar þú ferð í array krappi 3-- 887 00:40:55,710 --> 00:40:56,570 >> Pulak Goyal: Já. 888 00:40:56,570 --> 00:40:59,832 >> Áhorfendur: --isn't there-- myndi ekki það að vera fjórum blettum eins og 0, 1, 2, og 3? 889 00:40:59,832 --> 00:41:02,630 Hvers vegna er það ekki int array 2? 890 00:41:02,630 --> 00:41:07,850 >> Pulak Goyal: Nei, svo bara samningur af C is-- þegar við lýsa array, 891 00:41:07,850 --> 00:41:12,010 we-- fjölda við að setja það er hversu margir rifa við viljum. 892 00:41:12,010 --> 00:41:16,970 En vísitala array eru í raun og veru array 0, array 1, og array 2. 893 00:41:16,970 --> 00:41:19,780 Svo það er bara samningur hvernig við lýsa fylki. 894 00:41:19,780 --> 00:41:20,880 Já, önnur spurningar? 895 00:41:20,880 --> 00:41:21,380 Já. 896 00:41:21,380 --> 00:41:23,750 Áhorfendur: Þannig að við erum enn tala um ábendingum, ekki satt? 897 00:41:23,750 --> 00:41:24,500 Pulak Goyal: Já. 898 00:41:24,500 --> 00:41:28,600 Áhorfendur: Gætirðu gert enn stjörnu fyrir array 0 er 1? 899 00:41:28,600 --> 00:41:32,870 Pulak Goyal: Nei, nei, so-- OK, svo spurningin var gat 900 00:41:32,870 --> 00:41:37,370 þú bara stjörnu array krappi núll, og þá segja að jöfn 1. 901 00:41:37,370 --> 00:41:40,000 Svo, nei, hvað við erum að segja hér er að við getum think-- 902 00:41:40,000 --> 00:41:42,600 við getum meðhöndla fylki sem ábendingum. 903 00:41:42,600 --> 00:41:44,970 Þannig að við have-- hvað við erum orðatiltæki er að við höfum tvær leiðir 904 00:41:44,970 --> 00:41:47,370 að nú Vísun í sama reitnum. 905 00:41:47,370 --> 00:41:52,270 Svo doing-- ef þú hefur fjölbreytta núll, tegund sem er nú int. 906 00:41:52,270 --> 00:41:55,264 Og ef þú tekur stjörnuna að þú færð ógilt hlutur. 907 00:41:55,264 --> 00:41:57,680 Svo það sem við erum að segja hér, er það eru tvær varamaður leiðir 908 00:41:57,680 --> 00:41:59,100 að vísa til sama reitnum. 909 00:41:59,100 --> 00:42:01,860 Þú getur annað hvort gert array krappi 0 er 1. 910 00:42:01,860 --> 00:42:06,420 Eða þú getur gert dereference array, og hafa að jafn 0. 911 00:42:06,420 --> 00:42:08,621 Svo bara tvær leiðir gera slíkt hið sama. 912 00:42:08,621 --> 00:42:09,120 Já. 913 00:42:09,120 --> 00:42:15,270 >> Áhorfendur: Hvers vegna er það ekki stærð int 1 til að bæta to-- 914 00:42:15,270 --> 00:42:17,650 >> Pulak Goyal: Stærð int 1. 915 00:42:17,650 --> 00:42:19,900 >> Áhorfendur: Vegna þess að það er að færa einn burt. 916 00:42:19,900 --> 00:42:23,620 >> Pulak Goyal: Vegna þess að það er bara þannig C virkar. 917 00:42:23,620 --> 00:42:26,460 Það er bara þannig bendillinn Reiknað er skilgreint. 918 00:42:26,460 --> 00:42:27,854 Það verður að taka bendilinn. 919 00:42:27,854 --> 00:42:30,020 Og þá hvað þú bæta á það, verður það margfalda það 920 00:42:30,020 --> 00:42:34,770 af stærð hvað bendillinn verslun er, já. 921 00:42:34,770 --> 00:42:35,480 Já. 922 00:42:35,480 --> 00:42:39,595 >> Áhorfendur: Svo þú segir að við getum meðhöndla ábendingum og fylki sama, 923 00:42:39,595 --> 00:42:40,720 en þeir eru öðruvísi. 924 00:42:40,720 --> 00:42:41,950 Og hvað gerir þá öðruvísi? 925 00:42:41,950 --> 00:42:45,070 Hvað getum við ekki gert með einn en ekki hinn? 926 00:42:45,070 --> 00:42:52,390 >> Pulak Goyal: Að því er varðar þessa flokki, held ég it's-- hvað you-- 927 00:42:52,390 --> 00:42:56,270 >> Ræðumaður 1: Svo we-- OK, svo, að dæmi, ef þú úthluta minni 928 00:42:56,270 --> 00:42:59,680 og þú hefur bendi heiltala, til dæmis. 929 00:42:59,680 --> 00:43:01,890 Ef þú reyndir að byrja gera bendillinn tölur 930 00:43:01,890 --> 00:43:05,890 og fara út magn af minni sem þú úthlutað, þú vilt keyra inn villur. 931 00:43:05,890 --> 00:43:08,250 Við vitum með fylki, við segja á undan sinni, OK, ég 932 00:43:08,250 --> 00:43:11,400 vilt allocate-- þessu fyrst og fremst segir, ég vil að úthluta 933 00:43:11,400 --> 00:43:13,490 nóg pláss fyrir þrjá heiltölur. 934 00:43:13,490 --> 00:43:17,820 Og svo nú getum við að meðhöndla minni eins og ef við höfum öll þrjú af þessum heiltölur. 935 00:43:17,820 --> 00:43:19,460 Er svona skynsamleg? 936 00:43:19,460 --> 00:43:22,042 >> Pulak Goyal: Já. 937 00:43:22,042 --> 00:43:22,542 Já. 938 00:43:22,542 --> 00:43:24,778 >> Áhorfendur: Svo stjarna array, er að framselja 1 939 00:43:24,778 --> 00:43:26,657 til 0 vísitölu fylkisins? 940 00:43:26,657 --> 00:43:27,365 Pulak Goyal: Já. 941 00:43:27,365 --> 00:43:31,160 942 00:43:31,160 --> 00:43:34,439 >> Áhorfendur: Svo, hvað er eftir Næstu tvær línur hvað varðar the-- I 943 00:43:34,439 --> 00:43:36,980 skilja að þú ert að reyna að nota músina tölur hér, 944 00:43:36,980 --> 00:43:39,355 en aftur, ég skil ekki hvað bendillinn tölur er. 945 00:43:39,355 --> 00:43:43,869 Svo array plús 1, þú ert að segja að þú ert nú 946 00:43:43,869 --> 00:43:47,540 fara til að vilja tala um fyrsta vísitalan í array. 947 00:43:47,540 --> 00:43:50,050 >> Pulak Goyal: Hægri og svo Ástæðan sem virkar er array, 948 00:43:50,050 --> 00:43:52,970 Hér getum við hugsað sem int stjörnu. 949 00:43:52,970 --> 00:43:56,110 Og svo þegar við músina tölur á það, man formúlu þar 950 00:43:56,110 --> 00:43:59,020 við tökum the-- ég giska hvað núverandi netfang er, 951 00:43:59,020 --> 00:44:02,100 og svo þegar við bætum 1 við það, reyndar við 952 00:44:02,100 --> 00:44:06,620 margfalda 1 með þvf að stærð hlutur sem við erum að notfæra. 953 00:44:06,620 --> 00:44:09,090 Þannig að í þessu tilfelli, the stærð af int. 954 00:44:09,090 --> 00:44:11,634 Og þá erum við að færa það senda með það mikið. 955 00:44:11,634 --> 00:44:14,419 >> Ræðumaður 1: Svo þykjast þú þarft b array stjörnu. 956 00:44:14,419 --> 00:44:15,335 Pulak Goyal: OK, já. 957 00:44:15,335 --> 00:44:16,005 Ræðumaður 1: Með hendinni. 958 00:44:16,005 --> 00:44:16,505 Fara hér. 959 00:44:16,505 --> 00:44:18,350 Pulak Goyal: Eða ég get just-- já. 960 00:44:18,350 --> 00:44:23,660 Svo here-- OK, svo array minnsta farin, er bara hérna. 961 00:44:23,660 --> 00:44:29,155 Svo þegar við dereference fylking, við vorum bara að vísa til fyrsta blokk hér. 962 00:44:29,155 --> 00:44:36,620 En nú þegar ég array auk 1, sem is-- þess ör er nú hérna. 963 00:44:36,620 --> 00:44:38,250 Er að vit? 964 00:44:38,250 --> 00:44:46,690 Rétt, því þetta blokk er af stærð int, sem er 4 bæti. 965 00:44:46,690 --> 00:44:53,540 Og svo, hvað við erum að gera er að við erum flytja hann bendilinn með 4 bæti yfir. 966 00:44:53,540 --> 00:44:56,080 Alltaf þegar við gerum tölur á það, mun það alltaf 967 00:44:56,080 --> 00:44:59,730 færa það í þrepum, um 4 bæti. 968 00:44:59,730 --> 00:45:01,902 Vegna þess að þetta er eins og int stjörnu. 969 00:45:01,902 --> 00:45:04,970 Er að skynsamleg? 970 00:45:04,970 --> 00:45:05,470 OK. 971 00:45:05,470 --> 00:45:07,770 >> Áhorfendur: Svo það sem í fylkinu voru 5 bytes, viljum við færa það 5 bytes-- 972 00:45:07,770 --> 00:45:10,853 >> Pulak Goyal: Einmitt, þannig að ef við hefðum a bleikju stjörnu, viljum við færa hana um 1 bæti aðeins. 973 00:45:10,853 --> 00:45:13,670 Svo er að ræða bleikju stjörnum, það myndi bara vera að færa það yfir í 1. 974 00:45:13,670 --> 00:45:15,420 Áhorfendur: Til að fá sem Næsta sem þú þarft stjörnu. 975 00:45:15,420 --> 00:45:18,099 Pulak Goyal: Já, já, gerir það vit? 976 00:45:18,099 --> 00:45:19,890 Ræðumaður 1: Við getum spjallað um það meira seinna. 977 00:45:19,890 --> 00:45:21,530 Pulak Goyal: Já, já, fyrir viss. 978 00:45:21,530 --> 00:45:23,214 OK, flott. 979 00:45:23,214 --> 00:45:24,630 Við skulum fara í næsta kafla. 980 00:45:24,630 --> 00:45:27,182 981 00:45:27,182 --> 00:45:28,140 Ræðumaður 1: Oh, OK flott. 982 00:45:28,140 --> 00:45:29,205 Já, það er ég. 983 00:45:29,205 --> 00:45:30,330 Allt í lagi, ógnvekjandi. 984 00:45:30,330 --> 00:45:35,064 OK, flott, svo nú erum við á smá Almennar upplýsingar um minni. 985 00:45:35,064 --> 00:45:37,730 Einnig þakka ég fyrir þá staðreynd að þeir voru að fara ansi hratt. 986 00:45:37,730 --> 00:45:40,230 Það er a einhver fjöldi af efni til að fá gegnum í klukkutíma og hálfan. 987 00:45:40,230 --> 00:45:42,880 En ef það eru einhverjar efni sem þú langar að fara meira í dýpt í, 988 00:45:42,880 --> 00:45:44,630 við erum að fara að hafa Viðtalstími í þessari viku 989 00:45:44,630 --> 00:45:46,340 þar sem þú getur spjallað við okkur einn á einn. 990 00:45:46,340 --> 00:45:49,240 Eða þú gætir bara komið upp á sem enda og við munum spjalla um hlutina. 991 00:45:49,240 --> 00:45:52,130 Og eins og alltaf, finnst að spyrja spurninga. 992 00:45:52,130 --> 00:45:52,695 Awesome. 993 00:45:52,695 --> 00:45:55,820 Svo er hér mynd af okkur af minni sem við höfum séð í fyrirlestri milljarð sinnum. 994 00:45:55,820 --> 00:45:58,610 Og við vitum að þetta stafla vex upp frá botni 995 00:45:58,610 --> 00:46:00,214 og hrúga vex niður. 996 00:46:00,214 --> 00:46:03,380 Og hvað er munurinn á milli hluti að við höldum á hrúga og hlutum 997 00:46:03,380 --> 00:46:05,981 að við höldum á mánudaginn? 998 00:46:05,981 --> 00:46:07,397 Einhver kasta eitthvað þarna úti. 999 00:46:07,397 --> 00:46:10,806 1000 00:46:10,806 --> 00:46:11,780 Já. 1001 00:46:11,780 --> 00:46:14,215 >> Áhorfendur: Er það stafla fyrir hluti sem eru bara 1002 00:46:14,215 --> 00:46:18,095 impermanent breytur sem við erum bara lýsa með tilteknum aðgerðum? 1003 00:46:18,095 --> 00:46:19,220 Ræðumaður 1: Fallegt, já. 1004 00:46:19,220 --> 00:46:23,007 Svo hvenær sem, við skulum segja að við erum í aðgerð, 1005 00:46:23,007 --> 00:46:24,590 og við verðum bara nokkrar staðbundnar breytur. 1006 00:46:24,590 --> 00:46:26,214 Þeir eru að fara að enda upp á mánudaginn. 1007 00:46:26,214 --> 00:46:30,020 Ef í staðinn, við köllum malloc og í raun tekið frá minni, 1008 00:46:30,020 --> 00:46:32,290 sem alltaf kemur frá hrúga. 1009 00:46:32,290 --> 00:46:35,100 Svo, já Cool? 1010 00:46:35,100 --> 00:46:38,672 >> Og svo muna að allir minni að þú úthluta nota malloc, 1011 00:46:38,672 --> 00:46:40,130 það er að fara að enda upp á vegg. 1012 00:46:40,130 --> 00:46:42,019 Og ef þú gleymir að frjáls það, the tölva ' 1013 00:46:42,019 --> 00:46:43,810 ekki að fara að vita að þú ert búinn með það. 1014 00:46:43,810 --> 00:46:45,560 Svo það er bara að fara að hanga þarna úti í minni. 1015 00:46:45,560 --> 00:46:47,412 Og þú ert í raun leka að minni. 1016 00:46:47,412 --> 00:46:48,120 Þú ert að missa það. 1017 00:46:48,120 --> 00:46:51,840 Þar sem þú aldrei sagt tölvuna, hey ég er búin að nota það, ekki hika við að nota, 1018 00:46:51,840 --> 00:46:53,632 setja aðra hluti þar. 1019 00:46:53,632 --> 00:46:54,470 Cool. 1020 00:46:54,470 --> 00:46:55,928 Einhverjar spurningar þar? 1021 00:46:55,928 --> 00:46:56,428 Já. 1022 00:46:56,428 --> 00:46:58,808 >> Áhorfendur: Svo hvers konar af minni er stafla? 1023 00:46:58,808 --> 00:46:59,974 Non dynamic fæða, falið? 1024 00:46:59,974 --> 00:47:01,200 Hvað myndir þú kalla það? 1025 00:47:01,200 --> 00:47:03,870 >> Ræðumaður 1: Jú, svo þú gætir hugsa um það sem staðbundnar breytur. 1026 00:47:03,870 --> 00:47:10,137 Raunveruleg símtöl til aðgerða eru að fara að stafla upp. 1027 00:47:10,137 --> 00:47:10,720 Eitthvað annað? 1028 00:47:10,720 --> 00:47:11,220 Já? 1029 00:47:11,220 --> 00:47:14,627 Áhorfendur: Hvernig getur þú frjáls minni þú bætt the-- 1030 00:47:14,627 --> 00:47:17,710 Ræðumaður 1: Jú, þannig að þegar þú skiptir minni á hrúga, kalla þú malloc. 1031 00:47:17,710 --> 00:47:20,543 Og svo þá sem gefur þér aftur a bendillinn að einhverju heimilisfangi í minni. 1032 00:47:20,543 --> 00:47:22,630 Svo segir þú heitir sá músina, ekki satt? 1033 00:47:22,630 --> 00:47:24,970 Þá, þú segir bara frjáls músina. 1034 00:47:24,970 --> 00:47:27,351 Og sem frjáls minni. 1035 00:47:27,351 --> 00:47:27,850 Cool. 1036 00:47:27,850 --> 00:47:28,660 Aðrar spurningar? 1037 00:47:28,660 --> 00:47:28,880 Já. 1038 00:47:28,880 --> 00:47:30,838 >> Áhorfendur: Hvað virk úthlutað meina? 1039 00:47:30,838 --> 00:47:32,345 1040 00:47:32,345 --> 00:47:35,381 >> Ræðumaður 1: Breytilega úthlutað þýðir, í tengslum við áætlun þína. 1041 00:47:35,381 --> 00:47:37,630 Svo þegar þú hringir malloc í um miðja program, 1042 00:47:37,630 --> 00:47:40,510 í upphafi áætlunarinnar, það er ekkert minni úthlutað. 1043 00:47:40,510 --> 00:47:42,600 Og eins og the tölva skref í gegnum það númer, 1044 00:47:42,600 --> 00:47:44,280 það er að fara að úthluta minni. 1045 00:47:44,280 --> 00:47:46,507 Svo er það sem er átt við með breytilega. 1046 00:47:46,507 --> 00:47:47,090 Góð spurning. 1047 00:47:47,090 --> 00:47:48,309 Já? 1048 00:47:48,309 --> 00:47:50,809 Áhorfendur: Þegar þú skilgreinir array með hornklofum, 1049 00:47:50,809 --> 00:47:54,154 gerir það enn [inaudible]? 1050 00:47:54,154 --> 00:47:55,570 Ræðumaður 1: Það er góð spurning. 1051 00:47:55,570 --> 00:48:00,320 Ég held að þegar þú skiptir fylki, það setur í raun það á mánudaginn. 1052 00:48:00,320 --> 00:48:03,008 Ég er ekki jákvæð um að svo ekki vitna í mig. 1053 00:48:03,008 --> 00:48:04,430 >> Ræðumaður 2: Ég held it-- já það setur það á mánudaginn. 1054 00:48:04,430 --> 00:48:05,763 >> Ræðumaður 1: Setur það á mánudaginn. 1055 00:48:05,763 --> 00:48:07,044 OK, flott, staðfest. 1056 00:48:07,044 --> 00:48:07,710 Aðrar spurningar? 1057 00:48:07,710 --> 00:48:08,030 Já? 1058 00:48:08,030 --> 00:48:10,946 >> Áhorfendur: Þegar þú fela malloc, er ekki tölva á sjálfvirkan hátt 1059 00:48:10,946 --> 00:48:12,910 úthluta minni fyrir breytur þínar? 1060 00:48:12,910 --> 00:48:14,660 Ræðumaður 1: Já, fyrir staðbundnar breytur þínar, 1061 00:48:14,660 --> 00:48:16,724 það setur sjálfkrafa minni á mánudaginn. 1062 00:48:16,724 --> 00:48:18,640 Áhorfendur: Svo er það benda á að nota malloc? 1063 00:48:18,640 --> 00:48:19,840 Ræðumaður 1: Hvað er benda á að nota malloc? 1064 00:48:19,840 --> 00:48:22,850 Þannig að við sáum fullt af dæmum, eins og, til dæmis, með því að nota skipti, 1065 00:48:22,850 --> 00:48:25,690 þar sem við viljum umfang breytan að vera eitthvað 1066 00:48:25,690 --> 00:48:27,940 út bara virka símtalinu hennar. 1067 00:48:27,940 --> 00:48:29,875 Og við viljum eitthvað sem við getum framhjá um 1068 00:48:29,875 --> 00:48:31,750 og að við getum nálgast frá mismunandi stöðum. 1069 00:48:31,750 --> 00:48:33,791 Það er þar sem við myndum vilja að setja minni á hrúga. 1070 00:48:33,791 --> 00:48:37,835 Svo að allir þessir mismunandi aðgerðir geta nálgast það. 1071 00:48:37,835 --> 00:48:40,510 >> Áhorfendur: Geturðu útskýrt bara það? 1072 00:48:40,510 --> 00:48:44,770 >> Ræðumaður 1: Svo is-- einn valkostur svo Spurningin var, getum við allocate-- bara 1073 00:48:44,770 --> 00:48:47,660 Því miður getum við lýsa yfir global breyta, í raun. 1074 00:48:47,660 --> 00:48:48,560 Það er einn kostur. 1075 00:48:48,560 --> 00:48:50,893 En með fullt af þeim, þá tilhneigingu til að fá raunverulega sóðalegur. 1076 00:48:50,893 --> 00:48:52,847 Og við teljum almennt þess sem slæmt hönnun. 1077 00:48:52,847 --> 00:48:53,821 Já. 1078 00:48:53,821 --> 00:48:56,580 Cool, einhverjar aðrar spurningar? 1079 00:48:56,580 --> 00:48:57,140 Awesome. 1080 00:48:57,140 --> 00:48:58,789 OK, færa á. 1081 00:48:58,789 --> 00:49:00,580 Svo þetta er í raun hvernig við úthluta minni. 1082 00:49:00,580 --> 00:49:02,670 Við töluðum um þetta smá. 1083 00:49:02,670 --> 00:49:04,240 Við notum þessa aðgerð sem kallast malloc. 1084 00:49:04,240 --> 00:49:07,850 Og þú segir það hversu margir bæti minni, svo hversu margir bæti á hrúga, 1085 00:49:07,850 --> 00:49:08,610 þú vilt. 1086 00:49:08,610 --> 00:49:13,120 Og það er að fara að skila heimilisfang, svo bendi, a stykki af minni 1087 00:49:13,120 --> 00:49:14,500 að það er úthlutað fyrir þig. 1088 00:49:14,500 --> 00:49:17,080 Svo tegund er að fara að vera ógilt stjarna. 1089 00:49:17,080 --> 00:49:21,310 Það er að fara til vera a bendi hvað sem þú ákveður að setja í það. 1090 00:49:21,310 --> 00:49:23,530 Hvenær þú hringir malloc, sagði við nú þegar 1091 00:49:23,530 --> 00:49:25,640 þú þarft að losa hana svo við hafa ekki minni lekur. 1092 00:49:25,640 --> 00:49:27,170 >> Hvað er annar hlutur að þú algerlega 1093 00:49:27,170 --> 00:49:29,185 þarft að gera á hverjum einasta skipti sem þú hringja malloc? 1094 00:49:29,185 --> 00:49:31,210 1095 00:49:31,210 --> 00:49:32,210 OK, þú þarft að losa það. 1096 00:49:32,210 --> 00:49:34,010 Hvað er annar hlutur? 1097 00:49:34,010 --> 00:49:35,890 Athugaðu for null, falleg. 1098 00:49:35,890 --> 00:49:38,850 Svo, já, það er rétt þar upp á borðinu. 1099 00:49:38,850 --> 00:49:42,120 Ef þú vilt reyna að úthluta minni og þú hefur ekkert minni eftir, 1100 00:49:42,120 --> 00:49:44,940 tölvan er að fara að segja, Ég hef ekkert að gefa þér. 1101 00:49:44,940 --> 00:49:47,650 Og það gefur þér aftur null. 1102 00:49:47,650 --> 00:49:48,400 Spurningar um það? 1103 00:49:48,400 --> 00:49:49,290 Já. 1104 00:49:49,290 --> 00:49:52,995 >> Áhorfendur: Hvers vegna vildi þú vilt alltaf að lýsa bendi með ákveðna tegund 1105 00:49:52,995 --> 00:49:56,329 þegar ógilt stjörnu ræður allt músina tegundir allavegna? 1106 00:49:56,329 --> 00:49:57,370 Ræðumaður 1: Góð spurning. 1107 00:49:57,370 --> 00:50:00,590 Hvers vegna ættum við að segja int stjörnuna öfugt við ógilda stjörnuna 1108 00:50:00,590 --> 00:50:03,740 þegar ógilt stjörnu ræður öllu? 1109 00:50:03,740 --> 00:50:06,390 Þannig að við viljum ekki að alltaf sérstaklega kastað ábendingum. 1110 00:50:06,390 --> 00:50:07,940 Það er bara slæmt æfa. 1111 00:50:07,940 --> 00:50:11,850 En við munum tala um int stjörnur bara sem skilning á, 1112 00:50:11,850 --> 00:50:14,195 þetta er bendi heiltala. 1113 00:50:14,195 --> 00:50:14,850 >> Áhorfendur: OK. 1114 00:50:14,850 --> 00:50:17,558 >> Ræðumaður 1: Já, gerir og það þú þarft að vinna gildin í það 1115 00:50:17,558 --> 00:50:18,667 sem heiltölur. 1116 00:50:18,667 --> 00:50:20,008 >> Áhorfendur: Oh, OK. 1117 00:50:20,008 --> 00:50:22,250 Og tóm stjörnu myndi ekki láta þig gera það? 1118 00:50:22,250 --> 00:50:25,070 >> Ræðumaður 1: Það veltur á samhengi Já, svo ekki hafa áhyggjur 1119 00:50:25,070 --> 00:50:28,460 ekki hafa áhyggjur of mikið um gerð þar. 1120 00:50:28,460 --> 00:50:32,620 Bara veit að almennt, malloc skilar bendi á eitthvað. 1121 00:50:32,620 --> 00:50:33,520 Góð spurning. 1122 00:50:33,520 --> 00:50:37,260 >> Áhorfendur: Hví margfalda það sinnum 10? [Inaudible]. 1123 00:50:37,260 --> 00:50:40,150 >> Ræðumaður 1: Jú, þannig að ég var bara gera handahófi dæmi hér þar 1124 00:50:40,150 --> 00:50:42,840 Mig langaði til að úthluta nóg Herbergi til að geyma 10 heiltölur. 1125 00:50:42,840 --> 00:50:44,320 Bara af handahófi val. 1126 00:50:44,320 --> 00:50:45,250 Já. 1127 00:50:45,250 --> 00:50:45,440 Já, hvað er uppi? 1128 00:50:45,440 --> 00:50:47,440 >> Áhorfendur: Hvað finnst þér meina með því að haka for null? 1129 00:50:47,440 --> 00:50:51,351 Ert þú vilt að athuga bendillinn for null eða malloc? 1130 00:50:51,351 --> 00:50:52,350 Ræðumaður 1: Já, einmitt. 1131 00:50:52,350 --> 00:50:54,599 Svo spurningin var, hvað er átt við með því að stöðva með null? 1132 00:50:54,599 --> 00:50:57,880 Við viljum to-- hvenær við köllum malloc og við erum að skila bendi, 1133 00:50:57,880 --> 00:51:01,110 við viljum að segja, er bendillinn jafnt null? 1134 00:51:01,110 --> 00:51:02,610 Svo bókstaflega PTR. 1135 00:51:02,610 --> 00:51:05,620 Er PTR jafnt null. 1136 00:51:05,620 --> 00:51:06,958 Já. 1137 00:51:06,958 --> 00:51:08,832 Áhorfendur: Svo var ég góður að velta fyrir mér, ef þú 1138 00:51:08,832 --> 00:51:14,013 frumstilla músina í malloc, er það benda til byrjun malloc? 1139 00:51:14,013 --> 00:51:15,097 Vegna þess að ef það er array-- 1140 00:51:15,097 --> 00:51:16,554 Ræðumaður 1: Það er frábær spurning. 1141 00:51:16,554 --> 00:51:19,200 Já, ef þú kallar malloc er bendillinn að it-- skulum segja, 1142 00:51:19,200 --> 00:51:21,700 svo hér við úthluta 10 bæti af minni. 1143 00:51:21,700 --> 00:51:23,830 Svo, ég er hryggur, nóg Herbergi fyrir 10 heiltölur 1144 00:51:23,830 --> 00:51:28,220 við erum að fara að fá veffang sem fyrst stykki af minni. 1145 00:51:28,220 --> 00:51:29,880 Það er góð spurning. 1146 00:51:29,880 --> 00:51:30,481 Já. 1147 00:51:30,481 --> 00:51:34,810 >> Áhorfendur: með því að úthluta 10 útbreidd heiltölur, 1148 00:51:34,810 --> 00:51:38,177 væri hægt að nota í raun það bendillinn eins like-- nánast 1149 00:51:38,177 --> 00:51:39,372 eins fjölda heiltalna? 1150 00:51:39,372 --> 00:51:41,830 Ræðumaður 1: Já, svo getur þú nota það sem fjölda heiltalna? 1151 00:51:41,830 --> 00:51:45,970 Já, einmitt, þetta er það sem Pulak bara sýndi þú on-- par renna síðan, 1152 00:51:45,970 --> 00:51:48,680 þar sem við segjum, OK, þetta er í raun bara svona of-- við 1153 00:51:48,680 --> 00:51:50,805 er að hugsa um það sem array af 10 heiltölur. 1154 00:51:50,805 --> 00:51:52,222 Það gerist bara að vera á hrúga. 1155 00:51:52,222 --> 00:51:54,971 Áhorfendur: En þú getur ekki aðgang það með veldi krappi tákn? 1156 00:51:54,971 --> 00:51:58,220 Ræðumaður 1: Þú í raun gæti nálgast það með veldi krappi merki, já. 1157 00:51:58,220 --> 00:52:00,221 Þú getur meðhöndla þeim sömu. 1158 00:52:00,221 --> 00:52:00,720 Já. 1159 00:52:00,720 --> 00:52:02,420 >> Áhorfendur: Hvers vegna vildi Pointer alltaf vera null? 1160 00:52:02,420 --> 00:52:04,170 >> Ræðumaður 1: Hvers vegna vildi Pointer alltaf vera null? 1161 00:52:04,170 --> 00:52:06,570 Ef þú ætlar að nota upp alla minni á hrúga þinn. 1162 00:52:06,570 --> 00:52:09,141 Ef forrit er að borða upp, borða upp, borða upp minni, 1163 00:52:09,141 --> 00:52:11,890 og það er ekkert eftir, þá malloc er að fara að say-- ef þú segir, 1164 00:52:11,890 --> 00:52:14,760 Ég vil 100 fleiri bytes, það er að fara að segja, að ég hef ekki 100 bæti. 1165 00:52:14,760 --> 00:52:15,740 Hér er null. 1166 00:52:15,740 --> 00:52:18,780 Það þýðir, ekki ég. 1167 00:52:18,780 --> 00:52:20,516 Já. 1168 00:52:20,516 --> 00:52:22,830 >> Áhorfendur: Í því tilviki, null er ekkert, ekki satt? 1169 00:52:22,830 --> 00:52:24,110 >> Ræðumaður 1: Já, af því að ræða, null er ekkert. 1170 00:52:24,110 --> 00:52:24,943 Þú hefur enga tölu. 1171 00:52:24,943 --> 00:52:28,065 Það er ekkert minni. 1172 00:52:28,065 --> 00:52:31,500 Allt í lagi, að flytja á. 1173 00:52:31,500 --> 00:52:34,976 OK, við skulum tala mjög hratt um yfirflæði. 1174 00:52:34,976 --> 00:52:38,210 Hvenær gæti við lendum biðminni flæða? 1175 00:52:38,210 --> 00:52:42,980 Segjum að við höfum a-- vér úthluta klumpur af minni, 1176 00:52:42,980 --> 00:52:44,720 og við erum að fara að skrifa band í. 1177 00:52:44,720 --> 00:52:47,240 Og við erum að fara að segja, OK, ég er að fara að úthluta 1178 00:52:47,240 --> 00:52:49,320 nóg pláss fyrir sex stafir. 1179 00:52:49,320 --> 00:52:51,680 Og ég ætla að biðja notandi fyrir sumir inntak. 1180 00:52:51,680 --> 00:52:54,470 Og notandinn inntak, td halló. 1181 00:52:54,470 --> 00:52:56,430 Og það passar fullkomlega fínt vegna þess að við höfum 1182 00:52:56,430 --> 00:53:00,790 Herbergi fyrir alla stafina halló, og null afsluttet staf. 1183 00:53:00,790 --> 00:53:02,840 Nóg pláss, ekkert vandamál. 1184 00:53:02,840 --> 00:53:08,010 >> En hvað ef við gefum tækifæri fyrir illur notandi til að nota kerfið okkar, 1185 00:53:08,010 --> 00:53:13,152 og þeir slá í ekki sex stafi, eða ekki fimm stafir, en milljón. 1186 00:53:13,152 --> 00:53:15,860 Þeir halda að skrifa, og vélritun, og vélritun, hvað er að fara að gerast? 1187 00:53:15,860 --> 00:53:18,220 Jæja við gefum aðeins tölva enough-- eða hryggur, 1188 00:53:18,220 --> 00:53:23,350 við gáfum aðeins þetta band nóg pláss fyrir 5 stafi. 1189 00:53:23,350 --> 00:53:28,300 Svo erum við að fara að fá eitthvað eins og þetta, þar sem illa sá sem er 1190 00:53:28,300 --> 00:53:31,750 slá inn í inntak getur skrifa the stærð af the buffer, 1191 00:53:31,750 --> 00:53:35,922 og getur farið í raun framhjá upphæð að það er upphaflega úthlutað. 1192 00:53:35,922 --> 00:53:38,380 Og þá hvað þú getur gert, sem raunverulega illt sem þú getur gert, 1193 00:53:38,380 --> 00:53:40,260 er skrifa aftur heimilisfang. 1194 00:53:40,260 --> 00:53:42,010 Sem í grundvallaratriðum þýðir þú getur konar tekið 1195 00:53:42,010 --> 00:53:45,110 stjórn á hegðun forritsins. 1196 00:53:45,110 --> 00:53:47,880 Svo á mjög háu stigi biðminni flæða er þegar 1197 00:53:47,880 --> 00:53:49,960 þú úthluta talsverða minni. 1198 00:53:49,960 --> 00:53:53,060 Og þá you-- þetta vegna þess að þú ert taka notandi inntak eða eitthvað 1199 00:53:53,060 --> 00:53:57,190 eins that-- þú ferð yfir mörk af því sem þú hefur upphaflega úthlutað 1200 00:53:57,190 --> 00:53:59,955 og byrja að Messías upp program. 1201 00:53:59,955 --> 00:54:00,455 Já? 1202 00:54:00,455 --> 00:54:03,220 >> Áhorfendur: Hvers vegna vildi það ekki bara skila skiptingu kenna? 1203 00:54:03,220 --> 00:54:05,594 >> Ræðumaður 1: Hvers vegna vildi ekki að skila skiptingu kenna? 1204 00:54:05,594 --> 00:54:06,570 Það gæti. 1205 00:54:06,570 --> 00:54:10,030 Stundum þýðanda eða á meðan einn af afturkreistingur þinn 1206 00:54:10,030 --> 00:54:11,430 er í raun að fara að athuga þetta. 1207 00:54:11,430 --> 00:54:13,890 Ef ákveðnar hlutir gerast, og þetta er góður af neðri hæð, 1208 00:54:13,890 --> 00:54:15,610 þá þarftu að vita. 1209 00:54:15,610 --> 00:54:18,820 En ef þú hannar ekki Þessi kerfi almennilega, 1210 00:54:18,820 --> 00:54:21,170 þá hefur þú tækifæri á ekki smitandi það og bara 1211 00:54:21,170 --> 00:54:24,844 leyfa tölvuna take-- á illt manneskja til að stjórna tölvunni. 1212 00:54:24,844 --> 00:54:25,344 Já. 1213 00:54:25,344 --> 00:54:26,260 >> Áhorfendur: [inaudible]? 1214 00:54:26,260 --> 00:54:28,934 1215 00:54:28,934 --> 00:54:29,600 Ræðumaður 1: Jú. 1216 00:54:29,600 --> 00:54:33,800 Oh, þegar ég segi biðminni, ég meina bara magn af minni sem þú hefur úthlutað. 1217 00:54:33,800 --> 00:54:39,090 Svo hér sagði ég, ó, við höfum úthlutað sex char-- nóg pláss fyrir sex stafir. 1218 00:54:39,090 --> 00:54:42,880 Og ég kalla bara að dúa minn þar sem ég gæti skrifað upplýsingar. 1219 00:54:42,880 --> 00:54:44,390 Já. 1220 00:54:44,390 --> 00:54:46,791 Aðrar spurningar um þetta? 1221 00:54:46,791 --> 00:54:47,290 Já. 1222 00:54:47,290 --> 00:54:49,150 >> Áhorfendur: Hvernig stöðva það? 1223 00:54:49,150 --> 00:54:50,274 Hvernig heldur þú að stöðva það? 1224 00:54:50,274 --> 00:54:51,440 Ræðumaður 1: Awesome spurning. 1225 00:54:51,440 --> 00:54:52,240 Hvernig heldur þú að stöðva það? 1226 00:54:52,240 --> 00:54:54,110 Hvernig heldur þú að koma í veg fyrir biðminni flæða? 1227 00:54:54,110 --> 00:54:59,160 Og ein leið til að gera það er eitthvað eins og GetString, þar sem við auka stöðugt 1228 00:54:59,160 --> 00:55:03,200 magn af minni sem við úthluta ef notandi slær inn mikið af texta. 1229 00:55:03,200 --> 00:55:07,570 Annar hlutur er, ef þér aðeins vilt sex stafi, gera a fljótur stöðva. 1230 00:55:07,570 --> 00:55:11,220 Segja aðeins inntak sex stafi. 1231 00:55:11,220 --> 00:55:12,444 Já. 1232 00:55:12,444 --> 00:55:14,360 Svo skulum segja að þú værir vinna on-- við erum að fara 1233 00:55:14,360 --> 00:55:16,985 að fara á heimasíðuna efni svolítið síðar í course-- en við skulum 1234 00:55:16,985 --> 00:55:21,422 segja að þú ert að vinna á því formi, að þú myndir bara takmarkað hversu mikið væri afhent í. 1235 00:55:21,422 --> 00:55:22,378 Já. 1236 00:55:22,378 --> 00:55:24,768 >> Áhorfendur: GetString togar minnið stafla, ekki satt? 1237 00:55:24,768 --> 00:55:25,444 Bara til að skýra? 1238 00:55:25,444 --> 00:55:26,485 Ræðumaður 1: Eitt sinn? 1239 00:55:26,485 --> 00:55:28,400 Áhorfendur: Er GetString taka minni úr stafla? 1240 00:55:28,400 --> 00:55:31,210 Ræðumaður 1: Ég trúi Getm-- Fá INT tekur minni frá hrúga 1241 00:55:31,210 --> 00:55:32,911 vegna þess að það kallar Alloc. 1242 00:55:32,911 --> 00:55:33,452 Áhorfendur: Oh. 1243 00:55:33,452 --> 00:55:33,951 OK. 1244 00:55:33,951 --> 00:55:35,750 Ræðumaður 1: Já, malloc og realloc. 1245 00:55:35,750 --> 00:55:37,120 Aðrar spurningar? 1246 00:55:37,120 --> 00:55:37,803 Já. 1247 00:55:37,803 --> 00:55:40,650 >> Áhorfendur: Svo með því að skilgreina the stærð af the höggdeyfir, 1248 00:55:40,650 --> 00:55:42,733 þú komið í veg einhver frá vera fær um að sprauta kóða 1249 00:55:42,733 --> 00:55:45,700 sem geta renna framhjá [inaudible]. 1250 00:55:45,700 --> 00:55:48,130 >> Ræðumaður 1: Svo með því að skilgreina the stærð af the buffer, 1251 00:55:48,130 --> 00:55:50,760 þú hefur sagt, OK hér er hvernig mikið minni við getum notað. 1252 00:55:50,760 --> 00:55:55,550 Ef þú leyfa notanda að skrifa yfir það, þá þú ert að fara að keyra inn í vandamál. 1253 00:55:55,550 --> 00:55:57,930 Meikar sens. 1254 00:55:57,930 --> 00:55:59,370 Awesome. 1255 00:55:59,370 --> 00:56:00,640 Við skulum fara eftir. 1256 00:56:00,640 --> 00:56:02,320 Allt í lagi. 1257 00:56:02,320 --> 00:56:06,652 Talandi um villur, eru hér nokkrar algengar villuskilaboð 1258 00:56:06,652 --> 00:56:09,860 sem gæti hafa sýnt upp á meðan þú varst erfðaskrá, að vinna á vandamál setur þínum. 1259 00:56:09,860 --> 00:56:12,320 Gott tækifæri til þess að einn af þetta sýnir sig á spurningakeppni 1260 00:56:12,320 --> 00:56:15,090 ef undanförnum árum eru engar vísbendingar. 1261 00:56:15,090 --> 00:56:17,580 Svo eru svör konar upp hér á borðinu. 1262 00:56:17,580 --> 00:56:19,510 En ekki hika við að hrópa út meira. 1263 00:56:19,510 --> 00:56:21,280 >> Hvers vegna gæti a skiptingu kenna gerast? 1264 00:56:21,280 --> 00:56:24,279 Hvers vegna gætir þú fengið skiptingu kenna þegar þú ert að keyra forritið þitt? 1265 00:56:24,279 --> 00:56:26,760 1266 00:56:26,760 --> 00:56:28,230 >> Áhorfendur: [inaudible]. 1267 00:56:28,230 --> 00:56:29,500 >> Ræðumaður 1: Good. 1268 00:56:29,500 --> 00:56:32,820 Já, ef við reynum að nálgast minni sem er ekki gefið okkur. 1269 00:56:32,820 --> 00:56:34,610 Ef við dereference núll músina. 1270 00:56:34,610 --> 00:56:38,610 Til dæmis, ef við köllum malloc, og gleyma að athuga hvort það er null, 1271 00:56:38,610 --> 00:56:42,250 og við reynum bara að nota það, tölvan er að fara að gefa okkur skiptingu kenna. 1272 00:56:42,250 --> 00:56:42,750 Good. 1273 00:56:42,750 --> 00:56:46,680 Hvað um óbeina yfirlýsing um virka? 1274 00:56:46,680 --> 00:56:48,589 Hvað þýðir það? 1275 00:56:48,589 --> 00:56:51,380 Áhorfendur: Þú ert að reyna að nota virka sem þú hefur ekki skilgreint. 1276 00:56:51,380 --> 00:56:52,130 Ræðumaður 1: Good. 1277 00:56:52,130 --> 00:56:54,504 Þú ert að reyna að nota virka sem þú hefur ekki skilgreint. 1278 00:56:54,504 --> 00:56:56,000 Svo sem gæti verið eitt af tvennu. 1279 00:56:56,000 --> 00:56:59,320 Kannski var það eins og td Camille sýndi þér áðan. 1280 00:56:59,320 --> 00:57:02,330 Og þú ert með helstu hlutverk sem kallar eitthvað sem heitir teningur. 1281 00:57:02,330 --> 00:57:04,371 Og við skulum segja að þú hafir gleymt að skrifa þetta frumgerð. 1282 00:57:04,371 --> 00:57:07,540 Þú hefur gleymt að segja, hey tölva, Ég hef þetta virka kallast teningur. 1283 00:57:07,540 --> 00:57:09,380 Þú munt sjá það seinna. 1284 00:57:09,380 --> 00:57:12,440 Segjum að þú hafir gleymt að skrifa frumgerð, þú might fá þessa villu. 1285 00:57:12,440 --> 00:57:14,820 Annar hlutur er, segjum þú reynt að nota printf, 1286 00:57:14,820 --> 00:57:16,880 og gleymdi að fela staðall bókasafn, 1287 00:57:16,880 --> 00:57:20,240 þá er að fara að segja óbeina yfirlýsing um virka. 1288 00:57:20,240 --> 00:57:22,800 Og síðast en ekki síst, óskilgreinda auðkenni. 1289 00:57:22,800 --> 00:57:23,300 Já. 1290 00:57:23,300 --> 00:57:24,841 >> Áhorfendur: Þú hefur got a vandamál svigrúm. 1291 00:57:24,841 --> 00:57:28,728 Eins og kannski þú ert að reyna að kalla á staðnum breytu sem er 1292 00:57:28,728 --> 00:57:30,884 í öðru konar svæði. 1293 00:57:30,884 --> 00:57:33,550 Ræðumaður 1: Great, þannig að ef þú ert með breyta sem er ekki í umfangi, 1294 00:57:33,550 --> 00:57:36,890 og þú ert að reyna að nota það, þú ert að fara að fá í vandræðum. 1295 00:57:36,890 --> 00:57:40,960 Og bara almennt, við skulum segja þú reynir að setja x, með sífellt segja int 1296 00:57:40,960 --> 00:57:45,140 x er jafnt 5, þá þú ert að fara að keyra inn í vandræði. 1297 00:57:45,140 --> 00:57:47,640 Afsakið mig, spurningar um þetta? 1298 00:57:47,640 --> 00:57:49,330 Awesome, chugging rétt eftir. 1299 00:57:49,330 --> 00:57:55,692 >> OK, endurkvæmni, hvers vegna might-- skulum see-- Ég missti minn sch-- ó hér við fara, 1300 00:57:55,692 --> 00:57:57,400 bara vera viss um að við erum gróflega á áætlun. 1301 00:57:57,400 --> 00:57:59,060 Allt í lagi, flott. 1302 00:57:59,060 --> 00:58:03,150 OK, endurkvæmni, almenn hugmynd af endurkvæmni, endurkvæma virka 1303 00:58:03,150 --> 00:58:05,380 er fall sem kallar sig. 1304 00:58:05,380 --> 00:58:08,170 OK, svo það er það sem ég meina með a program hugtak 1305 00:58:08,170 --> 00:58:11,130 þar fall kallar sig. 1306 00:58:11,130 --> 00:58:16,210 Hvað væri some-- hvað er Góð ástæða til að nota endurkvæmni? 1307 00:58:16,210 --> 00:58:17,550 Hvenær gæti verið gagnlegt? 1308 00:58:17,550 --> 00:58:20,926 Eða hvaða forrit sem raunverulega lánar sig til endurkvæmni? 1309 00:58:20,926 --> 00:58:22,330 >> Áhorfendur: Binary leit. 1310 00:58:22,330 --> 00:58:25,500 >> Ræðumaður 1: Binary leit lánar sig til endurkvæmni, 1311 00:58:25,500 --> 00:58:29,060 vegna þess að þú hefur þetta vandamál sem þú hægt að brjóta niður í smærri bita, 1312 00:58:29,060 --> 00:58:32,330 og stöðugt framkvæma sama reiknirit á það. 1313 00:58:32,330 --> 00:58:37,790 Þetta leiðir til, í mörgum tilvikum, meira glæsilegur kóða sem er nákvæmari. 1314 00:58:37,790 --> 00:58:40,500 Við erum bara dæmi af tvöfaldur leit. 1315 00:58:40,500 --> 00:58:43,100 Annað dæmi er Mergesort. 1316 00:58:43,100 --> 00:58:45,920 Stundum, þegar þú hugsar um reiknirit, eins Hrópmerkt, 1317 00:58:45,920 --> 00:58:47,410 mér finnst bara endurkvæma, ekki satt? 1318 00:58:47,410 --> 00:58:52,440 Þar sem við vitum að þáttatilraun af 5 er Factorial 4 sinnum 5. 1319 00:58:52,440 --> 00:58:56,080 Og svo þegar þú setur upp vandamál þannig, finnst það bara endurkvæma. 1320 00:58:56,080 --> 00:58:58,530 Svo það væri frábær leið til að skrifa það. 1321 00:58:58,530 --> 00:58:59,425 Spurningar? 1322 00:58:59,425 --> 00:59:00,395 Já. 1323 00:59:00,395 --> 00:59:01,850 >> Áhorfendur: Hvað er stöð málið? 1324 00:59:01,850 --> 00:59:02,770 >> Ræðumaður 1: Oh hvað er stöð málið? 1325 00:59:02,770 --> 00:59:04,680 Ég sagði, ekki gleyma að fela grunn mál. 1326 00:59:04,680 --> 00:59:07,690 Segjum að við vorum að skrifa a þáttatilraun virka, 1327 00:59:07,690 --> 00:59:09,620 og við vorum að gera aðfeldi 5. 1328 00:59:09,620 --> 00:59:12,352 Og við vitum aðfeldi 5 er 5 sinnum á þáttatilraun af 4, 1329 00:59:12,352 --> 00:59:13,310 bla, bla, bla, bla. 1330 00:59:13,310 --> 00:59:14,360 Hvernig vitum við hvenær á að hætta? 1331 00:59:14,360 --> 00:59:16,276 Hvernig vitum við að við í raun hafa a tala? 1332 00:59:16,276 --> 00:59:20,180 Vegna þess að ef við haldið starf þáttatilraun, þá við myndum aldrei fá svar, ekki satt? 1333 00:59:20,180 --> 00:59:24,470 Svo þegar við vitum hvernig á að hætta í dæminu Hrópmerkt. 1334 00:59:24,470 --> 00:59:25,460 Einhver, já. 1335 00:59:25,460 --> 00:59:27,764 >> Áhorfendur: Þegar 1 þáttatilraun er 1. 1336 00:59:27,764 --> 00:59:28,430 Ræðumaður 1: Good. 1337 00:59:28,430 --> 00:59:29,530 Þannig að við vitum. 1338 00:59:29,530 --> 00:59:33,400 Við getum tekið sem sjálfsögðum hlut að 1 Hrópmerkt er jafnt og 1. 1339 00:59:33,400 --> 00:59:36,570 Þannig að ef við fá til the benda hvar við köllum þáttatilraun á 1, 1340 00:59:36,570 --> 00:59:38,050 bara fara á undan og skila 1. 1341 00:59:38,050 --> 00:59:39,180 Og það er stöð mál þitt. 1342 00:59:39,180 --> 00:59:45,040 Þar sem við vitum þegar við högg það og við alltaf vilja högg að, munum við never-- 1343 00:59:45,040 --> 00:59:48,800 við munum ekki bara halda áfram að eilífu. 1344 00:59:48,800 --> 00:59:50,700 Aðrar spurningar um endurkvæmni? 1345 00:59:50,700 --> 00:59:51,630 Já. 1346 00:59:51,630 --> 00:59:54,420 >> Áhorfendur: Svo þegar þú kemur aftur 1, það sjálfkrafa bara 1347 00:59:54,420 --> 00:59:56,290 mun stoppa áætlun, ekki satt? 1348 00:59:56,290 --> 00:59:59,390 >> Ræðumaður 1: Já svo þegar þér kalla aftur 1, if-- skulum segja, 1349 00:59:59,390 --> 01:00:04,480 skulum segja þáttatilraun af 2 símtöl þáttatilraun 1, þáttatilraun af 1 1350 01:00:04,480 --> 01:00:06,120 verður bara skila aftur 1. 1351 01:00:06,120 --> 01:00:12,790 Og nú þáttatilraun af 2 mun segja OK, 2 sinnum 1 er 2 og aftur það svar. 1352 01:00:12,790 --> 01:00:14,260 Já. 1353 01:00:14,260 --> 01:00:16,710 >> Áhorfendur: Eigum við að hafa áhyggjur um umfang í endurkvæmni 1354 01:00:16,710 --> 01:00:20,150 þegar þú ferð inn í reiknirit? 1355 01:00:20,150 --> 01:00:21,880 >> Ræðumaður 1: Ah, já. 1356 01:00:21,880 --> 01:00:25,060 Já, þú þarft að hafa áhyggjur af umfang í tengslum við endurkvæmni. 1357 01:00:25,060 --> 01:00:29,820 Svo að aðeins breytur skilgreindar í að hlaupa af virka 1358 01:00:29,820 --> 01:00:32,170 eru að fara til að vera gagnlegt. 1359 01:00:32,170 --> 01:00:33,792 Já góð spurning. 1360 01:00:33,792 --> 01:00:35,250 Allt í lagi, við skulum halda áfram með. 1361 01:00:35,250 --> 01:00:37,320 Þar sem við höfum mikið af efni til að komast í gegnum. 1362 01:00:37,320 --> 01:00:41,080 En eins og ég sagði, ekki hika við að ná upp vinnutíma, eða okkur eftir því. 1363 01:00:41,080 --> 01:00:42,850 >> Þetta er bara mjög fljótur renna. 1364 01:00:42,850 --> 01:00:45,150 Við lærðum mikið um leitar og tegund. 1365 01:00:45,150 --> 01:00:47,400 Vinsamlegast, vinsamlegast, Þessir hlutar eru á netinu, 1366 01:00:47,400 --> 01:00:51,240 Ég trúi á cs50.net/quizzes~~pobj. 1367 01:00:51,240 --> 01:00:53,762 Svo fara að taka þetta graf og setja það á endurskoðun blaði þínu, 1368 01:00:53,762 --> 01:00:55,470 því að það mun vera spurning um þetta. 1369 01:00:55,470 --> 01:00:56,682 Vinsamlegast ekki fá það rangt. 1370 01:00:56,682 --> 01:00:58,390 Bara mjög fljótt, hvað þetta graf þýðir, 1371 01:00:58,390 --> 01:01:04,370 er það talar um stór o, sem við vitum að vera efri mörk gegn reiknirit 1372 01:01:04,370 --> 01:01:05,150 keyra tíma. 1373 01:01:05,150 --> 01:01:08,080 Og við höfum Omega, sem er að fara að vera lægri mörk 1374 01:01:08,080 --> 01:01:10,290 af reiknirit afturkreistingur. 1375 01:01:10,290 --> 01:01:10,840 OK? 1376 01:01:10,840 --> 01:01:12,480 >> Áhorfendur: [inaudible]. 1377 01:01:12,480 --> 01:01:12,800 >> Ræðumaður 1: Já, hvað er the síðastur hlutur? 1378 01:01:12,800 --> 01:01:13,380 Hvað er þeta? 1379 01:01:13,380 --> 01:01:16,850 Það er ef we-- við erum bara að fara að hugsa um í þessum flokki er að ræða 1380 01:01:16,850 --> 01:01:19,381 þar okkar efri og neðri mörk okkar eru þau sömu. 1381 01:01:19,381 --> 01:01:22,005 Já, það er í eina skiptið það er fara að koma upp í þessum flokki. 1382 01:01:22,005 --> 01:01:23,320 OK, ég ætla að halda áfram. 1383 01:01:23,320 --> 01:01:26,490 Ef þú hefur ekki tekið myndina, Ég lofa þetta verður á netinu. 1384 01:01:26,490 --> 01:01:28,220 >> OK, ógnvekjandi, structs. 1385 01:01:28,220 --> 01:01:29,810 Hvers vegna getum við viljum structs? 1386 01:01:29,810 --> 01:01:34,110 Hvað er gagnlegt ástæða við gætum vilja structs. 1387 01:01:34,110 --> 01:01:36,277 Einhver hrópa eitthvað út. 1388 01:01:36,277 --> 01:01:38,110 Jæja við skulum líta á dæmi á borðinu. 1389 01:01:38,110 --> 01:01:41,090 Við skulum segja að við erum að fást með öllum þessum nemendum. 1390 01:01:41,090 --> 01:01:44,900 Ef við erum að gera áætlun um CS50 eru eins 800 manns. 1391 01:01:44,900 --> 01:01:47,890 Við þurfum að write-- við erum að fara að þurfa að takast mikið af upplýsingum 1392 01:01:47,890 --> 01:01:49,020 um nemenda. 1393 01:01:49,020 --> 01:01:50,990 Það væri gott ef við gátum konar hóp 1394 01:01:50,990 --> 01:01:54,460 this-- allar þær upplýsingar sem hefur að gera með sérstakri nemanda 1395 01:01:54,460 --> 01:01:56,027 í eina tegund gagna. 1396 01:01:56,027 --> 01:01:58,360 En við vitum að það er engin gögn tegund heitir, Student, ekki satt? 1397 01:01:58,360 --> 01:02:01,890 Við höfum heiltölu, höfum við fljóta, við höfum band, eða bleikju stjörnu, 1398 01:02:01,890 --> 01:02:03,920 en við höfum ekki, nemandi. 1399 01:02:03,920 --> 01:02:08,680 >> Þannig að við getum gert er í raun eins konar skilgreina eigin uppbyggingu okkar, kalla það nemandi, 1400 01:02:08,680 --> 01:02:12,440 og við getum tengja sumir mismunandi sviðum með því strúktúr. 1401 01:02:12,440 --> 01:02:14,410 Þannig að í þessu tilfelli, við skulum segja að við höfum nemanda. 1402 01:02:14,410 --> 01:02:17,350 Og það sem okkur er annt um eru nemandi ID númer 1403 01:02:17,350 --> 01:02:19,500 og nafn nemandans. 1404 01:02:19,500 --> 01:02:24,175 Og nú erum við að tengja þetta auðkenni og þetta nafn með tilteknum nemanda. 1405 01:02:24,175 --> 01:02:25,300 Svo skulum sjá nokkur dæmi. 1406 01:02:25,300 --> 01:02:28,860 1407 01:02:28,860 --> 01:02:33,490 >> OK, svo hér er ég að segja, OK, við skulum segja að við viljum gera nemanda. 1408 01:02:33,490 --> 01:02:35,050 Ég kalla hann nemandi 1. 1409 01:02:35,050 --> 01:02:38,850 Og kennitölu hans, í þetta mál, getum við aðgang 1410 01:02:38,850 --> 01:02:45,200 bara með því að gera nafn nemandans punktur útaf við viljum fá aðgang. 1411 01:02:45,200 --> 01:02:49,110 Þannig að þetta er að fara að vera bara námsmaður 1 punktur ID, og ​​við setjum það jöfn 1. 1412 01:02:49,110 --> 01:02:52,300 Vegna muna, sagði við að ID er að fara að vera heiltala. 1413 01:02:52,300 --> 01:02:56,540 Og mjög álíka, getum við sagt, þetta Nafnið nemenda er að fara að vera Davin, 1414 01:02:56,540 --> 01:02:57,760 til dæmis. 1415 01:02:57,760 --> 01:03:01,420 Svo við getum bara nálgast sviði af strúktúr nota þessa punktur. 1416 01:03:01,420 --> 01:03:03,098 Spurningar um það? 1417 01:03:03,098 --> 01:03:03,598 Já. 1418 01:03:03,598 --> 01:03:05,582 >> Áhorfendur: Er einhver leið til að vernda breytur? 1419 01:03:05,582 --> 01:03:08,560 Er einhver leið til að vernda breytur frá því að vera utan nálgast? 1420 01:03:08,560 --> 01:03:10,726 >> Ræðumaður 1: Er samt að vernda breytur 1421 01:03:10,726 --> 01:03:12,680 frá því að vera utan nálgast? 1422 01:03:12,680 --> 01:03:13,750 Ekki undir gildissvið CS50. 1423 01:03:13,750 --> 01:03:16,680 1424 01:03:16,680 --> 01:03:17,977 Aðrar spurningar? 1425 01:03:17,977 --> 01:03:18,476 Já. 1426 01:03:18,476 --> 01:03:18,942 >> Áhorfendur: Hvað er typedef strúktúr? 1427 01:03:18,942 --> 01:03:20,192 Hvað þýðir hver þáttur meina? 1428 01:03:20,192 --> 01:03:22,937 1429 01:03:22,937 --> 01:03:24,520 Ræðumaður 1: Ah, hvað er typedef strúktúr? 1430 01:03:24,520 --> 01:03:26,240 Hvað gerir hvern hluta meina þetta strákur? 1431 01:03:26,240 --> 01:03:26,850 >> Áhorfendur: Já. 1432 01:03:26,850 --> 01:03:27,683 >> Ræðumaður 1: Allt í lagi, flott. 1433 01:03:27,683 --> 01:03:31,200 Þannig að þetta segir, hey tölva, ég vilja til að búa til nýtt skipulag. 1434 01:03:31,200 --> 01:03:34,970 Og ég ætla að skilgreina skilgreiningu fyrir það, þannig að ég gæti notað það 1435 01:03:34,970 --> 01:03:37,520 eins og ef það voru gerð um áætlun mína. 1436 01:03:37,520 --> 01:03:39,300 OK, svo ég vil að skilgreina uppbyggingu. 1437 01:03:39,300 --> 01:03:41,650 Og ég er nú að fara að vera fær um að nota það sem tegund. 1438 01:03:41,650 --> 01:03:43,400 Og nafn þess er nemandi. 1439 01:03:43,400 --> 01:03:45,730 Og hér eru reitir þess. 1440 01:03:45,730 --> 01:03:48,130 >> Áhorfendur: Svo er það typedef strúktúr [inaudible]? 1441 01:03:48,130 --> 01:03:50,592 1442 01:03:50,592 --> 01:03:53,800 Ræðumaður 1: Ef þú vilt vera fær um að nota þessa strúktúr um program, 1443 01:03:53,800 --> 01:03:57,910 og í flestum tilvikum í CS50 vér gera, þurfum við að segja tegund def. 1444 01:03:57,910 --> 01:04:01,190 Og að leyfa það að nota það sama leiðin sem við notum eins int eða fljóta. 1445 01:04:01,190 --> 01:04:04,168 The tölva vilja alltaf vita hvað það er. 1446 01:04:04,168 --> 01:04:04,668 Já. 1447 01:04:04,668 --> 01:04:06,560 >> Áhorfendur: Getum við skrifað þetta í haus skrá? 1448 01:04:06,560 --> 01:04:07,060 >> Ræðumaður 1: Oh, því miður. 1449 01:04:07,060 --> 01:04:08,600 Eigum við að skrifa þetta í haus skrá? 1450 01:04:08,600 --> 01:04:11,410 Þú gætir skrifað þetta á toppur af þinn program, efst á c program. 1451 01:04:11,410 --> 01:04:13,010 Já, það væri mest sanngjarnt staður fyrir það. 1452 01:04:13,010 --> 01:04:13,509 Þangað aftur. 1453 01:04:13,509 --> 01:04:15,704 Áhorfendur: Sama spurning, svo áður en main? 1454 01:04:15,704 --> 01:04:18,870 Ræðumaður 1: Hægri, þú þarft þetta að vera einhvers staðar að allir geti nálgast það. 1455 01:04:18,870 --> 01:04:20,612 Svo áður en helsta í þínu tilviki, já. 1456 01:04:20,612 --> 01:04:23,820 Áhorfendur: Er munur á milli setja nemandann ofan og á botni? 1457 01:04:23,820 --> 01:04:25,810 Ræðumaður 1: Ah, er það munurinn að setja nemanda 1458 01:04:25,810 --> 01:04:26,840 efst eða á botni? 1459 01:04:26,840 --> 01:04:29,650 Let-- spara þessi spurning, og þegar við komum til tengd listum, 1460 01:04:29,650 --> 01:04:31,020 við munum sjá að, OK? 1461 01:04:31,020 --> 01:04:32,750 Svo halda að það eina sekúndu. 1462 01:04:32,750 --> 01:04:37,080 Það síðasta sem ég vil nefna hér, er í stað þess að hafa skipulag, 1463 01:04:37,080 --> 01:04:41,180 við höfum bendi uppbyggingu, við getum breytt tákn okkar 1464 01:04:41,180 --> 01:04:42,480 að vera svolítið betur. 1465 01:04:42,480 --> 01:04:45,810 >> Við getum sagt, við skulum segja að við höfum a bendi á nemanda frekar en bara 1466 01:04:45,810 --> 01:04:47,040 nemandi. 1467 01:04:47,040 --> 01:04:52,460 Ef við viljum aðgang að sviði, í stað þess að gera, vel farið dereference músina, 1468 01:04:52,460 --> 01:04:54,100 og þá opna reit nafn. 1469 01:04:54,100 --> 01:04:57,310 Þetta merki lítur svolítið sóðalegur með stjörnunni í þessum punkti. 1470 01:04:57,310 --> 01:05:00,790 Algerlega rétt, en eins konar af hreinni leið til að gera það, 1471 01:05:00,790 --> 01:05:03,280 er bara að segja nafnið bendi ör. 1472 01:05:03,280 --> 01:05:11,460 Og að í raun sameinar dereferencing og aðgangur í einu fallegu tákn. 1473 01:05:11,460 --> 01:05:12,470 Spurningar um það? 1474 01:05:12,470 --> 01:05:13,760 >> Áhorfendur: Bara að segja að eitt sinn. 1475 01:05:13,760 --> 01:05:14,480 >> Ræðumaður 1: Segja að eitt sinn. 1476 01:05:14,480 --> 01:05:16,021 >> Áhorfendur: Einmitt það sem þú sagðir. 1477 01:05:16,021 --> 01:05:17,870 Ræðumaður 1: Jú, einmitt það sem ég sagði bara. 1478 01:05:17,870 --> 01:05:21,580 Ef við höfum bendi til nemanda frekar en nemandann sjálfan, 1479 01:05:21,580 --> 01:05:25,410 við can-- ein leið sem við getum nálgast reitur er að dereference það, og þá 1480 01:05:25,410 --> 01:05:27,110 aðgang nafn. 1481 01:05:27,110 --> 01:05:29,040 Annar, ágætur vegur við getur gert það, sem er bara 1482 01:05:29,040 --> 01:05:33,550 smá setningafræðilegar sykri, er bara að gera músina ör nafn. 1483 01:05:33,550 --> 01:05:38,190 Og það er að fara að sameina dereferencing og aðgangur. 1484 01:05:38,190 --> 01:05:40,400 Já, laglegur kaldur. 1485 01:05:40,400 --> 01:05:41,260 Allt í lagi. 1486 01:05:41,260 --> 01:05:44,390 >> Svo skulum við tala um aðra spurningu. 1487 01:05:44,390 --> 01:05:46,520 Við skulum hoppa til hnúður, sem við erum að fara að nota 1488 01:05:46,520 --> 01:05:49,120 í tengslum lista á aðeins sekúndu. 1489 01:05:49,120 --> 01:05:53,580 Svo hér, þú munt taka eftir því að það er orðið hnút bæði á botn, 1490 01:05:53,580 --> 01:05:55,160 Og ofan. 1491 01:05:55,160 --> 01:05:59,040 Áður, þegar við vorum að skilgreina nemandi, við höfðum bara nemanda á botn. 1492 01:05:59,040 --> 01:06:00,470 Við vildum ekki hafa nemanda á toppinn. 1493 01:06:00,470 --> 01:06:01,902 Hver veit hvers vegna það gæti verið? 1494 01:06:01,902 --> 01:06:02,860 Hver munurinn er? 1495 01:06:02,860 --> 01:06:03,360 Já. 1496 01:06:03,360 --> 01:06:06,212 Áhorfendur: Svo þú notar hnút er skilgreining á hnút, 1497 01:06:06,212 --> 01:06:08,254 svo það er endurkvæma hlutur? 1498 01:06:08,254 --> 01:06:08,920 Ræðumaður 1: Good. 1499 01:06:08,920 --> 01:06:13,230 Já, við þurfum hnúta okkar að hafa bendi annarra hnúta. 1500 01:06:13,230 --> 01:06:17,640 Svo þar sem við notum þessa tegund áður en það er í raun skilgreint, 1501 01:06:17,640 --> 01:06:20,613 við þurfum að setja það efst bara svo það veit hvað það er. 1502 01:06:20,613 --> 01:06:22,446 Áhorfendur: Svo við enn þarf það neðst? 1503 01:06:22,446 --> 01:06:23,338 Ræðumaður 1: Já. 1504 01:06:23,338 --> 01:06:24,754 Áhorfendur: Svo alltaf neðst. 1505 01:06:24,754 --> 01:06:26,090 Ræðumaður 1: Alltaf neðst. 1506 01:06:26,090 --> 01:06:29,410 Svo öll þín mun hafa það í botn. 1507 01:06:29,410 --> 01:06:30,720 Aðrar spurningar? 1508 01:06:30,720 --> 01:06:33,511 Allt í lagi, svo lætur í raun tala um tengd listum mjög fljótt. 1509 01:06:33,511 --> 01:06:36,510 Svo tengd listum are-- við notum þær í stað þess að fylki í sumum tilvikum, 1510 01:06:36,510 --> 01:06:40,030 vegna þess að við vitum að fylki eru fastur lengd, en tengd listum 1511 01:06:40,030 --> 01:06:42,670 við getum vaxa og skreppa eins og við viljum. 1512 01:06:42,670 --> 01:06:45,790 Svo er þetta dæmi um hvað tengdur listi gæti litið út. 1513 01:06:45,790 --> 01:06:48,590 Það sem við þurfum að sjá er yfirmaður listanum. 1514 01:06:48,590 --> 01:06:50,330 Svo þar sem listinn byrjar. 1515 01:06:50,330 --> 01:06:53,010 Og þá hnútur hann hver síðari hnút, er 1516 01:06:53,010 --> 01:06:55,880 ábyrgur á því þar sem næsta hnúturinn er. 1517 01:06:55,880 --> 01:07:00,950 Þannig að í þessu tilfelli, hnúturinn sem geymir 1 er ábyrgur fyrir að vita hvar 3 er. 1518 01:07:00,950 --> 01:07:04,540 Sá sem geymir 3 er ábyrgur á því að þar 9 er. 1519 01:07:04,540 --> 01:07:06,230 Og 9 hefur enginn annar að benda á. 1520 01:07:06,230 --> 01:07:08,750 Það er enda á listanum, svo það segir bara null. 1521 01:07:08,750 --> 01:07:09,250 OK? 1522 01:07:09,250 --> 01:07:10,530 >> Áhorfendur: Hvað er að benda á þetta? 1523 01:07:10,530 --> 01:07:11,480 >> Ræðumaður 1: Hver er tilgangurinn með þessu? 1524 01:07:11,480 --> 01:07:12,105 >> Áhorfendur: Já. 1525 01:07:12,105 --> 01:07:15,390 Ræðumaður 1: Vegna þess, við skulum segja að við höfum nokkur gögn. 1526 01:07:15,390 --> 01:07:18,480 Og við vitum ekki nákvæmlega hvernig mikið af gögnum sem við viljum til batnaðar. 1527 01:07:18,480 --> 01:07:22,479 Svo með fjölda, við skulum segja hvar við langar að telja fólki í fyrstu röðinni. 1528 01:07:22,479 --> 01:07:24,020 Líklega er það ekki að fara að breytast. 1529 01:07:24,020 --> 01:07:28,120 Við getum bara sagt, OK, ég vilja fjölbreytta stærð sex. 1530 01:07:28,120 --> 01:07:30,120 En ef við viljum eitthvað það er að fara að breytast. 1531 01:07:30,120 --> 01:07:32,900 >> Til dæmis, við skulum segja að ég var að reyna til að halda utan um nemendur 1532 01:07:32,900 --> 01:07:35,330 eins og þeir koma inn í herbergið fyrir endurskoðun fundur. 1533 01:07:35,330 --> 01:07:38,420 Ég hef ekki hugmynd um hversu margir af þú fólk er að fara að mæta. 1534 01:07:38,420 --> 01:07:43,094 Svo ég gæti langað gögn uppbygging að ég get stækka og minnka. 1535 01:07:43,094 --> 01:07:45,510 Því kannski einhver mun fara, kannski mun einhver koma. 1536 01:07:45,510 --> 01:07:48,386 Og svo hvenær við Hægt er að bæta við eða fjarlægja hnúður. 1537 01:07:48,386 --> 01:07:49,771 Cool, frábær spurning. 1538 01:07:49,771 --> 01:07:50,270 Já. 1539 01:07:50,270 --> 01:07:52,311 >> Áhorfendur: Ef þú getur notað eitthvað eins GetString 1540 01:07:52,311 --> 01:07:55,750 sem heldur að láta þig fá fleiri gögn sem þú þarft það, hvers vegna þú þarft þetta líka? 1541 01:07:55,750 --> 01:07:57,625 >> Ræðumaður 1: Hvers vegna vildi þú notar tengd lista þegar 1542 01:07:57,625 --> 01:07:59,440 þú getur notað eitthvað eins GetString? 1543 01:07:59,440 --> 01:08:01,640 Það er góð spurning. 1544 01:08:01,640 --> 01:08:04,240 Mundu að Get-- einn af downfalls af GetString 1545 01:08:04,240 --> 01:08:06,750 er að við vissum ekki mjög gott starf frjáls að minni, 1546 01:08:06,750 --> 01:08:09,320 og við kynntum fullt af minni lekur inn program? 1547 01:08:09,320 --> 01:08:15,037 Þú gætir tekið það með statically stór array og halda áfram að vaxa það. 1548 01:08:15,037 --> 01:08:16,870 En þú vilt að finna nýja staði í minni. 1549 01:08:16,870 --> 01:08:18,359 Það myndi bara vera a einhver fjöldi af kostnaður. 1550 01:08:18,359 --> 01:08:21,050 >> Einn af the ágætur hluti um tengd listar eins og til fylki, er fylki 1551 01:08:21,050 --> 01:08:22,830 eru allir á sama stað í minni. 1552 01:08:22,830 --> 01:08:25,540 Það þarf að vera samfelld klumpur af minni. 1553 01:08:25,540 --> 01:08:29,920 En tengd listum, 2. og 3. maí vera algerlega á mismunandi stöðum. 1554 01:08:29,920 --> 01:08:31,880 Eins og 2 er hérna, og 3 er hérna. 1555 01:08:31,880 --> 01:08:34,421 Og svo lengi sem þeir hafa bendi á annan, það er allt í lagi. 1556 01:08:34,421 --> 01:08:35,830 Við vitum að við getum fundið þá. 1557 01:08:35,830 --> 01:08:37,084 Spurning þarna? 1558 01:08:37,084 --> 01:08:40,563 >> Áhorfendur: GetString er fall í CS50 bókasafn, ekki satt? 1559 01:08:40,563 --> 01:08:42,060 Það er ekki til í alvöru forrit. 1560 01:08:42,060 --> 01:08:42,851 >> Ræðumaður 1: Rétt. 1561 01:08:42,851 --> 01:08:44,130 Right, það er annar hlutur. 1562 01:08:44,130 --> 01:08:47,210 GetString er ekki til utan tengslum við CS50. 1563 01:08:47,210 --> 01:08:47,710 Já. 1564 01:08:47,710 --> 01:08:54,556 >> Áhorfendur: Svo er staðreynd að tveir gætu verið mjög langt í sundur, 1565 01:08:54,556 --> 01:08:59,859 Er að hafa áhrif á skilvirkni aðgang þætti á listanum? 1566 01:08:59,859 --> 01:09:01,359 Ræðumaður 1: Það er frábær spurning. 1567 01:09:01,359 --> 01:09:04,278 Spurningin var, er það áhrif skilvirkni aðgang 1568 01:09:04,278 --> 01:09:05,819 þessir mismunandi þættir í listanum. 1569 01:09:05,819 --> 01:09:06,930 Reyndar já. 1570 01:09:06,930 --> 01:09:09,569 Þar sem við vitum if-- skulum segja að við viljum fá aðgang 1571 01:09:09,569 --> 01:09:14,520 seinni þáttur í fylki, við vitum við getum bara gert array krappi 1, rétt. 1572 01:09:14,520 --> 01:09:16,630 Það er alltaf að fara að vera á sama stað. 1573 01:09:16,630 --> 01:09:20,720 En ef við viljum fá til að 3, getum við ekki bara að segja, fara að fá að 3. 1574 01:09:20,720 --> 01:09:24,009 Við verðum að segja, OK, byrja á upphaf listanum, 1575 01:09:24,009 --> 01:09:26,050 og nú höfum við í raun að ganga í gegnum þar til við 1576 01:09:26,050 --> 01:09:28,149 finna fjölda sem við erum áhuga á. 1577 01:09:28,149 --> 01:09:30,790 >> Þannig að í þessu tilfelli erum við að segja, OK þetta er fyrsta númerið. 1578 01:09:30,790 --> 01:09:32,207 Svo í raun, það er vísitalan 0. 1579 01:09:32,207 --> 01:09:33,790 Nú verðum við að finna annað númer. 1580 01:09:33,790 --> 01:09:34,740 Það er vísitala 1. 1581 01:09:34,740 --> 01:09:39,180 Svo það er í raun að fara to-- bara aðgang, er að fara að taka N tíma. 1582 01:09:39,180 --> 01:09:42,027 Cool, stór gamall N. Já. 1583 01:09:42,027 --> 01:09:43,903 >> Áhorfendur: Hvað eru hvert listum? 1584 01:09:43,903 --> 01:09:45,401 Eru þeir hver fylki, eða hvað? 1585 01:09:45,401 --> 01:09:46,859 Ræðumaður 1: Það er frábær spurning. 1586 01:09:46,859 --> 01:09:48,950 Hvað eru hvor af mannvirki sem ég hef dregið? 1587 01:09:48,950 --> 01:09:51,649 Þeir eru hnútar. 1588 01:09:51,649 --> 01:09:53,720 Svo að hver af þessum litlu uppbygging í tvo hluta. 1589 01:09:53,720 --> 01:09:55,264 Það hefur heiltölu sem geymir. 1590 01:09:55,264 --> 01:09:57,180 Það er í raun gögn að það er að halda á. 1591 01:09:57,180 --> 01:09:58,770 Það er góður af gagnlegum hluta. 1592 01:09:58,770 --> 01:10:00,820 Og þetta er hvað gerir það tengda listanum, 1593 01:10:00,820 --> 01:10:03,690 það hefur bendi á næsta hnút. 1594 01:10:03,690 --> 01:10:05,260 Awesome spurning. 1595 01:10:05,260 --> 01:10:11,320 Allt í lagi, þannig að við skulum líta mjög fljótt að líta á nokkur dæmi um það 1596 01:10:11,320 --> 01:10:12,820 við gætum gert með tengd listum. 1597 01:10:12,820 --> 01:10:16,920 >> Svo einn mjög fljótur dæmi er, býst við viljum gera a leita. 1598 01:10:16,920 --> 01:10:20,240 Hvers konar leit getur ekki við gerum á tengd listum? 1599 01:10:20,240 --> 01:10:21,150 >> Áhorfendur: Binary. 1600 01:10:21,150 --> 01:10:21,900 >> Ræðumaður 1: Binary. 1601 01:10:21,900 --> 01:10:23,408 Hvers vegna getum við ekki notað tvöfaldur leit? 1602 01:10:23,408 --> 01:10:25,181 >> Áhorfendur: [inaudible]. 1603 01:10:25,181 --> 01:10:28,180 Ræðumaður 1: Hægri, því með tvöfaldur leita, við þurftum að treysta á þá staðreynd 1604 01:10:28,180 --> 01:10:31,300 að við gætum bara hoppa í fylkinu á hverjum stað. 1605 01:10:31,300 --> 01:10:33,420 Við gætum bara segja, fara að miðju frumefni. 1606 01:10:33,420 --> 01:10:35,550 Við hér, eins og ég sagði svolítið fyrr, 1607 01:10:35,550 --> 01:10:37,270 við getum ekki bara hoppa til miðju þáttur. 1608 01:10:37,270 --> 01:10:38,978 Til þess að finna eitthvað þáttur, reyndar við 1609 01:10:38,978 --> 01:10:40,780 að ganga í gegnum allan listann okkar. 1610 01:10:40,780 --> 01:10:43,910 >> Þannig að ef við vildum að gera a leita, sem besti sem við getum gert er bara línuleg leit. 1611 01:10:43,910 --> 01:10:45,910 Við byrjum á höfuðið, við check-- skulum segja að við erum 1612 01:10:45,910 --> 01:10:47,790 leita 9-- við byrjum á höfuðið. 1613 01:10:47,790 --> 01:10:49,200 Við segjum, er þetta 9? 1614 01:10:49,200 --> 01:10:49,710 Nei 1615 01:10:49,710 --> 01:10:50,430 Er þetta 9? 1616 01:10:50,430 --> 01:10:50,930 Nei 1617 01:10:50,930 --> 01:10:51,620 Er þetta 9? 1618 01:10:51,620 --> 01:10:53,730 Já, við fundum það. 1619 01:10:53,730 --> 01:10:56,350 OK, það er allt sem. 1620 01:10:56,350 --> 01:10:57,940 Hér er smá hluti af gervi-kóða. 1621 01:10:57,940 --> 01:11:01,420 Ég ætla að láta þetta fyrir þig krakkar að strokkur yfir á eigin spýtur, 1622 01:11:01,420 --> 01:11:04,370 bara vegna þess að við erum að keyra svolítið stutt á réttum tíma. 1623 01:11:04,370 --> 01:11:05,610 >> Lets tala um ísetningu. 1624 01:11:05,610 --> 01:11:08,644 Við sáum mjög flott demo af þetta í fyrirlestri þar sem við sagði, 1625 01:11:08,644 --> 01:11:11,560 OK, við höfum þessa tengdan lista hvar allir að benda hver á annan og 1626 01:11:11,560 --> 01:11:13,400 og einhver kemur upp á sviðinu. 1627 01:11:13,400 --> 01:11:17,050 Hvernig eigum við að setja það Maður í tengda listanum okkar? 1628 01:11:17,050 --> 01:11:20,150 Jæja, röng leið til að gera, sem er ég held að það sem við sáum fyrst, 1629 01:11:20,150 --> 01:11:22,740 er þegar maður í framan sjálfkrafa 1630 01:11:22,740 --> 01:11:25,270 benti á nýrri manneskju. 1631 01:11:25,270 --> 01:11:29,057 Og þá erum við konar yfirgefin Seinni helmingur listanum, ekki satt? 1632 01:11:29,057 --> 01:11:31,390 Þar sem við vitum ekki hvar það er í minni lengur. 1633 01:11:31,390 --> 01:11:34,750 Svo til að vera mjög varkár um í hvaða röð við setjum hlutina. 1634 01:11:34,750 --> 01:11:37,860 >> Svo hér, við skulum segja að við viljum setja 1 framan á listanum okkar. 1635 01:11:37,860 --> 01:11:42,190 Í fyrsta lagi höfum við 1 stig á the Annað element-- eða þáttur 1636 01:11:42,190 --> 01:11:44,170 sem inniheldur 1. 1637 01:11:44,170 --> 01:11:47,210 Svo, gera við það, bara svo að við erum ekki að fara að missa seinni hálfleik. 1638 01:11:47,210 --> 01:11:51,020 Og nú getum við fengið höfuð benda til 1. 1639 01:11:51,020 --> 01:11:52,930 Svo aftur, þetta er bara eins frábær mikil. 1640 01:11:52,930 --> 01:11:55,290 Þetta er hvernig við myndum setja hnút. 1641 01:11:55,290 --> 01:11:57,337 Við höfum mikið af gervi-kóða here-- hryggur, 1642 01:11:57,337 --> 01:11:59,170 Ég veit ekki af hverju ég er kalla það gervi-kóða. 1643 01:11:59,170 --> 01:12:00,350 Það er raunveruleg númer. 1644 01:12:00,350 --> 01:12:02,570 Þú getur fara stöðva það út síðar. 1645 01:12:02,570 --> 01:12:04,870 >> Allt í lagi, við skulum mjög quickly-- einhverjar fleiri spurningar 1646 01:12:04,870 --> 01:12:07,120 á tengd listum áður en ég færa inn nokkrar aðrar upplýsingar 1647 01:12:07,120 --> 01:12:08,450 mannvirki í okkar síðustu 10 mínútur. 1648 01:12:08,450 --> 01:12:10,340 >> Áhorfendur: Þurfum við að nú hvernig á að skrifa það á prófi? 1649 01:12:10,340 --> 01:12:11,040 >> Ræðumaður 1: Þurfum við að vita hvernig to-- 1650 01:12:11,040 --> 01:12:12,030 >> Áhorfendur: Skrifaðu það á prófi. 1651 01:12:12,030 --> 01:12:14,071 >> Ræðumaður 1: Við þurfum to-- þú ættir að vera tilbúinn 1652 01:12:14,071 --> 01:12:18,870 að skrifa, setja, fjarlægja og leita tengd listum á prófinu. 1653 01:12:18,870 --> 01:12:21,480 Það er eitthvað sem við gæti ætlast til að þú gerir. 1654 01:12:21,480 --> 01:12:22,750 Fara bara yfir það. 1655 01:12:22,750 --> 01:12:26,460 Ef þú hefur einhverjar spurningar um númer, skjóta TF þitt tölvupóst, 1656 01:12:26,460 --> 01:12:27,750 koma til skrifstofutíma. 1657 01:12:27,750 --> 01:12:30,041 Það er samt hellingur af tíma að læra, ekki að hafa áhyggjur. 1658 01:12:30,041 --> 01:12:32,290 Allt í lagi, allir hinn spurningar um tengd listum? 1659 01:12:32,290 --> 01:12:32,986 Já. 1660 01:12:32,986 --> 01:12:37,360 >> Áhorfendur: Svo ef þú notar ekki bendillinn að fara á einn á hægri 1661 01:12:37,360 --> 01:12:41,308 áður en þú notar músina til einn á vinstri, það er 1662 01:12:41,308 --> 01:12:43,211 jafnvirði eyða allt, ekki satt? 1663 01:12:43,211 --> 01:12:43,877 Ræðumaður 1: Já. 1664 01:12:43,877 --> 01:12:44,820 Áhorfendur: [inaudible]. 1665 01:12:44,820 --> 01:12:47,570 Ræðumaður 1: Hægri, þar sem við getum ekki fá það, það er í raun enn verra. 1666 01:12:47,570 --> 01:12:50,690 Því ekki aðeins eigum við ekki vita þar sem það er, þá getum við ekki lengur notað það, 1667 01:12:50,690 --> 01:12:53,580 en we've-- við erum ekki frjáls að minni lengur. 1668 01:12:53,580 --> 01:12:58,570 Svo það er bara hangið og ekki verið gagnlegt vegna þess að við getum ekki fundið það. 1669 01:12:58,570 --> 01:12:59,580 Já, flott spurning. 1670 01:12:59,580 --> 01:13:01,280 >> Allt í lagi, við skulum tala um stafla. 1671 01:13:01,280 --> 01:13:03,230 Við sáum stafla mjög fljótt. 1672 01:13:03,230 --> 01:13:06,280 Þeir eru fyrst í síðasta út gögn uppbygging. 1673 01:13:06,280 --> 01:13:10,664 Þannig að við hugsum um stafla í Annenberg af stæði þar sem við stafla hlutum ofan. 1674 01:13:10,664 --> 01:13:12,580 Og ef þú ert að fara að koma fá bakka, þú ert 1675 01:13:12,580 --> 01:13:15,870 alltaf að fara að taka einn á efst, sem er mest recently-- 1676 01:13:15,870 --> 01:13:18,840 sem er hlutur sem við flest nýlega sett ofan á stafla. 1677 01:13:18,840 --> 01:13:22,680 Svo þú getur konar hugsa um svona sjón þegar þú ert að hugsa um stafla. 1678 01:13:22,680 --> 01:13:26,010 Og þá höfum við laust eitthvað burt the toppur af stafla. 1679 01:13:26,010 --> 01:13:29,850 >> Ef við are-- ó, og orðin sem við nota þegar við erum að tala um þessi gögn 1680 01:13:29,850 --> 01:13:32,680 mannvirki er yfirleitt, ef við setja eitthvað á mánudaginn, 1681 01:13:32,680 --> 01:13:34,550 við segjum að við erum að þrýsta það á mánudaginn. 1682 01:13:34,550 --> 01:13:38,450 Og ef við tökum eitthvað af stafla, við segjum að við erum pabbi af stafla. 1683 01:13:38,450 --> 01:13:41,470 Ef þú ert að fara að innleiða a stack-- sem ég örugglega 1684 01:13:41,470 --> 01:13:44,840 mæli með að þú reynir out-- þú ert fara til að vilja halda utan um, 1685 01:13:44,840 --> 01:13:46,669 skulum segja að þú ert að nota array. 1686 01:13:46,669 --> 01:13:48,960 Ég veit í fyrirlestri við ræddum um að nota bæði fylki 1687 01:13:48,960 --> 01:13:51,120 eða tengjast listum að innleiða stafla. 1688 01:13:51,120 --> 01:13:53,490 Ef þú ert að nota array, þú þarft að keep-- 1689 01:13:53,490 --> 01:13:56,750 afsökun me-- við þurfum að halda utan af stærð og getu. 1690 01:13:56,750 --> 01:14:00,820 Svo hámarksfjölda að stafla okkar getur haldið. 1691 01:14:00,820 --> 01:14:03,240 Spurningar um stafla? 1692 01:14:03,240 --> 01:14:05,657 >> Áhorfendur: Hver er munurinn milli stærð og getu? 1693 01:14:05,657 --> 01:14:08,573 Ræðumaður 1: Mismunur stærð og getu, ógnvekjandi spurning. 1694 01:14:08,573 --> 01:14:10,330 Svo skulum segja að við erum því að nota array, og við 1695 01:14:10,330 --> 01:14:13,340 úthluta nóg pláss fyrir 10 heiltölur. 1696 01:14:13,340 --> 01:14:15,050 Og við byrjum að fylla það upp. 1697 01:14:15,050 --> 01:14:17,330 Og við að ýta hlutum á, og við skjóta það burt. 1698 01:14:17,330 --> 01:14:21,060 Við viljum halda utan um hámark tala við getum haldið, það er getu. 1699 01:14:21,060 --> 01:14:24,790 Og við viljum halda utan um núverandi fjölda við höfum, það er stærð. 1700 01:14:24,790 --> 01:14:26,530 Góð spurning. 1701 01:14:26,530 --> 01:14:28,720 Eitthvað annað á stafla? 1702 01:14:28,720 --> 01:14:31,260 Allt í lagi, við skulum tala um á óvart, biðraðir. 1703 01:14:31,260 --> 01:14:37,034 >> Ólíkt stafla, sem eru fyrst í síðustu út, þetta eru fyrst inn, fyrst út. 1704 01:14:37,034 --> 01:14:38,450 Svo er þetta like-- hugsa um línu. 1705 01:14:38,450 --> 01:14:41,530 Hugsaðu um að undirbúa á Apple Store til að fá hvað sem vöru. 1706 01:14:41,530 --> 01:14:44,540 Og fyrsta manneskjan í línu ætti vera fyrsta manneskjan sem hefur hjálpað. 1707 01:14:44,540 --> 01:14:48,270 Svo það fyrsta sem er ýtt er þetta það fyrsta sem er laust. 1708 01:14:48,270 --> 01:14:49,460 Cool? 1709 01:14:49,460 --> 01:14:52,890 Mjög similarly-- Ó, orð sem við notum í stað þess að ýta og pop-- 1710 01:14:52,890 --> 01:14:55,060 sem ég notaði bara, Ég er sorry-- er við að segja, 1711 01:14:55,060 --> 01:14:58,170 ef við erum að setja eitthvað inn biðröð, segja við enqueued það. 1712 01:14:58,170 --> 01:15:00,795 Ef við erum að taka eitthvað út af biðröð, segjum við að við dequeued. 1713 01:15:00,795 --> 01:15:01,950 It. 1714 01:15:01,950 --> 01:15:05,454 Ég má borin þeim rangt, en þú fá the hugmynd. 1715 01:15:05,454 --> 01:15:08,370 Og svo aftur, rétt eins og stafla, ef við erum að innleiða þetta sem array, 1716 01:15:08,370 --> 01:15:12,350 við þurfum að halda utan um stærð, getu, og höfuð. 1717 01:15:12,350 --> 01:15:13,570 Hvað geri ég meina með skalla? 1718 01:15:13,570 --> 01:15:15,278 Hvers vegna þurfum við að halda utan um höfuðið? 1719 01:15:15,278 --> 01:15:18,549 1720 01:15:18,549 --> 01:15:21,685 >> Áhorfendur: Vegna þess að það er þar sem upphaf listanum er. 1721 01:15:21,685 --> 01:15:24,810 Ræðumaður 1: Já, í rauninni höfuð er þar sem upphaf biðröð okkar er. 1722 01:15:24,810 --> 01:15:29,460 Þar sem við vitum, ólíkt stafla, which-- Ég ætla að reyna að takast á við þetta way-- 1723 01:15:29,460 --> 01:15:33,570 við vitum að það er alltaf að fara að skreppa með þessum hætti og vaxa á þennan hátt. 1724 01:15:33,570 --> 01:15:37,840 Biðraðir, koma fólki inn á endanum og fara frá upphafi, 1725 01:15:37,840 --> 01:15:40,620 þannig að við verðum að halda utan hvar upphafið er. 1726 01:15:40,620 --> 01:15:43,540 Það er það sem ég meina með því að við þurfum að halda utan um hvar hausinn er. 1727 01:15:43,540 --> 01:15:45,190 Cool? 1728 01:15:45,190 --> 01:15:46,440 Allt í lagi. 1729 01:15:46,440 --> 01:15:49,250 Átta mínútur, par Meira efni, getum við gert það. 1730 01:15:49,250 --> 01:15:51,240 >> Allt í lagi, kjötkássa borð. 1731 01:15:51,240 --> 01:15:53,095 Við ræddum mjög stuttlega um kjötkássa matskeið. 1732 01:15:53,095 --> 01:15:55,720 Fyrir próf, þú þarft bara að skilja þá á háu stigi. 1733 01:15:55,720 --> 01:15:58,330 Grunnhugmyndin er að þú verður að þessum gögnum. 1734 01:15:58,330 --> 01:16:02,570 Og við viljum að nálgast það í tíma sem er hraðar en eitthvað eins tengdur 1735 01:16:02,570 --> 01:16:03,070 lista. 1736 01:16:03,070 --> 01:16:05,290 Vegna þess að við sagði, ef við værum leita í gegnum tengda listanum, 1737 01:16:05,290 --> 01:16:06,248 sem gæti tekið N tíma. 1738 01:16:06,248 --> 01:16:08,810 Jafnvel aðgang getur tekið N tími í tengda listanum. 1739 01:16:08,810 --> 01:16:12,930 Kjötkássa matskeið gefa okkur hvernig við getum hraðar nálgast hlutina, og fleira 1740 01:16:12,930 --> 01:16:16,970 fljótt að leita að hlutum, án þess að að hafa hömlur á fjölda 1741 01:16:16,970 --> 01:16:19,030 þar sem við höfum fast stærð. 1742 01:16:19,030 --> 01:16:23,950 >> Þannig að við hugsum um gögn uppbyggingu þar, þar sem við setja það í gögn uppbygging 1743 01:16:23,950 --> 01:16:26,620 er háð þessu töfrandi kjötkássa virka. 1744 01:16:26,620 --> 01:16:30,630 Þannig að í þessu tilfelli, töfrum kjötkássa Fallið er bara að taka orð, 1745 01:16:30,630 --> 01:16:34,027 haka hvað fyrsti stafurinn er, og þá bara að raða honum í stafrófsröð. 1746 01:16:34,027 --> 01:16:36,110 Svo við settum í raun þá í mismunandi fötunum. 1747 01:16:36,110 --> 01:16:39,510 Þegar við sjáum banani, segjum við, OK, við skulum setja í B fötu. 1748 01:16:39,510 --> 01:16:41,820 Þegar við sjáum Apple, við skulum setja það í fötu. 1749 01:16:41,820 --> 01:16:44,744 Ef við sáum Apricot, við skulum setja í fötu. 1750 01:16:44,744 --> 01:16:45,600 OK? 1751 01:16:45,600 --> 01:16:51,090 >> Svo býst ég var að leita for-- I veit ekki, hvað er annað ávexti? 1752 01:16:51,090 --> 01:16:52,920 Segjum að ég var að leita að appelsína. 1753 01:16:52,920 --> 01:16:55,340 Hvar ætti ég að leita? 1754 01:16:55,340 --> 01:16:56,420 Í O fötu. 1755 01:16:56,420 --> 01:17:01,450 Já, það er aðeins einn staður að appelsína gæti verið, OK? 1756 01:17:01,450 --> 01:17:05,370 Svo ég sagði áðan hvað gerist if-- vel og ég sagði áðan, 1757 01:17:05,370 --> 01:17:10,030 skulum segja að við setja apríkósu in-- en ég virkilega að takast á við þá staðreynd að, ó nei, 1758 01:17:10,030 --> 01:17:14,990 ef ég væri að setja Berry í, það er fara að stangast á við banana. 1759 01:17:14,990 --> 01:17:20,160 Þar sem við settum það ef það er þegar eitthvað í borðinu okkar? 1760 01:17:20,160 --> 01:17:22,760 Jæja, höfum við nokkrar valkosti. 1761 01:17:22,760 --> 01:17:26,160 >> Valkostur númer eitt er línuleg leit, sem í grundvallaratriðum þýðir, 1762 01:17:26,160 --> 01:17:28,690 skulum segja að ég vil reyna að setja Berry, og ég sé, ó nei, 1763 01:17:28,690 --> 01:17:31,170 bananar nú þegar, Ég segi bara í lagi, látið 1764 01:17:31,170 --> 01:17:33,810 mig líta að næstu staðnum. 1765 01:17:33,810 --> 01:17:36,744 Svo ég geng niður, segi ég, ó, það er ekkert í D fötu. 1766 01:17:36,744 --> 01:17:39,410 Ég get í raun ekki hugsa um hvaða ávöxtum að byrja með bréfi D, 1767 01:17:39,410 --> 01:17:41,620 þannig að ég ætla bara að fara að setja Berry þar. 1768 01:17:41,620 --> 01:17:42,650 Durian. 1769 01:17:42,650 --> 01:17:44,590 OK, svo þar er ekkert í það enn, 1770 01:17:44,590 --> 01:17:47,020 Ég gæti eins vel nota bara þessi blettur. 1771 01:17:47,020 --> 01:17:48,805 Hvað er ókostur að? 1772 01:17:48,805 --> 01:17:49,300 >> Áhorfendur: Það er út af röð. 1773 01:17:49,300 --> 01:17:50,008 >> Ræðumaður 1: Sorry? 1774 01:17:50,008 --> 01:17:51,280 Áhorfendur: Það er út af röð. 1775 01:17:51,280 --> 01:17:53,113 >> Ræðumaður 1: Það er out-- rétt, gætum við endað 1776 01:17:53,113 --> 01:17:56,380 með hluti sem eru ekki in-- geymdar í fötunum í leiðinni 1777 01:17:56,380 --> 01:17:57,790 sem við búast við þá til að vera. 1778 01:17:57,790 --> 01:18:00,670 Þannig að ef við vorum að leita fyrir berjum, áður en við sagði, 1779 01:18:00,670 --> 01:18:02,000 ó við getum litið á einni fötu. 1780 01:18:02,000 --> 01:18:03,650 Það gæti aðeins verið í einni fötu. 1781 01:18:03,650 --> 01:18:07,380 En nú, í raun, það gæti verið í öllum fötunum, ekki satt? 1782 01:18:07,380 --> 01:18:10,400 >> OK, hér er annar valkostur, Sérstakur chaining-- 1783 01:18:10,400 --> 01:18:16,630 sem er sú hugmynd að við erum að fara að nota smá síðar í P sett 5. 1784 01:18:16,630 --> 01:18:19,340 Frekar en bara að hafa eitt bil í hverri fötu, 1785 01:18:19,340 --> 01:18:23,610 Hvers vegna eigum við ekki að hafa hvert fötu vera bendi tengda listanum? 1786 01:18:23,610 --> 01:18:28,570 Þar sem við segjum, OK, það er fötu fyrir allt sem byrjar með A. 1787 01:18:28,570 --> 01:18:31,990 Og það er bara að fara að vera tengd lista af ávöxtum sem byrja með A. 1788 01:18:31,990 --> 01:18:36,240 Svo ef við fáum nýja ávöxtu, segjum við get-- við lárperu, við höfum epli, 1789 01:18:36,240 --> 01:18:39,530 skulum segja að við fá Apricot, hvernig myndum við setja á listanum? 1790 01:18:39,530 --> 01:18:43,330 Jæja við myndum fara að fötu 0, og við myndum bara setja það í líkaði listanum okkar, 1791 01:18:43,330 --> 01:18:45,320 einfalt er það. 1792 01:18:45,320 --> 01:18:47,160 >> Nú er ég að halda áfram að segja fötu. 1793 01:18:47,160 --> 01:18:49,470 Við gætum framkvæma þetta í nokkra vegu. 1794 01:18:49,470 --> 01:18:52,040 Ein dæmigerð leið að þetta svona mynd gefur til kynna, 1795 01:18:52,040 --> 01:18:55,580 er kannski að hafa fjölbreytta ábendingum til tengd listum. 1796 01:18:55,580 --> 01:18:58,174 Það er ein leið sem við getum innleiða kjötkássa borð. 1797 01:18:58,174 --> 01:19:01,090 Áhorfendur: Vilt þú þarft annað Listinn vegna banani og Berry eru út 1798 01:19:01,090 --> 01:19:01,591 af röð? 1799 01:19:01,591 --> 01:19:03,298 Ræðumaður 1: Vilt þú need-- Ah, þú vildi 1800 01:19:03,298 --> 01:19:06,310 þarf annan lista vegna þess að banani og Berry eru í ólagi? 1801 01:19:06,310 --> 01:19:09,880 Í þessu tilviki, kjötkássa virka okkar, sem segir okkur hvar á að setja hlutina 1802 01:19:09,880 --> 01:19:11,647 er ekki sama um annað bréf. 1803 01:19:11,647 --> 01:19:14,730 Það er ekki sama um alphabetizing, það annt aðeins um fyrsta staf. 1804 01:19:14,730 --> 01:19:15,672 Spurning? 1805 01:19:15,672 --> 01:19:18,947 >> Áhorfendur: Hver er skilgreining á því virka, og hvað þýðir það líta út? 1806 01:19:18,947 --> 01:19:19,780 Ræðumaður 1: Ah, gott. 1807 01:19:19,780 --> 01:19:22,450 OK, þannig að við þurfum ekki að hafa áhyggjur of mikið fyrir þetta próf. 1808 01:19:22,450 --> 01:19:23,700 Svo ég hafði ekki sett í glærum. 1809 01:19:23,700 --> 01:19:26,320 Við erum að fara að kynna við það fyrir P sett 5. 1810 01:19:26,320 --> 01:19:31,520 En í grundvallaratriðum, það segir, gefið nýr þáttur, hvar ætti ég að setja það? 1811 01:19:31,520 --> 01:19:35,450 Eða við skulum segja að ég er að leita að þáttur, þar gæti það verið? 1812 01:19:35,450 --> 01:19:37,860 Já, frábær spurning. 1813 01:19:37,860 --> 01:19:40,870 >> OK, mjög fljótt, tré og reynir. 1814 01:19:40,870 --> 01:19:44,779 Svo er tré bara hvers konar skipulagðri gögn uppbygging. 1815 01:19:44,779 --> 01:19:47,820 Og við erum að fara að sjá mikið af myndum sem mun gera þetta frábær skýr. 1816 01:19:47,820 --> 01:19:51,180 Og Trie, sem við sáum í bekknum, er mjög sérstök tegund af tré 1817 01:19:51,180 --> 01:19:53,440 sem í raun virkar eins a multi-láréttur flötur kjötkássa borð. 1818 01:19:53,440 --> 01:19:54,390 Það er frábær kaldur. 1819 01:19:54,390 --> 01:19:56,030 Við erum að fara að sjá það í bara sek. 1820 01:19:56,030 --> 01:19:57,821 Allt í lagi, þannig að við skulum tala um tré fyrst. 1821 01:19:57,821 --> 01:20:01,040 Þannig að þetta er í raun dæmigerð dæmi um tré, þar sem við höfum einhverja stigveldi. 1822 01:20:01,040 --> 01:20:03,220 Þú sérð að einn er á the mjög toppur, ekki satt? 1823 01:20:03,220 --> 01:20:06,190 Og ég get sagt toppinn vegna þess að það er greinilega röðun vegna þess að við 1824 01:20:06,190 --> 01:20:08,260 hafa þessar örvar að fara niður. 1825 01:20:08,260 --> 01:20:11,740 Þannig að hlutur efst, Ég kalla það rót hnút. 1826 01:20:11,740 --> 01:20:13,080 Svo er eitt rót hnút. 1827 01:20:13,080 --> 01:20:17,330 Og það neðst, sem hafa ekkert að koma af þeim, 1828 01:20:17,330 --> 01:20:18,783 Ég segi þetta eru lauf hnútar. 1829 01:20:18,783 --> 01:20:22,730 Svo 8,9 5, 6, 7, OK. 1830 01:20:22,730 --> 01:20:27,740 Og yfirleitt hugtök við get sagt er, 1 er 3 er foreldri. 1831 01:20:27,740 --> 01:20:30,740 Svo er það sem kemur a stigi fyrir ofan það, og bendir á það. 1832 01:20:30,740 --> 01:20:32,710 Og 3 er 1 er barn. 1833 01:20:32,710 --> 01:20:34,505 Það er hlutur sem 1 stig til. 1834 01:20:34,505 --> 01:20:35,005 Spurning? 1835 01:20:35,005 --> 01:20:36,414 >> Áhorfendur: Getur þú farið aftur til fyrri renna, vinsamlegast? 1836 01:20:36,414 --> 01:20:37,388 >> Ræðumaður 1: Get ég farið til baka á fyrri glæru? 1837 01:20:37,388 --> 01:20:37,888 Viss. 1838 01:20:37,888 --> 01:20:40,640 1839 01:20:40,640 --> 01:20:41,390 Spurningar um þetta? 1840 01:20:41,390 --> 01:20:42,764 Eða þú vildir bara að líta á það? 1841 01:20:42,764 --> 01:20:44,650 Áhorfendur: ég bara ekki komast í gegnum það. 1842 01:20:44,650 --> 01:20:47,100 >> Ræðumaður 1: Allt í lagi, kaldur, já. 1843 01:20:47,100 --> 01:20:49,846 Þetta verður allt að vera á netinu svo ekki áhyggjur óður í getting hvert orð. 1844 01:20:49,846 --> 01:20:51,720 Og í þágu tími, ég ætla að fara. 1845 01:20:51,720 --> 01:20:53,270 Er það í lagi? 1846 01:20:53,270 --> 01:20:53,790 Awesome. 1847 01:20:53,790 --> 01:20:55,720 OK, flott. 1848 01:20:55,720 --> 01:20:57,790 Svo skulum við tala um a mjög sérstakar kind-- 1849 01:20:57,790 --> 01:20:59,710 þannig að við höfum þetta almennt uppbyggingu tré, 1850 01:20:59,710 --> 01:21:02,876 sem er bara eitthvað sem gerir okkur að eins konar tign hlutum hierarchically. 1851 01:21:02,876 --> 01:21:06,000 1852 01:21:06,000 --> 01:21:11,110 >> Tvöfaldur tré eru hlutir þar sem sérhver hnútur hefur í mesta lagi tvö börn. 1853 01:21:11,110 --> 01:21:11,690 OK? 1854 01:21:11,690 --> 01:21:14,560 Og ég sagði, OK, svo virðist sem að passa við þessa lýsingu. 1855 01:21:14,560 --> 01:21:16,830 Ég sagði hnút, ekki tvíleitartré. 1856 01:21:16,830 --> 01:21:19,720 Hvað er tvöfaldur leita tré? 1857 01:21:19,720 --> 01:21:20,440 Það er flokkað. 1858 01:21:20,440 --> 01:21:22,890 Svo þú veist að í tvíleitartré, 1859 01:21:22,890 --> 01:21:26,580 allt á tree-- allt að hnúður vinstri er minni, 1860 01:21:26,580 --> 01:21:28,830 og allt til hnúður rétt er stærri. 1861 01:21:28,830 --> 01:21:30,620 Svo er þetta ekki tvöfaldur leita tré. 1862 01:21:30,620 --> 01:21:32,770 Þetta er bara tvöfaldur tré. 1863 01:21:32,770 --> 01:21:35,910 Þannig að við höfum stóra flokk tré, örlítið minni flokkur 1864 01:21:35,910 --> 01:21:40,106 tvöfaldur tré, leita eftir a-- tvíleitartré. 1865 01:21:40,106 --> 01:21:41,540 Cool? 1866 01:21:41,540 --> 01:21:44,410 Allt í lagi. 1867 01:21:44,410 --> 01:21:47,380 >> Og nú, mest gaman af allt, höfum við tilraunir okkar. 1868 01:21:47,380 --> 01:21:49,500 Þið sá þessa mynd í fyrirlestri? 1869 01:21:49,500 --> 01:21:51,790 Já, það ætti að líta frábær þekki. 1870 01:21:51,790 --> 01:21:54,252 Við skulum líta á hvernig við gætum raunverulega framkvæma þetta. 1871 01:21:54,252 --> 01:21:56,210 Eða í raun, við skulum sjá, er að jafnvel koma upp? 1872 01:21:56,210 --> 01:21:56,731 Nei. 1873 01:21:56,731 --> 01:21:59,480 Allt í lagi, eigum við ekki einu sinni að hafa áhyggjur af því lágt efni. 1874 01:21:59,480 --> 01:22:02,320 Við munum hafa nægan tíma til að takast á þá P setja 5. 1875 01:22:02,320 --> 01:22:05,780 En nú, bara mjög mikil, við veit að þetta er það sem það lítur út. 1876 01:22:05,780 --> 01:22:08,530 Við lýst því sem einskonar a multi-láréttur flötur kjötkássa borð 1877 01:22:08,530 --> 01:22:12,264 where-- hvað gerir þessa verslun? 1878 01:22:12,264 --> 01:22:14,430 Þessi geymir nöfn vísindamenn sem við getum raunverulega 1879 01:22:14,430 --> 01:22:20,690 leita eftir bara svona eftir á mismunandi töflur kjötkássa niður, allt í lagi? 1880 01:22:20,690 --> 01:22:24,730 >> Og tilgangur þess er, í orði, þeir veita föstu líta upp. 1881 01:22:24,730 --> 01:22:29,630 Þannig að ef ég vil að athuga það, til dæmis, sem er someone-- 1882 01:22:29,630 --> 01:22:33,410 sem Mandel er í þessu Trie, ég gæti mjög fljótt 1883 01:22:33,410 --> 01:22:36,260 í linear-- Fyrirgefðu, í föstu tíma, reikna út 1884 01:22:36,260 --> 01:22:39,010 hvort sem það er í Trie. 1885 01:22:39,010 --> 01:22:41,500 En sam, er líta á hversu stór þessi er. 1886 01:22:41,500 --> 01:22:44,120 Við erum ekki einu sinni að geyma það mikið af gögnum, og það er mikið. 1887 01:22:44,120 --> 01:22:47,950 Svo er einn stór con sem það notar mikið minni. 1888 01:22:47,950 --> 01:22:48,746 Já. 1889 01:22:48,746 --> 01:22:50,610 >> Áhorfendur: Hvers vegna er það að veita föstu tíma, nákvæmlega? 1890 01:22:50,610 --> 01:22:51,376 >> Ræðumaður 1: Eitt sinn? 1891 01:22:51,376 --> 01:22:53,360 >> Áhorfendur: Hvað er innsæi fyrir því hvers vegna það veitir stöðuga tíma? 1892 01:22:53,360 --> 01:22:54,610 >> Ræðumaður 1: Excellent spurning. 1893 01:22:54,610 --> 01:22:56,030 Hvers vegna er það að veita stöðuga tíma? 1894 01:22:56,030 --> 01:22:59,280 Svo það sem við getum gert er, við skulum segja að við erum að leita að Mandel. 1895 01:22:59,280 --> 01:23:02,830 Við vitum að við viljum að byrja í fyrsta stigi í M. 1896 01:23:02,830 --> 01:23:06,890 Við vitum að við viljum að fylgja henni til E. Svo það er tekið eitt skref, tvö skref, ekki satt? 1897 01:23:06,890 --> 01:23:10,710 Við fylgjum henni til N. við fylgjum henni til D. Við fylgjum henni til E. Við fylgjum henni, L. 1898 01:23:10,710 --> 01:23:15,100 Og svo næsta sem við athuga says-- þetta Delta segir Já, það er 1899 01:23:15,100 --> 01:23:15,990 í töflunni okkar. 1900 01:23:15,990 --> 01:23:16,880 Það er orð. 1901 01:23:16,880 --> 01:23:19,900 Það er gild færsla í Trie okkar. 1902 01:23:19,900 --> 01:23:22,450 Svo þú ert að segja, OK, sem tók sjö skrefum. 1903 01:23:22,450 --> 01:23:27,200 En ef við bætt eins og Zillion meiri vísindamenn að þessum gögnum uppbyggingu, 1904 01:23:27,200 --> 01:23:29,470 við þyrftum ekki að athuga a zillion fleiri hlutir. 1905 01:23:29,470 --> 01:23:33,580 Við erum bara alltaf að fara að þurfa að taka sjö skref, lengd viðkomandi er 1906 01:23:33,580 --> 01:23:35,260 nafn. 1907 01:23:35,260 --> 01:23:39,350 >> Svo, eins og við að hugsa Runtime sem býst 1908 01:23:39,350 --> 01:23:42,340 við auka stærð okkar gögn uppbygging, hversu mikið lengur 1909 01:23:42,340 --> 01:23:44,580 er það að fara að taka? 1910 01:23:44,580 --> 01:23:47,372 Í þessu tilfelli, ef við bætum fullt fleiri vísindamenn, það skiptir ekki máli. 1911 01:23:47,372 --> 01:23:49,413 Það er samt að fara að taka sama magn af tíma. 1912 01:23:49,413 --> 01:23:50,350 Það er stöðug tími. 1913 01:23:50,350 --> 01:23:50,850 Já. 1914 01:23:50,850 --> 01:23:53,557 >> Áhorfendur: Hvernig veistu ekki að skanna yfir aðrar tölur? 1915 01:23:53,557 --> 01:23:54,932 Ræðumaður 1: Hvernig veit ég hversu to-- 1916 01:23:54,932 --> 01:23:58,236 Áhorfendur: Eins og hvernig veistu að þú ferð beint frá M til E og ekki til M að A? 1917 01:23:58,236 --> 01:23:59,069 Ræðumaður 1: Oh, viss. 1918 01:23:59,069 --> 01:24:01,620 Þar sem ég vissi að ég var að leita að orðinu Mandel, 1919 01:24:01,620 --> 01:24:04,195 og ég veit bara að það er M-E. Svo that-- já, fara á undan. 1920 01:24:04,195 --> 01:24:06,528 Áhorfendur: Vilt þú ekki að líta á öðrum bréfum 1921 01:24:06,528 --> 01:24:07,870 í the hvíla af the [inaudible]? 1922 01:24:07,870 --> 01:24:10,020 >> Ræðumaður 1: Ah, ég myndi ekki hafa að líta á the-- lagi, frábært. 1923 01:24:10,020 --> 01:24:10,790 Þetta er frábær spurning. 1924 01:24:10,790 --> 01:24:12,170 Það fer eftir því hversu við framkvæma það. 1925 01:24:12,170 --> 01:24:15,350 Ef við framkvæma það sem bara eins og röð af fylki 1926 01:24:15,350 --> 01:24:18,100 þar sem við vitum að E er alltaf í stöðu 0, 1927 01:24:18,100 --> 01:24:21,270 Ég veit ekki, hvað Fjöldi vísitalan er. 1928 01:24:21,270 --> 01:24:24,901 Já, við getum bara gert stöðugt tími, ekki, ekki, ekki, ekki. 1929 01:24:24,901 --> 01:24:25,400 Cool. 1930 01:24:25,400 --> 01:24:27,556 Spurning þarna? 1931 01:24:27,556 --> 01:24:30,927 >> Áhorfendur: Er fasti tími sama og rauntíma? 1932 01:24:30,927 --> 01:24:33,260 Ræðumaður 1: Er fasti tími sama er rauntíma? 1933 01:24:33,260 --> 01:24:34,799 Ég er ekki alveg viss rauntíma er. 1934 01:24:34,799 --> 01:24:36,965 Áhorfendur: Eins sinn sem bókstaflega líður annað 1935 01:24:36,965 --> 01:24:40,150 með annað í stað þess að vera sjálfstæð breyta. 1936 01:24:40,150 --> 01:24:42,960 >> Ræðumaður 1: Ó, já, þú er að hugsa um það þannig. 1937 01:24:42,960 --> 01:24:46,240 Með öðrum orðum, það er ekki háð á stærð gögn uppbygging. 1938 01:24:46,240 --> 01:24:48,310 Það er leið til að hugsa um það. 1939 01:24:48,310 --> 01:24:50,510 Aðrar spurningar? 1940 01:24:50,510 --> 01:24:53,120 Kannski í fyrsta skipti í Saga, lauk við á réttum tíma. 1941 01:24:53,120 --> 01:24:57,080 Ef þú hefur einhverjar spurningar, ekki hika frjáls til að koma að spyrja okkur, fara í kafla, 1942 01:24:57,080 --> 01:25:00,190 tala við þinn TFS, skrifstofa tímar eru 08:00 og 08:30 1943 01:25:00,190 --> 01:25:03,985 til 11:00 á mánudag og þriðjudag, svo það er svolítið mismunandi tíma, 1944 01:25:03,985 --> 01:25:05,110 svo vertu viss um að þú huga að. 1945 01:25:05,110 --> 01:25:06,048 Já. 1946 01:25:06,048 --> 01:25:08,673 >> Áhorfendur: Þurfum að vita efni eins og stjórn lína rifrildi, 1947 01:25:08,673 --> 01:25:10,360 Dash LS, þjóta hvað? 1948 01:25:10,360 --> 01:25:11,840 >> Ræðumaður 1: Stjórn lína rök og Linux skipanir, 1949 01:25:11,840 --> 01:25:13,010 já, þú þarft að vita þá. 1950 01:25:13,010 --> 01:25:18,234 Very-- það er eins konar stigi efni sem við fjallað í kafla 0, 1951 01:25:18,234 --> 01:25:19,400 eins langt og Linux skipanir fara. 1952 01:25:19,400 --> 01:25:20,942 >> Áhorfendur: Eru tímar í Annenberg? 1953 01:25:20,942 --> 01:25:23,525 Ræðumaður 1: Viðtalstími, ég er ekki alveg viss hvar þeir eru. 1954 01:25:23,525 --> 01:25:25,980 En þú getur athugað það website, og það mun segja þér. 1955 01:25:25,980 --> 01:25:27,499