1 00:00:00,000 --> 00:00:02,742 2 00:00:02,742 --> 00:00:05,680 >> Ræðumaður 1: Hæ allir. 3 00:00:05,680 --> 00:00:07,530 Við erum að fara að byrja. 4 00:00:07,530 --> 00:00:09,330 Ég held að fólk er enn að fara til að vera að sía í. 5 00:00:09,330 --> 00:00:12,840 En í þágu tíma, þannig að við getum fá ykkur héðan á réttum tíma, 6 00:00:12,840 --> 00:00:14,110 við erum að fara að byrja. 7 00:00:14,110 --> 00:00:18,780 Svo velkomin á CS50 Quiz 0 endurskoðun. 8 00:00:18,780 --> 00:00:23,020 Fyrir þá sem hafa ekki áttað sig á enn, hefur þú spurningu á miðvikudag. 9 00:00:23,020 --> 00:00:25,700 Woo-hoo. 10 00:00:25,700 --> 00:00:29,780 >> Ef þú hefur ekki byrjað að læra enn eða hafa ekki áttað sig á að þetta er til enn, 11 00:00:29,780 --> 00:00:34,070 Undanfarin Skyndipróf og allar upplýsingar um quiz þín eru á cs50.net/quizzes. 12 00:00:34,070 --> 00:00:38,090 There 'sumir laglegur góður efni á það, Undanfarin Skyndipróf frá síðustu 10 13 00:00:38,090 --> 00:00:43,760 ár sem og upplýsingar um þetta próf og efni 14 00:00:43,760 --> 00:00:46,250 sem verður að falla. 15 00:00:46,250 --> 00:00:48,980 Svo skulum við hefjast handa. 16 00:00:48,980 --> 00:00:54,240 >> Svo þú krakkar gætu muna, fyrsta dagur í flokki Davíð hafði þá lampar á. 17 00:00:54,240 --> 00:00:59,650 Svo í raun, allt sem fer á undir hetta af a tölva er 18 00:00:59,650 --> 00:01:00,860 gert í tvöfaldur. 19 00:01:00,860 --> 00:01:04,080 Binary þýðir það sem það hljómar eins, 0 og 1 er um. 20 00:01:04,080 --> 00:01:09,290 Það eru tvö gildi sem Hægt er að fulltrúa. 21 00:01:09,290 --> 00:01:14,675 >> Svo bara eins og á fyrsta degi á kafla Davíð sneri á ljósi 22 00:01:14,675 --> 00:01:21,990 ljósaperur til að tákna á, eða 1, tölva okkar skilur tvöfaldur eins 0 og 23 00:01:21,990 --> 00:01:24,110 1 er á eða burt. 24 00:01:24,110 --> 00:01:25,360 Grunnatriði Binary. 25 00:01:25,360 --> 00:01:29,440 26 00:01:29,440 --> 00:01:32,470 Sérhver staður er fulltrúa í grunn tveimur. 27 00:01:32,470 --> 00:01:36,260 Svo þú bæta 2 við 0 til 1 til 2 alla leið upp. 28 00:01:36,260 --> 00:01:41,970 >> Að reikna út hvað tvöfaldur þitt er að aukastaf þú fylgir bara þessum jöfnu 29 00:01:41,970 --> 00:01:42,840 tegund hlutur. 30 00:01:42,840 --> 00:01:49,510 Ef þú ert með 1 í einhverjar af þeim stöðum, þú margfaldar það með hvaða 31 00:01:49,510 --> 00:01:53,820 byggja það á, að bæta það upp, og þú færð aukastaf. 32 00:01:53,820 --> 00:01:57,930 Svo er þetta hvernig þú treyst 5 í tvöfaldur. 33 00:01:57,930 --> 00:02:01,400 Rétt eins og það sem við vorum að gera á Hjálp, þetta er hvernig þú myndir 34 00:02:01,400 --> 00:02:02,650 tákna 1 til og með 5. 35 00:02:02,650 --> 00:02:05,320 36 00:02:05,320 --> 00:02:09,660 >> Á sama hátt, bara eins og þú getur bætt við og draga í aukastaf eða basa 10, eða 37 00:02:09,660 --> 00:02:13,040 virkilega einhver stöð, á getur bætt og draga í tvöfaldur. 38 00:02:13,040 --> 00:02:18,400 Einmitt það sem þú vildi búast við þegar þú bæta tvo upp, ef það er jafnt og meiri 39 00:02:18,400 --> 00:02:24,220 en 1, þú bera a 1, gera það 0, og gera því að bæta þannig, bara 40 00:02:24,220 --> 00:02:29,910 eins og þú vildi búast við reglulega aukastaf eða önnur stöð. 41 00:02:29,910 --> 00:02:30,970 Cool. 42 00:02:30,970 --> 00:02:35,140 >> Svo eins og ég sagði áður, allt að fer undir hetta tölva okkar 43 00:02:35,140 --> 00:02:37,560 er gert í 0 og 1 er, eða tvöfaldur. 44 00:02:37,560 --> 00:02:43,470 Svo hvernig gera við látum, til dæmis, bréf, eða tölur eða stafir? 45 00:02:43,470 --> 00:02:45,560 Og svarið við því er ASCII. 46 00:02:45,560 --> 00:02:49,380 >> ASCII er kortlagning á milli stafa að við myndum venjulega sjá í 47 00:02:49,380 --> 00:02:53,360 Enska eins A er, B er, C er, undirstrika, bandstrik, og 48 00:02:53,360 --> 00:02:54,910 eitthvað svoleiðis. 49 00:02:54,910 --> 00:02:57,260 Og það kort sem við ASCII gildi. 50 00:02:57,260 --> 00:03:03,080 ASCII gildi er bara tala sem er hægt að skilja við tölvuna. 51 00:03:03,080 --> 00:03:07,430 Og rétt eins og þú getur gert viðbót og frádráttur með tölum, getur þú gert 52 00:03:07,430 --> 00:03:10,890 þá með ASCII gildi. 53 00:03:10,890 --> 00:03:14,050 >> Þannig að í þessu dæmi, hvað mun þetta prentað út? 54 00:03:14,050 --> 00:03:26,790 55 00:03:26,790 --> 00:03:35,480 Já, svo bara pláss B rúm C rúm D. Hvaðan mús minn fara? 56 00:03:35,480 --> 00:03:39,200 57 00:03:39,200 --> 00:03:43,380 Eftir að þú getur skilgreint int við 65. 58 00:03:43,380 --> 00:03:47,080 Og þegar þú hefur prentað það út með því að nota prósent C, verður það að túlka það sem 59 00:03:47,080 --> 00:03:49,330 eðli og prentar út A. 60 00:03:49,330 --> 00:03:52,800 >> Á sama hátt getur þú lýsa það sem bleikju. 61 00:03:52,800 --> 00:03:56,860 Og þegar þú hefur prentað það út með því að nota prósent C, verður það túlka það sem 62 00:03:56,860 --> 00:04:05,240 prósent D. Og bara eins og þú getur bætt við númer, getur þú bætt við persónurnar eru 63 00:04:05,240 --> 00:04:06,878 Gildi ASCII, í þessu tilfelli. 64 00:04:06,878 --> 00:04:11,370 65 00:04:11,370 --> 00:04:16,130 >> Svo smá bendillinn fyrir alla. 66 00:04:16,130 --> 00:04:19,610 5, eins og band, er ekki reyndar jafn 5. 67 00:04:19,610 --> 00:04:26,610 Svo hvernig gætum við umbreyta band 5 til tölunnar 5? 68 00:04:26,610 --> 00:04:28,930 Einhverjar hugmyndir? 69 00:04:28,930 --> 00:04:31,630 Já. 70 00:04:31,630 --> 00:04:36,720 >> Þannig að ef við höfum 5 sem streng, við getum draga 0. 71 00:04:36,720 --> 00:04:37,820 Og það mun gefa okkur 5. 72 00:04:37,820 --> 00:04:41,670 Og sömuleiðis, ef við höfum 5 sem heiltala, bæta við að í strenginn 0. 73 00:04:41,670 --> 00:04:43,112 Og það gefur okkur band 5. 74 00:04:43,112 --> 00:04:46,350 75 00:04:46,350 --> 00:04:48,350 Cool. 76 00:04:48,350 --> 00:04:52,940 >> Nú, muna aftur fyrirlestur einn hvar við ræddum um reiknirit. 77 00:04:52,940 --> 00:04:57,260 Svo hvernig við viljum í raun og veru í tölvu að gera áhugaverða hluti? 78 00:04:57,260 --> 00:05:00,460 Þú veist, bara að bæta við og draga tölur og prentun það út er ekki 79 00:05:00,460 --> 00:05:01,730 það spennandi. 80 00:05:01,730 --> 00:05:04,620 Venjulega, við viljum tölvu okkar til framkvæma einhvers konar reiknirit. 81 00:05:04,620 --> 00:05:07,820 Eitthvað svolítið flóknara en bara einföld stærðfræði. 82 00:05:07,820 --> 00:05:11,930 >> Reiknirit er bara skref fyrir skref sett af leiðbeiningum um hvernig á að framkvæma 83 00:05:11,930 --> 00:05:14,640 ákveðin task-- 84 00:05:14,640 --> 00:05:15,660 bara eins og uppskrift. 85 00:05:15,660 --> 00:05:19,990 Þú gætir muna fyrsta degi flokki þar sem Davíð hafði okkur treyst herbergi 86 00:05:19,990 --> 00:05:22,550 af fólki og hversu margir voru í herberginu. 87 00:05:22,550 --> 00:05:24,480 Þú gætir verið að nota til að telja eitt af öðru. 88 00:05:24,480 --> 00:05:25,860 1, 2, 3, 4. 89 00:05:25,860 --> 00:05:28,010 Í því tilfelli, línuleg tími reiknirit. 90 00:05:28,010 --> 00:05:31,710 >> En Davíð kynnti reiknirit fyrir þú að telja fólki í herbergi 91 00:05:31,710 --> 00:05:37,340 þar sem allir stendur upp, segir þú þína tala til annars aðila, bæta við að 92 00:05:37,340 --> 00:05:39,200 Fjöldi upp, og einn maður sest niður. 93 00:05:39,200 --> 00:05:40,410 Og þú endurtaka það. 94 00:05:40,410 --> 00:05:42,910 Það er ein tegund af reiknirit. 95 00:05:42,910 --> 00:05:47,520 Við getum greina hversu duglegur An Líkanið byggir á það er að keyra tíma. 96 00:05:47,520 --> 00:05:49,680 En við munum tala svolítið meira um það síðar. 97 00:05:49,680 --> 00:05:52,740 98 00:05:52,740 --> 00:05:57,090 >> Svo öll algrím geta einnig vera skrifuð í sauðakóðanum. 99 00:05:57,090 --> 00:06:01,120 Sauðakóðanum er bara enska eins setningafræði notað til að tákna 100 00:06:01,120 --> 00:06:02,420 forritunarmál. 101 00:06:02,420 --> 00:06:06,070 Til dæmis, ef við vildum spyrja notanda að giska uppáhalds númerið mitt, við 102 00:06:06,070 --> 00:06:08,390 gæti hafa sauðakóðanum sem slíkt. 103 00:06:08,390 --> 00:06:09,850 >> Fá a notandi giska. 104 00:06:09,850 --> 00:06:13,570 Ef giska er rétt, segja þeim þeir eru rétt, annars segja þeim 105 00:06:13,570 --> 00:06:15,560 þeir eru ekki rétt. 106 00:06:15,560 --> 00:06:22,530 Og sauðakóðanum er leið auðveldlega fulltrúi hugmynd eða reiknirit. 107 00:06:22,530 --> 00:06:26,910 Svo nú erum við might vilja til raunverulega skrifa þetta á því tungumáli sem tölvan 108 00:06:26,910 --> 00:06:27,980 Kannski skilning. 109 00:06:27,980 --> 00:06:35,660 Þannig að við gætum skrifað sauðakóðanum og túlka það í kóða. 110 00:06:35,660 --> 00:06:41,320 >> Svo langt, kóðinn verður að fylgja að vissu setningafræði 111 00:06:41,320 --> 00:06:42,490 forritunarmál. 112 00:06:42,490 --> 00:06:45,430 Og svo langt, í CS50, höfum við verið að nota aðallega c. 113 00:06:45,430 --> 00:06:48,320 Þannig að þetta gæti verið Kóðinn fyrir c. 114 00:06:48,320 --> 00:06:51,440 Síðar í námskeiðinu, þú kemur nóttin í snertingu við önnur forritun 115 00:06:51,440 --> 00:06:52,480 tungumálum eins og PHP. 116 00:06:52,480 --> 00:06:57,540 Eða ef þú tekur jafnvel öðrum flokkum, þú gæti gert Java, Python, eða jafnvel OCML. 117 00:06:57,540 --> 00:07:01,570 En í okkar tungumáli c program, þetta er hvernig við gætum skrifað Kóðinn fyrir 118 00:07:01,570 --> 00:07:04,760 að sauðakóðanum reiknirit sem Ég lýsti bara áðan. 119 00:07:04,760 --> 00:07:08,630 120 00:07:08,630 --> 00:07:11,430 >> Svo hvernig hjartarskinn tölvan þín í raun skilja að? 121 00:07:11,430 --> 00:07:14,490 Eins og ég sagði áður, það bara virkilega skilur núllum og sjálfur. 122 00:07:14,490 --> 00:07:17,880 Svo hvernig virkar það að fá frá upptökum kóða til eitthvað sem hægt er að 123 00:07:17,880 --> 00:07:18,960 skilið? 124 00:07:18,960 --> 00:07:22,920 Jæja, höfum við eitthvað kallað þýðanda. 125 00:07:22,920 --> 00:07:28,450 >> Ef þú manst aftur í flestum þínum psets, þú hefðir einhvers konar áætlun 126 00:07:28,450 --> 00:07:30,370 skrifað í punktur c skrá. 127 00:07:30,370 --> 00:07:32,550 Og þá myndi slá make. 128 00:07:32,550 --> 00:07:35,970 Svo hvað er að gera? 129 00:07:35,970 --> 00:07:39,970 >> Þú getur slegið make til að safna saman þínum forrit því someone-- 130 00:07:39,970 --> 00:07:42,730 hver skrifaði p sett þína; sennilega David-- 131 00:07:42,730 --> 00:07:44,190 skapað gera skrá. 132 00:07:44,190 --> 00:07:51,320 Og það segir að til að vita að hlaupa þinn þýðanda, sem heitir clang að vilji 133 00:07:51,320 --> 00:07:55,560 þá þýða frumkóðanum að mótmæla númer, sem er núll og sjálfur 134 00:07:55,560 --> 00:07:57,720 að tölvan þín skilur. 135 00:07:57,720 --> 00:08:01,610 En stuttu seinna á, munum við fara meira í dýpt um vistþýðendur. 136 00:08:01,610 --> 00:08:05,640 137 00:08:05,640 --> 00:08:10,800 >> Svo muna pset 0, where-- já, þú ert með spurningu? 138 00:08:10,800 --> 00:08:11,620 >> Áhorfendur: [inaudible]? 139 00:08:11,620 --> 00:08:12,490 >> Ræðumaður 1: Já. 140 00:08:12,490 --> 00:08:14,960 Ég held að þeir í raun og veru ætti að vera á netinu. 141 00:08:14,960 --> 00:08:15,120 Já. 142 00:08:15,120 --> 00:08:16,572 >> Áhorfendur: Er það eins og [inaudible]? 143 00:08:16,572 --> 00:08:19,476 144 00:08:19,476 --> 00:08:20,830 >> Ræðumaður 1: Það er ekki. 145 00:08:20,830 --> 00:08:25,810 The eru á cs50.net/quizzes. 146 00:08:25,810 --> 00:08:32,900 >> Áhorfendur: Slash Skyndipróf, rista 2013, rista 0, og bara smella í gegnum 147 00:08:32,900 --> 00:08:35,956 Skyndipróf 2013 og quiz 0, endurskoða kafla skyggnur. 148 00:08:35,956 --> 00:08:40,380 >> Ræðumaður 1: Já, þannig að ef þú krakkar vilja til að rífa það upp og líta á það á þinn 149 00:08:40,380 --> 00:08:42,740 í tölvunni, það er allt í lagi líka. 150 00:08:42,740 --> 00:08:43,130 Segja þetta aftur. 151 00:08:43,130 --> 00:08:44,546 >> Áhorfendur: [inaudible]. 152 00:08:44,546 --> 00:08:48,780 >> Ræðumaður 1: Já, [inaudible] er gervibreyta. 153 00:08:48,780 --> 00:08:49,644 Ó, já? 154 00:08:49,644 --> 00:08:51,372 >> Áhorfendur: [inaudible]? 155 00:08:51,372 --> 00:08:54,300 >> Ræðumaður 1: Nei, verkföll eru ekki á prófinu. 156 00:08:54,300 --> 00:08:55,950 Því miður, spurning hennar var, var verkföll á prófinu. 157 00:08:55,950 --> 00:08:59,530 Og það er ekki. 158 00:08:59,530 --> 00:09:05,780 Svo pset 0, þið ættu að hafa alla framkvæmda eitthvað með grunni. 159 00:09:05,780 --> 00:09:13,100 Og við lærðum sumir undirstöðu forritun byggingareiningar með grunni. 160 00:09:13,100 --> 00:09:15,590 >> Svo skulum taka a líta á sumir þessara kubbar 161 00:09:15,590 --> 00:09:18,170 að gera upp forrit. 162 00:09:18,170 --> 00:09:20,570 Fyrst er Boolean tjáningu. 163 00:09:20,570 --> 00:09:24,540 Boole tjáning eru þær og 0 er eða eitthvað sem hefur 164 00:09:24,540 --> 00:09:25,700 tvö möguleg gildi. 165 00:09:25,700 --> 00:09:30,320 Í þessu tilfelli, satt eða ósatt, eða slökkva á, og já eða nei. 166 00:09:30,320 --> 00:09:35,390 Dæmi um einfalt, mjög einfalt, forrit sem notar Boole 167 00:09:35,390 --> 00:09:39,140 tjáningu upp hér. 168 00:09:39,140 --> 00:09:43,220 >> Svo í röð til Boolean tjáning til verið gagnlegt, höfum við Boolean rekstraraðila. 169 00:09:43,220 --> 00:09:48,920 Þetta eru rekstraraðila sem hægt er að nota að bera saman ákveðin gildi. 170 00:09:48,920 --> 00:09:52,820 Þannig að við höfum og eða ekki jafnt minna, en eða jafnt og hærra en eða 171 00:09:52,820 --> 00:09:55,130 jafnt og minna en eða meiri en. 172 00:09:55,130 --> 00:09:59,060 En þessi fyrirtæki eru ekki mjög gagnlegt nema við getum sameinað þær í 173 00:09:59,060 --> 00:10:00,320 aðstæður. 174 00:10:00,320 --> 00:10:04,370 >> Svo þú krakkar gætu muna frá grunni og frá bls þinn setur að vér 175 00:10:04,370 --> 00:10:05,400 hafði skilyrði. 176 00:10:05,400 --> 00:10:09,710 Þeir eru, í raun, eins og gaffla í röksemdafærsla program sem 177 00:10:09,710 --> 00:10:12,670 framkvæmir allt eftir því hvort ástand er uppfyllt. 178 00:10:12,670 --> 00:10:18,150 Svo eitt af skilyrðunum sem við höfðum notað mörgum sinnum á þessu námskeiði er 179 00:10:18,150 --> 00:10:21,470 ef, annars, ef, og aðrir eru skilyrði. 180 00:10:21,470 --> 00:10:24,060 >> Hér er dæmi um hvernig þú gætir notað það. 181 00:10:24,060 --> 00:10:28,430 Hefur einhver vita muninn á milli bara að nota ef yfirlýsingar allra 182 00:10:28,430 --> 00:10:32,530 leið niður vísur ef annars, ef og annað sameina? 183 00:10:32,530 --> 00:10:33,013 Já? 184 00:10:33,013 --> 00:10:34,263 >> Áhorfendur: [inaudible]. 185 00:10:34,263 --> 00:10:40,741 186 00:10:40,741 --> 00:10:42,160 >> Ræðumaður 1: Einmitt. 187 00:10:42,160 --> 00:10:50,210 Svo ef ég hefði ef alla leið niður þetta vegur, jafnvel ef þetta ástand skilar 188 00:10:50,210 --> 00:10:52,800 satt, mun það enn áfram prófa næstu tvennu. 189 00:10:52,800 --> 00:11:00,120 En, með annað-ef, í annað yfirlýsingu, ef maður skilar satt, 190 00:11:00,120 --> 00:11:02,640 hinir eru ekki prófaðar. 191 00:11:02,640 --> 00:11:05,955 Einhverjar spurningar um það? 192 00:11:05,955 --> 00:11:06,890 Cool. 193 00:11:06,890 --> 00:11:12,240 >> Svo þú notir ef-else af annað yfirlýsingu ef þú veist að það getur einungis 194 00:11:12,240 --> 00:11:14,470 vera einn af þessum tilvikum. 195 00:11:14,470 --> 00:11:21,550 Þannig að við vitum ef x er minna en 0, það er örugglega ekki að fara að vera 196 00:11:21,550 --> 00:11:22,890 stærra en 0. 197 00:11:22,890 --> 00:11:26,940 198 00:11:26,940 --> 00:11:31,480 >> Næst, annar byggja blokk sem við lærðum eru lykkjur. 199 00:11:31,480 --> 00:11:33,310 Við höfum þrenns konar lykkjur. 200 00:11:33,310 --> 00:11:35,830 Fyrir lykkjur, en lykkjur, og gera á meðan lykkjur. 201 00:11:35,830 --> 00:11:38,730 Og almennt, þegar þú sest niður til að skrifa eitthvað, verður þú að ákveða 202 00:11:38,730 --> 00:11:40,060 hver af þremur sem þú vilt nota. 203 00:11:40,060 --> 00:11:41,900 Svo hvernig gera við að ákveða hver einn? 204 00:11:41,900 --> 00:11:44,920 205 00:11:44,920 --> 00:11:48,790 >> Við notum yfirleitt for lykkju, ef við vitum hversu oft við viljum kunnugt 206 00:11:48,790 --> 00:11:53,650 í gegnum eitthvað eða hversu oft við viljum til að framkvæma verkefni. 207 00:11:53,650 --> 00:11:58,830 Við notum meðan lykkjur ef við þurfum sumir Skilyrði til að vera satt til að halda í gangi. 208 00:11:58,830 --> 00:12:03,730 Og við notum ekki en mjög svipuð meðan, en við viljum kóða okkar til að keyra á 209 00:12:03,730 --> 00:12:04,880 kosti einu sinni. 210 00:12:04,880 --> 00:12:09,410 >> Svo að gera á meðan, hvað er í do mun alltaf hlaupa að minnsta kosti einu sinni. 211 00:12:09,410 --> 00:12:13,120 En með tíma, það getur ekki keyrt á öllum ef 212 00:12:13,120 --> 00:12:15,490 ástand er ekki sáttur. 213 00:12:15,490 --> 00:12:16,740 Einhverjar spurningar með það? 214 00:12:16,740 --> 00:12:20,480 215 00:12:20,480 --> 00:12:22,860 >> Svo uppbyggingu for lykkju. 216 00:12:22,860 --> 00:12:23,620 Þið hafið öll séð þetta. 217 00:12:23,620 --> 00:12:25,320 Þú frumstilla hana. 218 00:12:25,320 --> 00:12:26,600 Þú hefur einhvers konar ástandi. 219 00:12:26,600 --> 00:12:32,340 Svo, til dæmis gætum við frumstilla eins fyrir i er 0. 220 00:12:32,340 --> 00:12:34,040 i er minna en 10. 221 00:12:34,040 --> 00:12:35,442 Og ég ++. 222 00:12:35,442 --> 00:12:39,010 Mjög einfalt sá sem við höfum gert. 223 00:12:39,010 --> 00:12:42,210 >> Fyrir a á meðan lykkja, á sama hátt, hefur þú að hafa einhvers konar frumstilling, 224 00:12:42,210 --> 00:12:44,980 einhvers konar ástandi, og einhvers konar uppfærslu. 225 00:12:44,980 --> 00:12:51,990 Svo við getum innleiða okkar fyrir lykkju einnig sem while lykkju að nota þetta. 226 00:12:51,990 --> 00:12:56,000 Og álíka með do meðan lykkja, við gætum hafa sumir frumstilling, 227 00:12:56,000 --> 00:12:58,640 framkvæma eitthvað, uppfæra hana, og þá athuga ástand. 228 00:12:58,640 --> 00:13:03,500 229 00:13:03,500 --> 00:13:05,140 >> Svo nú virka. 230 00:13:05,140 --> 00:13:06,460 Við setjum allt saman. 231 00:13:06,460 --> 00:13:10,140 Við might vilja til að skrifa nokkrar konar virkni. 232 00:13:10,140 --> 00:13:12,790 Common fall sem þú gætir hef séð þegar er aðal. 233 00:13:12,790 --> 00:13:13,770 Helsta er fall. 234 00:13:13,770 --> 00:13:16,160 Það hefur aftur gerð, int. 235 00:13:16,160 --> 00:13:18,470 Það hefur nafn virka, helstu. 236 00:13:18,470 --> 00:13:20,810 Og það hefur rök, argc og argv. 237 00:13:20,810 --> 00:13:24,040 Svo helstu er bara fall. 238 00:13:24,040 --> 00:13:27,230 >> Aðrar aðgerðir sem þú gætir hafa notað, printf-- printf er function-- 239 00:13:27,230 --> 00:13:29,330 GetInt, toupper. 240 00:13:29,330 --> 00:13:32,010 En þetta gerist að hafa verið framkvæmda fyrir okkur með 241 00:13:32,010 --> 00:13:33,270 einhvers konar bókasafn. 242 00:13:33,270 --> 00:13:37,400 Ef þú krakkar muna meðal þetta CS50.h bókasafn eða 243 00:13:37,400 --> 00:13:38,510 staðall I / O bókasafn. 244 00:13:38,510 --> 00:13:39,200 Já, spurning? 245 00:13:39,200 --> 00:13:41,610 >> Áhorfendur: Er helsta bara felast í c? 246 00:13:41,610 --> 00:13:44,740 Er það bara svona [inaudible]? 247 00:13:44,740 --> 00:13:47,370 >> Ræðumaður 1: Spurningin er ef helstu felst í c. 248 00:13:47,370 --> 00:13:51,460 Og já, allar aðgerðir hafa meginhlutverki. 249 00:13:51,460 --> 00:13:55,290 Það er góður af nauðsynleg fyrir tölvuna að vita hvar á að byrja 250 00:13:55,290 --> 00:13:55,993 keyra kóða. 251 00:13:55,993 --> 00:13:58,108 >> Áhorfendur: Svo að þú viljir ekki [inaudible]? 252 00:13:58,108 --> 00:13:59,480 >> Ræðumaður 1: Nei 253 00:13:59,480 --> 00:14:00,760 Aðrar spurningar? 254 00:14:00,760 --> 00:14:03,430 255 00:14:03,430 --> 00:14:04,770 Cool. 256 00:14:04,770 --> 00:14:08,050 Svo bara eins og þú getur notað virka sem er skrifað fyrir þig, getur þú einnig 257 00:14:08,050 --> 00:14:10,380 skrifa eigin færni. 258 00:14:10,380 --> 00:14:17,050 Þetta er fall sem einhver gæti hafa skrifað til að reikna rúmmál 259 00:14:17,050 --> 00:14:18,395 af q, til dæmis. 260 00:14:18,395 --> 00:14:21,300 261 00:14:21,300 --> 00:14:29,500 Það er aftur gerð hér, í þessu tilfelli int, nafn virka okkar q og okkar 262 00:14:29,500 --> 00:14:31,360 Listi yfir breytur. 263 00:14:31,360 --> 00:14:34,550 >> Og athugaðu að þú þarft að skrifa gögn tegund af breytu sem þú vilt 264 00:14:34,550 --> 00:14:38,660 nota eða annars virka ekki vita hvers konar 265 00:14:38,660 --> 00:14:41,650 breytu ætti ég að samþykkja. 266 00:14:41,650 --> 00:14:48,110 Svo, í þessu tilfelli, við viljum heiltala sem inntak okkar. 267 00:14:48,110 --> 00:14:50,390 Svo hvers vegna gætum við viljum að nota virka? 268 00:14:50,390 --> 00:14:52,800 >> Fyrst af öllu, frábært fyrir stofnun. 269 00:14:52,800 --> 00:14:56,350 Þeir hjálpa brjóta upp númerið þitt í meira skipulögð klumpur og gera 270 00:14:56,350 --> 00:14:57,960 það auðveldara að lesa. 271 00:14:57,960 --> 00:14:59,760 Einföldun. 272 00:14:59,760 --> 00:15:01,740 Þetta er gott fyrir hönnun. 273 00:15:01,740 --> 00:15:04,570 Þegar þú ert að lesa stykki af kóða og helsta hlutverk er í raun, 274 00:15:04,570 --> 00:15:07,750 virkilega lengi, það gæti verið erfiðara að Ástæðan um hvað er að gerast. 275 00:15:07,750 --> 00:15:11,710 Svo ef þú brýtur það niður í aðgerðir, það gæti verið auðveldara að lesa. 276 00:15:11,710 --> 00:15:12,750 Og endurnýta-getu. 277 00:15:12,750 --> 00:15:16,940 Ef þú ert með klumpur af kóða sem er verið hringt í eða hlaupa mörgum sinnum, 278 00:15:16,940 --> 00:15:20,690 í stað þess að endurskrifa að kóðinn 10 sinnum í helstu hlutverk, þú might 279 00:15:20,690 --> 00:15:21,440 langar að endurnýta það. 280 00:15:21,440 --> 00:15:25,740 Og þá í hvert skipti sem þú þarft að nota það stykki af kóða, kalla aðgerðina. 281 00:15:25,740 --> 00:15:30,550 282 00:15:30,550 --> 00:15:35,380 >> Svo nú ef við minnumst aftur að klóra, við ræddum líka um nokkra hugtök, 283 00:15:35,380 --> 00:15:37,680 einn sem er þráður. 284 00:15:37,680 --> 00:15:41,120 Þráður er hugtakið margfeldi raðir af kóða 285 00:15:41,120 --> 00:15:43,040 framkvæmd á sama tíma. 286 00:15:43,040 --> 00:15:47,490 Svo hugsa til baka til fyrsta degi þar sem Davíð hafði þið telja af fjölda 287 00:15:47,490 --> 00:15:48,440 fólk í herberginu. 288 00:15:48,440 --> 00:15:50,550 >> Í meginatriðum, hvað var að fara á er allt ykkur voru 289 00:15:50,550 --> 00:15:52,370 aðskildan þræði. 290 00:15:52,370 --> 00:15:55,540 Og þessir þræðir komu saman að fá einhvers konar svar. 291 00:15:55,540 --> 00:15:58,890 Á sama hátt, í grunni, þegar þú ert margar sprites, þú gætir 292 00:15:58,890 --> 00:16:01,070 hafa kött og hund. 293 00:16:01,070 --> 00:16:08,770 Og þeir myndu vera samtímis keyra eigin forskriftir þeirra. 294 00:16:08,770 --> 00:16:10,020 Það er dæmi um þráður. 295 00:16:10,020 --> 00:16:12,860 296 00:16:12,860 --> 00:16:18,000 >> Og annar hugtak sem var kynnt í grunni var atburðir. 297 00:16:18,000 --> 00:16:22,550 Og atburðir eru þegar margir hlutar númerið þitt samskipti við hvert annað. 298 00:16:22,550 --> 00:16:26,840 Í grunni, þetta var þegar þú notaðir í útvarpa stjórn og þegar ég 299 00:16:26,840 --> 00:16:29,500 Fá blokkir. 300 00:16:29,500 --> 00:16:35,170 >> Og einnig, í Heimadæmi 4, við sáum svolítið af atburðum eins og heilbrigður. 301 00:16:35,170 --> 00:16:38,250 Þið gætu hafa notað að Gevent bókasafn. 302 00:16:38,250 --> 00:16:42,450 Og það var fall waitForClick þar sem þú varst að bíða 303 00:16:42,450 --> 00:16:44,300 fyrir notandann til að smella. 304 00:16:44,300 --> 00:16:47,870 Og þinn smellur, í þessu tilfelli, væri atburður og bíða eftir smell er þinn 305 00:16:47,870 --> 00:16:49,120 atburður dýraþjálfari. 306 00:16:49,120 --> 00:16:53,690 307 00:16:53,690 --> 00:16:58,630 >> Og einnig, um að keyra psets þínum og vinna á psets, þú 308 00:16:58,630 --> 00:17:01,920 gæti hafa komið í snertingu við sumar af þessum skipanir. 309 00:17:01,920 --> 00:17:05,579 Þetta er það sem þú slóst inn þinn endastöðvar eða hvað gluggi 310 00:17:05,579 --> 00:17:12,119 sem sýnir sig á g breyta þinni til, meginatriðum, sigla tölvuna. 311 00:17:12,119 --> 00:17:19,440 >> Svo til dæmis, LS er listi yfir Innihald möppu. 312 00:17:19,440 --> 00:17:22,510 Gera skrá skapar nýja möppu. 313 00:17:22,510 --> 00:17:24,819 CD, breyting skrá. 314 00:17:24,819 --> 00:17:28,400 RM, fjarlægja, eyðir skrá eða einhver skrá. 315 00:17:28,400 --> 00:17:31,050 Og þá fjarlægja möppuna fjarlægir möppu. 316 00:17:31,050 --> 00:17:32,300 >> Áhorfendur: [inaudible]? 317 00:17:32,300 --> 00:17:36,978 318 00:17:36,978 --> 00:17:38,370 >> Ræðumaður 1: Já, vissulega. 319 00:17:38,370 --> 00:17:42,530 320 00:17:42,530 --> 00:17:46,040 Því miður, spurningin var hvort þú myndi stinga setja þetta 321 00:17:46,040 --> 00:17:48,840 á svindlari lak. 322 00:17:48,840 --> 00:17:49,440 Það gæti hjálpað. 323 00:17:49,440 --> 00:17:51,490 Ef þú ert pláss, getur þú sett það á. 324 00:17:51,490 --> 00:17:56,170 Það er líka bara almennt nógu gott að muna vegna þess að þegar þú notar það 325 00:17:56,170 --> 00:17:59,060 þú might vilja til að bara hafa það á minnið. 326 00:17:59,060 --> 00:18:02,750 Það mun gera líf þitt mun auðveldara. 327 00:18:02,750 --> 00:18:04,000 Sagði ég svara spurningunni þinni? 328 00:18:04,000 --> 00:18:10,528 329 00:18:10,528 --> 00:18:14,290 >> Svo nú, talaði við smá stuttlega um bókasöfn. 330 00:18:14,290 --> 00:18:18,570 En tveir helstu sjálfur að við höfum verið nota svo langt í námskeiðinu eru 331 00:18:18,570 --> 00:18:20,860 staðall I / O og cs50. 332 00:18:20,860 --> 00:18:25,410 Hvaða góður af hlutur eru í stöðluðu I / O bókasafn? 333 00:18:25,410 --> 00:18:28,410 >> Já, svo langt að við höfum notað printf. 334 00:18:28,410 --> 00:18:31,150 Í cs50 höfum við notað GetInt og GetString. 335 00:18:31,150 --> 00:18:37,200 Og gögn gerð band gerist einnig að gefa í þessu cs50 bókasafni. 336 00:18:37,200 --> 00:18:40,250 Við munum tala svolítið meira í dýpt um hvernig bókasöfn vinna og hvernig þeir 337 00:18:40,250 --> 00:18:41,870 samskipti við restina af kóðanum þínum. 338 00:18:41,870 --> 00:18:46,220 En þeir eru tveir helstu sjálfur að við hafa komið í snertingu við svo langt í 339 00:18:46,220 --> 00:18:48,430 að sjálfsögðu. 340 00:18:48,430 --> 00:18:50,050 >> Gerðir. 341 00:18:50,050 --> 00:18:58,120 Þetta eru góð til að muna hversu mikið hver tegund er táknuð með eða hvernig 342 00:18:58,120 --> 00:19:02,840 margir bæti hver tegund requires-- 343 00:19:02,840 --> 00:19:04,990 int, 4 bytes; bleikju, 1 bæti. 344 00:19:04,990 --> 00:19:06,550 Fljóta er 4 bæti. 345 00:19:06,550 --> 00:19:07,782 Hvað er tvöfaldur? 346 00:19:07,782 --> 00:19:09,032 >> Áhorfendur: [inaudible]. 347 00:19:09,032 --> 00:19:11,398 348 00:19:11,398 --> 00:19:16,240 >> Ræðumaður 1: Já, þannig að fljóta en tvöfalda stærð. 349 00:19:16,240 --> 00:19:17,150 Hvað um fyrir? 350 00:19:17,150 --> 00:19:18,400 >> Áhorfendur: [inaudible]. 351 00:19:18,400 --> 00:19:21,614 352 00:19:21,614 --> 00:19:24,680 >> Ræðumaður 1: OK. 353 00:19:24,680 --> 00:19:25,410 Hvað er langur? 354 00:19:25,410 --> 00:19:26,660 >> Áhorfendur: [inaudible]. 355 00:19:26,660 --> 00:19:29,400 356 00:19:29,400 --> 00:19:31,450 >> Ræðumaður 1: Já, tvöfaldur við int. 357 00:19:31,450 --> 00:19:34,240 358 00:19:34,240 --> 00:19:34,705 Já. 359 00:19:34,705 --> 00:19:36,100 >> Áhorfendur: [inaudible]. 360 00:19:36,100 --> 00:19:38,030 >> Ræðumaður 1: Long [inaudible]. 361 00:19:38,030 --> 00:19:41,860 Og þá er langur langur tvöfalt. 362 00:19:41,860 --> 00:19:42,814 >> Áhorfendur: Nei, nei. 363 00:19:42,814 --> 00:19:47,107 Löng er bara int. 364 00:19:47,107 --> 00:19:50,910 Það veltur á arkitektúr áður en [inaudible] 365 00:19:50,910 --> 00:19:52,922 og int hafa sömu stærð. 366 00:19:52,922 --> 00:19:54,172 [Inaudible]. 367 00:19:54,172 --> 00:19:58,841 368 00:19:58,841 --> 00:20:00,920 >> Ræðumaður 1: Svo langur og int eru þeir sömu. 369 00:20:00,920 --> 00:20:02,943 Og þá lengi lengi er tvöfalt int. 370 00:20:02,943 --> 00:20:03,910 Cool. 371 00:20:03,910 --> 00:20:05,550 Og þá, hvað er síðasta tegund? 372 00:20:05,550 --> 00:20:06,510 >> Áhorfendur: Pointer. 373 00:20:06,510 --> 00:20:10,350 >> Ræðumaður 1: Já, þannig að við lærðum svolítið um ábendingum. 374 00:20:10,350 --> 00:20:14,015 Og án tillits til hvað bendillinn er benda to-- það gæti verið char stjörnu 375 00:20:14,015 --> 00:20:15,880 eða int star-- 376 00:20:15,880 --> 00:20:20,530 það er alltaf 4 bæti fyrir bendi. 377 00:20:20,530 --> 00:20:21,633 Spurningar um það? 378 00:20:21,633 --> 00:20:22,116 Já? 379 00:20:22,116 --> 00:20:24,531 >> Áhorfendur: [inaudible]? 380 00:20:24,531 --> 00:20:29,530 >> Ræðumaður 1: Svo lengi og int eru sama í þessari cs50 tæki. 381 00:20:29,530 --> 00:20:32,302 >> Áhorfendur: Tækið er alveg víxlanlegur. 382 00:20:32,302 --> 00:20:33,510 >> Ræðumaður 1: Já. 383 00:20:33,510 --> 00:20:36,610 Svo þá lengi lengi er tvöfaldur int. 384 00:20:36,610 --> 00:20:39,250 >> Áhorfendur: Þetta er 32 bita? 385 00:20:39,250 --> 00:20:40,620 >> Ræðumaður 1: 32 bita, já. 386 00:20:40,620 --> 00:20:43,572 >> Áhorfendur: Svo [inaudible]? 387 00:20:43,572 --> 00:20:46,790 >> Ræðumaður 1: Já, ef það virkar ekki sérstaklega segja, þér 388 00:20:46,790 --> 00:20:47,870 ætti að gera ráð fyrir 32 bita. 389 00:20:47,870 --> 00:20:50,040 >> Áhorfendur: Það myndi segja eitthvað eins að gefnum forsendum um 390 00:20:50,040 --> 00:20:51,498 arkitektúr eins og tæki. 391 00:20:51,498 --> 00:20:58,800 392 00:20:58,800 --> 00:21:01,710 64 bita, aðeins hluti sem breyting er þráir og ábendingum. 393 00:21:01,710 --> 00:21:05,614 Þeir báðir [inaudible]. 394 00:21:05,614 --> 00:21:06,590 >> Ræðumaður 1: Já? 395 00:21:06,590 --> 00:21:07,566 >> Áhorfendur: Spurning. 396 00:21:07,566 --> 00:21:10,982 Svo á einn af æfa Skyndipróf, það biður um óskráðum int. 397 00:21:10,982 --> 00:21:15,374 Svo hvernig væri að ráðast frá int [inaudible]? 398 00:21:15,374 --> 00:21:18,140 >> Ræðumaður 1: An óundirritaður í er einnig 4 bæti. 399 00:21:18,140 --> 00:21:21,172 En hvað er öðruvísi um að undirritaður int og óundirritaður int? 400 00:21:21,172 --> 00:21:22,422 >> Áhorfendur: [inaudible]. 401 00:21:22,422 --> 00:21:24,868 402 00:21:24,868 --> 00:21:25,630 >> Ræðumaður 1: Hægri. 403 00:21:25,630 --> 00:21:27,570 Maður getur tákna neikvæð gildi. 404 00:21:27,570 --> 00:21:28,580 En hvernig er það að gera það? 405 00:21:28,580 --> 00:21:30,536 >> Áhorfendur: [inaudible]. 406 00:21:30,536 --> 00:21:36,370 >> Ræðumaður 1: Já, það spara 1 bita til að tákna merki. 407 00:21:36,370 --> 00:21:40,910 408 00:21:40,910 --> 00:21:45,040 Undirrituð hefur einn hluti sem táknar skiltið. 409 00:21:45,040 --> 00:21:48,886 Og óundirritaður bara er allt jákvæður. 410 00:21:48,886 --> 00:21:50,365 >> Áhorfendur: Í lagi. 411 00:21:50,365 --> 00:21:54,230 Svo segir þú að tvöfalda er tvisvar sinnum stærð flotholt? 412 00:21:54,230 --> 00:21:58,202 >> Ræðumaður 1: Tvöfaldur er tvisvar á stærð við fljóta, já. 413 00:21:58,202 --> 00:22:01,639 >> Áhorfendur: Hvernig virkar bendi til a langur langur [inaudible]? 414 00:22:01,639 --> 00:22:06,058 415 00:22:06,058 --> 00:22:10,870 >> Ræðumaður 1: Svo er spurningin hvernig virkar bendill til að langa long-- 416 00:22:10,870 --> 00:22:13,800 hvernig er að aðeins fjórir bæti þegar fyrir löngu 8 bæti hennar. 417 00:22:13,800 --> 00:22:17,310 Svo muna hvað er bendillinn, í raun, á mjög grunn gildi. 418 00:22:17,310 --> 00:22:19,046 >> Áhorfendur: [inaudible]. 419 00:22:19,046 --> 00:22:22,670 >> Ræðumaður 1: Já, svo bendillinn er bara minni. 420 00:22:22,670 --> 00:22:28,040 Svo það skiptir ekki máli hversu mikið pláss sem bendillinn bendir til. 421 00:22:28,040 --> 00:22:32,060 Það þarf aðeins 4 bytes til að halda utan þeirrar minninu. 422 00:22:32,060 --> 00:22:34,760 423 00:22:34,760 --> 00:22:36,010 Aðrar spurningar? 424 00:22:36,010 --> 00:22:39,800 425 00:22:39,800 --> 00:22:41,050 Cool. 426 00:22:41,050 --> 00:22:42,920 427 00:22:42,920 --> 00:22:47,460 >> Svo það síðasta sem ég hef er staðall framleiðsla. 428 00:22:47,460 --> 00:22:51,020 Þú ættir að nota þá oft nóg að þú getur munað. 429 00:22:51,020 --> 00:22:54,800 En þetta er þegar við notum printf, til dæmis. 430 00:22:54,800 --> 00:22:59,260 Og við höfum þessar staðgengla sem voru kallaðir snið númer. 431 00:22:59,260 --> 00:23:03,910 >> Svo prósent c bleikju, prósent ég fyrir int, og við getum einnig notað prósent d. 432 00:23:03,910 --> 00:23:05,130 Það er það sama. 433 00:23:05,130 --> 00:23:08,200 En almennt, í CS50 við reyna að nota hlutfall i. 434 00:23:08,200 --> 00:23:09,860 Hlutfall m fyrir fljóta. 435 00:23:09,860 --> 00:23:15,620 Hlutfall LD lengi lengi og prósent s fyrir streng. 436 00:23:15,620 --> 00:23:18,550 >> Á sama hátt höfum við verið að nota nokkrar þessara flýja röð. 437 00:23:18,550 --> 00:23:22,431 Til dæmis, Sviga n fyrir nýja línu. 438 00:23:22,431 --> 00:23:26,910 Þetta er bara fyrir þegar þú ert að forsníða númerið þitt til prentunar f. 439 00:23:26,910 --> 00:23:27,260 Já? 440 00:23:27,260 --> 00:23:28,906 >> Áhorfendur: Hvað er prósent d fyrir? 441 00:23:28,906 --> 00:23:31,850 >> Ræðumaður 1: Svo spurningin er það sem er prósent d fyrir? 442 00:23:31,850 --> 00:23:33,270 Hlutfall d er fyrir ints. 443 00:23:33,270 --> 00:23:37,392 Percent d og prósent i eru þau sömu. 444 00:23:37,392 --> 00:23:41,130 >> Áhorfendur: Hver er munurinn á milli sviga n og sviga r? 445 00:23:41,130 --> 00:23:45,300 >> Ræðumaður 1: Svo er spurning hvað er að munur á milli bakslag n og 446 00:23:45,300 --> 00:23:48,615 bakslag r? 447 00:23:48,615 --> 00:23:50,906 Ég held Sviga r is-- 448 00:23:50,906 --> 00:23:54,340 >> Áhorfendur: Svo sviga r felur bara skilar til the byrjun af the lína 449 00:23:54,340 --> 00:23:56,670 án þess í raun að fara til a nýr lína. 450 00:23:56,670 --> 00:24:01,000 Svo ef þú prentað Sviga r og þú fara aftur til the byrjun af the lína 451 00:24:01,000 --> 00:24:04,005 þá þú prenta meira efni, þú skrifa efni sem er þegar á 452 00:24:04,005 --> 00:24:04,390 [Inaudible]. 453 00:24:04,390 --> 00:24:06,725 En, n raun fer í nýja lína og fer að [inaudible]. 454 00:24:06,725 --> 00:24:10,525 455 00:24:10,525 --> 00:24:13,915 >> Ræðumaður 1: Jæja, aðrar spurningar? 456 00:24:13,915 --> 00:24:15,430 Allt í lagi. 457 00:24:15,430 --> 00:24:18,617 Ég ætla að afhenda það burt til Dan sem vilja halda áfram. 458 00:24:18,617 --> 00:24:25,078 >> [Applause] 459 00:24:25,078 --> 00:25:08,814 460 00:25:08,814 --> 00:25:09,720 >> DAN: Allt righty. 461 00:25:09,720 --> 00:25:18,590 Svo ég ætla að tala um annað breiður svið hugmynda frá bekknum sem eru 462 00:25:18,590 --> 00:25:23,220 u.þ.b. fulltrúi viku tvö og að byrja á viku þrjú farin burt 463 00:25:23,220 --> 00:25:28,690 með steypu, sem er bara leið til að meðhöndla gildi af ákveðinni tegund sem 464 00:25:28,690 --> 00:25:30,830 a gildi af annarri tegund. 465 00:25:30,830 --> 00:25:34,110 Svo við getum gert þetta með stafir að ints, fljóta að ints og 466 00:25:34,110 --> 00:25:35,360 langur þráir að tvöfalda. 467 00:25:35,360 --> 00:25:38,170 468 00:25:38,170 --> 00:25:44,500 >> Allir þessir hlutir hægt að nota sem leiðir að meðhöndla einhverja tölugildi 469 00:25:44,500 --> 00:25:48,370 mínus bleikju sem einhver annar talnagildi. 470 00:25:48,370 --> 00:25:54,480 Þannig að það eru nokkur atriði með þetta, Auðvitað, sem kemur þegar þú kastar 471 00:25:54,480 --> 00:25:57,860 hlutir eins fljóta að ints. 472 00:25:57,860 --> 00:26:00,500 Þannig að þetta er svolítið skrítið. 473 00:26:00,500 --> 00:26:03,170 Við höfum fljóta sem er 1.31. 474 00:26:03,170 --> 00:26:05,220 Við margföldum það með 10.000. 475 00:26:05,220 --> 00:26:08,380 Og þá erum við að prenta það sem int. 476 00:26:08,380 --> 00:26:09,630 Hvað er þetta framleiðsla? 477 00:26:09,630 --> 00:26:11,600 478 00:26:11,600 --> 00:26:14,020 10.000 sinnum 1,31. 479 00:26:14,020 --> 00:26:18,761 Svo 13,000 er að giska? 480 00:26:18,761 --> 00:26:20,685 >> Áhorfendur: Ég held að það er 10.000. 481 00:26:20,685 --> 00:26:24,234 >> DAN: Þannig að ég ætla að margfalda það með 10.000 áður en ég ætla að kasta henni. 482 00:26:24,234 --> 00:26:25,202 >> Áhorfendur: Ó. 483 00:26:25,202 --> 00:26:27,622 Vildi ekki að það að vera einn 9 og sumir 0 tölur? 484 00:26:27,622 --> 00:26:29,270 >> DAN: Þú gætir hafa sumir furðulegur tölustafir. 485 00:26:29,270 --> 00:26:32,410 486 00:26:32,410 --> 00:26:37,670 Svo rétt, það er 1,3 sinnum 10.000. 487 00:26:37,670 --> 00:26:40,040 Svo er það 13.000. 488 00:26:40,040 --> 00:26:41,313 Og þetta auka weird-- 489 00:26:41,313 --> 00:26:42,160 >> Áhorfendur: 13.100. 490 00:26:42,160 --> 00:26:42,650 >> DAN: 13.100. 491 00:26:42,650 --> 00:26:44,910 Þakka þér, Rob. 492 00:26:44,910 --> 00:26:46,610 Og þetta auka weirdness-- 493 00:26:46,610 --> 00:26:48,060 þetta 9,9-- 494 00:26:48,060 --> 00:26:53,860 er einfaldlega vegna þess að þetta steypu endaði námundun niður þar 495 00:26:53,860 --> 00:26:55,394 það ætti ekki að hafa. 496 00:26:55,394 --> 00:26:55,871 Já. 497 00:26:55,871 --> 00:26:58,256 >> Áhorfendur: The steypu gerist eftir allt annað? 498 00:26:58,256 --> 00:27:03,865 >> DAN: Svo vegna þess að ég hef þetta á prenti, það er þetta margföldun áður en það 499 00:27:03,865 --> 00:27:05,230 er þetta steypu. 500 00:27:05,230 --> 00:27:06,140 >> Áhorfendur: [inaudible]. 501 00:27:06,140 --> 00:27:11,350 >> DAN: Ég held að það myndi kasta fyrst, já, sem væri 10.000. 502 00:27:11,350 --> 00:27:12,610 Nokkuð fleira? 503 00:27:12,610 --> 00:27:13,330 Cool. 504 00:27:13,330 --> 00:27:16,344 Svo er þetta 13.099. 505 00:27:16,344 --> 00:27:17,840 Hvers vegna er þetta að gerast? 506 00:27:17,840 --> 00:27:18,900 Imprecision. 507 00:27:18,900 --> 00:27:21,020 >> Fljóta eru ekki fullkomin. 508 00:27:21,020 --> 00:27:27,550 Þeir geta aðeins tákna númerum a ákveðinn fjölda marktækra tölustafa. 509 00:27:27,550 --> 00:27:35,120 Þannig að ef við prenta út 8 Sig fíkjur á þetta fljóta, fáum við eins konar 510 00:27:35,120 --> 00:27:36,800 ljótur útlit fjöldi. 511 00:27:36,800 --> 00:27:45,580 Og það er vegna þess að 1,31 getur ekki nákvæmlega að koma fram með einfalda 512 00:27:45,580 --> 00:27:49,000 völd af tveimur í vél. 513 00:27:49,000 --> 00:27:53,530 Svo það endar að taka næst giska, sem endar 514 00:27:53,530 --> 00:27:55,710 vera svolítið lágt. 515 00:27:55,710 --> 00:27:57,730 Skynsamleg? 516 00:27:57,730 --> 00:27:59,110 OK. 517 00:27:59,110 --> 00:28:05,840 >> Nú, kveikt eru öðruvísi leið gera skilyrt yfirlýsingar þar alla 518 00:28:05,840 --> 00:28:09,900 annt um er stakur breytu. 519 00:28:09,900 --> 00:28:16,570 Þannig að í þessu tiltekna dæmi, erum við að fá heila tölu frá notanda. 520 00:28:16,570 --> 00:28:21,070 Og þá erum við að horfa á hvað sem heiltala er. 521 00:28:21,070 --> 00:28:23,500 Væntanlega er það númer milli eitt og fjögur. 522 00:28:23,500 --> 00:28:24,800 Það er það sem við erum að biðja um. 523 00:28:24,800 --> 00:28:28,450 >> Svo þú skipta um breytan nafn. 524 00:28:28,450 --> 00:28:34,290 Síðan sem þú setja upp tilvik mögulegt gildi það gæti verið. 525 00:28:34,290 --> 00:28:37,730 Svo ef einn, segja að það er lágt. 526 00:28:37,730 --> 00:28:41,080 Og þá þú brýtur að komast út að skipta ástandi til að 527 00:28:41,080 --> 00:28:43,270 þú viðurværi ekki að fara. 528 00:28:43,270 --> 00:28:44,830 >> Í næsta case-- 529 00:28:44,830 --> 00:28:46,940 svo málið tveir og raunin three-- 530 00:28:46,940 --> 00:28:51,920 ef það er málið tvær það lækkar bara niður fyrsta lína af kóða það sér eins og með 531 00:28:51,920 --> 00:28:55,400 tilfelli þrjú þar til það sér hlé. 532 00:28:55,400 --> 00:29:00,430 Svo ástæða þess að þú færð málið eitt til aðeins prenta lágt er vegna þess að ég 533 00:29:00,430 --> 00:29:01,890 hafa þetta hlé hér. 534 00:29:01,890 --> 00:29:05,360 Ef ég, segjum, hunsa þetta break-- ef ég kastaði þessu breakaway-- 535 00:29:05,360 --> 00:29:09,740 það myndi prenta lágt, og þá myndi prenta mitt, og þá myndi brjóta. 536 00:29:09,740 --> 00:29:12,200 >> Svo brot eru mikilvægur hluti af skipta aðstæður og 537 00:29:12,200 --> 00:29:14,340 þeir ættu að vera þar. 538 00:29:14,340 --> 00:29:20,070 Allar tilvikum sem ekki eru tilgreind sérstaklega eru meðhöndlaðar með the vanræksla 539 00:29:20,070 --> 00:29:26,645 ræða í rofi og skal kastað. 540 00:29:26,645 --> 00:29:31,363 >> AUDIENCE: Svo 1, 2, 3, og 4 væri n? 541 00:29:31,363 --> 00:29:33,310 >> DAN: Gildi sem n getur verið. 542 00:29:33,310 --> 00:29:34,654 Já. 543 00:29:34,654 --> 00:29:35,146 Já? 544 00:29:35,146 --> 00:29:37,606 >> Áhorfendur: Svo þegar þú ert að [inaudible]? 545 00:29:37,606 --> 00:29:44,002 546 00:29:44,002 --> 00:29:46,830 >> DAN: Þú vildi prenta lágt, og þá það myndi prenta miðju, og 547 00:29:46,830 --> 00:29:47,400 þá myndi brjóta. 548 00:29:47,400 --> 00:29:50,244 >> Áhorfendur: Hvers vegna vildi það prenta miðja ef [inaudible]? 549 00:29:50,244 --> 00:29:54,036 550 00:29:54,036 --> 00:30:00,550 >> DAN: Svo allt undir máls áður en hlé fellur undir. 551 00:30:00,550 --> 00:30:09,390 Svo málið er eitt prenta undir mál einn sem er á þessu eftir prenta. 552 00:30:09,390 --> 00:30:09,890 Já? 553 00:30:09,890 --> 00:30:11,140 >> Áhorfendur: [inaudible]? 554 00:30:11,140 --> 00:30:15,890 555 00:30:15,890 --> 00:30:22,170 >> DAN: Svo þessi tala er bara sérstaklega gildi sem þessi breyta 556 00:30:22,170 --> 00:30:23,420 getur tekið, ekki satt? 557 00:30:23,420 --> 00:30:26,740 558 00:30:26,740 --> 00:30:28,490 Er að skynsamleg? 559 00:30:28,490 --> 00:30:28,990 Já. 560 00:30:28,990 --> 00:30:31,490 >> Áhorfendur: [inaudible]? 561 00:30:31,490 --> 00:30:34,130 >> DAN: Já, málið tveir myndi prenta miðju og þá brjóta. 562 00:30:34,130 --> 00:30:35,380 >> Áhorfendur: [inaudible]? 563 00:30:35,380 --> 00:30:37,954 564 00:30:37,954 --> 00:30:40,050 >> DAN: Ég held allir? 565 00:30:40,050 --> 00:30:43,855 Hvað aðrar gerðir gagna er hægt að skipta yfir? 566 00:30:43,855 --> 00:30:46,320 >> Áhorfendur: Þú getur skipt yfir hvaða gögn gerðum. 567 00:30:46,320 --> 00:30:50,905 En það þýðir bara ekkert yfir stafir og ints og eitthvað svoleiðis, því 568 00:30:50,905 --> 00:30:55,600 ef þú ert að skipta yfir músina sem er í raun ekki skynsamleg, 569 00:30:55,600 --> 00:30:59,555 skipta yfir fullt, ef það láta jafnvel 's þú gerir það, því fleytitölu 570 00:30:59,555 --> 00:31:02,840 í nákvæmni, og þú vildi í raun ekki langar að gera það engu að síður. 571 00:31:02,840 --> 00:31:07,320 Svo ansi mikið, bara ints og stafir og eitthvað svoleiðis. 572 00:31:07,320 --> 00:31:12,360 >> DAN: Já, það er þegar þú ert skýr gildum sem þú veist, ég held, getur verið 573 00:31:12,360 --> 00:31:14,250 að skipta er í raun gagnlegt. 574 00:31:14,250 --> 00:31:17,094 575 00:31:17,094 --> 00:31:18,990 Gott? 576 00:31:18,990 --> 00:31:21,370 OK. 577 00:31:21,370 --> 00:31:26,180 >> Umfang er á bilinu sem lýst breytu nær. 578 00:31:26,180 --> 00:31:32,190 Þannig að í þessu litla klumpur af kóða Ég hef, það væri full af villum. 579 00:31:32,190 --> 00:31:41,450 Og ástæðan er að ég lýsti þessu int Ég innan gildissviðs þetta fyrir lykkju. 580 00:31:41,450 --> 00:31:46,390 Og þá er ég að reyna að vísa að ég utan að fyrir lykkja gildissvið. 581 00:31:46,390 --> 00:31:50,330 >> Svo í rauninni er hægt að hugsa um umfang eins og nokkuð sem þú lýsa 582 00:31:50,330 --> 00:31:59,750 með inni a setja af hrokkið axlabönd aðeins er innan þessara hrokkið axlabönd. 583 00:31:59,750 --> 00:32:04,990 Og ef þú reynir og nota þá breytu utan þessara hrokkið axlabönd, þú munt 584 00:32:04,990 --> 00:32:08,356 fá villu frá þýðanda. 585 00:32:08,356 --> 00:32:08,812 Já? 586 00:32:08,812 --> 00:32:09,724 >> Áhorfendur: Svo þetta virkar ekki? 587 00:32:09,724 --> 00:32:11,790 >> DAN: Þetta virkar ekki, já. 588 00:32:11,790 --> 00:32:17,190 589 00:32:17,190 --> 00:32:18,660 Strengir. 590 00:32:18,660 --> 00:32:19,780 Band a char *. 591 00:32:19,780 --> 00:32:22,250 Þeir eru nákvæmlega það sama. 592 00:32:22,250 --> 00:32:25,540 Þeir eru bara ábendingar til að stafi. 593 00:32:25,540 --> 00:32:33,000 Og allir strengir sem þú hefur á að enda með sviga núll, sem er bara 594 00:32:33,000 --> 00:32:34,410 a c samningur. 595 00:32:34,410 --> 00:32:36,680 >> Það er kallað NULL Terminator. 596 00:32:36,680 --> 00:32:39,050 Og NULL-- 597 00:32:39,050 --> 00:32:41,670 höfuðborg N, höfuðborg U, höfuðborg L, höfuðborg L-- 598 00:32:41,670 --> 00:32:44,290 er ekki það sama og að NULL Terminator. 599 00:32:44,290 --> 00:32:46,640 Þetta er bendillinn. 600 00:32:46,640 --> 00:32:48,280 Þetta er eðli. 601 00:32:48,280 --> 00:32:49,530 Þeir eru mjög mismunandi. 602 00:32:49,530 --> 00:32:50,200 Muna það. 603 00:32:50,200 --> 00:32:52,320 Það mun vera á próf, sennilega. 604 00:32:52,320 --> 00:32:54,040 Ég hef ekki séð próf. 605 00:32:54,040 --> 00:32:57,880 606 00:32:57,880 --> 00:32:58,840 Já? 607 00:32:58,840 --> 00:33:01,232 >> Áhorfendur: Svo NÚLL er, segjum, bendillinn? 608 00:33:01,232 --> 00:33:01,995 >> DAN: Já. 609 00:33:01,995 --> 00:33:05,170 >> Áhorfendur: Hvað [inaudible]? 610 00:33:05,170 --> 00:33:10,050 >> DAN: Ef, segjum, malloc er kallað þegar þér hafa ekki nóg minni til að fá 611 00:33:10,050 --> 00:33:14,400 hvað stærð þú ert að biðja um, malloc mun skila NULL. 612 00:33:14,400 --> 00:33:19,550 Það er, í grundvallaratriðum, þegar fall er að koma til baka bendi, þér 613 00:33:19,550 --> 00:33:22,600 þarf að athuga gegn NÚLL því ég NULL er nokkuð good-- 614 00:33:22,600 --> 00:33:25,260 það er, svona, sorp gildi. 615 00:33:25,260 --> 00:33:27,050 Það er núll eins langt og ábendingum fara. 616 00:33:27,050 --> 00:33:29,630 617 00:33:29,630 --> 00:33:32,250 >> Alltaf þegar þú hringja í aðgerð, sem skilar bendi. 618 00:33:32,250 --> 00:33:35,960 Þú ert að fara að vilja til skrá til að vera viss um að það bendi ekki NÚLL 619 00:33:35,960 --> 00:33:37,760 því NÚLL er mjög algengt. 620 00:33:37,760 --> 00:33:40,160 Það er tegund af sorp aftur. 621 00:33:40,160 --> 00:33:44,902 Þannig að ef eitthvað fór ekki rétt, bara aftur NULL staðinn. 622 00:33:44,902 --> 00:33:45,898 >> Áhorfendur: [inaudible]? 623 00:33:45,898 --> 00:33:48,922 >> DAN: Já, og það er þetta. 624 00:33:48,922 --> 00:33:51,750 >> Áhorfendur: [inaudible]? 625 00:33:51,750 --> 00:33:52,800 >> DAN: Stafa það sem þetta. 626 00:33:52,800 --> 00:33:54,150 Það er NULL Terminator. 627 00:33:54,150 --> 00:33:56,560 Það er lágstafir N-U-L-L ef þú ert að stafsetningu það. 628 00:33:56,560 --> 00:33:59,860 >> Áhorfendur: Og ég fór bara aftur og prófa það. 629 00:33:59,860 --> 00:34:03,010 Og ef þú reynir að setja fljótandi punkt gildi í rofi, mun það æpa á þig 630 00:34:03,010 --> 00:34:05,916 segja, yfirlýsing krefst tjáningu af heiltölu tegund. 631 00:34:05,916 --> 00:34:07,166 >> DAN: Svona. 632 00:34:07,166 --> 00:34:09,639 633 00:34:09,639 --> 00:34:12,246 En já, hver var spurningin aftur? 634 00:34:12,246 --> 00:34:13,496 >> Áhorfendur: [inaudible]? 635 00:34:13,496 --> 00:34:16,150 636 00:34:16,150 --> 00:34:23,679 >> DAN: Svo höfuðborg N, höfuðborg U, höfuðborg L, höfuðborg L er raunverulegur c hlutur. 637 00:34:23,679 --> 00:34:29,719 Það er NULL músina og mun aðeins að meðhöndla sem slíkt. 638 00:34:29,719 --> 00:34:33,530 Þú munt ekki alltaf að reyna og stafa í NULL karakter og sjá hvaða 639 00:34:33,530 --> 00:34:35,630 önnur leið en þetta. 640 00:34:35,630 --> 00:34:36,610 Já? 641 00:34:36,610 --> 00:34:42,490 >> Áhorfendur: Svo aftur að bleikju hámark eða eitthvað í skýringum, myndi það 642 00:34:42,490 --> 00:34:43,960 staðfest sama virka sem [inaudible]? 643 00:34:43,960 --> 00:34:50,655 644 00:34:50,655 --> 00:34:54,949 >> Áhorfendur: Svo þú ert að vísa til aftur bleikju max frá getchar, eða 645 00:34:54,949 --> 00:34:55,444 hvað sem það er? 646 00:34:55,444 --> 00:34:55,940 >> Áhorfendur: Já. 647 00:34:55,940 --> 00:34:58,620 >> Áhorfendur: Já, þannig að almenn orð fyrir öllum þeim hlutum 648 00:34:58,620 --> 00:34:59,920 eru Sentinel gildi. 649 00:34:59,920 --> 00:35:03,640 Svo eins aftur int max frá GetInt og bleikju hámark frá getchar, það er 650 00:35:03,640 --> 00:35:06,010 átti að vera eins og, allt í lagi, ef þessir hlutir eru aftur að okkur, 651 00:35:06,010 --> 00:35:07,210 eitthvað fór úrskeiðis. 652 00:35:07,210 --> 00:35:09,950 >> Leiðbeiningar um, við verður bara að hafa þetta vörðr gildi sem allir 653 00:35:09,950 --> 00:35:10,750 samþykkir á. 654 00:35:10,750 --> 00:35:13,210 Og þetta er hlutur sem þú aftur þegar hlutirnir fara úrskeiðis. 655 00:35:13,210 --> 00:35:15,910 Svo er bleikja hámark það sem við erum að nota að tákna eitthvað 656 00:35:15,910 --> 00:35:18,100 eins NÚLL eða getchar. 657 00:35:18,100 --> 00:35:23,420 >> Áhorfendur: Svo ef þú ert að prófa getchar, væri hægt að setja bara NULL? 658 00:35:23,420 --> 00:35:23,910 Vildi að gera a mismunur? 659 00:35:23,910 --> 00:35:25,400 >> DAN: Þú getur ekki bara að athuga NULL. 660 00:35:25,400 --> 00:35:30,130 Þú vilt að athuga bleikju max því að skilagildi frá fallinu er 661 00:35:30,130 --> 00:35:35,416 eðli ekki músina. 662 00:35:35,416 --> 00:35:35,888 Já? 663 00:35:35,888 --> 00:35:38,248 >> Áhorfendur: Þessi spurning spyr fyrir strenginn lengd. 664 00:35:38,248 --> 00:35:40,136 Er að láta NÚLL staf? 665 00:35:40,136 --> 00:35:41,000 >> DAN: Nei 666 00:35:41,000 --> 00:35:45,930 Og það er í raun hvernig band lengd veit að hætta vegna þess að það fer í gegnum 667 00:35:45,930 --> 00:35:49,070 array þinn stafir fyrr það sér NÚLL staf. 668 00:35:49,070 --> 00:35:51,030 Og þá er það eins, allt rétt, ég er búin. 669 00:35:51,030 --> 00:35:52,130 >> Áhorfendur: [inaudible] fimm? 670 00:35:52,130 --> 00:35:53,990 >> DAN: Halló væri fimm. 671 00:35:53,990 --> 00:35:55,240 Já. 672 00:35:55,240 --> 00:35:59,580 673 00:35:59,580 --> 00:36:02,880 Svo fylki eru samfelld blokkir af minni. 674 00:36:02,880 --> 00:36:08,480 Þeir hafa augnablik aðgangur með því að segja að nafn fylkisins og þá, í ​​hrokkið 675 00:36:08,480 --> 00:36:16,720 axlabönd, hvað vísitalan þú vilt fara til, þeir eru verðtryggð frá núlli í gegnum 676 00:36:16,720 --> 00:36:20,100 lengd array mínus 1. 677 00:36:20,100 --> 00:36:23,070 >> Og þeir eru lýst með tegund sem hlutur sem þú ert að geyma í 678 00:36:23,070 --> 00:36:29,750 array, nafn array, og þá hvað stærð er á þeim fjölda. 679 00:36:29,750 --> 00:36:36,660 Þannig að þetta er bleikja array lengd sex sem hefur þessi gildi. 680 00:36:36,660 --> 00:36:42,050 681 00:36:42,050 --> 00:36:42,700 Já? 682 00:36:42,700 --> 00:36:43,950 >> Áhorfendur: [inaudible]? 683 00:36:43,950 --> 00:36:47,980 684 00:36:47,980 --> 00:36:48,460 >> DAN: Já. 685 00:36:48,460 --> 00:36:51,340 >> Áhorfendur: [inaudible]? 686 00:36:51,340 --> 00:36:56,700 >> DAN: Ef þú ert það sem er að gerast í fylkinu þegar gert. 687 00:36:56,700 --> 00:37:02,260 Svo þú gætir tilgreina þetta í staðinn sem, segja, bleikju, hvað nafn þitt 688 00:37:02,260 --> 00:37:12,200 array er, tóm sviga jafngildir hrokkið Brace H komma E komma L kommum L kommu 689 00:37:12,200 --> 00:37:16,290 O komma NULL karakter og hrokkið Brace. 690 00:37:16,290 --> 00:37:18,180 Það myndi einnig vinna eins og yfirlýsingar. 691 00:37:18,180 --> 00:37:20,886 >> Áhorfendur: [inaudible]? 692 00:37:20,886 --> 00:37:23,110 >> DAN: Síðan sem þú þarft að hafa stærð þegar gert. 693 00:37:23,110 --> 00:37:23,896 >> Áhorfendur: [inaudible]? 694 00:37:23,896 --> 00:37:25,146 >> DAN: Já. 695 00:37:25,146 --> 00:37:30,114 696 00:37:30,114 --> 00:37:32,420 Allt righty. 697 00:37:32,420 --> 00:37:36,430 Stjórn lína rök eru leið fá inntak frá notanda og 698 00:37:36,430 --> 00:37:39,380 rök til helstu. 699 00:37:39,380 --> 00:37:40,600 Main tekur tvær breytur. 700 00:37:40,600 --> 00:37:47,680 Fjöldi rök sem að framhjá eftir skipanalínu og a 701 00:37:47,680 --> 00:37:55,340 band ferja eða band array af öllum rökum. 702 00:37:55,340 --> 00:38:07,840 >> Svo ef ég að segja, sem kallast virka eins punktur út 1. pláss, 2 rúm, þrír, 703 00:38:07,840 --> 00:38:10,110 argc yrði 4. 704 00:38:10,110 --> 00:38:17,370 Og argv 0 væri punktur út. 705 00:38:17,370 --> 00:38:19,130 Argv1 væri 1. 706 00:38:19,130 --> 00:38:23,030 argv2 væri 2. argv3 væri 3, í því tilfelli. 707 00:38:23,030 --> 00:38:23,310 Já? 708 00:38:23,310 --> 00:38:25,400 >> Áhorfendur: [inaudible]? 709 00:38:25,400 --> 00:38:34,010 >> DAN: Síðasti þáttur í array vegna þess að fylki er lengd argc plús 710 00:38:34,010 --> 00:38:41,050 einn af argb, síðasta frumefni er NULL músina. 711 00:38:41,050 --> 00:38:42,580 Það er argc plús 1. 712 00:38:42,580 --> 00:38:46,210 713 00:38:46,210 --> 00:38:52,150 Svo er að ræða, sem ég sagði bara, það yrði argv 0 er punktur út. 714 00:38:52,150 --> 00:38:56,330 argv 1 er 1. argv2 er 2. argv 3 er 3. 715 00:38:56,330 --> 00:39:03,490 argv 4, sem er eitt stærri en argc væri NULL. 716 00:39:03,490 --> 00:39:04,870 >> Og það er NULL músina. 717 00:39:04,870 --> 00:39:06,590 Já. 718 00:39:06,590 --> 00:39:11,250 Og það er vegna þess að band er a bleikju stjörnu er bendillinn. 719 00:39:11,250 --> 00:39:14,102 Svo það þarf að vera sama tegund. 720 00:39:14,102 --> 00:39:14,595 Já? 721 00:39:14,595 --> 00:39:16,074 >> Áhorfendur: Tvær spurningar. 722 00:39:16,074 --> 00:39:21,004 Svo einn, hvað er munurinn á milli þetta og GetString annað en einni tegund 723 00:39:21,004 --> 00:39:22,483 í the notandi vél? 724 00:39:22,483 --> 00:39:25,934 Og tveir, er það geymt innan Nýleg minni þitt? 725 00:39:25,934 --> 00:39:28,399 Svo eins, GetString myndi vera [inaudible]? 726 00:39:28,399 --> 00:39:31,357 727 00:39:31,357 --> 00:39:33,650 >> DAN: Hvar er það geymt? 728 00:39:33,650 --> 00:39:34,905 Ég veit ekki hvar það er geymt. 729 00:39:34,905 --> 00:39:40,000 >> Áhorfendur: Svo, reyndar, þú veist hvernig allir virka þú kalla það rök 730 00:39:40,000 --> 00:39:42,170 eru geymdar í stafla? 731 00:39:42,170 --> 00:39:46,610 Svo argc og argv rök að helstu og þeir eru á mánudaginn, eða í raun 732 00:39:46,610 --> 00:39:49,131 rétt ofan það sem þú hugsar eins og að byrja á mánudaginn. 733 00:39:49,131 --> 00:39:53,490 Hvað var annar hluti af þeirri spurningu? 734 00:39:53,490 --> 00:39:56,821 >> Áhorfendur: Svo er það [inaudible]? 735 00:39:56,821 --> 00:40:00,990 >> DAN: Já, það er bara öðruvísi leið að fá inntak frá notanda. 736 00:40:00,990 --> 00:40:06,030 Örlítið skilvirkari og þetta er það er handier fyrir skriftum vegna þess að þú 737 00:40:06,030 --> 00:40:10,070 getur bara fara rök að helstu þitt virka frekar en að þurfa að bíða 738 00:40:10,070 --> 00:40:13,400 fyrir notendur ef þú ert ekki einhverjar notendum. 739 00:40:13,400 --> 00:40:16,280 >> Áhorfendur: Og já, fá strengi væri [inaudible]. 740 00:40:16,280 --> 00:40:17,922 Það myndi geyma efni sem þú þarft. 741 00:40:17,922 --> 00:40:18,834 >> DAN: Já? 742 00:40:18,834 --> 00:40:21,114 >> Áhorfendur: [inaudible]? 743 00:40:21,114 --> 00:40:27,545 >> DAN: Já, argv 0 nær alltaf punktur rista á virka símtalinu. 744 00:40:27,545 --> 00:40:28,042 Já? 745 00:40:28,042 --> 00:40:29,292 >> Áhorfendur: [inaudible]? 746 00:40:29,292 --> 00:40:33,509 747 00:40:33,509 --> 00:40:37,310 >> DAN: Já, eru hvert rök endaði NULL karakter vegna þess að þeir 748 00:40:37,310 --> 00:40:38,310 eru strengir. 749 00:40:38,310 --> 00:40:40,892 >> Áhorfendur: [inaudible]? 750 00:40:40,892 --> 00:40:44,116 >> DAN: Já, argv argc er NULL músina. 751 00:40:44,116 --> 00:40:45,112 >> Áhorfendur: [inaudible]? 752 00:40:45,112 --> 00:40:47,104 >> DAN: Ó já. 753 00:40:47,104 --> 00:40:48,100 Já, því miður. 754 00:40:48,100 --> 00:40:49,594 >> Áhorfendur: Svo [inaudible]? 755 00:40:49,594 --> 00:41:08,518 756 00:41:08,518 --> 00:41:16,340 >> DAN: Svo spurningin er hvort þú hefði stjórn lína punktur rista punkt út 1, 2, 757 00:41:16,340 --> 00:41:20,410 myndi fjöldi lína rök vera tveir eða myndi það vera þrjú? 758 00:41:20,410 --> 00:41:24,420 759 00:41:24,420 --> 00:41:28,240 >> Áhorfendur: Ég held að það er ekki máli. 760 00:41:28,240 --> 00:41:31,370 ÉG hafa tilhneigingu til að segja, ó, að þú ekki fara allir stjórn lína rifrildi þegar, 761 00:41:31,370 --> 00:41:32,730 augljóslega, þú kallaðir aðgerðina. 762 00:41:32,730 --> 00:41:37,950 Svo ég tilhneigingu til að hávær útiloka virka frá the stjórn lína 763 00:41:37,950 --> 00:41:40,350 rök, jafnvel þó að það er innifalið í argv. 764 00:41:40,350 --> 00:41:42,600 >> DAN: En ef það var á test-- 765 00:41:42,600 --> 00:41:46,550 yeah-- og einnig ef þú segir eitthvað eins argc jafngildir 3, 766 00:41:46,550 --> 00:41:48,512 þú ert í öruggum standa. 767 00:41:48,512 --> 00:41:49,416 Já? 768 00:41:49,416 --> 00:41:50,666 >> Áhorfendur: [inaudible]? 769 00:41:50,666 --> 00:42:00,990 770 00:42:00,990 --> 00:42:09,510 >> DAN: Ég held að ef í stað þess að hringja á þessu í argc og band argv sviga 771 00:42:09,510 --> 00:42:14,350 en hélt sömu tegundir og hringdi þá eitthvað öðruvísi eins og 772 00:42:14,350 --> 00:42:16,640 og b, myndi það vinna enn? 773 00:42:16,640 --> 00:42:18,790 Og það væri enn að vinna, þú vildi just-- 774 00:42:18,790 --> 00:42:21,520 í stað þess að nota argc-- þú vilt nota og b. 775 00:42:21,520 --> 00:42:24,436 776 00:42:24,436 --> 00:42:25,408 Já? 777 00:42:25,408 --> 00:42:26,658 >> Áhorfendur: [inaudible]? 778 00:42:26,658 --> 00:42:34,642 779 00:42:34,642 --> 00:42:38,850 >> DAN: Svo er spurningin GetString er að fara að geyma minni í hrúga 780 00:42:38,850 --> 00:42:42,280 því GetString er char *. 781 00:42:42,280 --> 00:42:47,530 Það geymir minni í hrúga því það nú kallar malloc innan raunverulegt 782 00:42:47,530 --> 00:42:49,258 framkvæmd GetString. 783 00:42:49,258 --> 00:42:53,210 784 00:42:53,210 --> 00:42:55,090 OK, flutti á. 785 00:42:55,090 --> 00:42:55,950 >> Öryggi. 786 00:42:55,950 --> 00:43:01,090 Svo til að vera sannarlega öruggur, treysta þér á ekkert einn og þú leyfa enginn aðgang að einhverju 787 00:43:01,090 --> 00:43:04,540 af upplýsingum, sem er hvers vegna allir byggir eigin vél þeirra, 788 00:43:04,540 --> 00:43:09,580 eigin rekstri þeirra kerfi, allir þeirra forrit frá grunni, og vitanlega 789 00:43:09,580 --> 00:43:13,410 ekki tengjast neinum öðrum vélum í gegnum internetið. 790 00:43:13,410 --> 00:43:17,350 Svo tölvur eru óörugg. 791 00:43:17,350 --> 00:43:19,200 Þeir eru í raun. 792 00:43:19,200 --> 00:43:20,940 Við verðum að treysta fólki. 793 00:43:20,940 --> 00:43:26,500 >> Og hugmyndin um öryggi er að þú ert að reyna að takmarka magn af 794 00:43:26,500 --> 00:43:27,540 traust sem þú þarft. 795 00:43:27,540 --> 00:43:32,080 Og einn af þeim aðferðum sem þú gerir það er í gegnum dulkóðun. 796 00:43:32,080 --> 00:43:34,950 Dulmál er, í meginatriðum, við höfum leyndarmál. 797 00:43:34,950 --> 00:43:38,880 >> Stundum verðum við að fara leyndarmálum okkar ásamt með, segjum, internetið eða 798 00:43:38,880 --> 00:43:39,980 annað. 799 00:43:39,980 --> 00:43:43,180 Og við viljum ekki fólk að vita þessar leyndarmál. 800 00:43:43,180 --> 00:43:50,100 Þannig að við að dulkóða leyndarmál okkar í leiðinni sem við vonum að enginn getur fundið út. 801 00:43:50,100 --> 00:43:51,600 >> Þannig að við used-- 802 00:43:51,600 --> 00:43:54,340 gegnum á þessu class-- 803 00:43:54,340 --> 00:44:00,750 hluti eins og Caesar dulmál og [Inaudible], sem eru bæði mjög 804 00:44:00,750 --> 00:44:03,200 óörugg leiðir dulkóða hluti. 805 00:44:03,200 --> 00:44:07,930 Þeir eru auðvelt að reikna út hvað þeir eru og hvað leyndarmál þín eru. 806 00:44:07,930 --> 00:44:12,130 The raunverulegur veröld notar miklu meira flóknar dulkóðun kerfi. 807 00:44:12,130 --> 00:44:13,880 Og við munum ekki fá inn miklu meira en það. 808 00:44:13,880 --> 00:44:18,280 809 00:44:18,280 --> 00:44:19,430 >> Kembiforrit. 810 00:44:19,430 --> 00:44:20,785 GDB er bestur. 811 00:44:20,785 --> 00:44:24,014 812 00:44:24,014 --> 00:44:25,810 Ég ætla að leggja áherslu á þetta aftur. 813 00:44:25,810 --> 00:44:30,920 Notaðu gdb allan tímann hvert þegar þú ert í vandræðum. 814 00:44:30,920 --> 00:44:36,030 Skipanir sem nýtast vel við gdb eru brjóta, sem þú framhjá annaðhvort línu 815 00:44:36,030 --> 00:44:41,330 númer fall nafn, í meginatriðum hvar í númerið sem þú vilt hætta, 816 00:44:41,330 --> 00:44:45,600 og vera fær um að taka stjórn. 817 00:44:45,600 --> 00:44:54,140 >> Prenta tekur breytu og prentar út hvað sem breytu er að 818 00:44:54,140 --> 00:44:55,990 lið í framkvæmd þinn. 819 00:44:55,990 --> 00:45:00,130 Næst flytur framkvæmd þína ásamt einu skrefi. 820 00:45:00,130 --> 00:45:05,050 Og stíga skref inni fall í framkvæmd þinn. 821 00:45:05,050 --> 00:45:10,480 >> Aðrir hlutir eru að keyra, sem er hvernig þú keyrir í raun kóðann þinn. 822 00:45:10,480 --> 00:45:16,630 Halda áfram tekur öll þau skref sem þarf að fá til the næstur brot lið. 823 00:45:16,630 --> 00:45:18,300 Og það eru margir, margir aðrir. 824 00:45:18,300 --> 00:45:19,040 Horfðu þá upp. 825 00:45:19,040 --> 00:45:19,901 Þeir eru frábær. 826 00:45:19,901 --> 00:45:20,863 Já? 827 00:45:20,863 --> 00:45:22,113 >> Áhorfendur: [inaudible]? 828 00:45:22,113 --> 00:45:26,635 829 00:45:26,635 --> 00:45:28,200 >> DAN: Já, sem er aflúsara. 830 00:45:28,200 --> 00:45:34,230 Svo aflúsara er forrit sem gerir þér kleift að kemba program. 831 00:45:34,230 --> 00:45:39,931 Það er ekki forrit sem finnur galla fyrir þú, þó að það væri frábært. 832 00:45:39,931 --> 00:45:43,020 833 00:45:43,020 --> 00:45:46,040 >> Og síðast fyrir mig er að leita. 834 00:45:46,040 --> 00:45:51,470 Svo gerðum leit að við ræddum um í þessum flokki eru línuleg leit, 835 00:45:51,470 --> 00:45:55,960 sem er bara að þú horfir í gegnum hvert þáttur í leit rúm, einn 836 00:45:55,960 --> 00:46:00,410 þáttur í einu, þar til þú finnur hvað þú ert að leita að eða þar til þú nærð 837 00:46:00,410 --> 00:46:03,350 enda leit rúm þar sem benda þú segir að þú gætir ekki fundið 838 00:46:03,350 --> 00:46:06,360 þátturinn sem þú varst að leita að. 839 00:46:06,360 --> 00:46:13,450 Og þetta tekur í besta falli stöðugt tíma, sem er 0 af 1 og í versta falli línulega 840 00:46:13,450 --> 00:46:16,070 tíma, sem er 0 á n. 841 00:46:16,070 --> 00:46:19,250 >> Tvöfaldur leit, sem þarf sordid þætti. 842 00:46:19,250 --> 00:46:24,230 Þú ferð til miðju þætti þínum, sjá hvort þátturinn sem þú ert að leita að 843 00:46:24,230 --> 00:46:30,120 er stærri eða minni en frumefni að þú ert á miðjunni. 844 00:46:30,120 --> 00:46:36,510 Það er það stærra, þú segir að botn af leitinni pláss er þinn 845 00:46:36,510 --> 00:46:41,550 Núverandi staðsetning, miðju, og þú endurræsa ferli. 846 00:46:41,550 --> 00:46:46,150 Ef það er minni, þú lítur segja að the-- já, hvað er uppi? 847 00:46:46,150 --> 00:46:47,400 >> Áhorfendur: [inaudible]? 848 00:46:47,400 --> 00:46:51,000 849 00:46:51,000 --> 00:46:54,260 >> DAN: Já. 850 00:46:54,260 --> 00:46:58,360 Hvers konar tagi sem hefur verið kennt í bekknum er sanngjarn leikur fyrir próf. 851 00:46:58,360 --> 00:47:01,504 852 00:47:01,504 --> 00:47:04,920 >> [Hlátur] 853 00:47:04,920 --> 00:47:10,260 >> DAN: Og sú staðreynd að þú hefur ekki haft að gera það fyrir vandamál setja, það er sanngjarnt 854 00:47:10,260 --> 00:47:12,420 leikur fyrir próf. 855 00:47:12,420 --> 00:47:15,186 >> Áhorfendur: Getum við farið yfir það hvernig to-- 856 00:47:15,186 --> 00:47:17,052 >> DAN: Það verður farið yfir. 857 00:47:17,052 --> 00:47:20,496 >> Ræðumaður 2: Raunveruleg kóða fyrir [Inaudible] er á study.cs50.net. 858 00:47:20,496 --> 00:47:25,910 859 00:47:25,910 --> 00:47:32,680 Þannig að ef þú horfir á æfingu vandamál í Mergesort síðu 860 00:47:32,680 --> 00:47:35,880 study.cs50.net, það er kóðinn um framkvæmd sameinast konar. 861 00:47:35,880 --> 00:47:38,550 Svo þú þarft ekki að framkvæma það sjálfur í kvöld. 862 00:47:38,550 --> 00:47:42,090 En vertu viss um að þú skiljir það frekar en bara að leggja á minnið það. 863 00:47:42,090 --> 00:47:45,035 >> Áhorfendur: [inaudible]? 864 00:47:45,035 --> 00:47:49,720 >> Ræðumaður 2: Mergesort síðu á study.cs50.net, það er reynd 865 00:47:49,720 --> 00:47:53,570 vandamál að ef þú smellir á vandamál, aftast er 866 00:47:53,570 --> 00:47:56,280 lausn, sem er steypa konar framkvæmd. 867 00:47:56,280 --> 00:47:58,510 En vertu viss um að þú skiljir það frekar en bara að leggja á minnið það 868 00:47:58,510 --> 00:47:59,760 eða afrita það niður. 869 00:47:59,760 --> 00:48:02,870 870 00:48:02,870 --> 00:48:06,340 >> Áhorfendur: Og fullkomlega gild vandamál fyrir prófið væri 871 00:48:06,340 --> 00:48:07,990 eitthvað eins og hér er listi. 872 00:48:07,990 --> 00:48:12,100 Hvað þýðir þetta er að listinn líta út eftir eitt skref af vali konar eða 873 00:48:12,100 --> 00:48:13,330 insertion sort eða hvað. 874 00:48:13,330 --> 00:48:14,940 Einn fullur endurtekning af listanum. 875 00:48:14,940 --> 00:48:18,530 Svo jafnvel ef þú endir ekki upp að þurfa að kóða fyrir það, þú þarft að skilja það 876 00:48:18,530 --> 00:48:20,440 nóg að vita hvernig það er að fara til að vera að breyta þessum array. 877 00:48:20,440 --> 00:48:24,144 878 00:48:24,144 --> 00:48:25,394 >> DAN: Það er það fyrir mig. 879 00:48:25,394 --> 00:48:30,604 880 00:48:30,604 --> 00:48:32,588 >> [Applause] 881 00:48:32,588 --> 00:49:06,316 882 00:49:06,316 --> 00:49:07,410 >> LUCAS: Hey allir. 883 00:49:07,410 --> 00:49:08,390 Mitt nafn er Lucas. 884 00:49:08,390 --> 00:49:16,840 Ég ætla að tala um endurkvæmni, allt þær tegundir sem við höfum lært, og 885 00:49:16,840 --> 00:49:18,050 svolítið af öllum ábendingum. 886 00:49:18,050 --> 00:49:18,740 OK? 887 00:49:18,740 --> 00:49:20,340 Svo fyrst af öllu, endurkvæmni. 888 00:49:20,340 --> 00:49:22,951 Hvað þýðir það að segja að fall er endurkvæma? 889 00:49:22,951 --> 00:49:24,675 >> Áhorfendur: Símtöl sig. 890 00:49:24,675 --> 00:49:26,500 >> LUCAS: OK, kallar sig, já. 891 00:49:26,500 --> 00:49:27,700 Svo eins og þessari mynd, til dæmis. 892 00:49:27,700 --> 00:49:30,280 Það er eins og á myndinni inni af mynd og svo framvegis. 893 00:49:30,280 --> 00:49:35,740 Svo til dæmis, getur þú have-- Dan sem var að tala um tvöfaldur leit. 894 00:49:35,740 --> 00:49:41,840 Ein leið sem tvöfaldur leit endurkvæma er sú staðreynd að þú ert 895 00:49:41,840 --> 00:49:43,130 að reyna að finna númerið. 896 00:49:43,130 --> 00:49:44,250 Svo þú ferð til miðju. 897 00:49:44,250 --> 00:49:47,130 Og þá þú athuga ef þau þar í vinstri og í hægri. 898 00:49:47,130 --> 00:49:49,650 >> Og svo ef þú finnur út númerið er að fara að vera á vinstri, það er sama 899 00:49:49,650 --> 00:49:53,340 hlutur eins og að gera leit aftur, en bara á vinstri listanum. 900 00:49:53,340 --> 00:49:57,350 Svo er það hvernig það hljómar eins og það er endurkvæma. 901 00:49:57,350 --> 00:50:01,870 Svo er að hvers vegna þú krakkar hafa endurkvæma lausn fyrir sameiningu tagi. 902 00:50:01,870 --> 00:50:04,270 >> OK, svo hér er dæmi. 903 00:50:04,270 --> 00:50:07,280 Svo skulum segja að ég vil velja allar tölur frá 1 til n. 904 00:50:07,280 --> 00:50:13,790 Ég get átta sig á því að summa n tala er n plús n mínus 1 allt að 1. 905 00:50:13,790 --> 00:50:17,810 En þá, ef ég lít á n mínus 1 plús n mínus 2 plús 1, sem er sama 906 00:50:17,810 --> 00:50:20,680 hlutur sem því tölur allt að n mínus 1. 907 00:50:20,680 --> 00:50:25,890 Svo ég get sagt summu jafnhátt jafngildir n auk summu n mínus 1. 908 00:50:25,890 --> 00:50:28,010 Er að skynsamleg? 909 00:50:28,010 --> 00:50:32,630 >> Og ég líka hefði eitthvað annað kallað stöð málið, sem er að 910 00:50:32,630 --> 00:50:37,440 summa talnanna upp í núll myndi vera núll. 911 00:50:37,440 --> 00:50:42,770 Svo um leið og ég kem til fjölda núll, hætta ég telja. 912 00:50:42,770 --> 00:50:45,330 Er að skynsamleg? 913 00:50:45,330 --> 00:50:48,120 >> Svo er hér dæmi um hvernig Ég get framkvæma það. 914 00:50:48,120 --> 00:50:49,860 Þannig að ég hef þetta virka í sumum. 915 00:50:49,860 --> 00:50:51,700 Sem tekur heiltölu n. 916 00:50:51,700 --> 00:50:56,300 Svo hér er ég að athuga fyrst ef n er minna en eða jafnt og núll. 917 00:50:56,300 --> 00:51:00,310 Þannig að ef það er minna eða jafnt og núll, ég aftur núll, sem er undirstaða raunin okkar. 918 00:51:00,310 --> 00:51:05,690 Annars get ég bara aftur n plús summa talnanna frá 919 00:51:05,690 --> 00:51:07,190 einn til n mínus einn. 920 00:51:07,190 --> 00:51:09,360 Skynsamleg? 921 00:51:09,360 --> 00:51:10,100 OK. 922 00:51:10,100 --> 00:51:11,610 >> Svo hér er það sem það lítur út. 923 00:51:11,610 --> 00:51:15,260 Þú ert summan af 2 jafningja 2 plus summan af 1. 924 00:51:15,260 --> 00:51:18,930 Og sumir af 1 er 1 plús summan af 0, sem er 0. 925 00:51:18,930 --> 00:51:20,216 Skynsamleg? 926 00:51:20,216 --> 00:51:25,342 Svo ef við skoðum stafla af þinn program, þetta er það sem það lítur út. 927 00:51:25,342 --> 00:51:26,820 >> Í fyrsta lagi höfum við meginhlutverki. 928 00:51:26,820 --> 00:51:30,320 Og þá helsta hlutverk kallað summan 2. 929 00:51:30,320 --> 00:51:36,690 Og þá summa 2 er að fara að segja, ó, summa 2 er 2 plús summan af einum. 930 00:51:36,690 --> 00:51:39,460 Svo ég bæta summu 1 til stafla. 931 00:51:39,460 --> 00:51:43,860 Og summan af 1 er að fara að hringja summan af 0, sem er líka að fara til að bæta við 932 00:51:43,860 --> 00:51:44,630 að stafla. 933 00:51:44,630 --> 00:51:49,240 Og þá hvert þessara þau sem eru ofan á aðra þurfa að snúa 934 00:51:49,240 --> 00:51:52,020 áður en hinar geta haldið áfram. 935 00:51:52,020 --> 00:51:56,240 >> Svo til dæmis, hér, summan af 0, fyrst, er að fara að skila 0. 936 00:51:56,240 --> 00:51:58,320 Og þá velja summan af 1. 937 00:51:58,320 --> 00:52:00,850 Þá summan af 1 er að fara til skila 1 að summa af 2. 938 00:52:00,850 --> 00:52:03,900 Og að lokum, summan af 2 er að fara til að fara aftur 3 í haf. 939 00:52:03,900 --> 00:52:05,320 Er að skynsamleg? 940 00:52:05,320 --> 00:52:09,496 >> Það er mjög mikilvægt að skilja hvernig stafla er að vinna og reyna að 941 00:52:09,496 --> 00:52:11,980 sjá hvort það er vit í. 942 00:52:11,980 --> 00:52:13,260 Allt í lagi, svo flokka. 943 00:52:13,260 --> 00:52:16,170 Svo hvers vegna er flokkun mikilvægt, fyrst af öllu? 944 00:52:16,170 --> 00:52:18,260 Hvers vegna ættum við að kæra? 945 00:52:18,260 --> 00:52:20,310 Einhver? 946 00:52:20,310 --> 00:52:20,695 Gefðu mér dæmi? 947 00:52:20,695 --> 00:52:21,040 Já? 948 00:52:21,040 --> 00:52:22,968 >> Áhorfendur: [inaudible]. 949 00:52:22,968 --> 00:52:24,700 >> LUCAS: Já, allt í lagi. 950 00:52:24,700 --> 00:52:26,090 Svo er hægt að leita á skilvirkari hátt. 951 00:52:26,090 --> 00:52:28,580 Það er góð leið. 952 00:52:28,580 --> 00:52:32,462 Svo, til dæmis, við höfum mikið af hluti, í raun, í lífi okkar sem 953 00:52:32,462 --> 00:52:32,920 eru flokkuð. 954 00:52:32,920 --> 00:52:34,830 Td orðabækur. 955 00:52:34,830 --> 00:52:39,210 >> Það er mjög mikilvægt að hafa allar orð í einhvers konar röð sem við 956 00:52:39,210 --> 00:52:41,970 geta nálgast auðveldlega. 957 00:52:41,970 --> 00:52:43,280 Svo það er það sem hann var að segja. 958 00:52:43,280 --> 00:52:45,530 Hægt er að leita á skilvirkari hátt. 959 00:52:45,530 --> 00:52:48,740 Hugsaðu um hversu erfitt það væri að hafa orðabók þar sem orð eru í 960 00:52:48,740 --> 00:52:49,500 handahófi röð. 961 00:52:49,500 --> 00:52:53,120 Þú þarft að líta á, ansi mikið, hvert einasta orð fyrr en þú finnur að 962 00:52:53,120 --> 00:52:54,720 orð sem þú ert að leita að. 963 00:52:54,720 --> 00:52:58,710 >> Ef þú ert að nota Facebook líka, þegar þú ert að horfa á vini þína, þú ert 964 00:52:58,710 --> 00:53:03,540 að fara að sjá að Facebook setti þinn nær vinur er ofan á þær 965 00:53:03,540 --> 00:53:05,470 að þú talar ekki það mikið. 966 00:53:05,470 --> 00:53:08,080 Ef þú ferð alla leið í botn vinur þinn listi, þú ert að fara að sjá 967 00:53:08,080 --> 00:53:11,250 fólk sem þú gerir sennilega ekki einu sinni muna að þú ert vinir með. 968 00:53:11,250 --> 00:53:14,590 Og það er vegna þess að Facebook konar vinir þínir byggjast á því hvernig 969 00:53:14,590 --> 00:53:16,472 loka þú ert við þá. 970 00:53:16,472 --> 00:53:17,930 >> Svo skipuleggja gögnin. 971 00:53:17,930 --> 00:53:18,450 Einnig Pokemon. 972 00:53:18,450 --> 00:53:21,400 Svo þú sérð að öllum pokemons hafa númer. 973 00:53:21,400 --> 00:53:27,210 Og það er eins auðvelt leið aðgang að gögnum. 974 00:53:27,210 --> 00:53:29,050 >> Áhorfendur: Aðgangur Pokemon. 975 00:53:29,050 --> 00:53:29,890 >> LUCAS: Já. 976 00:53:29,890 --> 00:53:32,395 >> Áhorfendur: [inaudible]. 977 00:53:32,395 --> 00:53:33,460 >> LUCAS: Já. 978 00:53:33,460 --> 00:53:35,140 Allt í lagi, þannig að val tegund. 979 00:53:35,140 --> 00:53:41,610 Val tegund er að fara að velja Minnsta óflokkað gildi lista á hverju 980 00:53:41,610 --> 00:53:43,300 tími í hverri ítrun. 981 00:53:43,300 --> 00:53:46,800 Það er góður af eins og því tagi sem þú gerir í hausnum þegar þú ert að reyna að 982 00:53:46,800 --> 00:53:48,430 raða lista á hönd. 983 00:53:48,430 --> 00:53:51,990 >> Í grundvallaratriðum, allt sem þú gera er að líta fyrir minnstu númer. 984 00:53:51,990 --> 00:53:54,280 Þú setur það í flokkaðs listanum. 985 00:53:54,280 --> 00:53:56,230 Og þá útlit fyrir að Næsta minnsti fjöldi. 986 00:53:56,230 --> 00:54:00,080 Og þá þú halda að gera það og svo framvegis. 987 00:54:00,080 --> 00:54:04,600 >> Svo er val konar grundvallaratriðum þú velja í hvert skipti sem minnstu 988 00:54:04,600 --> 00:54:05,750 óflokkað gildi. 989 00:54:05,750 --> 00:54:10,840 Setja í lok sem raðað hluti af listanum. 990 00:54:10,840 --> 00:54:12,370 Og halda að gera það. 991 00:54:12,370 --> 00:54:15,890 Svo skulum sjá fljótt hvað þetta lítur út eins og. 992 00:54:15,890 --> 00:54:19,340 Svo er hér raðað og óflokkað lista. 993 00:54:19,340 --> 00:54:23,350 >> Svo fyrir raðað á listann, það er tóm í upphafi. 994 00:54:23,350 --> 00:54:26,760 Og þá er ég að fara að velja minnsta talan hér, sem er 2. 995 00:54:26,760 --> 00:54:30,650 Svo ég fá númer 2 og ég setti í framan listanum. 996 00:54:30,650 --> 00:54:34,910 Og þá er ég að leita að næsta minnstu þáttur, sem er 3. 997 00:54:34,910 --> 00:54:37,050 Þannig að ég setti það í lok af raðað lista. 998 00:54:37,050 --> 00:54:38,140 Og þá er ég að halda að gera það. 999 00:54:38,140 --> 00:54:40,040 Mér finnst 4 og setja það í lokin. 1000 00:54:40,040 --> 00:54:41,360 Finna 5 og setja það í lokin. 1001 00:54:41,360 --> 00:54:44,830 >> Og líta á hvernig allar þær stundir sem Ég er að segja setja það í the endir er, 1002 00:54:44,830 --> 00:54:46,850 grundvallaratriðum, skipta tvö gildi. 1003 00:54:46,850 --> 00:54:48,100 OK? 1004 00:54:48,100 --> 00:54:50,140 1005 00:54:50,140 --> 00:54:52,825 Og þá það síðasta, þú bara hafa eina einingu. 1006 00:54:52,825 --> 00:54:55,870 Svo það er nú þegar raðað. 1007 00:54:55,870 --> 00:54:57,800 >> Allt í lagi, svo insertion sort. 1008 00:54:57,800 --> 00:55:03,180 Insertion sort sem þú ert að fara að hafa einnig að hlutur af því að hafa a raðað og 1009 00:55:03,180 --> 00:55:04,690 er óflokkað lista. 1010 00:55:04,690 --> 00:55:14,540 Það eina sem er að í hvert sinn sem þú ert að bæta stak til raðað 1011 00:55:14,540 --> 00:55:18,170 lista, þú velur bara þáttur sem er framan við óflokkaðs listanum. 1012 00:55:18,170 --> 00:55:20,880 Og þá þú ert að fara að finna hvað stöðu það ætti að vera í Raðað 1013 00:55:20,880 --> 00:55:22,300 hluti af listanum. 1014 00:55:22,300 --> 00:55:25,840 >> Við skulum sjá hvað þetta er svo þetta gerir meira vit. 1015 00:55:25,840 --> 00:55:29,360 Svo í upphafi, til dæmis, ég er að reyna að setja númer þrjú í 1016 00:55:29,360 --> 00:55:30,680 Raðað hluti af listanum. 1017 00:55:30,680 --> 00:55:31,800 Svo listinn hefur ekki neitt. 1018 00:55:31,800 --> 00:55:34,160 Svo ég get bara setja númer 3. 1019 00:55:34,160 --> 00:55:37,480 >> Nú, ég vil bæta talan 5 til að Raðað hluti á listanum. 1020 00:55:37,480 --> 00:55:38,900 Svo lít ég á númer 5. 1021 00:55:38,900 --> 00:55:40,450 Ég tók eftir að það er stærra en 3. 1022 00:55:40,450 --> 00:55:41,980 Þannig að ég veit að það þarf að vera eftir 3. 1023 00:55:41,980 --> 00:55:44,100 Þannig að ég setti 3 og 5. 1024 00:55:44,100 --> 00:55:45,940 >> Þá vil ég að setja númer 2. 1025 00:55:45,940 --> 00:55:51,630 Ég tók eftir því að númer 2 er í raun endast þá bæði 3 og 5. 1026 00:55:51,630 --> 00:55:54,580 Svo ég hef í raun að setja það allt leið í upphafi listanum. 1027 00:55:54,580 --> 00:55:59,030 Svo ég verð að, eins konar, skipta öllum þætti í raðað listanum svo ég geti 1028 00:55:59,030 --> 00:56:01,970 að gera pláss fyrir númer 2. 1029 00:56:01,970 --> 00:56:03,160 >> Þá er ég að sjá í 6.. 1030 00:56:03,160 --> 00:56:05,450 Ég sé að það ætti að vera eftir 5. 1031 00:56:05,450 --> 00:56:06,240 Þannig að ég setti það þar. 1032 00:56:06,240 --> 00:56:07,965 Og að lokum, ég lít á númer 4. 1033 00:56:07,965 --> 00:56:11,030 Og ég tók eftir að það ætti að vera á milli 3 og 5. 1034 00:56:11,030 --> 00:56:14,870 Og svo ég setti það þar og breyting allir aðrir þættir. 1035 00:56:14,870 --> 00:56:16,120 Skynsamleg? 1036 00:56:16,120 --> 00:56:17,880 1037 00:56:17,880 --> 00:56:19,150 >> Bubble Sort. 1038 00:56:19,150 --> 00:56:25,730 Svo er kúla tegund grundvallaratriðum það sem þú ert fara að do-- við köllum það kúla 1039 00:56:25,730 --> 00:56:30,113 raða því sem þú ferð í gegnum list-- það er í raun betra ef ég sýna bara 1040 00:56:30,113 --> 00:56:32,300 þú vilt this-- 1041 00:56:32,300 --> 00:56:35,030 og þú ert að fara að bera saman aðliggjandi tölur. 1042 00:56:35,030 --> 00:56:38,410 Og þú ert að fara að skipta þeirra Halda ef þeir eru ekki 1043 00:56:38,410 --> 00:56:39,190 í réttri röð. 1044 00:56:39,190 --> 00:56:42,570 >> Svo í grundvallaratriðum, hvað er að fara að gerast er hér, til dæmis, 1045 00:56:42,570 --> 00:56:44,160 þú ert 8 og 6. 1046 00:56:44,160 --> 00:56:47,270 Þú veist að Raðað til mun reyndar vera 6 og 5, ekki satt? 1047 00:56:47,270 --> 00:56:49,540 Svo þú ert að fara að skipta pantanir. 1048 00:56:49,540 --> 00:56:51,370 Þá er ég að sjá 8 og 4 hér. 1049 00:56:51,370 --> 00:56:52,250 Og ég gera það sama. 1050 00:56:52,250 --> 00:56:53,400 Ég skipti aftur. 1051 00:56:53,400 --> 00:56:55,070 Og að lokum, 2 og 8. 1052 00:56:55,070 --> 00:56:56,670 Ég skipta líka þá. 1053 00:56:56,670 --> 00:57:01,690 >> Það heitir kúla Raða því eftir hvert þessara endurtekningar, reyndar, 1054 00:57:01,690 --> 00:57:05,910 mesti fjöldi í listanum fær allt leiðin til loka listanum. 1055 00:57:05,910 --> 00:57:06,940 Er að skynsamleg? 1056 00:57:06,940 --> 00:57:11,880 Því það heldur skipta um það og færa það til hægri. 1057 00:57:11,880 --> 00:57:14,440 >> Allt í lagi, þannig að þetta er annað endurtekning. 1058 00:57:14,440 --> 00:57:17,200 Það væri það sama. 1059 00:57:17,200 --> 00:57:20,190 Ég skal gera eina skipti og þá seinast. 1060 00:57:20,190 --> 00:57:23,290 Ég að það eru engar skiptasamninga og listinn er raðað. 1061 00:57:23,290 --> 00:57:27,460 Svo í Bubble Sort, halda við í rauninni að fara í gegnum listann og skipta 1062 00:57:27,460 --> 00:57:32,310 hlutir fyrr en ég eftir því að ég gerði það ekki allir samningar gera það endurtekning, sem 1063 00:57:32,310 --> 00:57:34,270 þýðir að listinn er þegar raðað. 1064 00:57:34,270 --> 00:57:35,520 Skynsamleg? 1065 00:57:35,520 --> 00:57:38,400 1066 00:57:38,400 --> 00:57:40,870 >> Við skulum tala svolítið um að keyra tíma. 1067 00:57:40,870 --> 00:57:45,165 Svo gera þú krakkar muna Big O, Omega, og Þeta? 1068 00:57:45,165 --> 00:57:49,290 1069 00:57:49,290 --> 00:57:50,990 Já? 1070 00:57:50,990 --> 00:57:53,070 Allt í lagi, hvað er stór O, fyrst af öllu? 1071 00:57:53,070 --> 00:57:54,315 >> Áhorfendur: [inaudible]. 1072 00:57:54,315 --> 00:57:59,070 >> LUCAS: Já, það er kallað versta tilfelli afturkreistingur, sem þýðir bara að það er 1073 00:57:59,070 --> 00:58:03,470 hversu mikið þú búist forritið að taka til að keyra. 1074 00:58:03,470 --> 00:58:04,910 Eins, hvað of-- 1075 00:58:04,910 --> 00:58:06,660 í þessu case-- n. 1076 00:58:06,660 --> 00:58:09,150 Fjöldi staka í því listi í versta tilfelli. 1077 00:58:09,150 --> 00:58:12,520 Eins og í versta tilfelli. 1078 00:58:12,520 --> 00:58:17,100 >> Svo fyrir Bubble tegund, til dæmis, Við höfum Big O n veldi. 1079 00:58:17,100 --> 00:58:20,580 Hvers vegna höfum við það? 1080 00:58:20,580 --> 00:58:24,716 Hvers vegna er kúla Raða Big O n veldi? 1081 00:58:24,716 --> 00:58:27,614 >> Áhorfendur: [inaudible]. 1082 00:58:27,614 --> 00:58:35,670 >> LUCAS: Já, þannig að versta verður sem ég ætla að gera n endurtekningar. 1083 00:58:35,670 --> 00:58:39,260 Svo hvert endurtekningar er að fara að koma stærsta stak til enda 1084 00:58:39,260 --> 00:58:40,290 af listanum. 1085 00:58:40,290 --> 00:58:44,230 Svo versta er að ég hef að gera þessi hlutur n sinnum. 1086 00:58:44,230 --> 00:58:48,550 Og fyrir hvert af þeim tímum, ég verð að gera n skiptasamninga vegna þess að ég þarf að bera 1087 00:58:48,550 --> 00:58:49,870 hver tveir þættir. 1088 00:58:49,870 --> 00:58:53,730 Svo er það hvers vegna það er n veldi vegna þess að það er n sinnum n. 1089 00:58:53,730 --> 00:59:00,120 >> Þá val tegund er einnig n veldi vegna þess, fyrir hvern endurtekning, ég verð að 1090 00:59:00,120 --> 00:59:02,650 líta á hvert einasta þáttur á listanum. 1091 00:59:02,650 --> 00:59:04,980 Og þá finna minnstu, sem þýðir að ég þarf að 1092 00:59:04,980 --> 00:59:06,130 líta í gegnum n þætti. 1093 00:59:06,130 --> 00:59:11,750 Og ég þarf að gera að n sinnum þar Ég verð að velja allar n þætti. 1094 00:59:11,750 --> 00:59:18,273 >> An insertion sort er einnig n veldi því versta falli mun 1095 00:59:18,273 --> 00:59:20,950 vera, einn, ég verð að setja n tölur, ekki satt? 1096 00:59:20,950 --> 00:59:22,765 Þannig að ég veit nú þegar að ég er að fara að hafa n endurtekningar. 1097 00:59:22,765 --> 00:59:25,466 1098 00:59:25,466 --> 00:59:29,840 En fyrir hvert þær tölur, ef ég hefði að líta á allar tölur í 1099 00:59:29,840 --> 00:59:34,380 sem raðað lista og setja það alla leið í framan, sem mun vera n veldi 1100 00:59:34,380 --> 00:59:36,230 vegna þess að það verður að vera n sinnum n aftur. 1101 00:59:36,230 --> 00:59:38,280 Skynsamleg? 1102 00:59:38,280 --> 00:59:41,512 Hvað um omega? 1103 00:59:41,512 --> 00:59:42,886 >> Áhorfendur: [inaudible]. 1104 00:59:42,886 --> 00:59:44,620 >> LUCAS: Það besta falli. 1105 00:59:44,620 --> 00:59:48,810 Svo það er eins, í fullt af tímum til flokkun, besta falli er 1106 00:59:48,810 --> 00:59:50,660 þegar listinn er þegar raðað. 1107 00:59:50,660 --> 00:59:52,670 Svo þú í raun ekki hafa að gera neitt. 1108 00:59:52,670 --> 00:59:56,290 Bubble Raða hefur bestu smyndir n. 1109 00:59:56,290 --> 00:59:58,820 Gera þú krakkar vita hvers vegna? 1110 00:59:58,820 --> 01:00:00,620 >> Áhorfendur: [inaudible]. 1111 01:00:00,620 --> 01:00:05,640 >> LUCAS: Já, ef þú halda utan um hvort gögn sóknir hefði einhverjar skiptasamninga eða 1112 01:00:05,640 --> 01:00:10,533 ekki, ef þú ert eitthvað eins og sett á satt ef það var endurtekning, ef 1113 01:00:10,533 --> 01:00:15,140 Listinn er þegar raðað, í grundvallaratriðum, hvað er að fara að gerast er að ég ætla að 1114 01:00:15,140 --> 01:00:17,890 reyna að skipta hvert tvö aðliggjandi þætti. 1115 01:00:17,890 --> 01:00:19,920 Ég ætla að sjá um að það eru engar skiptasamninga. 1116 01:00:19,920 --> 01:00:21,230 Og ég aftur bara strax. 1117 01:00:21,230 --> 01:00:24,240 >> Svo það þýðir að ég þurfti bara að fara í gegnum listann einu. 1118 01:00:24,240 --> 01:00:28,990 Svo er það n vegna þess að ég leita á n þáttum. 1119 01:00:28,990 --> 01:00:30,930 Hvers vegna Val raða n veldi? 1120 01:00:30,930 --> 01:00:35,150 1121 01:00:35,150 --> 01:00:45,520 >> Já, jafnvel þótt listinn er raðað, að hvert endurtekning af val tagi, ég 1122 01:00:45,520 --> 01:00:47,590 hafa til að velja lágmarks frumefni. 1123 01:00:47,590 --> 01:00:49,980 Svo það þýðir að ég hef út á að líta á alla þætti í óflokkað 1124 01:00:49,980 --> 01:00:53,350 lista og finna lágmarki fyrir hvern endurtekning. 1125 01:00:53,350 --> 01:00:54,600 Er að skynsamleg? 1126 01:00:54,600 --> 01:00:56,880 1127 01:00:56,880 --> 01:01:04,690 >> Og innsetning sverð er n vegna þess að í því mál sem ég er að reyna að setja inn á 1128 01:01:04,690 --> 01:01:09,320 tölur og allar tölur, þegar ég reyna að setja þá, sé ég að þeir 1129 01:01:09,320 --> 01:01:10,510 eru í rétta stöðu. 1130 01:01:10,510 --> 01:01:15,120 Ég þarf ekki að fara að athuga allar aðrar tölur í óflokkuðu listanum. 1131 01:01:15,120 --> 01:01:17,170 Svo er að hvers vegna það verður n. 1132 01:01:17,170 --> 01:01:19,480 Skynsamleg? 1133 01:01:19,480 --> 01:01:21,035 Og hvað er þeta? 1134 01:01:21,035 --> 01:01:23,410 >> Áhorfendur: [inaudible]. 1135 01:01:23,410 --> 01:01:24,380 >> LUCAS: Hvað, því miður? 1136 01:01:24,380 --> 01:01:24,960 Segja það aftur. 1137 01:01:24,960 --> 01:01:25,666 >> Áhorfendur: [inaudible]. 1138 01:01:25,666 --> 01:01:26,490 >> LUCAS: Einmitt. 1139 01:01:26,490 --> 01:01:31,280 Svo er hægt að sjá að aðeins val geymd í Mergesort hafa thetas. 1140 01:01:31,280 --> 01:01:39,920 Og það er vegna þess að þú hefur aðeins þeta ef bæði Big O og Omega eru þau sömu. 1141 01:01:39,920 --> 01:01:41,520 OK. 1142 01:01:41,520 --> 01:01:44,210 Og að lokum, sameina tagi er í log n. 1143 01:01:44,210 --> 01:01:48,910 >> Og þá, eins og Dan var að segja, Sameina raða er góður af eins og á sama hátt að 1144 01:01:48,910 --> 01:01:50,320 þú tvöfaldur leit. 1145 01:01:50,320 --> 01:01:53,530 Þannig að þú færð lista. 1146 01:01:53,530 --> 01:01:55,170 Og þú ert að fara að skera í tvennt. 1147 01:01:55,170 --> 01:02:00,580 Og þá þú skera þá í minni helminga. 1148 01:02:00,580 --> 01:02:01,730 Og þá þú sameina þá. 1149 01:02:01,730 --> 01:02:02,960 Þú krakkar muna að, ekki satt? 1150 01:02:02,960 --> 01:02:04,960 Allt í lagi, eins og hann var að segja. 1151 01:02:04,960 --> 01:02:08,330 >> OK, ábendingum. 1152 01:02:08,330 --> 01:02:11,078 Svo er það bendi? 1153 01:02:11,078 --> 01:02:12,050 >> Áhorfendur: [inaudible]. 1154 01:02:12,050 --> 01:02:12,820 >> LUCAS: An heimilisfang. 1155 01:02:12,820 --> 01:02:13,720 OK. 1156 01:02:13,720 --> 01:02:18,530 Ég veit að Davíð sýnir fullt af myndbönd af binky og hlutir sem bendir 1157 01:02:18,530 --> 01:02:19,080 hvert annað. 1158 01:02:19,080 --> 01:02:22,960 En ég eins og til hugsa af ábendingum sem eingöngu heimilisfangi. 1159 01:02:22,960 --> 01:02:26,110 Svo er það breyta sem er að fara að geyma veffang. 1160 01:02:26,110 --> 01:02:31,940 >> Svo það er bara þetta sérstaka breytu sem er fjögur bæti. 1161 01:02:31,940 --> 01:02:36,550 Mundu, að bendillinn að nokkuð er alltaf fjórir bæti fyrir okkar 32-bita 1162 01:02:36,550 --> 01:02:39,370 vél svo málið með tækið. 1163 01:02:39,370 --> 01:02:41,920 1164 01:02:41,920 --> 01:02:47,050 Og það hefur bara staðsetninguna breytu inni af því. 1165 01:02:47,050 --> 01:02:50,240 >> Allt í lagi, þannig að það er þetta minni, í grundvallaratriðum. 1166 01:02:50,240 --> 01:02:57,420 Svo að hver blokk af minni hefur í raun merki, sem er heimilisfang sem 1167 01:02:57,420 --> 01:02:58,890 slotty minni. 1168 01:02:58,890 --> 01:03:02,370 Svo það þýðir að ég get haft bendi benda til 1169 01:03:02,370 --> 01:03:03,380 eitthvað af þessum netföngum. 1170 01:03:03,380 --> 01:03:09,930 Svo ástæða þess að við munum nota ábendingum er ef ég þarf að muna staðsetninguna 1171 01:03:09,930 --> 01:03:12,300 að tiltekinn breytu er minni. 1172 01:03:12,300 --> 01:03:16,560 >> Og þú krakkar muna að einn af þeim tilvikum var ef ég hafa a virka 1173 01:03:16,560 --> 01:03:20,820 ef ég hef í raun vil þér að skipti fyrir reals, ég reyndar 1174 01:03:20,820 --> 01:03:22,110 þurft að senda músina. 1175 01:03:22,110 --> 01:03:23,460 Ekki breytan. 1176 01:03:23,460 --> 01:03:25,200 Gera þú krakkar muna að? 1177 01:03:25,200 --> 01:03:26,450 Munurinn between-- 1178 01:03:26,450 --> 01:03:33,350 1179 01:03:33,350 --> 01:03:34,120 hvað er nafnið? 1180 01:03:34,120 --> 01:03:36,010 Starf með gildi og kalla með tilvísun, ekki satt? 1181 01:03:36,010 --> 01:03:36,840 >> Allt í lagi, já. 1182 01:03:36,840 --> 01:03:38,330 Svo kalla eftir gildi. 1183 01:03:38,330 --> 01:03:43,570 Þegar þú sendir bara inn breytu til virka þú ert bara að senda inn gildi. 1184 01:03:43,570 --> 01:03:45,610 Svo þú ert í raun að senda afrit af breytu. 1185 01:03:45,610 --> 01:03:49,720 Og program gat ekki aðgát minna um það bil ef sama breytilegum raun 1186 01:03:49,720 --> 01:03:51,650 Býr til afrit. 1187 01:03:51,650 --> 01:03:56,330 >> Og kallar eftir tilvísun þýðir að Ég er reyndar að senda afrit af 1188 01:03:56,330 --> 01:03:57,550 músina til þess breytu. 1189 01:03:57,550 --> 01:04:00,970 Svo það þýðir að ég er að senda á staðsetning þess breytu. 1190 01:04:00,970 --> 01:04:04,440 Svo vit ég hef um staðsetningu á breytu, þegar ég kalla fallið 1191 01:04:04,440 --> 01:04:09,700 með ábendingum, sem ég er fær um að í raun og veru breyta gögnum sem var í aðal. 1192 01:04:09,700 --> 01:04:12,050 Skynsamleg? 1193 01:04:12,050 --> 01:04:17,560 >> Þó, bendillinn er afrit, sem bendillinn hefur enn raunverulegt veffang 1194 01:04:17,560 --> 01:04:20,090 breytan sem ég vil breyta. 1195 01:04:20,090 --> 01:04:21,920 Skynsamleg? 1196 01:04:21,920 --> 01:04:24,290 >> Svo búa ábendingum. 1197 01:04:24,290 --> 01:04:28,410 Mundu, músina alltaf gerð sem það er að benda 1198 01:04:28,410 --> 01:04:29,890 til og þá stjörnu. 1199 01:04:29,890 --> 01:04:31,030 Og þá setja nafnið. 1200 01:04:31,030 --> 01:04:35,765 Svo muna að þegar þú ert hvað stjörnu, það er eins og bendill til 1201 01:04:35,765 --> 01:04:38,990 að allt sem breytu slá að þú hefðir. 1202 01:04:38,990 --> 01:04:42,850 >> Svo hér í stjörnu, til dæmis, það er bendillinn og heiltala. 1203 01:04:42,850 --> 01:04:47,680 Og þá er bleikju stjörnu bendillinn bleikju stjörnu og svo framvegis. 1204 01:04:47,680 --> 01:04:47,960 Já? 1205 01:04:47,960 --> 01:04:52,710 >> Áhorfendur: Hvað ef við höfum bendi n að stjörnu x. 1206 01:04:52,710 --> 01:04:55,255 Ég veit að býr bendi til x. 1207 01:04:55,255 --> 01:04:59,432 Er það lýsa einnig x heiltala? 1208 01:04:59,432 --> 01:05:05,170 >> LUCAS: Allt í lagi, þannig að þegar þú segir n stjörnu x, þú ert ekki að búa til bendi til að 1209 01:05:05,170 --> 01:05:06,000 breytilegum x. 1210 01:05:06,000 --> 01:05:08,170 Þú ert að búa til bendilinn heitir x. 1211 01:05:08,170 --> 01:05:09,396 >> Áhorfendur: [inaudible]. 1212 01:05:09,396 --> 01:05:14,250 >> LUCAS: Svo þegar ég segi n stjörnu x, ég er segja, hey, í minni, ég ætla að 1213 01:05:14,250 --> 01:05:16,390 fá einn af þessum þremur reitum. 1214 01:05:16,390 --> 01:05:20,750 Og ég ætla að segja að það er að fara að vera x, sem er 1215 01:05:20,750 --> 01:05:22,000 fara til vera a músina. 1216 01:05:22,000 --> 01:05:26,860 1217 01:05:26,860 --> 01:05:30,640 Og eitthvað áhugavert um ábendingum er að við segjum að þau hafa 1218 01:05:30,640 --> 01:05:32,620 4 bæti fyrir 32-bita vél. 1219 01:05:32,620 --> 01:05:36,320 Og ástæðan fyrir því er vegna þess að 4 bæti eru 32-bita. 1220 01:05:36,320 --> 01:05:40,490 >> Og vélar sem eru 64 bitar í raun hafa ábendingar netföng 1221 01:05:40,490 --> 01:05:43,480 sem eru 64 bita langir. 1222 01:05:43,480 --> 01:05:49,820 Svo það þýðir bara að hann er stærð heimilisföng í vél er öðruvísi. 1223 01:05:49,820 --> 01:05:52,270 >> Svo vísa og Dereferencing. 1224 01:05:52,270 --> 01:05:54,310 Það eru tvær rekstraraðila sem þú krakkar ættu að muna. 1225 01:05:54,310 --> 01:05:55,450 Í fyrsta lagi er ampersand. 1226 01:05:55,450 --> 01:05:56,810 Annað er stjarna. 1227 01:05:56,810 --> 01:06:05,060 Ekki fá rugla með að stjörnu og þetta stjörnu vegna þess að muna að í 1228 01:06:05,060 --> 01:06:06,950 þetta mál, hefur þú n stjörnu. 1229 01:06:06,950 --> 01:06:08,700 >> Það er eins og a heild hlutur saman. 1230 01:06:08,700 --> 01:06:10,720 Það er engin n rúm stjörnu. 1231 01:06:10,720 --> 01:06:12,070 Svo það þýðir að það er gerð. 1232 01:06:12,070 --> 01:06:14,870 Mundu að þegar þú ert breytan stjörnu, þú ert 1233 01:06:14,870 --> 01:06:16,230 að tala um tegund. 1234 01:06:16,230 --> 01:06:20,540 >> Þegar þú ert bara stjörnu og þá nafn breytu, þá þýðir það að 1235 01:06:20,540 --> 01:06:24,100 þú ert dereferencing músina, sem þýðir að þú ert að horfa á 1236 01:06:24,100 --> 01:06:28,290 músina, finna tölu það er bendir til, að fara á þetta netfang, 1237 01:06:28,290 --> 01:06:30,850 og horfa á hvenær þú ert þarna. 1238 01:06:30,850 --> 01:06:34,310 Svo ég segi nemendum mínum að þegar þú ert stjörnu, ættir þú að hugsa um að það er 1239 01:06:34,310 --> 01:06:36,850 skammstöfunin á efni. 1240 01:06:36,850 --> 01:06:39,770 >> Svo ef þú ert með músina og þú gera stjörnu músina, er það 1241 01:06:39,770 --> 01:06:41,720 innihald músina. 1242 01:06:41,720 --> 01:06:44,580 Svo þú ferð til hvað það er sem bendir til og líta á föstu efni. 1243 01:06:44,580 --> 01:06:47,730 Og ampersand er sama hlutur sem heimilisfang. 1244 01:06:47,730 --> 01:06:52,560 >> Svo ef ég er með breytu a-- eins, við skulum segja að ég gerði int a jafngildir 3-- 1245 01:06:52,560 --> 01:06:56,900 ef ég vil að finna veffang sem breytu minni, ég get bara gert 1246 01:06:56,900 --> 01:06:58,240 merkið a. 1247 01:06:58,240 --> 01:07:00,280 Svo það er heimilisfang a. 1248 01:07:00,280 --> 01:07:01,530 Skynsamleg? 1249 01:07:01,530 --> 01:07:03,790 1250 01:07:03,790 --> 01:07:05,040 >> Svo hér er dæmi. 1251 01:07:05,040 --> 01:07:08,370 1252 01:07:08,370 --> 01:07:11,530 Þetta vantar int b og int c. 1253 01:07:11,530 --> 01:07:16,520 Svo int a jafngildir 3 leiðir sem Ég ætla að fara í minni. 1254 01:07:16,520 --> 01:07:19,870 Og ég ætla að fara að finna rifa og setja númer 3 hér. 1255 01:07:19,870 --> 01:07:22,200 >> Og þá int b jafngildir 4. 1256 01:07:22,200 --> 01:07:23,100 Ég ætla að gera það sama. 1257 01:07:23,100 --> 01:07:25,840 Fara til minni og setja númerið 4 í einu af kassa. 1258 01:07:25,840 --> 01:07:27,100 Og int er 5. 1259 01:07:27,100 --> 01:07:29,740 Finndu annan kassann og setja númer 5. 1260 01:07:29,740 --> 01:07:36,160 >> Svo er það þessi lína að gera út? n stjörnu ári jafngildir merkið a. 1261 01:07:36,160 --> 01:07:37,800 Svo fyrst af öllu, n stjörnu ári. 1262 01:07:37,800 --> 01:07:39,050 Hvað er það að gera? 1263 01:07:39,050 --> 01:07:40,930 1264 01:07:40,930 --> 01:07:42,298 >> Áhorfendur: [inaudible]. 1265 01:07:42,298 --> 01:07:47,890 >> LUCAS: Já, svo n stjörnu ári, fyrst, segir bendi heitir ári. 1266 01:07:47,890 --> 01:07:53,720 Og þá er það framselja verðmæti sem bendi til að vera heimilisfang a. 1267 01:07:53,720 --> 01:07:55,790 Svo merkið a. 1268 01:07:55,790 --> 01:07:58,510 Þá, ef ég stjörnu PB, hvað er stjarna Pb? 1269 01:07:58,510 --> 01:08:02,418 1270 01:08:02,418 --> 01:08:03,150 >> Ó, fyrirgefðu. 1271 01:08:03,150 --> 01:08:06,330 Þetta er einnig saknað. n stjörnu Pb. 1272 01:08:06,330 --> 01:08:07,905 Ég meina stjörnu stk. 1273 01:08:07,905 --> 01:08:11,200 Ég er svo leitt. 1274 01:08:11,200 --> 01:08:11,940 Það er það sama. 1275 01:08:11,940 --> 01:08:16,408 En nú er ég góður AR búa bendi til b og þá bendi til c. 1276 01:08:16,408 --> 01:08:16,886 Já? 1277 01:08:16,886 --> 01:08:18,136 >> Áhorfendur: [inaudible]? 1278 01:08:18,136 --> 01:08:25,490 1279 01:08:25,490 --> 01:08:26,670 >> LUCAS: Já. 1280 01:08:26,670 --> 01:08:32,630 Svo ef þú ferð í minni og þú ferð að kassinn sem er designator fyrir pa, 1281 01:08:32,630 --> 01:08:37,149 þú ert í raun að fara að sjá veffang. 1282 01:08:37,149 --> 01:08:38,399 OK? 1283 01:08:38,399 --> 01:08:42,970 1284 01:08:42,970 --> 01:08:43,300 Já? 1285 01:08:43,300 --> 01:08:45,605 >> Áhorfendur: [inaudible]? 1286 01:08:45,605 --> 01:08:49,260 >> LUCAS: Já, bendillinn er heimilisfang. 1287 01:08:49,260 --> 01:08:50,120 Aldrei gleyma því. 1288 01:08:50,120 --> 01:08:52,800 Það er eins og mikilvægasta hluti um ábendingum. 1289 01:08:52,800 --> 01:08:56,180 Það er að geyma og heimilisfang að einhverju breytu. 1290 01:08:56,180 --> 01:08:56,890 Nokkuð fleira? 1291 01:08:56,890 --> 01:08:58,370 Aðrar spurningar? 1292 01:08:58,370 --> 01:08:59,189 OK. 1293 01:08:59,189 --> 01:09:00,399 >> Svo Ábendingum og Fylki. 1294 01:09:00,399 --> 01:09:08,189 Mundu að þegar ég int array 3, grundvallaratriðum, það sem ég er að gera er ég, góður 1295 01:09:08,189 --> 01:09:12,779 af, lýsa í bendi. 1296 01:09:12,779 --> 01:09:18,960 Svo er array konar eins bendi til að sérstakur staður í minninu þar sem ég 1297 01:09:18,960 --> 01:09:21,999 úthlutað þremur rifa fyrir heiltölur. 1298 01:09:21,999 --> 01:09:23,430 Er að skynsamleg? 1299 01:09:23,430 --> 01:09:30,250 >> Svo þegar ég int array 3, það sem ég er gera, í grundvallaratriðum, er að búa til þrjú 1300 01:09:30,250 --> 01:09:31,479 rifa í minni. 1301 01:09:31,479 --> 01:09:33,899 Svo finnst mér bara þrjá rifa í minni. 1302 01:09:33,899 --> 01:09:38,810 Svo ef ég, þá stjarna array, það þýðir í rauninni innihald array, 1303 01:09:38,810 --> 01:09:46,180 sem þýðir að ég eyða músina, ég fer að þeim stað sem það er að benda á að, 1304 01:09:46,180 --> 01:09:47,939 og ég setti númer eitt. 1305 01:09:47,939 --> 01:09:53,729 >> Og þá, ef ég stjörnu array plús 1, það er það sama og að gera array 1306 01:09:53,729 --> 01:09:59,690 sviga einn, sem þýðir bara að ég fara til staðurinn sem það er að benda á. 1307 01:09:59,690 --> 01:10:03,000 Og þá plús 1 bráðabirgða mér skipta um eina stöðu. 1308 01:10:03,000 --> 01:10:06,510 Svo ég fer í þessa stöðu, reyndar, og setja númer tvö. 1309 01:10:06,510 --> 01:10:10,900 >> Og þá, þegar ég array plús 2, ég fer þangað sem 1310 01:10:10,900 --> 01:10:11,825 benda array er á. 1311 01:10:11,825 --> 01:10:14,690 Og þá er ég að fara að minni blokkir. 1312 01:10:14,690 --> 01:10:16,240 Og svo ég setti númer þrjú hér. 1313 01:10:16,240 --> 01:10:16,600 Já? 1314 01:10:16,600 --> 01:10:21,400 >> Áhorfendur: Svo stjörnu fylki er einfaldlega segja mjög fyrstur lið. 1315 01:10:21,400 --> 01:10:25,090 Og þú getur bætt við 1, bara vegna þess að við erum bara virkilega 1316 01:10:25,090 --> 01:10:27,295 tilvísanir þessi fyrstu tölu. 1317 01:10:27,295 --> 01:10:28,545 >> LUCAS: Já. 1318 01:10:28,545 --> 01:10:32,720 1319 01:10:32,720 --> 01:10:36,020 Hvers vegna eigum við, til dæmis, segja array 0, array 1, og array 2? 1320 01:10:36,020 --> 01:10:38,970 1321 01:10:38,970 --> 01:10:42,790 Ég er að segja, af hverju gerirðu 0, 1, 2, 3 í stað 1, 2, 3? 1322 01:10:42,790 --> 01:10:46,550 Ein af ástæðunum er einn, tölva forritari kjósa að byrja 1323 01:10:46,550 --> 01:10:47,750 talið frá 0. 1324 01:10:47,750 --> 01:10:52,370 Tvö er vegna þess að þegar þú gerir array 0, það er það sama og að gera array 1325 01:10:52,370 --> 01:10:56,330 plús 0, sem þýðir að ég fer að að staða, og ég ekki 1326 01:10:56,330 --> 01:10:59,320 sleppa allir minni blokkir. 1327 01:10:59,320 --> 01:11:01,750 Svo ég ekki hreyfa ekki allir minni blokkir. 1328 01:11:01,750 --> 01:11:02,015 Já? 1329 01:11:02,015 --> 01:11:03,265 >> Áhorfendur: [inaudible]? 1330 01:11:03,265 --> 01:11:05,928 1331 01:11:05,928 --> 01:11:12,670 >> LUCAS: Svo hún að spyrja hvað er munurinn gera 1332 01:11:12,670 --> 01:11:14,000 þetta eða gera malloc. 1333 01:11:14,000 --> 01:11:17,550 Eitt af því sem mismun er að int array 3 er að búa til 1334 01:11:17,550 --> 01:11:19,260 array á mánudaginn. 1335 01:11:19,260 --> 01:11:23,080 Og þegar ég malloc, það skapar á hrúga. 1336 01:11:23,080 --> 01:11:25,250 Er að skynsamleg? 1337 01:11:25,250 --> 01:11:28,870 >> Svo hvernig hjartarskinn malloc raunverulega vinna? 1338 01:11:28,870 --> 01:11:32,245 Svo hvers vegna þurfum við enn að nota malloc? 1339 01:11:32,245 --> 01:11:35,730 1340 01:11:35,730 --> 01:11:39,700 Þýðanda þinn konar tölur út um allt breytur sem þú lýst. 1341 01:11:39,700 --> 01:11:44,040 Og hann býr til pláss fyrir alla Af þeim í stafla. 1342 01:11:44,040 --> 01:11:47,180 Svo öll breytum þínar eru að fara að vera einhvers staðar í stafla. 1343 01:11:47,180 --> 01:11:49,460 Svo hér er umhverfið breytum. 1344 01:11:49,460 --> 01:11:53,850 >> Svo í grundvallaratriðum, pláss fyrir þá breytur í minni er úthlutað á 1345 01:11:53,850 --> 01:11:55,080 saman tíma. 1346 01:11:55,080 --> 01:11:58,790 Svo það þýðir að tölvan þín hefur að vita allar þessar breytur 1347 01:11:58,790 --> 01:11:59,790 fyrirfram. 1348 01:11:59,790 --> 01:12:02,500 Það þarf ekki að vita hvaða gildi þú ert að fara að setja í þá. 1349 01:12:02,500 --> 01:12:05,490 En það þarf að vita hvernig mikið minni þú þarft. 1350 01:12:05,490 --> 01:12:09,380 >> En nú skulum segja það, til dæmis, þú ert að búa til array eða taka upp 1351 01:12:09,380 --> 01:12:13,430 band sem þú ert að taka frá notandanum. 1352 01:12:13,430 --> 01:12:17,300 Þú veist ekki hversu lengi strengurinn er að fara að vera, til dæmis. 1353 01:12:17,300 --> 01:12:20,600 Svo þú veist ekki nákvæmlega hversu margir minni blokkir sem þú úthluta, ekki satt? 1354 01:12:20,600 --> 01:12:24,120 >> Þannig að það skiptir í raun ekki skynsamleg fyrir þú að segja að setja 100 stafir. 1355 01:12:24,120 --> 01:12:26,420 Og hvað þá ef notandi skrifar 150? 1356 01:12:26,420 --> 01:12:27,670 Þú ert að fara að vera ruglaður. 1357 01:12:27,670 --> 01:12:30,160 1358 01:12:30,160 --> 01:12:34,620 >> Svo í rauninni er ekki hægt að vera viss um hvernig mikið minni þú þarft að úthluta 1359 01:12:34,620 --> 01:12:35,960 þegar þú þýða forritið. 1360 01:12:35,960 --> 01:12:38,240 Þú bara veist að á hlaupa tíma. 1361 01:12:38,240 --> 01:12:39,950 Svo er að hvers vegna þú hefur hrúga. 1362 01:12:39,950 --> 01:12:47,610 Svo hrúga er að fara að hafa minni að þú ert að úthluta á að 1363 01:12:47,610 --> 01:12:50,810 lengd af the program í gangi. 1364 01:12:50,810 --> 01:12:55,780 >> Svo í rauninni, þegar þú gerir malloc, hvað þú ert að gera er að úthluta minni á 1365 01:12:55,780 --> 01:13:00,160 afturkreistingur, sem þýðir að þú ert ákveða rétt á þeirri stundu sem þér 1366 01:13:00,160 --> 01:13:02,670 ætti að hafa að minni. 1367 01:13:02,670 --> 01:13:04,210 Svo er það þegar þú ert að úthluta því. 1368 01:13:04,210 --> 01:13:06,430 Er að skynsamleg? 1369 01:13:06,430 --> 01:13:11,690 >> Svo man, stafla er breytur sem eru búnar til á saman tíma. 1370 01:13:11,690 --> 01:13:14,560 Og þá hefur hrúga breytur sem eru búnar eins og þú fara 1371 01:13:14,560 --> 01:13:15,600 með malloc, til dæmis. 1372 01:13:15,600 --> 01:13:16,850 >> Áhorfendur: [inaudible]? 1373 01:13:16,850 --> 01:13:19,179 1374 01:13:19,179 --> 01:13:24,340 >> LUCAS: Svo GetString er að fara að hringja malloc. 1375 01:13:24,340 --> 01:13:26,710 Leyfðu mér að tala um malloc, og Ég skal útskýra GetString. 1376 01:13:26,710 --> 01:13:32,000 Svo er malloc sama sem minni úthlutun. 1377 01:13:32,000 --> 01:13:34,600 Svo það er að fara að úthluta minni á hrúga. 1378 01:13:34,600 --> 01:13:40,010 Og það er að fara að skila bendi á þar sem minni var úthlutað á. 1379 01:13:40,010 --> 01:13:43,090 >> Svo þegar þú do-- 1380 01:13:43,090 --> 01:13:44,910 hér fyrir example-- 1381 01:13:44,910 --> 01:13:45,830 n stjörnu músina. 1382 01:13:45,830 --> 01:13:50,520 Og þá bendi jafngildir malloc stærð tommu sinnum 10. 1383 01:13:50,520 --> 01:13:52,110 Ég er að stofna músina. 1384 01:13:52,110 --> 01:13:59,020 Og þá er ég framselja það bendi til gildi bendillinn að malloc 1385 01:13:59,020 --> 01:13:59,680 er að gefa mér. 1386 01:13:59,680 --> 01:14:04,150 >> Þannig að ég ætla að biðja malloc getur þú tekið pláss fyrir 10 heiltölur. 1387 01:14:04,150 --> 01:14:05,390 Það er það sem það er að segja. 1388 01:14:05,390 --> 01:14:09,020 Og malloc gefur mér aftur a músina að þeim stað. 1389 01:14:09,020 --> 01:14:11,460 Skynsamleg? 1390 01:14:11,460 --> 01:14:12,270 OK. 1391 01:14:12,270 --> 01:14:17,940 Ég Og GetString er, í grundvallaratriðum, að gera a kalla til malloc svo þú getur tekið 1392 01:14:17,940 --> 01:14:21,680 minni á afturkreistingur. 1393 01:14:21,680 --> 01:14:26,460 >> Alltaf að muna eftir að athuga for null því malloc er að fara að skila null 1394 01:14:26,460 --> 01:14:28,200 ef það er ekki hægt að úthluta minni. 1395 01:14:28,200 --> 01:14:31,660 Segjum að þú biður um fáránlega magn af minni. 1396 01:14:31,660 --> 01:14:33,950 Tölvan þín er ekki að fara að vera fær um að úthluta það mikið. 1397 01:14:33,950 --> 01:14:36,410 >> Svo malloc er bara að fara til að fara aftur null. 1398 01:14:36,410 --> 01:14:42,210 Svo alltaf að muna eftir að athuga hvort bendillinn að þú got frá malloc er 1399 01:14:42,210 --> 01:14:45,640 null eða ekki vegna þess, ef það er, þú might að dereferencing bendi og 1400 01:14:45,640 --> 01:14:48,340 veldur aukaverkunum galla. 1401 01:14:48,340 --> 01:14:50,930 Og að lokum, ekki gleyma minni þitt. 1402 01:14:50,930 --> 01:14:57,800 1403 01:14:57,800 --> 01:15:00,560 >> Malloc er að skapa minni hrúga. 1404 01:15:00,560 --> 01:15:03,436 Og þú þarft að losa um minni áður en áætlunin endar. 1405 01:15:03,436 --> 01:15:05,370 OK, það er allt fyrir mig. 1406 01:15:05,370 --> 01:15:07,900 Því miður, Rob. 1407 01:15:07,900 --> 01:15:07,950 Takk. 1408 01:15:07,950 --> 01:15:09,878 >> [Applause] 1409 01:15:09,878 --> 01:15:12,679 >> LUCAS: Allir Síðustu spurningarnar áður Rob kemur? 1410 01:15:12,679 --> 01:15:13,138 Nei? 1411 01:15:13,138 --> 01:15:13,597 Já? 1412 01:15:13,597 --> 01:15:15,892 >> Áhorfendur: Ég vissi ekki að sjá þetta á netinu. 1413 01:15:15,892 --> 01:15:17,269 Hefur þú sent hana enn? 1414 01:15:17,269 --> 01:15:19,106 >> LUCAS: Ég held Dave er hlaða það fljótlega. 1415 01:15:19,106 --> 01:15:19,880 >> DAVE: Það verður staða. 1416 01:15:19,880 --> 01:15:20,310 >> LUCAS: Það verður að vera á netinu. 1417 01:15:20,310 --> 01:15:21,175 >> Áhorfendur: Það er allt. 1418 01:15:21,175 --> 01:15:22,090 >> LUCAS: Það er allt? 1419 01:15:22,090 --> 01:15:23,157 OK. 1420 01:15:23,157 --> 01:15:23,644 Já? 1421 01:15:23,644 --> 01:15:27,053 >> Áhorfendur: [inaudible]? 1422 01:15:27,053 --> 01:15:30,285 >> LUCAS: Já, þú ættir að losa alla minni sem er sett í hrúga. 1423 01:15:30,285 --> 01:15:31,535 >> Áhorfendur: [inaudible]? 1424 01:15:31,535 --> 01:15:34,518 1425 01:15:34,518 --> 01:15:36,160 >> LUCAS: Já. 1426 01:15:36,160 --> 01:15:39,980 Í hvert sinn sem þú ert með menningu malloc, þú ættir að hafa menningu ókeypis 1427 01:15:39,980 --> 01:15:42,640 eftir að þú hættir að nota þá breytu. 1428 01:15:42,640 --> 01:15:44,800 Svo malloc og ókeypis eru alltaf saman. 1429 01:15:44,800 --> 01:15:45,410 Bestu vinir þeirra. 1430 01:15:45,410 --> 01:15:46,720 Já. 1431 01:15:46,720 --> 01:15:47,970 Rob? 1432 01:15:47,970 --> 01:15:55,595 1433 01:15:55,595 --> 01:15:56,850 >> ROB: Ég fer fljótt. 1434 01:15:56,850 --> 01:16:00,466 Og einnig vídeó verður að setja upp. 1435 01:16:00,466 --> 01:16:01,716 Ég hef mic á. 1436 01:16:01,716 --> 01:16:24,060 1437 01:16:24,060 --> 01:16:26,230 >> Allt í lagi, þannig að viku fimm dót. 1438 01:16:26,230 --> 01:16:27,970 Fyrsta sem við þurfum er að stafla. 1439 01:16:27,970 --> 01:16:33,390 Svo að muna að það er bara ein stakkur ramma á virkum virka símtalinu. 1440 01:16:33,390 --> 01:16:34,710 Við munum sjá að í sekúndu. 1441 01:16:34,710 --> 01:16:37,850 Og líka að muna hvað raunverulega fer í hverju stafla ramma eru að fara að vera 1442 01:16:37,850 --> 01:16:41,880 staðbundin breytur í aðgerðir okkar, rök sem eru lentu í okkar 1443 01:16:41,880 --> 01:16:43,880 aðgerðir, ásamt þeim aðrir hlutir sem þú í raun ekki 1444 01:16:43,880 --> 01:16:45,260 þurfa að hafa áhyggjur óður í. 1445 01:16:45,260 --> 01:16:50,950 >> Svo er hér dæmi program þar, tilkynning, helstu er printfing aftur 1446 01:16:50,950 --> 01:16:52,830 Verðmæti foo 4. 1447 01:16:52,830 --> 01:16:57,930 foo er bara að fara að fara aftur á Verðmæti barnum 4 komma 6. 1448 01:16:57,930 --> 01:17:02,380 Og bar er að fara að setja nokkrar sveitarfélaga breytilegum n jafnt og 4 sinnum 6. 1449 01:17:02,380 --> 01:17:03,920 Og svo aftur n. 1450 01:17:03,920 --> 01:17:09,130 >> Svo skulum líta á stafla allan raunverulegt endurtekning af þessu forriti. 1451 01:17:09,130 --> 01:17:10,500 Svo er það neðst á stafla okkar. 1452 01:17:10,500 --> 01:17:12,620 Mundu að stafla vex upp. 1453 01:17:12,620 --> 01:17:15,370 Svo neðst á stafla okkar, við hafa stafla ramma fyrir helstu. 1454 01:17:15,370 --> 01:17:17,000 Þegar forritið byrjar, helstu er alltaf að fara að vera á 1455 01:17:17,000 --> 01:17:18,560 neðst á stafla okkar. 1456 01:17:18,560 --> 01:17:20,880 >> Og hvað er inni okkar stafla ramma fyrir helstu? 1457 01:17:20,880 --> 01:17:23,810 Svo jafnvel þó að það eru engin staðbundin breytur til helstu, eins og ég sagði áður, 1458 01:17:23,810 --> 01:17:29,670 Við höfum argc og rgv taka upp pláss inni af helstu stafla ramma. 1459 01:17:29,670 --> 01:17:33,260 Svo helstu er nú að fara til hringja í virka foo. 1460 01:17:33,260 --> 01:17:35,125 Og það þýðir foo er að fara til fá eigin stafla ramma þess. 1461 01:17:35,125 --> 01:17:36,970 >> Svo nú erum við inni fallið foo. 1462 01:17:36,970 --> 01:17:38,610 Og hvað þarf að fara í stafla ramma Foo er? 1463 01:17:38,610 --> 01:17:41,100 Jæja, foo hefur rök n. 1464 01:17:41,100 --> 01:17:45,440 Og n er jafnt og 4 þar sem það er það Helsta er farið sem rök Sigur er. 1465 01:17:45,440 --> 01:17:48,490 >> Svo nú foo er að fara að hringja bar. 1466 01:17:48,490 --> 01:17:52,070 Hvað er barinn að fara að hafa inni af 'stafla ramma þess? 1467 01:17:52,070 --> 01:17:55,610 Það hefur x svarar til 4 y jafnt og sex. 1468 01:17:55,610 --> 01:17:58,540 Það er ekki allt sem við erum að fara að hafa í stafla ramma því ég barinn 1469 01:17:58,540 --> 01:18:00,580 hefur einnig staðbundin breytu n. 1470 01:18:00,580 --> 01:18:03,370 Og n við erum að fara að setja jafnt 24. 1471 01:18:03,370 --> 01:18:05,750 >> Svo nú bar er að fara að skila n. 1472 01:18:05,750 --> 01:18:09,300 Svo bar er aftur 24 til stafla ramma foo. 1473 01:18:09,300 --> 01:18:12,560 Og vegna þess að bar er nú aftur að þýðir að við erum að pabbi stafla ramma 1474 01:18:12,560 --> 01:18:14,250 fyrir bar burt af stafla. 1475 01:18:14,250 --> 01:18:18,430 Svo allt minni sem barinn hafði verið nota er nú burt stafla. 1476 01:18:18,430 --> 01:18:21,550 >> Nú, foo er einnig að fara til að fara aftur 24 til helstu. 1477 01:18:21,550 --> 01:18:25,470 Svo nú að foo er aftur, í minni að foo var að nota í 'sínum 1478 01:18:25,470 --> 01:18:27,550 stafla ramma er einnig farinn. 1479 01:18:27,550 --> 01:18:29,660 Og nú, helstu er að fara að hringja printf. 1480 01:18:29,660 --> 01:18:31,660 Svo er printf bara annað virka. 1481 01:18:31,660 --> 01:18:35,320 Þegar við köllum printf, það er að fara að vera annar stakkur ramma fyrir printf 1482 01:18:35,320 --> 01:18:36,470 virka símtalinu. 1483 01:18:36,470 --> 01:18:37,990 >> Hvað erum við brottför printf? 1484 01:18:37,990 --> 01:18:40,090 Það er það sem er að fara að fara á stafla ramma þess. 1485 01:18:40,090 --> 01:18:44,970 Minnsta kosti, við erum sem liggur að prósent ég Sviga n og 1486 01:18:44,970 --> 01:18:47,180 rök 24. 1487 01:18:47,180 --> 01:18:50,370 Það gæti hafa meira í það stafla ramma ef printf gerist að vera með nokkur 1488 01:18:50,370 --> 01:18:51,200 staðværar breytur. 1489 01:18:51,200 --> 01:18:51,920 Við vitum það ekki. 1490 01:18:51,920 --> 01:18:53,810 >> En allt sem fer í printf s stafla ramma. 1491 01:18:53,810 --> 01:18:55,740 Það er að fara að framkvæma printf. 1492 01:18:55,740 --> 01:18:56,830 Þá printf er gert. 1493 01:18:56,830 --> 01:18:57,820 Það mun koma aftur. 1494 01:18:57,820 --> 01:18:58,960 Að lokum, helstu er gert. 1495 01:18:58,960 --> 01:18:59,860 Helstu mun skila. 1496 01:18:59,860 --> 01:19:02,020 Og þá áætlun okkar er lokið. 1497 01:19:02,020 --> 01:19:02,480 Já? 1498 01:19:02,480 --> 01:19:04,505 >> Áhorfendur: Ert þú að sjá [inaudible] 1499 01:19:04,505 --> 01:19:05,900 rök [inaudible] 1500 01:19:05,900 --> 01:19:06,830 breytur? 1501 01:19:06,830 --> 01:19:09,970 >> ROB: Svo er það lúmskur munur milli röksemda og breytur. 1502 01:19:09,970 --> 01:19:14,400 Og í raun, í sameiginlegum tala, hafa tilhneigingu fólks til bara blanda þeim upp allan tímann. 1503 01:19:14,400 --> 01:19:17,550 En breytur eru formleg nafn af því. 1504 01:19:17,550 --> 01:19:20,180 >> Svo argc og argv eru breytur til helstu. 1505 01:19:20,180 --> 01:19:23,440 Rök eru það sem þú í raun og veru fara í eins þeim breytum. 1506 01:19:23,440 --> 01:19:28,340 Svo þegar ég kalla foo af 4, 4 er rök sem ég er að brottför í. 1507 01:19:28,340 --> 01:19:31,460 Og breytu n, inni foo, tekur á gildi 4. 1508 01:19:31,460 --> 01:19:32,880 frá 4 var rök. 1509 01:19:32,880 --> 01:19:35,826 >> Áhorfendur: [inaudible]? 1510 01:19:35,826 --> 01:19:37,880 >> ROB: n er á staðnum breytu til bar. 1511 01:19:37,880 --> 01:19:41,420 1512 01:19:41,420 --> 01:19:44,960 n er enn staðbundið við foo, en það er breytu til foo. 1513 01:19:44,960 --> 01:19:48,190 Það er ekki staðbundin breytu. 1514 01:19:48,190 --> 01:19:48,546 Já? 1515 01:19:48,546 --> 01:19:51,180 >> Áhorfendur: [inaudible]? 1516 01:19:51,180 --> 01:19:55,400 >> ROB: foo er bara að hringja bar og aftur hvað sem bar ávöxtun. 1517 01:19:55,400 --> 01:19:56,786 >> Áhorfendur: [inaudible]? 1518 01:19:56,786 --> 01:19:59,591 >> ROB: Já, bara til að sjá marga stafla ramma. 1519 01:19:59,591 --> 01:20:00,082 Já? 1520 01:20:00,082 --> 01:20:03,519 >> Áhorfendur: Hvers vegna var foo heitir áður printf? 1521 01:20:03,519 --> 01:20:05,920 >> ROB: Hvers vegna var foo kallað áður printf? 1522 01:20:05,920 --> 01:20:10,740 Þannig að ég gæti hafa, í stað þess, gert eitthvað eins int x er jafnt foo af 4 1523 01:20:10,740 --> 01:20:12,980 og síðan prentuð x. 1524 01:20:12,980 --> 01:20:17,900 En í staðinn, ég sameina aðgerðina hringja í printf rök. 1525 01:20:17,900 --> 01:20:23,670 >> En eftir því að við getum í raun ekki framkvæma hringja til printf þar til við 1526 01:20:23,670 --> 01:20:25,610 reikna út hvað foo af 4 er. 1527 01:20:25,610 --> 01:20:27,480 Þannig að við erum að fara að meta þetta. 1528 01:20:27,480 --> 01:20:32,504 Og aðeins einu sinni það er gert eru að fara að koma til baka og meta þetta. 1529 01:20:32,504 --> 01:20:32,990 Já? 1530 01:20:32,990 --> 01:20:37,364 >> Áhorfendur: sává'l bar [inaudible] 1531 01:20:37,364 --> 01:20:41,738 gildi, hvers vegna höfum við ekki [inaudible]? 1532 01:20:41,738 --> 01:20:44,400 >> ROB: Þeir algerlega ætti að vera int. 1533 01:20:44,400 --> 01:20:46,260 Það var ekki veiddur á margar fer. 1534 01:20:46,260 --> 01:20:49,010 Svo það ætti að vera int bar og int foo frá bæði þeirra 1535 01:20:49,010 --> 01:20:50,460 eru að skila heiltölur. 1536 01:20:50,460 --> 01:20:54,214 Ógilt er aðeins ef þeir eru ekki að fara til að fara aftur raunverulegt gildi. 1537 01:20:54,214 --> 01:20:54,692 Já? 1538 01:20:54,692 --> 01:20:58,038 >> Áhorfendur: Ef þú átt línu ofan aftur, [inaudible]? 1539 01:20:58,038 --> 01:21:01,862 1540 01:21:01,862 --> 01:21:03,730 >> ROB: A lína fyrir ofan staðinn? 1541 01:21:03,730 --> 01:21:04,410 >> Áhorfendur: Já. 1542 01:21:04,410 --> 01:21:10,780 Eins og ef þú gerðir printf og [inaudible], myndi það prenta tvisvar? 1543 01:21:10,780 --> 01:21:12,992 >> ROB: Svo inni foo? 1544 01:21:12,992 --> 01:21:15,945 Ef við hefðum printf hérna? 1545 01:21:15,945 --> 01:21:16,750 >> Áhorfendur: Já. 1546 01:21:16,750 --> 01:21:19,510 >> ROB: Svo ef við hefðum printf rétt Hér væri að prenta einu sinni. 1547 01:21:19,510 --> 01:21:23,400 Þar sem við erum að kalla foo einu lagi hér, þá munum við ná printf. 1548 01:21:23,400 --> 01:21:24,620 Við munum þá kalla bar. 1549 01:21:24,620 --> 01:21:25,710 Og þá foo mun skila. 1550 01:21:25,710 --> 01:21:26,275 Og það er það. 1551 01:21:26,275 --> 01:21:30,985 Við lendum bara alltaf sem printf einu sinni. 1552 01:21:30,985 --> 01:21:31,482 Já? 1553 01:21:31,482 --> 01:21:32,973 >> Áhorfendur: [inaudible] 1554 01:21:32,973 --> 01:21:37,950 printf hringja foo vegna þess að við erum fyrst kalla printf og þá erum við brottför 1555 01:21:37,950 --> 01:21:38,580 rökin. 1556 01:21:38,580 --> 01:21:40,960 >> ROB: Svo í orði, er ekki printf hringja foo? 1557 01:21:40,960 --> 01:21:42,220 Svo nei. 1558 01:21:42,220 --> 01:21:47,360 Bara til þess að c er að fara til framkvæma þessa hluti er, áður en við getum 1559 01:21:47,360 --> 01:21:49,800 hringja í aðgerð, öll rök að virka þarf að 1560 01:21:49,800 --> 01:21:51,600 að vera alveg metið. 1561 01:21:51,600 --> 01:21:53,540 Svo er þetta alveg metið? 1562 01:21:53,540 --> 01:21:54,610 Já, það er bara band. 1563 01:21:54,610 --> 01:21:55,480 Það er bara gildi. 1564 01:21:55,480 --> 01:21:57,200 >> Þá verðum við að fullu meta þetta. 1565 01:21:57,200 --> 01:21:59,720 Þegar þetta er gert, nú er allt að rök hans eru metin. 1566 01:21:59,720 --> 01:22:01,982 Og nú getum við gert kalla til printf. 1567 01:22:01,982 --> 01:22:02,478 Já? 1568 01:22:02,478 --> 01:22:03,966 >> Áhorfendur: Ein spurning. 1569 01:22:03,966 --> 01:22:06,942 Ef þú ert með ógilt virka, verður þú ert aftur semíkommu? 1570 01:22:06,942 --> 01:22:09,910 >> ROB: Þú ert ekki að fara aftur semíkommu ef þú ert með ógilt virka. 1571 01:22:09,910 --> 01:22:13,370 1572 01:22:13,370 --> 01:22:14,780 OK. 1573 01:22:14,780 --> 01:22:15,830 Svo nú sumir hrúga efni. 1574 01:22:15,830 --> 01:22:19,640 Svo er hrúga hvernig við ætlum að takast á með dynamic minni stjórnun. 1575 01:22:19,640 --> 01:22:23,100 Og þetta beint andstæðum með stafla sem við myndum kalla sjálfvirka 1576 01:22:23,100 --> 01:22:24,100 minni stjórnun. 1577 01:22:24,100 --> 01:22:27,140 >> Svo á mánudaginn, aldrei raunverulega hafa að takast á við það hvernig staðbundnar breytur 1578 01:22:27,140 --> 01:22:30,400 eru ýtt og smella á allt þessi stafla ramma og allt það. 1579 01:22:30,400 --> 01:22:31,070 Þú þarft ekki að hafa áhyggjur óður í það. 1580 01:22:31,070 --> 01:22:32,070 Það er sjálfvirk. 1581 01:22:32,070 --> 01:22:36,990 Svo er hrúga handbók. 1582 01:22:36,990 --> 01:22:38,070 Og [inaudible] 1583 01:22:38,070 --> 01:22:41,260 kemur frá þessum aðgerðum malloc og frjáls. 1584 01:22:41,260 --> 01:22:43,550 >> Svo hér er annað forrit. 1585 01:22:43,550 --> 01:22:47,145 Allt sem við erum að gera er mallocing heiltala. 1586 01:22:47,145 --> 01:22:49,360 Við erum að geyma hana í stjörnu x. 1587 01:22:49,360 --> 01:22:52,520 Að sjálfsögðu verðum við að athuga til að sjá hvort x er núll. 1588 01:22:52,520 --> 01:22:56,400 Þá erum við að fara að bara setja hvað x er bendir til að 50. 1589 01:22:56,400 --> 01:23:00,350 1590 01:23:00,350 --> 01:23:03,260 Prenta hvað x er bendir til, prenta x, og þá frjáls x. 1591 01:23:03,260 --> 01:23:08,920 >> Svo hvernig er þetta í raun að fara að horfa ef við skoðum stakkur okkar og hrúga? 1592 01:23:08,920 --> 01:23:10,950 Þannig að við munum hefja aftur. 1593 01:23:10,950 --> 01:23:12,580 The botn af stakkur okkar eins og áður. 1594 01:23:12,580 --> 01:23:15,930 Mundu að þér hrúga beint móti stafla? 1595 01:23:15,930 --> 01:23:18,850 Þannig að við erum að fara að hafa efst á hrúga okkar þarna uppi. 1596 01:23:18,850 --> 01:23:22,590 >> Svo the botn af stakkur okkar, höfum við stafla ramma okkar fyrir helstu. 1597 01:23:22,590 --> 01:23:28,000 Það hefur pláss fyrir argc, argv, og við nú hafa a heimamaður breytu x, sem 1598 01:23:28,000 --> 01:23:30,030 er int stjarna. 1599 01:23:30,030 --> 01:23:32,240 Þannig að við erum að fara að kunnugt í gegnum þetta forrit. 1600 01:23:32,240 --> 01:23:34,420 Fyrsta sem við þurfum er kalla til malloc. 1601 01:23:34,420 --> 01:23:36,250 >> Þannig að við erum að gera hringja í malloc. 1602 01:23:36,250 --> 01:23:37,100 Malloc er fall. 1603 01:23:37,100 --> 01:23:38,770 Það er að fara að fá stafla ramma. 1604 01:23:38,770 --> 01:23:40,180 Hvað erum við að brottför til malloc? 1605 01:23:40,180 --> 01:23:41,610 Það er að fara að fara inn að stafla ramma. 1606 01:23:41,610 --> 01:23:45,130 Við erum liggur stærð n, sem er 4. 1607 01:23:45,130 --> 01:23:49,700 Svo sem berst til malloc. 1608 01:23:49,700 --> 01:23:50,910 >> Hvað þýðir malloc gera? 1609 01:23:50,910 --> 01:23:53,820 Það grípur okkur nokkur pláss á hrúga. 1610 01:23:53,820 --> 01:23:55,320 Þannig að við erum að fara að fara í hrúgunni. 1611 01:23:55,320 --> 01:23:57,990 Og við erum að fara að grípa 4 bæti úr hrúgunni. 1612 01:23:57,990 --> 01:24:01,500 Svo skulum bara gefa það handahófskennt netfang. 1613 01:24:01,500 --> 01:24:06,680 0x123 Bara láta sem er heimilisfang sem er á hrúga. 1614 01:24:06,680 --> 01:24:12,300 >> Svo er það í raun og veru inni sem svæði af minni á heimilisfang Ox123? 1615 01:24:12,300 --> 01:24:13,080 Sorp. 1616 01:24:13,080 --> 01:24:15,270 Þannig að við höfum ekki geymt neitt í því. 1617 01:24:15,270 --> 01:24:18,830 Svo eins langt eins og við vitum, það gæti verið hvað sem er. 1618 01:24:18,830 --> 01:24:20,560 Þú ættir ekki að taka það er núll. 1619 01:24:20,560 --> 01:24:23,870 Það er líklega ekki núll. 1620 01:24:23,870 --> 01:24:26,260 >> Svo nú malloc skilar. 1621 01:24:26,260 --> 01:24:28,020 Og hvað gerum við þegar malloc aftur? 1622 01:24:28,020 --> 01:24:29,800 Við setjum það aftur. 1623 01:24:29,800 --> 01:24:32,290 Við setjum x jafngilda því það er að fara aftur. 1624 01:24:32,290 --> 01:24:33,690 Svo hvað er það aftur? 1625 01:24:33,690 --> 01:24:38,150 Það er aftur 0x123 þar sem er heimilisfang blokk af minni sem það 1626 01:24:38,150 --> 01:24:40,850 bara úthlutað í hrúga. 1627 01:24:40,850 --> 01:24:47,160 >> Svo aftur 0x123 x er nú að fara að setja jafnt 0x123 sem pictorially, 1628 01:24:47,160 --> 01:24:52,940 við drögum oft sem x hefur í raun örin bendir til þess að sýna í reitnum. 1629 01:24:52,940 --> 01:24:55,820 En x er bara að geyma þetta netfang. 1630 01:24:55,820 --> 01:24:58,670 Svo nú verðum við að athuga hvort x er núll. 1631 01:24:58,670 --> 01:24:59,120 Það er ekki null. 1632 01:24:59,120 --> 01:25:02,170 Við þykjast að það malloc tekist. 1633 01:25:02,170 --> 01:25:04,950 >> Svo nú stjörnu x jafngildir 50. 1634 01:25:04,950 --> 01:25:08,450 Svo stjörnu man það þýðir fara á þetta netfang. 1635 01:25:08,450 --> 01:25:12,700 Svo 0x123 Við erum að fara að fara á þetta netfang. 1636 01:25:12,700 --> 01:25:14,660 Svo að koma okkur upp þarna. 1637 01:25:14,660 --> 01:25:16,310 Hvað erum við að gera á þetta netfang? 1638 01:25:16,310 --> 01:25:19,020 Við erum að geyma 50. 1639 01:25:19,020 --> 01:25:22,500 >> Svo eftir þessa línu, það er hvað hlutirnir eru að fara að líta út. 1640 01:25:22,500 --> 01:25:24,640 Svo nú er það ekki lengur sorp þarna. 1641 01:25:24,640 --> 01:25:28,910 Nú vitum við að 50 er í að einkum netfang því 1642 01:25:28,910 --> 01:25:32,410 við sett það til að. 1643 01:25:32,410 --> 01:25:32,790 OK? 1644 01:25:32,790 --> 01:25:34,370 Svo nú erum við að fara að prenta f. 1645 01:25:34,370 --> 01:25:38,490 >> Svo fyrst að við erum að fara að prenta stjörnu x. 1646 01:25:38,490 --> 01:25:39,640 Svo er það stjarna x? 1647 01:25:39,640 --> 01:25:44,300 Aftur, stjörnu x þýðir að fara á hlutur sem x bendir til. 1648 01:25:44,300 --> 01:25:47,140 Svo x er sögufrægur 0x123 Farðu í það. 1649 01:25:47,140 --> 01:25:48,490 Við fáum 50. 1650 01:25:48,490 --> 01:25:50,540 Svo prenta m það. 1651 01:25:50,540 --> 01:25:54,900 Og það þýðir að það er að fara að prenta 50. 1652 01:25:54,900 --> 01:25:56,850 Og þá skilar það. 1653 01:25:56,850 --> 01:25:58,340 >> Og þá höfum við annað printf. 1654 01:25:58,340 --> 01:25:59,370 Við erum nú prósent bls. 1655 01:25:59,370 --> 01:26:01,680 Ef þú hefur ekki séð það, það er bara hvernig þú prenta bendi. 1656 01:26:01,680 --> 01:26:04,960 Þannig að við höfum prósent i, prósent f og allir þeir þegar. 1657 01:26:04,960 --> 01:26:07,160 Svo prósent p, prenta bendi. 1658 01:26:07,160 --> 01:26:08,920 >> Svo er x bendillinn. 1659 01:26:08,920 --> 01:26:13,440 Þannig að ef við erum að fara að prenta x sjálfu sér, við erum að prenta hvað er í raun inni 1660 01:26:13,440 --> 01:26:19,220 x, sem er 0x123 Svo fyrsta prenta f er að fara að prenta 50. 1661 01:26:19,220 --> 01:26:23,620 Annað prenta f er að fara að prenta 0x123 Já? 1662 01:26:23,620 --> 01:26:27,460 >> Áhorfendur: Ert þú að nota prósent x að prenta bendi? 1663 01:26:27,460 --> 01:26:31,200 >> ROB: Svo notarðu prósent x að prenta bendi? 1664 01:26:31,200 --> 01:26:38,350 Svo þú getur en prósent x er bara, almennt, að eins og ef þú hafa sumir 1665 01:26:38,350 --> 01:26:40,325 tala og þú vilt prenta það sem sextánskur. 1666 01:26:40,325 --> 01:26:43,250 1667 01:26:43,250 --> 01:26:44,880 Það er bara hvernig þú gerir það. 1668 01:26:44,880 --> 01:26:47,160 >> En, prósent d myndi prenta eins aukastaf. 1669 01:26:47,160 --> 01:26:50,310 Það er við vorum að fá prósent d. ég er bara tala. 1670 01:26:50,310 --> 01:26:52,690 prósent p er sérstaklega fyrir ábendingum. 1671 01:26:52,690 --> 01:26:54,060 >> Svo er x bendillinn. 1672 01:26:54,060 --> 01:26:56,360 Við viljum nota hlutfall bls. 1673 01:26:56,360 --> 01:26:57,937 En prósent x gæti unnið. 1674 01:26:57,937 --> 01:26:58,414 Já? 1675 01:26:58,414 --> 01:26:59,664 >> Áhorfendur: [inaudible]? 1676 01:26:59,664 --> 01:27:04,138 1677 01:27:04,138 --> 01:27:05,388 >> ROB: Já. 1678 01:27:05,388 --> 01:27:07,870 1679 01:27:07,870 --> 01:27:13,440 Að minnsta kosti fyrir þetta call-- svo ég ekki fela það í hér. 1680 01:27:13,440 --> 01:27:19,850 En þessir tveir rök eru endilega inni þessa stafla ramma 1681 01:27:19,850 --> 01:27:23,040 ásamt öllum staðbundnum breytur printf gerist að vera með. 1682 01:27:23,040 --> 01:27:27,020 Og svo næsta símtali að printf nú inni printf stafla ramma er 1683 01:27:27,020 --> 01:27:33,960 prósent p sviga n og hvað sem gildi x er, sem er 0x123. 1684 01:27:33,960 --> 01:27:34,425 Já? 1685 01:27:34,425 --> 01:27:35,675 >> Áhorfendur: [inaudible]? 1686 01:27:35,675 --> 01:27:38,145 1687 01:27:38,145 --> 01:27:40,880 >> ROB: Það verður að prenta eitthvað sem lítur svona út. 1688 01:27:40,880 --> 01:27:41,846 >> Áhorfendur: [inaudible]. 1689 01:27:41,846 --> 01:27:44,510 >> ROB: Svo prentar það í netfangaskrá formi. 1690 01:27:44,510 --> 01:27:47,003 Það lítur út eins og heimilisfang. 1691 01:27:47,003 --> 01:27:47,494 Já? 1692 01:27:47,494 --> 01:27:49,458 >> Áhorfendur: [inaudible]? 1693 01:27:49,458 --> 01:27:51,075 >> ROB: Hvers vegna er það? 1694 01:27:51,075 --> 01:27:52,920 >> Áhorfendur: [inaudible]? 1695 01:27:52,920 --> 01:27:55,240 >> ROB: Hvers vegna er þetta bendi 4 bytes? 1696 01:27:55,240 --> 01:27:58,500 Þannig að það eru a heild búnt af 0 í framan þessu. 1697 01:27:58,500 --> 01:28:03,740 Svo er það virkilega 0x0000000123. 1698 01:28:03,740 --> 01:28:06,510 Á 64-bita kerfi, það væri a heild búnt af fleiri núllum. 1699 01:28:06,510 --> 01:28:11,410 1700 01:28:11,410 --> 01:28:11,900 Já? 1701 01:28:11,900 --> 01:28:13,150 >> Áhorfendur: [inaudible]. 1702 01:28:13,150 --> 01:28:17,290 1703 01:28:17,290 --> 01:28:21,130 >> ROB: Svo fyrsta printf er að fara að print-- 1704 01:28:21,130 --> 01:28:21,980 >> Áhorfendur: [inaudible]. 1705 01:28:21,980 --> 01:28:24,420 >> ROB: Já, það er að fara að prenta hvað x er bendir til. 1706 01:28:24,420 --> 01:28:27,030 1707 01:28:27,030 --> 01:28:29,070 Star segir hvað er þetta hlutur sem bendir til. 1708 01:28:29,070 --> 01:28:30,300 Grípa það. 1709 01:28:30,300 --> 01:28:31,455 Svo hvað er það sem bendir til? 1710 01:28:31,455 --> 01:28:31,850 50. 1711 01:28:31,850 --> 01:28:32,410 Grípa það. 1712 01:28:32,410 --> 01:28:33,390 Það er það sem við erum að fara að prenta. 1713 01:28:33,390 --> 01:28:37,020 En, næsta einn, við erum bara prentun x sjálfu. 1714 01:28:37,020 --> 01:28:38,850 Hvað er inni í f? 1715 01:28:38,850 --> 01:28:43,710 0x123. 1716 01:28:43,710 --> 01:28:44,500 OK. 1717 01:28:44,500 --> 01:28:46,620 >> Og þá höfum við það frjáls. 1718 01:28:46,620 --> 01:28:48,040 Hvað erum við að brottför til að losa? 1719 01:28:48,040 --> 01:28:49,470 Við erum brottför x. 1720 01:28:49,470 --> 01:28:52,380 Þessi tími sem ég birtist í raun það í stafla ramma. 1721 01:28:52,380 --> 01:28:56,370 >> Þannig að við erum að brottför gildi 0x123 til að losa. 1722 01:28:56,370 --> 01:28:59,070 Svo nú ókeypis veit, allt í lagi, Ég verð að fara upp í hrúgunni 1723 01:28:59,070 --> 01:29:00,050 og frjáls að minni. 1724 01:29:00,050 --> 01:29:03,920 Það er ekki lengur að nota það sem er í vistfangi 0x123. 1725 01:29:03,920 --> 01:29:07,010 >> Svo frjáls er að fara að gefa út að frá hrúgunni. 1726 01:29:07,010 --> 01:29:09,490 Nú er hrúga okkar tómur aftur. 1727 01:29:09,490 --> 01:29:11,120 Við höfum engar minni lekur. 1728 01:29:11,120 --> 01:29:12,940 Nú frjáls mun skila. 1729 01:29:12,940 --> 01:29:16,130 Takið eftir að x er enn 0x123. 1730 01:29:16,130 --> 01:29:18,240 En það er nú ekki gilt minni. 1731 01:29:18,240 --> 01:29:21,220 1732 01:29:21,220 --> 01:29:23,986 Við ættum ekki lengur dereference x. 1733 01:29:23,986 --> 01:29:24,440 Já? 1734 01:29:24,440 --> 01:29:27,240 >> Áhorfendur: Er aftur 0 óþarfi? 1735 01:29:27,240 --> 01:29:28,290 >> ROB: Er returen 0 óþarfi? 1736 01:29:28,290 --> 01:29:31,110 Já. 1737 01:29:31,110 --> 01:29:33,950 Vorum að setja að það vegna þess að Við höfum aftur einn fyrir loft. 1738 01:29:33,950 --> 01:29:36,830 Svo það er eins og, já, við skulum fela í endurkomu 0. 1739 01:29:36,830 --> 01:29:37,310 Já? 1740 01:29:37,310 --> 01:29:38,560 >> Áhorfendur: [inaudible]? 1741 01:29:38,560 --> 01:29:42,110 1742 01:29:42,110 --> 01:29:45,580 >> ROB: Svo eftir ókeypis x, hvað gerist ef við reynum að dereference músina? 1743 01:29:45,580 --> 01:29:47,240 Það er mögulegt að ekkert fer úrskeiðis. 1744 01:29:47,240 --> 01:29:49,330 Það er mögulegt að við munum samt fá 50. 1745 01:29:49,330 --> 01:29:53,590 >> Það er hægt, líka, að það minni er nú notað fyrir eitthvað annað. 1746 01:29:53,590 --> 01:29:57,140 Svo er það óskilgreint hegðun. 1747 01:29:57,140 --> 01:30:00,772 Og undefined þýðir eitthvað getur gerst. 1748 01:30:00,772 --> 01:30:01,250 Já? 1749 01:30:01,250 --> 01:30:02,500 >> Áhorfendur: [inaudible]? 1750 01:30:02,500 --> 01:30:07,942 1751 01:30:07,942 --> 01:30:10,830 >> ROB: Nei, þannig að ef þú gefur x eitthvað annað. 1752 01:30:10,830 --> 01:30:15,870 Þannig að ef hérna við sögðum x er jafnt malloc eitthvað else-- 1753 01:30:15,870 --> 01:30:17,100 malloc stærð event-- 1754 01:30:17,100 --> 01:30:20,180 þá að upprunalega blokk af minni er ekki leystur. 1755 01:30:20,180 --> 01:30:21,490 Og við höfum opinberlega tapað. 1756 01:30:21,490 --> 01:30:23,150 Það er minni leka. 1757 01:30:23,150 --> 01:30:25,090 Við höfum misst allar tilvísanir þeirri blokk af minni. 1758 01:30:25,090 --> 01:30:26,827 Þannig að það er engin leið að við getum alltaf losa hana. 1759 01:30:26,827 --> 01:30:32,074 1760 01:30:32,074 --> 01:30:36,630 Allt í lagi, svo þá aftur 0 þýðir gert. 1761 01:30:36,630 --> 01:30:37,900 >> Allt í lagi, svo stafla flæða. 1762 01:30:37,900 --> 01:30:39,320 Hvað er hugmynd hér? 1763 01:30:39,320 --> 01:30:41,210 Svo man, hrúga er að fara niður. 1764 01:30:41,210 --> 01:30:43,480 Stack er að fara upp. 1765 01:30:43,480 --> 01:30:48,000 Þannig að þetta var dæmi úr fyrirlestri, Ég held, þar helsta er bara að fara að 1766 01:30:48,000 --> 01:30:51,380 kalla þetta virka foo, sem er að fara að kalla sig endurkvæmt yfir og 1767 01:30:51,380 --> 01:30:52,320 aftur. 1768 01:30:52,320 --> 01:30:55,370 >> Svo stafla ramma eru að fara að vinna nákvæmlega sama. 1769 01:30:55,370 --> 01:30:58,130 Þannig að við erum að fara að byrja með helstu sem botn stafla ramma. 1770 01:30:58,130 --> 01:31:02,000 Þá helsta er að fara að hringja í foo, sem er að fara að fá stafla ramma. 1771 01:31:02,000 --> 01:31:04,260 >> Þá foo er að fara að hringja í foo aftur, sem er að fara að fá 1772 01:31:04,260 --> 01:31:05,500 annar stafla ramma. 1773 01:31:05,500 --> 01:31:08,270 Og svo aftur, og aftur, og aftur, og aftur þangað til að lokum, hlaupa við 1774 01:31:08,270 --> 01:31:09,190 í hrúgunni. 1775 01:31:09,190 --> 01:31:11,990 Svo er þetta hvernig við komumst stafla flæða. 1776 01:31:11,990 --> 01:31:14,910 Og á þessum tímapunkti, seg þú kenna. 1777 01:31:14,910 --> 01:31:17,335 Eða þú vilt virkilega seg kenna áður þetta lið en já. 1778 01:31:17,335 --> 01:31:19,660 >> Áhorfendur: Er algerlega sorphaugur á sama og seg kenna? 1779 01:31:19,660 --> 01:31:26,140 >> ROB: Svo þú munt sjá skiptingu kenna algerlega varpað. 1780 01:31:26,140 --> 01:31:28,760 Þú færð algerlega sorphaugur þegar þú seg kenna. 1781 01:31:28,760 --> 01:31:32,580 Og það er eins og sorphaugur allra sem Innihald núverandi minni þitt svo 1782 01:31:32,580 --> 01:31:36,670 að þú getur prófað og þekkja hvers vegna þú seg faulted. 1783 01:31:36,670 --> 01:31:37,135 Já? 1784 01:31:37,135 --> 01:31:38,385 >> Áhorfendur: [inaudible]? 1785 01:31:38,385 --> 01:31:40,855 1786 01:31:40,855 --> 01:31:45,460 >> ROB: Svo skiptingu kenna þýðir það er stafla flæða. 1787 01:31:45,460 --> 01:31:47,060 Svo ekki endilega. 1788 01:31:47,060 --> 01:31:49,880 A skiptingu kenna þýðir að þú ert snerta minni á þann hátt 1789 01:31:49,880 --> 01:31:50,880 þú ættir ekki að vera. 1790 01:31:50,880 --> 01:31:54,750 Svo ein leið að gerast er, þegar þú stafla flæða, við byrjum að snerta 1791 01:31:54,750 --> 01:31:58,736 minni á þann hátt að við ættum ekki að vera. 1792 01:31:58,736 --> 01:31:59,208 Já? 1793 01:31:59,208 --> 01:32:00,458 >> Áhorfendur: [inaudible]? 1794 01:32:00,458 --> 01:32:03,456 1795 01:32:03,456 --> 01:32:05,830 >> ROB: Svo inni óendanlega lykkju. 1796 01:32:05,830 --> 01:32:08,770 Eins og þetta er eins og endurkvæma óendanlega lykkja og svo fáum við annað 1797 01:32:08,770 --> 01:32:09,770 stafla ramma í hvert skipti. 1798 01:32:09,770 --> 01:32:13,540 En bara inni venjulegur óendanlega meðan one-- 1799 01:32:13,540 --> 01:32:16,390 vel, við skulum ekki einu sinni prenta f-- 1800 01:32:16,390 --> 01:32:17,040 gera eitthvað. 1801 01:32:17,040 --> 01:32:18,390 Hvað. 1802 01:32:18,390 --> 01:32:20,610 >> Við erum ekki að fara að fá annar stafla ramma. 1803 01:32:20,610 --> 01:32:22,530 Við erum bara að fara að halda lykkja yfir þessari einu fræðslu. 1804 01:32:22,530 --> 01:32:23,920 Stafla er ekki vaxandi. 1805 01:32:23,920 --> 01:32:27,290 Það er sú staðreynd að hver endurkvæma kalla er að gefa okkur stakkur ramma. 1806 01:32:27,290 --> 01:32:31,231 Þess vegna fáum við stafla flæða. 1807 01:32:31,231 --> 01:32:31,728 Já? 1808 01:32:31,728 --> 01:32:38,189 >> Áhorfendur: Svo ef þú segir að fá meðan lykkja og þá [inaudible]? 1809 01:32:38,189 --> 01:32:42,000 >> ROB: Svo ef inni í while lykkju það var printf, þú myndir samt 1810 01:32:42,000 --> 01:32:42,790 ekki seg sök. 1811 01:32:42,790 --> 01:32:46,090 Ég bara vildi ekki að rugla hlutina. 1812 01:32:46,090 --> 01:32:46,610 Það væri lykkja. 1813 01:32:46,610 --> 01:32:48,225 Þú vilt fá einn stafla ramma fyrir printf. 1814 01:32:48,225 --> 01:32:49,580 >> Þá printf myndi koma aftur. 1815 01:32:49,580 --> 01:32:50,280 Síðan sem þú myndi lykkju aftur. 1816 01:32:50,280 --> 01:32:51,460 Þú vilt fá einn stafla ramma fyrir printf. 1817 01:32:51,460 --> 01:32:52,850 Það myndi aftur. 1818 01:32:52,850 --> 01:32:54,060 Single stafla ramma. 1819 01:32:54,060 --> 01:33:00,215 Svo þú ert ekki að fá þetta óendanlega hlóðust upp stakkur ramma. 1820 01:33:00,215 --> 01:33:03,185 >> Áhorfendur: [inaudible]? 1821 01:33:03,185 --> 01:33:04,040 >> ROB: Já. 1822 01:33:04,040 --> 01:33:09,360 Þannig að þetta stafla flæða gerist því enginn af þessum 1823 01:33:09,360 --> 01:33:11,600 kalla til foo eru aftur. 1824 01:33:11,600 --> 01:33:15,250 Svo ef við aftur, þá myndum við byrja að tapa stakkur ramma. 1825 01:33:15,250 --> 01:33:17,870 Og þá myndum við ekki stafla flæða. 1826 01:33:17,870 --> 01:33:20,070 Og það er hvers vegna þú þarft að grunntilvikið fyrir persónulega aðgerðir þínar. 1827 01:33:20,070 --> 01:33:22,992 1828 01:33:22,992 --> 01:33:23,479 Já? 1829 01:33:23,479 --> 01:33:27,375 >> Áhorfendur: Er möguleiki stærð og stafla fyrir hrúga sömu fyrir 1830 01:33:27,375 --> 01:33:29,880 öll forrit? 1831 01:33:29,880 --> 01:33:31,910 >> ROB: U.þ.b.. 1832 01:33:31,910 --> 01:33:35,090 Er möguleiki stærð stafla og að hrúga sama fyrir öll forrit? 1833 01:33:35,090 --> 01:33:37,180 U.þ.b.. 1834 01:33:37,180 --> 01:33:40,080 Það er einhver slembival til þar sem stafla byrjar og 1835 01:33:40,080 --> 01:33:42,400 þar sem hrúga byrjar. 1836 01:33:42,400 --> 01:33:45,870 Ef þú skyldir hafa a heild einhver fjöldi af Alþjóðlegar breytur og svoleiðis, þú gætir 1837 01:33:45,870 --> 01:33:49,520 taka í burtu frá sumum rúm fyrir hrúga þitt. 1838 01:33:49,520 --> 01:33:54,060 >> Á 64-bita kerfi, þú nánast hafa óendanlega minni. 1839 01:33:54,060 --> 01:33:55,820 Það er bara svo mikið. 1840 01:33:55,820 --> 01:33:59,250 Milli 32 bita og 64 bita, sem er marktækur munur. 1841 01:33:59,250 --> 01:34:02,350 >> Þú ert að fara að fá a heild einhver fjöldi fleiri stafla og hrúga pláss á 64-bita 1842 01:34:02,350 --> 01:34:05,810 kerfi vegna þess að það er bara meira heimilisföng sem þeir geta notað. 1843 01:34:05,810 --> 01:34:09,360 En á einstökum kerfi, það mun vera um það bil sama magn af stafla 1844 01:34:09,360 --> 01:34:10,785 og hrúga pláss. 1845 01:34:10,785 --> 01:34:13,635 1846 01:34:13,635 --> 01:34:15,530 Allt í lagi. 1847 01:34:15,530 --> 01:34:18,220 >> Svo er það síðasta sem samantekt. 1848 01:34:18,220 --> 01:34:19,810 Svo þú ættir að vita þetta ferli. 1849 01:34:19,810 --> 01:34:22,240 Það eru fjögur stór skref. 1850 01:34:22,240 --> 01:34:24,400 Svo sá fyrsti ætti að vera auðvelt að muna. 1851 01:34:24,400 --> 01:34:25,085 Pre-vinnslu. 1852 01:34:25,085 --> 01:34:28,390 Það hefur forskeytið fyrirfram í það. 1853 01:34:28,390 --> 01:34:32,080 Svo það kemur fyrir allt annað. 1854 01:34:32,080 --> 01:34:34,000 >> The hlutur til muna er kjötkássa. 1855 01:34:34,000 --> 01:34:37,250 Svo kjötkássa skilgreinir og kjötkássa nær í öllum þeim. 1856 01:34:37,250 --> 01:34:39,560 Þeir eru allir pre-örgjörva tilskipanir. 1857 01:34:39,560 --> 01:34:42,030 Þetta eru hlutir sem að pre-örgjörva sér um. 1858 01:34:42,030 --> 01:34:43,680 >> Svo hvaða hjartarskinn a pre-örgjörva að gera? 1859 01:34:43,680 --> 01:34:44,850 Það er mjög heimskulegt hlutur. 1860 01:34:44,850 --> 01:34:49,380 Allt það er fær um eru allar þessar afrita og skera, og líma aðgerðir. 1861 01:34:49,380 --> 01:34:51,790 >> Svo kjötkássa inniheldur staðlaða I0 punktur h. 1862 01:34:51,790 --> 01:34:52,990 Hvað er að gera? 1863 01:34:52,990 --> 01:34:56,610 Það er grabbing staðlaða I0 punktur h skrá og líma það inn í the toppur 1864 01:34:56,610 --> 01:34:58,960 hvar sem það segir kjötkássa nær staðall I0 punktur klst. 1865 01:34:58,960 --> 01:35:02,480 >> Og allir kjötkássa skilgreina sem við höfum séð, hvað er það að gera? 1866 01:35:02,480 --> 01:35:06,730 Afrita þess virði að kjötkássa skilgreint er skilgreint sem og líma það 1867 01:35:06,730 --> 01:35:08,500 hvar sem þú ert að nota gildi. 1868 01:35:08,500 --> 01:35:13,400 Svo Preprocessor bara þýðir í raun einföld texta undirstaða starfsemi. 1869 01:35:13,400 --> 01:35:15,870 Það gerir ekki neitt sviði. 1870 01:35:15,870 --> 01:35:18,920 Svo er allt annað flóknara. 1871 01:35:18,920 --> 01:35:22,970 >> Svo nú er að Preprocessor gert, við saman reyndar. 1872 01:35:22,970 --> 01:35:24,320 Svo hvað þýðir að setja saman meina? 1873 01:35:24,320 --> 01:35:27,310 Við erum nú að fara af c kóða að samkoma kóða. 1874 01:35:27,310 --> 01:35:27,570 Já? 1875 01:35:27,570 --> 01:35:28,820 >> Áhorfendur: [inaudible]? 1876 01:35:28,820 --> 01:35:32,390 1877 01:35:32,390 --> 01:35:34,220 >> ROB: Já, tók við að. 1878 01:35:34,220 --> 01:35:36,880 1879 01:35:36,880 --> 01:35:38,660 Svo að setja saman. 1880 01:35:38,660 --> 01:35:40,310 Við erum að fara úr C í söfnuði. 1881 01:35:40,310 --> 01:35:42,470 Svo er þetta í raun tungumál breyting. 1882 01:35:42,470 --> 01:35:45,240 Samantekt sig þýðir að fara frá hærra stigi tungumál til 1883 01:35:45,240 --> 01:35:47,340 lægri láréttur flötur tungumál. 1884 01:35:47,340 --> 01:35:50,720 >> Og c er a hár láréttur flötur tungumál samanborið við söfnuð. 1885 01:35:50,720 --> 01:35:52,320 Hvað er samkoma? 1886 01:35:52,320 --> 01:35:56,440 Leiðbeiningar þess sem eru, nokkuð mikið, gerði fyrir CPU. 1887 01:35:56,440 --> 01:35:59,130 En tölvan gerir enn ekki skilja samkoma. 1888 01:35:59,130 --> 01:36:01,570 Það skilur bara sjálfur og núll. 1889 01:36:01,570 --> 01:36:06,160 Þannig að næsta skref er að setja saman, sem færir okkur frá þessum leiðbeiningum sem 1890 01:36:06,160 --> 01:36:08,760 CPU skilur og raun þýðir þá, að 1891 01:36:08,760 --> 01:36:10,820 þær og núll. 1892 01:36:10,820 --> 01:36:13,570 >> Svo C til samkoma til tvöfaldur. 1893 01:36:13,570 --> 01:36:15,870 En ég hef ekki executable enn. 1894 01:36:15,870 --> 01:36:19,550 Svo hugsa um cs50 bókasafn. 1895 01:36:19,550 --> 01:36:23,070 Við höfum veitt þér með tvöfaldur fyrir þetta cs50 bókasafn, sem hefur GetString 1896 01:36:23,070 --> 01:36:24,400 og GetInt og allt það. 1897 01:36:24,400 --> 01:36:25,700 >> En cs50 library-- 1898 01:36:25,700 --> 01:36:27,650 í og af itself-- er ekki executable. 1899 01:36:27,650 --> 01:36:29,570 Það hefur ekki meginhlutverki. 1900 01:36:29,570 --> 01:36:32,230 Það er bara fullt af tvöfaldur að þú getur notað. 1901 01:36:32,230 --> 01:36:41,730 Svo er að tengja hvernig við koma saman öllum þessara mismunandi tvöfaldur skrá 1902 01:36:41,730 --> 01:36:43,110 í raunverulegum executable. 1903 01:36:43,110 --> 01:36:45,900 Eitt sem þú getur slegið punktur rista punkt út. 1904 01:36:45,900 --> 01:36:51,660 >> Svo er þetta eins og skrá sem þú skrifaði, - sem forritið þitt is-- 1905 01:36:51,660 --> 01:36:53,620 Ceaser punktur c. 1906 01:36:53,620 --> 01:36:55,100 En nú er verið unnin niður tvöfaldur. 1907 01:36:55,100 --> 01:36:56,480 Svo Ceaser punktur o. 1908 01:36:56,480 --> 01:36:59,620 Og þetta er cs50 okkar bókasöfnum tvöfaldur. 1909 01:36:59,620 --> 01:37:02,284 Og þeir eru að sameina í eitt executable. 1910 01:37:02,284 --> 01:37:02,758 Já? 1911 01:37:02,758 --> 01:37:04,008 >> Áhorfendur: [inaudible]? 1912 01:37:04,008 --> 01:37:08,800 1913 01:37:08,800 --> 01:37:12,710 >> ROB: Svo fyrst nefna, muna, kjötkássa meðal annars er í raun 1914 01:37:12,710 --> 01:37:13,810 pre-örgjörva skref. 1915 01:37:13,810 --> 01:37:14,750 En það er sérstakt. 1916 01:37:14,750 --> 01:37:20,730 Ef þú ert ekki að nota neina aðgerðir sem eru utan einni skrá þinn þá, 1917 01:37:20,730 --> 01:37:26,100 nei, þú þarft ekki að tengja neitt þar sem þú hefur allt. 1918 01:37:26,100 --> 01:37:30,310 >> Sem sagt, printf er orðaður í. 1919 01:37:30,310 --> 01:37:32,820 Ef þú notar alltaf printf, það er eitthvað sem sem þarf að vera tengd í 1920 01:37:32,820 --> 01:37:35,740 vegna þess að þú did ekki að skrifa það. 1921 01:37:35,740 --> 01:37:39,530 Og í raun, printf er sjálfkrafa tengd í. 1922 01:37:39,530 --> 01:37:42,760 Þú veist hvernig á skipanalínu eða þegar Þú slærð gera, þú sérð það hafa 1923 01:37:42,760 --> 01:37:46,690 þjóta Ég cs50, sem hefur tengil í cs50 bókasafninu? 1924 01:37:46,690 --> 01:37:49,070 Printf, og svoleiðis, er að fara að vera tengd sjálfkrafa. 1925 01:37:49,070 --> 01:37:51,730 1926 01:37:51,730 --> 01:37:53,930 Aðrar spurningar um neitt? 1927 01:37:53,930 --> 01:37:56,280 >> Áhorfendur: [inaudible]? 1928 01:37:56,280 --> 01:37:58,300 >> ROB: Krækjur? 1929 01:37:58,300 --> 01:38:03,450 Við hafa a heild búnt af mismunandi tvöfaldur skrá. 1930 01:38:03,450 --> 01:38:06,410 Þetta er Canonical dæmi að við notum er cs50 bókasafn. 1931 01:38:06,410 --> 01:38:09,960 Við höfum tekið saman og gefið í tvöfaldur fyrir þessa cs50 bókasafn. 1932 01:38:09,960 --> 01:38:12,410 >> Þú vilt nota GetString í forritinu. 1933 01:38:12,410 --> 01:38:14,750 Svo þú ferð og nota GetString. 1934 01:38:14,750 --> 01:38:19,700 En án tvíundarkóða mína fyrir GetString, þegar þú þýða kóðann þinn 1935 01:38:19,700 --> 01:38:23,140 niður, þú getur ekki í raun að keyra þinn forrit því GetString String er 1936 01:38:23,140 --> 01:38:25,080 ekki enn alveg skilgreint. 1937 01:38:25,080 --> 01:38:29,220 >> Það er aðeins þegar þú hlekkur í tvöfaldur minn sem inniheldur GetString að nú, allir 1938 01:38:29,220 --> 01:38:31,130 rétt, ég get í raun og veru framkvæma GetString. 1939 01:38:31,130 --> 01:38:32,330 Skrá minn er lokið. 1940 01:38:32,330 --> 01:38:34,208 Og ég get keyrt þetta. 1941 01:38:34,208 --> 01:38:34,697 Já? 1942 01:38:34,697 --> 01:38:37,631 >> Áhorfendur: Er Krækjur umbreyta tvöfaldur til executable? 1943 01:38:37,631 --> 01:38:42,032 Svo jafnvel ef þú ert ekki annað bókasöfn, myndi það ekki vera enn 1944 01:38:42,032 --> 01:38:44,477 þarf að þýða á [inaudible]? 1945 01:38:44,477 --> 01:38:48,640 >> ROB: Svo keyrsluskrá er enn í tvöfaldur. 1946 01:38:48,640 --> 01:38:51,750 Það er bara að sameina í heild fullt af forritum. 1947 01:38:51,750 --> 01:38:55,124 1948 01:38:55,124 --> 01:38:56,591 >> Áhorfendur: Þakka þér svo mikið. 1949 01:38:56,591 --> 01:38:58,560 >> ROB: Ekkert mál. 1950 01:38:58,560 --> 01:38:59,540 Aðrar spurningar? 1951 01:38:59,540 --> 01:39:02,001 Annars erum við öll sett. 1952 01:39:02,001 --> 01:39:02,690 Allt í lagi. 1953 01:39:02,690 --> 01:39:02,990 Takk. 1954 01:39:02,990 --> 01:39:03,590 >> [Applause] 1955 01:39:03,590 --> 01:39:04,490 >> Áhorfendur: Þakka þér. 1956 01:39:04,490 --> 01:39:05,740 >> ROB: Já. 1957 01:39:05,740 --> 01:39:06,582