1 00:00:00,000 --> 00:00:06,180 2 00:00:06,180 --> 00:00:07,820 >> JASON Hirschhorn: Velkomin til A5, allir. 3 00:00:07,820 --> 00:00:11,270 Við höfum spennandi viku framundan, aðallega vegna þess að það eru svo margir nýir 4 00:00:11,270 --> 00:00:12,350 andlit í þessu herbergi. 5 00:00:12,350 --> 00:00:12,920 Það er dásamlegt. 6 00:00:12,920 --> 00:00:15,740 A einhver fjöldi af þú ert hér fyrir slysni, sem er jafnvel betra. 7 00:00:15,740 --> 00:00:18,220 Svo vonandi að þú munt halda hopinn. 8 00:00:18,220 --> 00:00:20,220 >> Í þessari viku ætlum við að eyða meginhluti kafla 9 00:00:20,220 --> 00:00:21,870 undirbúning fyrir próf. 10 00:00:21,870 --> 00:00:26,580 Svo á dagskrá okkar, við erum að fara að tala svolítið um úrræði fyrir bekknum, 11 00:00:26,580 --> 00:00:30,350 en einnig fyrir prófið, og þá aftur, eyða megnið af bekknum tala 12 00:00:30,350 --> 00:00:31,390 um spurningum. 13 00:00:31,390 --> 00:00:33,900 Þegar við erum búin að svara þér spurningar, eða ef spurningar þínar 14 00:00:33,900 --> 00:00:39,010 að sjálfsögðu leiða okkur að einhverju erfðaskrá, ég hafa sýnishorn vandamál frá midterms 15 00:00:39,010 --> 00:00:43,180 framhjá því að við munum númerið lifandi í kafla saman sem einnig koma upp einhver önnur 16 00:00:43,180 --> 00:00:45,420 Gott efni til að ná. 17 00:00:45,420 --> 00:00:48,280 >> Svo fyrst, eins og við höfum farið í gegnum fyrir fortíð par af vika til að minna þig 18 00:00:48,280 --> 00:00:51,700 krakkar, það eru tonn af auðlindum í boði fyrir þetta námskeið. 19 00:00:51,700 --> 00:00:55,020 Margir af þeim mun vera ótrúlega hjálpsamur við þig eins og þú heldur áfram að 20 00:00:55,020 --> 00:00:57,280 læra fyrir prófið 0, vegna þess að það er þriðjudagur síðdegis. 21 00:00:57,280 --> 00:00:59,630 Svo allir sem þú hefur verið læra fyrir a hluti. 22 00:00:59,630 --> 00:01:02,640 >> Það eru Fyrirlestur Skýringar og uppspretta kóða sem þú ættir 23 00:01:02,640 --> 00:01:04,050 örugglega kíkja. 24 00:01:04,050 --> 00:01:05,019 Horfa á stuttbuxum. 25 00:01:05,019 --> 00:01:07,470 Skoðaðu study.cs50.net. 26 00:01:07,470 --> 00:01:11,770 Og þá, hér fyrir neðan eru ýmsar annarra auðlinda. 27 00:01:11,770 --> 00:01:14,020 >> Aftur, quiz 0 er á morgun á 01:00. 28 00:01:14,020 --> 00:01:18,230 Ef þú hefur ekki gert það nú þegar, athuga út About Quiz 0 skjal á 29 00:01:18,230 --> 00:01:21,370 Heimasíðan Auðvitað er að reikna út þar sem þú ert að taka prófið. 30 00:01:21,370 --> 00:01:25,770 The quiz hefst kl 01:10 og endar 70 mínútum síðar. 31 00:01:25,770 --> 00:01:29,610 Þannig að ef þú mæta eftir 01:10, þú ert að fara að fá að margir færri mínútur 32 00:01:29,610 --> 00:01:30,940 en 70 að taka prófið. 33 00:01:30,940 --> 00:01:33,570 Svo vertu viss um að þú ert þarna á réttum tíma. 34 00:01:33,570 --> 00:01:38,690 Ef þú ert í framhaldi nemandi eða hafa Sum önnur atriði próf, það 35 00:01:38,690 --> 00:01:40,400 gæti ekki verið á 1:00 á morgun. 36 00:01:40,400 --> 00:01:43,540 En aftur, athuga Um Spurningakeppni 0 skjal til að tryggja að þú veist hvenær 37 00:01:43,540 --> 00:01:44,760 þú ert að taka prófið. 38 00:01:44,760 --> 00:01:46,440 Ég skrifaði 75 mínútur upp hér. 39 00:01:46,440 --> 00:01:48,580 Ég held að það er rétt, ekki 70. 40 00:01:48,580 --> 00:01:53,420 >> Það nær allar þær efni frá viku 0 að fyrirlestri í síðustu viku á miðvikudaginn. 41 00:01:53,420 --> 00:01:59,350 Og aftur, fyrir þetta próf, á að skjal, fá þér einn tveggja hliða og 8 42 00:01:59,350 --> 00:02:03,770 1/2 af 11 lak af pappír sem þú færð að nota sem minnismiða í spurningakeppni. 43 00:02:03,770 --> 00:02:08,570 Margir, ef ekki flestir, hafa komist að því að einn hjálpsamur leið 44 00:02:08,570 --> 00:02:11,970 til að læra fyrir próf er að gera rannsókn efnahagsreikning, 45 00:02:11,970 --> 00:02:13,730 einn Síður, af sínum eigin. 46 00:02:13,730 --> 00:02:17,710 Svo líta á undanförnum sjálfur ef þú hefur séð fyrri sjálfur. 47 00:02:17,710 --> 00:02:19,960 Ná til vina til að sjá hvað þeir eru að setja á þeirra. 48 00:02:19,960 --> 00:02:23,610 >> En hendur niður, besta leiðin sem þú getur Rannsóknin er að fara í gegnum allt og 49 00:02:23,610 --> 00:02:26,530 tálga það niður hvað ætti eða ætti ekki tilheyra á þeirri blað 50 00:02:26,530 --> 00:02:30,570 pappír, því það er bara mjög hjálpsamur leið fyrir þig til að vera viss 51 00:02:30,570 --> 00:02:33,620 þú ert að fara í gegnum allt og hafa sumir þekkingu með það. 52 00:02:33,620 --> 00:02:36,690 Flestir, finnum við, jafnvel þó þeir hafa lak af pappír situr rétt 53 00:02:36,690 --> 00:02:39,840 við hliðina á þeim á spurningakeppni, snú ekki við það, vegna þess, aftur, að mjög 54 00:02:39,840 --> 00:02:43,290 ferli að fara í gegnum þær upplýsingar sem hefur hjálpað þeim að læra það. 55 00:02:43,290 --> 00:02:45,370 >> Hefur einhver hefur einhverjar spurningar um spurningakeppni 0? 56 00:02:45,370 --> 00:02:50,120 57 00:02:50,120 --> 00:02:51,450 Hefur alla - 58 00:02:51,450 --> 00:02:53,230 Ég ætla ekki að gera sýningu á hendur. 59 00:02:53,230 --> 00:02:53,550 Aldrei hugur. 60 00:02:53,550 --> 00:02:54,790 Ég var að fara að spyrja hver byrjaði að læra. 61 00:02:54,790 --> 00:02:58,360 En ég vil ekki að gera þér allt ekki hækka hendurnar. 62 00:02:58,360 --> 00:03:01,290 Svo eins og ég sagði - já, Avi, fara fram í tímann. 63 00:03:01,290 --> 00:03:04,205 >> AVI: Hvað væri gagnlegt hlutur að setja á einn-Friðþjófur? 64 00:03:04,205 --> 00:03:05,875 >> STUDENT: Það er komið að þér. 65 00:03:05,875 --> 00:03:08,210 >> JASON Hirschhorn: Þú færð að nota dómgreind. 66 00:03:08,210 --> 00:03:13,220 Gagnleg atriði til að setja á einnar símboði, ef þú ert óviss um Big O 67 00:03:13,220 --> 00:03:17,510 Runtime mismunandi tegundir af leit og tegund, setja það á það í 68 00:03:17,510 --> 00:03:18,760 vel spjátrungur myndinni. 69 00:03:18,760 --> 00:03:22,250 Þannig ef þú ert beðin um að á quiz, þarft þú ekki að reyna að tala 70 00:03:22,250 --> 00:03:23,560 það út eða ástæða gegnum afturkreistingur. 71 00:03:23,560 --> 00:03:24,730 Þú getur bara afritað það niður. 72 00:03:24,730 --> 00:03:28,320 Ef þú horfir á Skyndipróf fortíð, fullt af sinnum, það er að keyra tíma spurningum. 73 00:03:28,320 --> 00:03:34,150 Svo það væri dæmi um góð hlutur til að setja á einn Friðþjófur. 74 00:03:34,150 --> 00:03:37,450 >> Aðrir góðir hlutir að setja á, ef þú ert óviss um hvernig á að lýsa yfir 75 00:03:37,450 --> 00:03:40,570 virka eða hvað mismunandi hlutar virka yfirlýsingu eru, skrifa 76 00:03:40,570 --> 00:03:43,400 að á það, almenn útgáfa og þá kannski dæmi. 77 00:03:43,400 --> 00:03:47,290 Ef þú ert óviss um ábendingum, skýringarmynd af hvernig ábendingum vinna er 78 00:03:47,290 --> 00:03:48,660 sennilega mjög gagnlegt. 79 00:03:48,660 --> 00:03:52,440 Ef þú ert óviss um endurkvæmni, a sýnishorn endurkvæma virka á það 80 00:03:52,440 --> 00:03:54,980 gæti einnig reynst mjög gagnlegt. 81 00:03:54,980 --> 00:03:57,290 Er að gefa þér nokkrar hugmyndir? 82 00:03:57,290 --> 00:04:01,820 >> AVI: Þú þarft að skilja Öllu samantekt aðferð, eins og 83 00:04:01,820 --> 00:04:03,220 hvernig það virkar allt? 84 00:04:03,220 --> 00:04:06,620 >> JASON Hirschhorn: Allt sem hefur verið húðað að gat 85 00:04:06,620 --> 00:04:08,060 mæta á spurningakeppni. 86 00:04:08,060 --> 00:04:08,930 Spurningar - 87 00:04:08,930 --> 00:04:11,300 en aftur, sumir hlutir verða vegið þungt en aðrir. 88 00:04:11,300 --> 00:04:14,330 Sumir hlutir hafa komið upp aftur og aftur í flokki, í 89 00:04:14,330 --> 00:04:15,590 fyrirlestur, og kafla. 90 00:04:15,590 --> 00:04:17,220 Aðrir hlutir hafa ekki koma upp sem oftast. 91 00:04:17,220 --> 00:04:22,900 >> Við höfum talað mikið um # include og -L eitthvað og hvað þeir meina í 92 00:04:22,900 --> 00:04:24,390 samantekt aðferð. 93 00:04:24,390 --> 00:04:29,120 Við höfum talað mikið um gdb, loða, þessi mismunandi fánar sem við notum þegar 94 00:04:29,120 --> 00:04:33,100 við safna saman einhverju, og hvað make15, til dæmis, í raun 95 00:04:33,100 --> 00:04:34,510 þýðir og raunverulega gerir. 96 00:04:34,510 --> 00:04:38,110 Við höfum ekki talað eins mikið um hvert einasta skref í 97 00:04:38,110 --> 00:04:39,240 samantekt aðferð. 98 00:04:39,240 --> 00:04:40,410 Við höfum enn talað um það. 99 00:04:40,410 --> 00:04:42,550 Svo það er samt eitthvað sem þú ætti að vera kunnugt. 100 00:04:42,550 --> 00:04:44,610 En aftur, við erum ekki að fara að vera - 101 00:04:44,610 --> 00:04:49,140 hlutir sem koma upp oftar í flokki eru líklegri til að koma upp fleiri 102 00:04:49,140 --> 00:04:52,495 oft og miklu strangara vegin á spurningakeppni. 103 00:04:52,495 --> 00:04:53,280 >> Cool. 104 00:04:53,280 --> 00:04:54,580 Aðrar spurningar um spurningakeppni 0? 105 00:04:54,580 --> 00:04:57,660 106 00:04:57,660 --> 00:05:00,050 >> OK, þannig að ég setti saman lista yfir efni á borðinu. 107 00:05:00,050 --> 00:05:01,550 Ég fór í gegnum kennsluáætlun. 108 00:05:01,550 --> 00:05:07,340 Ég fór í gegnum endurskoðun kafla frá í gærkvöldi og þeir sem renna til að koma upp 109 00:05:07,340 --> 00:05:13,710 með ekki tæmandi lista yfir efni sem við höfum fjallað svo langt í CS50 110 00:05:13,710 --> 00:05:16,800 og það sem gæti birtast á spurningakeppni. 111 00:05:16,800 --> 00:05:19,900 Þannig að ég ætla ekki að fara í gegnum sérhver einn einn af þessir. 112 00:05:19,900 --> 00:05:22,370 Það myndi taka miklu meira tíma en við höfum nú. 113 00:05:22,370 --> 00:05:26,880 En ég setti þetta upp hér að vonandi skokka minni þitt eins og að hlutir sem kunna að 114 00:05:26,880 --> 00:05:28,420 eða mega ekki vera eins og ég þekki með þér. 115 00:05:28,420 --> 00:05:32,850 >> Og ég vil gjarnan að eyða megnið af kafla svara spurningum þínum um 116 00:05:32,850 --> 00:05:35,130 Þessi atriði, efni sem eru ekki fjallað hér. 117 00:05:35,130 --> 00:05:36,130 Við getum skrifað gervi kóðann. 118 00:05:36,130 --> 00:05:40,010 Við getum skrifað alvöru númer að tryggja að þú - 119 00:05:40,010 --> 00:05:44,280 Ég get svarað spurningu þína og hjálpa allir í grundvallaratriðum skilja 120 00:05:44,280 --> 00:05:48,330 mikið af þessum viðfangsefnum þannig að þú munt finna undirbúin og þægilegt að fara inn í 121 00:05:48,330 --> 00:05:50,150 quiz á morgun. 122 00:05:50,150 --> 00:05:52,300 Svo lesa yfir listann. 123 00:05:52,300 --> 00:05:54,780 Þú vonandi kominn til kafla með nokkrum spurningum eins og heilbrigður. 124 00:05:54,780 --> 00:05:58,480 Þegar þú ert tilbúin, hækka hönd þína og við munum byrja. 125 00:05:58,480 --> 00:06:01,590 126 00:06:01,590 --> 00:06:05,200 >> Hafðu í huga, að spurningum sem þú hefur, það eru engar heimskur spurningar. 127 00:06:05,200 --> 00:06:06,250 Við höfum heyrt að mikið. 128 00:06:06,250 --> 00:06:09,490 Og spurningar sem þú hefur, ég er tilbúin að veðja, margir aðrir bæði 129 00:06:09,490 --> 00:06:11,740 sitja hér og horfa á á netinu hafa eins og heilbrigður. 130 00:06:11,740 --> 00:06:13,770 Svo þú getur aðeins hjálpað fólki með því að spyrja spurninga. 131 00:06:13,770 --> 00:06:15,070 Marcus. 132 00:06:15,070 --> 00:06:18,040 >> MARCUS: Milli stakkur og að hrúga, er það pre-úthlutað 133 00:06:18,040 --> 00:06:22,880 hlutfall minnis sem er skilgreint sem þetta er fyrir í stafla eða til að veggur? 134 00:06:22,880 --> 00:06:25,010 Eða hvernig virkar þessi vinna, nákvæmlega? 135 00:06:25,010 --> 00:06:26,230 >> JASON Hirschhorn: Great spurning. 136 00:06:26,230 --> 00:06:28,640 Ég ætla að baka rekja svolítið. 137 00:06:28,640 --> 00:06:30,910 Gerir alla - 138 00:06:30,910 --> 00:06:31,660 vinsamlegast vera heiðarlegur hér. 139 00:06:31,660 --> 00:06:34,130 Ég veit að ég er að biðja þig að hækka þinn hönd fyrir framan vini þína. 140 00:06:34,130 --> 00:06:38,510 En það eru fólk sem finnst óþægilegt við stafla og hrúga 141 00:06:38,510 --> 00:06:42,980 og langar að fara yfir þessi og hvað þeir meina? 142 00:06:42,980 --> 00:06:43,880 Hækka hönd þína ef - 143 00:06:43,880 --> 00:06:44,420 OK. 144 00:06:44,420 --> 00:06:45,120 Þakka þér. 145 00:06:45,120 --> 00:06:48,420 Þannig að við ætlum að fara yfir stafla og að hrúga mjög fljótt og þá 146 00:06:48,420 --> 00:06:50,370 flytja inn svara spurningunni þinni. 147 00:06:50,370 --> 00:06:58,250 >> Þannig að ef við drögum út kassa til að tákna minni á tölvunni þinni, hvað eru nokkur 148 00:06:58,250 --> 00:07:02,160 hlutir sem fara í þennan reit? 149 00:07:02,160 --> 00:07:03,630 Main. 150 00:07:03,630 --> 00:07:04,020 A Helsta hlutverk. 151 00:07:04,020 --> 00:07:05,890 Hvar er aðal fara? 152 00:07:05,890 --> 00:07:08,090 >> STUDENT: [inaudible]. 153 00:07:08,090 --> 00:07:09,390 >> JASON Hirschhorn: Þannig að við munum setja helstu niður hérna. 154 00:07:09,390 --> 00:07:12,180 155 00:07:12,180 --> 00:07:13,430 Hvað annað fer í þennan reit? 156 00:07:13,430 --> 00:07:16,000 157 00:07:16,000 --> 00:07:18,140 >> STUDENT: Aðgerðir sem þú hringir. 158 00:07:18,140 --> 00:07:19,020 >> JASON Hirschhorn: Hlutverk sem við köllum. 159 00:07:19,020 --> 00:07:20,440 Og hvar þeir fara? 160 00:07:20,440 --> 00:07:21,300 >> STUDENT: í stafla. 161 00:07:21,300 --> 00:07:22,380 >> JASON Hirschhorn: Þeir fara í stafla. 162 00:07:22,380 --> 00:07:27,350 Þannig að við ætlum að kalla þetta hlutur hérna stafla. 163 00:07:27,350 --> 00:07:31,880 Og allt ofan, höfum við hrúga. 164 00:07:31,880 --> 00:07:35,450 Svo er minni ekki kassi bara svona. 165 00:07:35,450 --> 00:07:37,330 En það er í raun mjög svipuð. 166 00:07:37,330 --> 00:07:40,840 Það er að fara til vera a einhver fjöldi af kassa yfir og yfir, eftir því hversu stór 167 00:07:40,840 --> 00:07:43,730 tölva er eða hversu stór minni þitt er. 168 00:07:43,730 --> 00:07:46,950 >> Á vitna-unquote "botn" er að stafla. 169 00:07:46,950 --> 00:07:50,880 Og það eru margar hlutir að fara á mánudaginn. 170 00:07:50,880 --> 00:07:53,840 Og þeir ráðast á hlutverkum þú ert í kóðann þinn. 171 00:07:53,840 --> 00:07:57,780 Þú hefur alltaf eina aðgerð í þínum númer sem heitir helstu, þannig að það er alltaf 172 00:07:57,780 --> 00:08:00,480 kafla hér niðri í stafla sem varið er til helstu. 173 00:08:00,480 --> 00:08:03,980 >> Þessir hlutar í stafla eru kallaðir stafla ramma. 174 00:08:03,980 --> 00:08:09,580 Þegar þú hringir annan valkost, segja helstu kallar tvöfaldur leita virka, 175 00:08:09,580 --> 00:08:11,075 við setjum annan ramma á mánudaginn. 176 00:08:11,075 --> 00:08:13,830 177 00:08:13,830 --> 00:08:17,320 Nánar tiltekið, við erum að fara að gefa klumpur af minni á okkar 178 00:08:17,320 --> 00:08:22,960 tölvu til að geyma Tvíundarleit er staðbundin breytur og að keyra tvöfaldur 179 00:08:22,960 --> 00:08:24,150 Leita kóða. 180 00:08:24,150 --> 00:08:26,810 >> Svo við köllum tvöfaldur leit. 181 00:08:26,810 --> 00:08:30,440 182 00:08:30,440 --> 00:08:33,340 Í þessu klumpur af minni, við erum að fara að geyma staðværar breytur hennar. 183 00:08:33,340 --> 00:08:35,270 Við ætlum að geyma printf símtöl þess. 184 00:08:35,270 --> 00:08:38,159 Hvað sem gerist, að fall er fara til að geyma þarna. 185 00:08:38,159 --> 00:08:40,350 Tvöfaldur leit er að fara að framkvæma. 186 00:08:40,350 --> 00:08:42,210 Það er að fara að ljúka framkvæmd. 187 00:08:42,210 --> 00:08:47,450 Hver er Orð í C sem merkir að virka ætti 188 00:08:47,450 --> 00:08:49,306 ljúka framkvæmd hennar? 189 00:08:49,306 --> 00:08:50,040 >> STUDENT: Return. 190 00:08:50,040 --> 00:08:50,870 >> JASON Hirschhorn: Return. 191 00:08:50,870 --> 00:08:53,230 Svo þegar þú sérð aftur staðhæfing, Aðgerðahnapparnir endar 192 00:08:53,230 --> 00:08:54,350 þegar það hits það. 193 00:08:54,350 --> 00:08:56,740 Svo tvöfaldur leita vilja högg arðsemi eigin. 194 00:08:56,740 --> 00:09:01,360 Þessi hluti af minni mun í raun vera leystur upp. 195 00:09:01,360 --> 00:09:03,510 Og helstu mun fara aftur til framkvæmdar. 196 00:09:03,510 --> 00:09:07,240 Svo helstu verður að gera hlé hvar var, kalla Tvíundarleit, fá sumir aftur gildi, 197 00:09:07,240 --> 00:09:08,700 og halda áfram framkvæmd. 198 00:09:08,700 --> 00:09:10,840 Þessi stakkur ramma mun fara burt. 199 00:09:10,840 --> 00:09:14,810 >> Ef við köllum endurkvæma virka, sem er fall sem kallar sig yfir 200 00:09:14,810 --> 00:09:18,480 og yfir, gætum við fengið - segjum við gerði tvöfaldur leit undirmöppum. 201 00:09:18,480 --> 00:09:21,520 Við gætum fengið Tvíundarleit útgáfa einn, Tvíundarleit tvö, Tvíundarleit 202 00:09:21,520 --> 00:09:24,090 þrír, Tvíundarleit fjórir, Tvíundarleit fimm. 203 00:09:24,090 --> 00:09:27,950 Og þá er þetta endanlega Tvíundarleit fimm vilja högg grunntilvikið og stafla 204 00:09:27,950 --> 00:09:31,010 rammar mun fara aftur og halda loka þar til við fáum aftur að aðal. 205 00:09:31,010 --> 00:09:32,530 Við getum farið yfir endurkvæmni í bita. 206 00:09:32,530 --> 00:09:35,530 En allt þetta er að segja, ef þú ert að kalla margar aðgerðir í einu, 207 00:09:35,530 --> 00:09:39,250 það verður margar stafla rammar á mánudaginn. 208 00:09:39,250 --> 00:09:42,900 >> Hrúga, á hinn bóginn, upp hér er ekki fyrir aðgerðir, 209 00:09:42,900 --> 00:09:44,380 ekki fyrir staðbundnar breytur. 210 00:09:44,380 --> 00:09:48,920 Það er fyrir breytilega úthlutað breytum. 211 00:09:48,920 --> 00:09:57,210 Svo að þetta eru breytur sem hægt er að forsniðin í annað hvort aðal-eða A 212 00:09:57,210 --> 00:09:58,640 virka sem helstu símtöl. 213 00:09:58,640 --> 00:10:00,790 Hvar sem er í kóðanum þínum, þeir Hægt er að forsniðin. 214 00:10:00,790 --> 00:10:04,360 Og að frumstilla Dynamically úthlutað breytu. 215 00:10:04,360 --> 00:10:06,970 Hvaða fall í C notum? 216 00:10:06,970 --> 00:10:07,600 >> STUDENT: Malloc. 217 00:10:07,600 --> 00:10:09,240 >> JASON Hirschhorn: Malloc. 218 00:10:09,240 --> 00:10:10,800 Þú kallar malloc. 219 00:10:10,800 --> 00:10:12,260 Þú færð pláss af minni. 220 00:10:12,260 --> 00:10:15,020 Og það pláss af minni er á hrúga. 221 00:10:15,020 --> 00:10:18,840 Og það pláss af minni dvöl þar þangað til þú kalla frjáls. 222 00:10:18,840 --> 00:10:22,670 >> Svo virk úthlutað breytur í hrúga vilja vera eins lengi og þú 223 00:10:22,670 --> 00:10:25,250 vilja þá til vera, og þeir munu ekki fara í burtu þar til þú skýrt 224 00:10:25,250 --> 00:10:26,760 segðu þeim að fara í burtu. 225 00:10:26,760 --> 00:10:29,670 Þú getur búið til þá í einni aðgerð. 226 00:10:29,670 --> 00:10:31,930 Stafla sem virka er ramma mun fara í burtu. 227 00:10:31,930 --> 00:10:35,490 En það breytu verður enn fyrir hendi í hrúga þangað til það er frelsi, 228 00:10:35,490 --> 00:10:39,650 hugsanlega með þeirri aðgerð sem kallast Tvíundarleit eða hvað. 229 00:10:39,650 --> 00:10:42,580 >> Svo þessir hrúga breytur dvelja þar eins lengi og þú vilt 230 00:10:42,580 --> 00:10:43,490 þeim að vera þar. 231 00:10:43,490 --> 00:10:46,090 Og þeir fá sett hér. 232 00:10:46,090 --> 00:10:47,450 Og þá fær sá næsti setti þar. 233 00:10:47,450 --> 00:10:50,210 Þeir halda að fá fyllt í, og þeir dvelja þar þangað til þú kalla frjáls. 234 00:10:50,210 --> 00:10:52,870 >> Og í raun, hrúga og stafla, fá við spurningunni Marcus er, 235 00:10:52,870 --> 00:10:54,500 vaxa átt að hver annarri. 236 00:10:54,500 --> 00:10:57,730 Og ef þeir hlaupa inn í einn annan, hefur þú notað upp alla minni í þinn 237 00:10:57,730 --> 00:11:01,330 tölva, og forritið þitt mun hætta vegna þess að þú ert ekki með neina meira minni 238 00:11:01,330 --> 00:11:02,420 vinstri til að nota. 239 00:11:02,420 --> 00:11:07,290 Á milli þeirra eru hugsanlega önnur atriði. 240 00:11:07,290 --> 00:11:10,980 En fyrir gildissvið þessarar Auðvitað, þú þarft ekki að hafa áhyggjur af því. 241 00:11:10,980 --> 00:11:12,020 >> Svo það var svarið við spurningunni þinni. 242 00:11:12,020 --> 00:11:13,520 Ekki hafa áhyggjur óður í það. 243 00:11:13,520 --> 00:11:15,550 En það var langt svar. 244 00:11:15,550 --> 00:11:17,800 Allt sem þú þarft að vita er hrúga og stakkur mun - 245 00:11:17,800 --> 00:11:18,900 einn byrjar neðst. 246 00:11:18,900 --> 00:11:19,570 Stafla gerir. 247 00:11:19,570 --> 00:11:20,790 Hrúga er þarna upp. 248 00:11:20,790 --> 00:11:21,990 Þeir munu vaxa nær við annað. 249 00:11:21,990 --> 00:11:23,110 >> Og ef þeir snerta, það er vandamál. 250 00:11:23,110 --> 00:11:24,500 Þú hleypur út af minni. 251 00:11:24,500 --> 00:11:28,760 En einnig, til viðbótar við að vita hvar þeir eru, hvað er geymt bæði í 252 00:11:28,760 --> 00:11:30,512 stafla og hrúga. 253 00:11:30,512 --> 00:11:31,410 Curtis. 254 00:11:31,410 --> 00:11:33,570 >> CURTIS: Þegar þeir rekast, er að stafla flæða? 255 00:11:33,570 --> 00:11:35,670 >> JASON Hirschhorn: Þegar þeir rekast, það er ekki stafla flæða. 256 00:11:35,670 --> 00:11:38,340 Stafla flæða er mismunandi svæði að við getum farið yfir ef þú vilt. 257 00:11:38,340 --> 00:11:40,020 OK, við munum koma aftur til að í a hluti. 258 00:11:40,020 --> 00:11:42,730 >> STUDENT: Hvað er orðið kallað þegar þeir ná hvor öðrum, 259 00:11:42,730 --> 00:11:44,450 stafla og hrúga? 260 00:11:44,450 --> 00:11:46,640 >> JASON Hirschhorn: Fyrir nú, ekki hafa áhyggjur óður í. 261 00:11:46,640 --> 00:11:47,750 Bara vita - 262 00:11:47,750 --> 00:11:50,530 Ég mun svara þeirri spurningu eftir tegund. 263 00:11:50,530 --> 00:11:52,680 Ef þeir hlaupa inn í hvert annað, þú hleypur út af minni, því það er ekkert meira 264 00:11:52,680 --> 00:11:53,330 pláss þar. 265 00:11:53,330 --> 00:11:55,450 >> STUDENT: Því miður, hvað er seg kenna? 266 00:11:55,450 --> 00:11:58,710 >> JASON Hirschhorn: A hluti kenna má kallað - 267 00:11:58,710 --> 00:12:02,240 það fer hvers vegna kallað seg kenna er. 268 00:12:02,240 --> 00:12:06,260 Stundum, stafla flæða þinn, verður það segja seg kenna eins villuna. 269 00:12:06,260 --> 00:12:08,180 >> STUDENT: Hvað um dereferencing núll breytu? 270 00:12:08,180 --> 00:12:10,040 Er að seg kenna? 271 00:12:10,040 --> 00:12:11,480 >> JASON Hirschhorn: Dereferencing núll bendiprik - 272 00:12:11,480 --> 00:12:17,850 OK, þannig að ef þú ert með músina sem þú setja jafn NULL, ábendingum, muna, 273 00:12:17,850 --> 00:12:20,270 geyma minni heimilisföng sem gildi þeirra. 274 00:12:20,270 --> 00:12:23,660 Og núll bendillinn er í meginatriðum geyma 0, 0-ta 275 00:12:23,660 --> 00:12:26,670 takast á breytunni. 276 00:12:26,670 --> 00:12:30,010 Svo 0x, 0, 0, 0, 0, et cetera. 277 00:12:30,010 --> 00:12:35,030 Að 0-th heimilisfang í minni sem er ekki í myndinni okkar, sem er þarna upp 278 00:12:35,030 --> 00:12:38,800 einhvers staðar, það er áskilinn fyrir tölvuna. 279 00:12:38,800 --> 00:12:40,130 Við erum ekki leyft að snerta það. 280 00:12:40,130 --> 00:12:44,680 >> Svo þegar forritið þitt er framkvæmd, ef eitthvað er að reyna að fara í minni 281 00:12:44,680 --> 00:12:48,990 heimilisfang 0, veit það að sem er tómt gildi. 282 00:12:48,990 --> 00:12:50,820 Það veit ekkert ætti að vera þar. 283 00:12:50,820 --> 00:12:53,420 Þannig að ef þú ert að reyna og nota eitthvað þarna og meðhöndla eitthvað eins og það eða 284 00:12:53,420 --> 00:12:58,355 reyna að fara að þessi staðsetning, þú ert fara að fá seg sök eða villu. 285 00:12:58,355 --> 00:13:00,520 Er að svara spurningunni þinni? 286 00:13:00,520 --> 00:13:03,170 >> Og nú munum við fara aftur að stafla flæða. 287 00:13:03,170 --> 00:13:09,560 Hlutir í stafla, eins og þið hafið séð áður, í - við skulum draga nærmynd 288 00:13:09,560 --> 00:13:11,966 upp stafla ramma. 289 00:13:11,966 --> 00:13:15,050 Geta allir séð það? 290 00:13:15,050 --> 00:13:16,650 Þannig að við höfum stakkur ramma okkar. 291 00:13:16,650 --> 00:13:23,260 Við erum að sparnaður fjölda í eins heimamaður breytu í þetta fall. 292 00:13:23,260 --> 00:13:29,510 Svo segja array okkar hefur fimm bletti. 293 00:13:29,510 --> 00:13:33,230 Öllum fimm af þeim sem verða geymd í þeim stafla ramma. 294 00:13:33,230 --> 00:13:37,540 >> Ef við byrjum að skrifa út fyrir mörk af þessu fylki - 295 00:13:37,540 --> 00:13:43,990 þannig að ef við byrjum að skrifa inn, skulum segja að það er 0. 296 00:13:43,990 --> 00:13:46,800 Þeir eru fimm vísitölur af fylking okkar. 297 00:13:46,800 --> 00:13:50,980 Ef við byrjum að skrifa inn í vísitölu 5, sem við höfum ekki þegar við höfum að 298 00:13:50,980 --> 00:13:55,900 Fylki af stærðinni 5, byrjum við að skrifa inn í Forsíða 6, 7, 8, 9, getum við fá stafla 299 00:13:55,900 --> 00:13:57,960 Yfirfall villa. 300 00:13:57,960 --> 00:14:00,510 >> Almennt er það ekki - 301 00:14:00,510 --> 00:14:04,910 þú munt sennilega fá inn í vandræði ef þú ferð yfir í einu. 302 00:14:04,910 --> 00:14:08,640 En almennt, þú vilja fá inn í mest vandræði ef þú ferð yfir með fullt 303 00:14:08,640 --> 00:14:12,770 og þú ferð svo langt yfir að þú skrifar yfir aftur heimilisfang á að 304 00:14:12,770 --> 00:14:16,080 virka, sem er staðsett á neðst á stafla ramma. 305 00:14:16,080 --> 00:14:16,520 >> Vegna þess, ekki satt? 306 00:14:16,520 --> 00:14:17,670 Þú - í - því miður. 307 00:14:17,670 --> 00:14:18,550 Ekki "því rétt." 308 00:14:18,550 --> 00:14:20,470 >> Í stafla ramma, hefur þú Local breytur þínar. 309 00:14:20,470 --> 00:14:27,090 Á mjög neðst á stafla ramma er aftur heimilisfang. 310 00:14:27,090 --> 00:14:28,790 Það er þar sem hlutverk fer þegar því er lokið. 311 00:14:28,790 --> 00:14:33,750 Og ef þú skrifa yfir aftur heimilisfang, svo þegar þetta stakkur ramma, 312 00:14:33,750 --> 00:14:36,680 þegar þú ert að fara í gegnum stafla ramma og framkvæmd hverja línu, þú ert 313 00:14:36,680 --> 00:14:40,350 að fara til nýja aftur heimilisfang þitt sem er skrifað þarna í stað 314 00:14:40,350 --> 00:14:40,910 Raunveruleg einn. 315 00:14:40,910 --> 00:14:45,050 Og það er hvernig við höfum séð sumir öryggi brot 316 00:14:45,050 --> 00:14:46,780 getur gerst með tölvur. 317 00:14:46,780 --> 00:14:52,760 >> Svo stafla flæða, í stuttu máli, er þegar þú skrifa hluti í stafla 318 00:14:52,760 --> 00:14:55,440 þú ert ímyndaður til að nota, the heimamaður breytu sem þú ert ímyndaður til að nota, og 319 00:14:55,440 --> 00:14:58,070 einkum þegar þú byrjar að skrifa yfir mikilvæg atriði eins og að 320 00:14:58,070 --> 00:14:59,100 aftur heimilisfang. 321 00:14:59,100 --> 00:15:00,090 Og það er þar sem þú munt fá villu. 322 00:15:00,090 --> 00:15:03,980 Eða kannski jafnvel að þú gætir byrjað jafnvel að skrifa inn - 323 00:15:03,980 --> 00:15:05,370 segja Tvíundarleit var rétt fyrir ofan aðal. 324 00:15:05,370 --> 00:15:07,790 Ef þú overwrote mikið, þér gæti skrifað í helstu. 325 00:15:07,790 --> 00:15:10,230 En almennt, þá færðu villu áður þá, vegna þess að tölvan veit 326 00:15:10,230 --> 00:15:12,270 þú ert að gera eitthvað sem þú ætti ekki að vera að gera. 327 00:15:12,270 --> 00:15:12,560 Já. 328 00:15:12,560 --> 00:15:13,910 >> STUDENT: Hver er munurinn milli stafla flæða 329 00:15:13,910 --> 00:15:16,940 og dúar flæða? 330 00:15:16,940 --> 00:15:19,420 >> JASON Hirschhorn: Buffer flæða er meira almenna tegund af 331 00:15:19,420 --> 00:15:20,395 það sem ég hef bara lýst. 332 00:15:20,395 --> 00:15:22,610 >> STUDENT: Svo er stafla flæða að Dæmi um yfirflæði. 333 00:15:22,610 --> 00:15:23,420 >> JASON Hirschhorn: Einmitt. 334 00:15:23,420 --> 00:15:28,700 Þetta er fylki sem við getum hugsað sem biðminni, pláss fyrir hluti að fara inn 335 00:15:28,700 --> 00:15:30,600 Þetta er stafla biðminni flæða. 336 00:15:30,600 --> 00:15:33,210 Við gætum hafa hrúga biðminni flæða. 337 00:15:33,210 --> 00:15:36,870 Ef það var buffer, sem það oft er fylki hrúga, og við 338 00:15:36,870 --> 00:15:40,600 overwrote þeim mörk, þá myndum við hafa hrúga biðminni flæða. 339 00:15:40,600 --> 00:15:44,870 >> Og utan gildissviðs þessa námskeiðs, þeir eru greind svolítið öðruvísi. 340 00:15:44,870 --> 00:15:48,040 Þýðandinn hefur sérstaka leiðir til þess að skynja hvert. 341 00:15:48,040 --> 00:15:50,660 En biðminni flæða er meira almenna gerð sem ég lýst, 342 00:15:50,660 --> 00:15:54,090 sem var stafla biðminni flæða. 343 00:15:54,090 --> 00:15:56,240 Gerði það að svara spurningunni þinni? 344 00:15:56,240 --> 00:15:57,910 Sætur. 345 00:15:57,910 --> 00:16:01,850 >> Voru einhverjar aðrar spurningar sem tengjast að stafla eða hrúga? 346 00:16:01,850 --> 00:16:04,920 347 00:16:04,920 --> 00:16:05,510 Já. 348 00:16:05,510 --> 00:16:08,220 >> STUDENT: Ég veit að þú þarft að frjáls strengi því þeir eru í hrúga 349 00:16:08,220 --> 00:16:09,305 og þú vilt ekki að leka minni. 350 00:16:09,305 --> 00:16:12,240 En þú þarft að losa alheims breytur og eitthvað svoleiðis? 351 00:16:12,240 --> 00:16:14,335 Eða eru þeir frelsi sjálfkrafa? 352 00:16:14,335 --> 00:16:15,700 >> JASON Hirschhorn: Góð spurning. 353 00:16:15,700 --> 00:16:22,340 Svo í CS50.H, búa við slíkt þú kallaðir streng. 354 00:16:22,340 --> 00:16:23,800 A band er í raun það? 355 00:16:23,800 --> 00:16:24,810 >> STUDENT: Char stjörnu. 356 00:16:24,810 --> 00:16:29,180 >> JASON Hirschhorn: A bleikju stjörnu, bendillinn að staf bendi á 357 00:16:29,180 --> 00:16:30,650 fylki af stöfum. 358 00:16:30,650 --> 00:16:32,210 Það er það band er. 359 00:16:32,210 --> 00:16:36,050 Þannig að við þurfum að losa það, því getstring, sem við notuðum mikið - 360 00:16:36,050 --> 00:16:38,370 Nafn band jafngildir getstring - 361 00:16:38,370 --> 00:16:43,560 sem mallocs fyrir okkur nokkur minni á vörðu og þá skilar bendi á 362 00:16:43,560 --> 00:16:47,230 Fyrsti stafurinn sem band, char stjarna. 363 00:16:47,230 --> 00:16:52,760 >> Svo ostensibly, ef þú hefur ekki verið skrifa ókeypis á einhverju strengi þína 364 00:16:52,760 --> 00:16:55,600 að þú hafir kallað svo langt, hefur þú verið lekur sumir minni. 365 00:16:55,600 --> 00:16:57,430 Auðvitað höfum við ekki talað um það, þannig að enginn er fengið í 366 00:16:57,430 --> 00:16:58,520 vandræði fyrir að gera það. 367 00:16:58,520 --> 00:16:59,980 En að fara áfram, já. 368 00:16:59,980 --> 00:17:03,990 Þegar þú hringir getstring, þú ert mallocing pláss á hrúga. 369 00:17:03,990 --> 00:17:07,640 Og ef þú kalla ekki frjáls síðar á að band, þú hafa a minni leka. 370 00:17:07,640 --> 00:17:09,440 Að svara spurningunni þinni? 371 00:17:09,440 --> 00:17:10,606 >> Já 372 00:17:10,606 --> 00:17:15,020 >> STUDENT: Svo til að gera það, við notum frjáls rétt fyrir staðinn? 373 00:17:15,020 --> 00:17:18,510 Eins, innan gildissviðs, held ég ef við segjum, eins og int helstu, innan 374 00:17:18,510 --> 00:17:24,410 umfang kóða sem er innan þessara hrokkið axlabönd, rétt áður - 375 00:17:24,410 --> 00:17:26,140 þú veist þar sem þú vilt yfirleitt setja aftur. 376 00:17:26,140 --> 00:17:27,950 Þú setur frjáls áður? 377 00:17:27,950 --> 00:17:31,000 >> JASON Hirschhorn: Svo þú getur sett frjáls hvar sem þú vilt að setja frjáls. 378 00:17:31,000 --> 00:17:33,810 Vegna þess að þetta eru mjög virk úthlutað breytur, því þeir geta 379 00:17:33,810 --> 00:17:39,170 lifa utan gildissviðs tiltekinn virka, ef þú kallar malloc í 380 00:17:39,170 --> 00:17:44,140 aðskilin virka, til dæmis, getstring, getur þú hringt ókeypis í helstu. 381 00:17:44,140 --> 00:17:46,050 Þú þarft ekki að kalla það í tiltekna aðgerð 382 00:17:46,050 --> 00:17:47,570 þar malloc er kallað. 383 00:17:47,570 --> 00:17:50,340 En þú þarft að hringja í hana áður helstu ávöxtun. 384 00:17:50,340 --> 00:17:51,120 >> Og það fer í raun. 385 00:17:51,120 --> 00:17:54,960 Það fer eftir því hvers vegna þú malloced að pláss í fyrsta sæti. 386 00:17:54,960 --> 00:17:57,320 Sumir vilja kalla frjáls ansi hratt. 387 00:17:57,320 --> 00:17:59,220 Sumir vilja ekki kalla frjáls fyrr enda dagskrá þeirra. 388 00:17:59,220 --> 00:18:00,660 Og þeir fara í gegnum og frjáls allt. 389 00:18:00,660 --> 00:18:03,597 Það fer eftir því hvers vegna þú kallaðir malloc. 390 00:18:03,597 --> 00:18:11,270 >> STUDENT: Og hvað myndir þú segja ef þú kallaðir nota getstring? 391 00:18:11,270 --> 00:18:13,320 Þú vilt segja frjáls hvað? 392 00:18:13,320 --> 00:18:20,040 >> JASON Hirschhorn: Svo setningafræði fyrir frjáls er einfaldlega frjáls, opinn paren, nærri 393 00:18:20,040 --> 00:18:22,130 paren, og nafn músina. 394 00:18:22,130 --> 00:18:26,410 Þannig að ef þú skrifar String nafn jafn getstring, settu þér nafn hérna. 395 00:18:26,410 --> 00:18:27,760 Það er nafn á músina. 396 00:18:27,760 --> 00:18:30,570 Og það veit að frjáls að minni. 397 00:18:30,570 --> 00:18:33,920 >> STUDENT: Svo þegar það frjáls að minni, bendillinn enn bendir þeim stað 398 00:18:33,920 --> 00:18:34,970 í minni? 399 00:18:34,970 --> 00:18:39,020 Eða er bendillinn einnig tæmt af heimilisfangið sem hann bendir til. 400 00:18:39,020 --> 00:18:40,290 >> JASON Hirschhorn: Við ættum að reyna það. 401 00:18:40,290 --> 00:18:41,430 Við ættum kóða sem. 402 00:18:41,430 --> 00:18:43,880 Við skulum koma aftur þegar við komum til erfðaskrá, og við skulum kóða sem. 403 00:18:43,880 --> 00:18:46,000 Og ef þú vilt að reikna út svarið til þessi, getur þú einnig kóða sem 404 00:18:46,000 --> 00:18:46,690 í millitíðinni. 405 00:18:46,690 --> 00:18:49,100 En það er frábær spurning. 406 00:18:49,100 --> 00:18:53,480 >> STUDENT: Er það mögulegt að frjáls eitthvað of fljótt? 407 00:18:53,480 --> 00:18:58,530 Svo þú þarft samt fyrir áætlun þína, og þú leystur, að minni pláss? 408 00:18:58,530 --> 00:18:59,200 >> JASON Hirschhorn: Já. 409 00:18:59,200 --> 00:19:03,020 Það er hægt, ef þú frjáls eitthvað og síðan að nota það aftur, þú verður 410 00:19:03,020 --> 00:19:06,890 hlaupa inn í villu. 411 00:19:06,890 --> 00:19:10,810 En það er á þig, því þú leystur eitthvað og þá heitir það síðar. 412 00:19:10,810 --> 00:19:13,940 Svo sem var mistök forritari er. 413 00:19:13,940 --> 00:19:14,780 En já. 414 00:19:14,780 --> 00:19:17,760 Þú getur skrifað það. 415 00:19:17,760 --> 00:19:19,240 >> Einhverjar fleiri spurningar um - 416 00:19:19,240 --> 00:19:19,760 já. 417 00:19:19,760 --> 00:19:22,820 >> STUDENT: Svo ef þú ert að ætlast til að bara frjáls það almennt áður en 418 00:19:22,820 --> 00:19:25,490 program endar, þýðir það ef program lýkur og þú losa það ekki, 419 00:19:25,490 --> 00:19:27,580 þessi minni er enn úthlutað? 420 00:19:27,580 --> 00:19:31,330 >> JASON Hirschhorn: Ef forrit endar og þú gleymir að losa eitthvað, þá 421 00:19:31,330 --> 00:19:34,390 að minni var úthlutað í gegn ævi program. 422 00:19:34,390 --> 00:19:37,670 Forritið lokar alveg, að minnið er ekki að fara 423 00:19:37,670 --> 00:19:39,490 að vera þar að eilífu. 424 00:19:39,490 --> 00:19:42,080 The tölva er sviði nógur til vita að þegar forritið lokast, og það 425 00:19:42,080 --> 00:19:46,440 ætti að losna við alla minni sem var tengd við þessi forrit. 426 00:19:46,440 --> 00:19:51,240 >> Hins vegar eru tæki sem þú getur keyrt á forrit til að uppgötva ef, þegar 427 00:19:51,240 --> 00:19:54,720 program lokið, gleymdi að losa um minni. 428 00:19:54,720 --> 00:19:57,960 Og fyrir næsta vandamál þitt sett þar þú munt nota malloc og nota 429 00:19:57,960 --> 00:20:02,610 ábendingum, verður þú að vera að keyra þetta forrita á forritinu til að sjá hvort, 430 00:20:02,610 --> 00:20:06,530 Þegar helstu skilar, þú hefðir einhver hlutir sem voru eftir unfreed. 431 00:20:06,530 --> 00:20:09,130 >> Svo þeir eru ekki að fara að vera malloced að eilífu í tölvunni þinni. 432 00:20:09,130 --> 00:20:11,720 Sem myndi vera eyðslusamur, því mjög fljótt, tölvur 433 00:20:11,720 --> 00:20:12,960 myndi keyra út af minni. 434 00:20:12,960 --> 00:20:16,450 En ef þeir hlaupa til loka þínum forrita og þeir eru ekki leystur og þinn 435 00:20:16,450 --> 00:20:20,260 program hættir, það er enn vandamál að þessi tól mun hjálpa þér að takast. 436 00:20:20,260 --> 00:20:21,520 >> STUDENT: Er það Valgrind? 437 00:20:21,520 --> 00:20:22,910 >> JASON Hirschhorn: Það er heitir Valgrind. 438 00:20:22,910 --> 00:20:23,520 Og þú munt vera - 439 00:20:23,520 --> 00:20:25,780 >> STUDENT: En við þurfum ekki að vita að fyrir prófið, þó? 440 00:20:25,780 --> 00:20:27,600 Ég meina, það var talað um svolítið í fyrirlestri. 441 00:20:27,600 --> 00:20:33,600 >> JASON Hirschhorn: Svo Valgrind er nafn sem tól. 442 00:20:33,600 --> 00:20:37,180 Vita hvað það gerir er nóg fyrir spurningakeppni. 443 00:20:37,180 --> 00:20:40,200 En þú hefur ekki notað það enn á þinn Heimadæmi vegna þess að við höfum ekki haft 444 00:20:40,200 --> 00:20:43,520 Heimadæmi sem hefur sérstaklega fjallað með malloc eða þú nota malloc. 445 00:20:43,520 --> 00:20:45,330 Svo þú hefur ekki notað Valgrind ennþá. 446 00:20:45,330 --> 00:20:47,760 En þú verður að nota það fyrr frekar en síðar. 447 00:20:47,760 --> 00:20:48,710 >> STUDENT: Getur þú endurtekið hvað Valgrind er? 448 00:20:48,710 --> 00:20:49,190 >> JASON Hirschhorn: Fyrirgefðu? 449 00:20:49,190 --> 00:20:51,240 >> STUDENT: Getur þú endurtaka það tilgangur Valgring er? 450 00:20:51,240 --> 00:20:53,100 >> JASON Hirschhorn: Valgrind er nafnið - 451 00:20:53,100 --> 00:20:59,890 eins GDB hjálpar þér kemba program, Valgrind hjálpar þér að reikna út ef 452 00:20:59,890 --> 00:21:03,210 hlutirnir hafa ekki verið leystur Forritið lokar. 453 00:21:03,210 --> 00:21:05,110 Svo þú munt hlaupa það á forritinu. 454 00:21:05,110 --> 00:21:09,230 Og program hættir, og það verður að segja program sem heitir malloc þetta margir 455 00:21:09,230 --> 00:21:13,670 sinnum fyrir þessu margir bæti og þú aðeins kallað frjáls þetta mörgum sinnum. 456 00:21:13,670 --> 00:21:16,520 Og svo þú vinstri þessi mörg bæti án þess að vera leystur. 457 00:21:16,520 --> 00:21:18,050 Eða það segi að þú hafir leystur allt. 458 00:21:18,050 --> 00:21:19,070 Gott starf. 459 00:21:19,070 --> 00:21:19,480 >> STUDENT: OK. 460 00:21:19,480 --> 00:21:21,060 Og það er kallað Valgring? 461 00:21:21,060 --> 00:21:24,940 >> JASON Hirschhorn: V-A-L-G-R-I-N-D. 462 00:21:24,940 --> 00:21:25,970 >> STUDENT: Spurning um ábendingum. 463 00:21:25,970 --> 00:21:30,080 Svo segja að þú hefur n stjörnu x er jafnt og eitthvað. 464 00:21:30,080 --> 00:21:33,330 Sem jafngildir, hvað sem þú ert að setja það, er að það er verið að setja inni 465 00:21:33,330 --> 00:21:36,120 hvað x er bendir til, eða bendillinn á x? 466 00:21:36,120 --> 00:21:37,690 >> JASON Hirschhorn: Getur þú endurtaka spurninguna? 467 00:21:37,690 --> 00:21:39,340 Getum við dregið það á meðan þú segir það? 468 00:21:39,340 --> 00:21:42,710 >> STUDENT: í spurningakeppni, reyndar er sem þú sendir oss, og það var eins, bleikju 469 00:21:42,710 --> 00:21:46,520 stjörnu sannleikurinn jafngildir CS50 steina, ekki satt? 470 00:21:46,520 --> 00:21:52,190 Svo þýðir það að þessi CS50 björg er það sannleikurinn er að benda á? 471 00:21:52,190 --> 00:21:55,810 >> JASON Hirschhorn: Svo þú ert að tala um bleikju stjörnu í streng, hvernig 472 00:21:55,810 --> 00:21:56,460 sem virkar? 473 00:21:56,460 --> 00:21:56,890 Já. 474 00:21:56,890 --> 00:21:57,700 OK. 475 00:21:57,700 --> 00:21:59,140 Skulum draga þetta hérna. 476 00:21:59,140 --> 00:22:07,100 >> [SIDE Samtal] 477 00:22:07,100 --> 00:22:11,130 >> JASON Hirschhorn: Svo þessi breyta er að fara að vera af taginu char stjörnu. 478 00:22:11,130 --> 00:22:14,580 Hversu stór er breytilegt af taginu char stjarna? 479 00:22:14,580 --> 00:22:15,510 Hversu margir bæti? 480 00:22:15,510 --> 00:22:16,450 >> Nemendur: fjórar. 481 00:22:16,450 --> 00:22:18,210 >> JASON Hirschhorn: Það er fjórum bæti. 482 00:22:18,210 --> 00:22:21,420 Hversu margir réttindi er breytilegt int stjarna? 483 00:22:21,420 --> 00:22:22,210 >> Nemendur: fjórar. 484 00:22:22,210 --> 00:22:24,910 >> JASON Hirschhorn: Fjórir bæti. 485 00:22:24,910 --> 00:22:28,280 Ef það er bendillinn, þá er það alltaf fjögur bæti því upplýsingar ábendingum, þeirra 486 00:22:28,280 --> 00:22:30,070 gildi er minni heimilisfang. 487 00:22:30,070 --> 00:22:35,160 Og minni heimilisföng á CS50 tæki eru fjögur bæti. 488 00:22:35,160 --> 00:22:42,900 Svo þegar við köllum getstring eða þegar við segja, stringname jafnt, og þá í 489 00:22:42,900 --> 00:22:46,140 gæsalappa setja band, við erum að setja - 490 00:22:46,140 --> 00:22:46,920 Jæja, það er svolítið öðruvísi. 491 00:22:46,920 --> 00:22:48,630 Við munum gera getstring sem dæmi. 492 00:22:48,630 --> 00:22:52,150 Eða bleikju stjörnu eitthvað jafngildir strenginn. 493 00:22:52,150 --> 00:22:54,360 Því miður, gefa mér dæmi sem þú lest? 494 00:22:54,360 --> 00:22:57,590 >> STUDENT: char stjörnu sannleikur jafngildir "cs50 björg" í gæsalöppum. 495 00:22:57,590 --> 00:23:02,260 >> JASON Hirschhorn: Svo þetta stjörnu þetta við munum kalla þessa breytu X fyrir okkar 496 00:23:02,260 --> 00:23:04,060 almenna tilgangi. 497 00:23:04,060 --> 00:23:05,970 Við höfum búið til breytu sem heitir x. 498 00:23:05,970 --> 00:23:07,610 Það er tegund char stjörnu. 499 00:23:07,610 --> 00:23:10,950 Það er bendi á röð stafi. 500 00:23:10,950 --> 00:23:12,200 Svo niður hér - 501 00:23:12,200 --> 00:23:23,710 502 00:23:23,710 --> 00:23:25,890 >> Svo er þetta hvernig þetta myndi vinna í minni. 503 00:23:25,890 --> 00:23:27,410 Þetta myndi geyma minni heimilisfang. 504 00:23:27,410 --> 00:23:31,770 Það myndi geyma minni heimilisfang fyrsti stafurinn í array. 505 00:23:31,770 --> 00:23:33,830 Og svo þegar þú fylgt bendillinn, þú myndir 506 00:23:33,830 --> 00:23:35,200 fá fyrsta staf. 507 00:23:35,200 --> 00:23:38,780 >> Og ef þú ert að lesa þetta í svona a band, tölvan þín er klár 508 00:23:38,780 --> 00:23:42,930 nóg að vita, lesa þetta allt hlutur þangað til það fær að bakslag 0. 509 00:23:42,930 --> 00:23:45,530 En ef þú ert að lesa það á staf á tími, þannig að þú ert að iterating gegnum 510 00:23:45,530 --> 00:23:49,910 Þessi strengur, þá munt þú bara að lesa eðli í einu þar til þú færð að 511 00:23:49,910 --> 00:23:50,850 sviga 0. 512 00:23:50,850 --> 00:23:52,335 Sem gæti ekki svarið þitt spurning, þó. 513 00:23:52,335 --> 00:23:55,610 >> STUDENT: Já, en þú hefur ekki malloced sem rúm 514 00:23:55,610 --> 00:23:58,400 enn fyrir þessi músina. 515 00:23:58,400 --> 00:24:02,510 >> JASON Hirschhorn: Þannig að ég er ekki alveg viss nákvæmlega það sem þú ert að leita á, 516 00:24:02,510 --> 00:24:03,640 vegna þess að ég vissi ekki að þessi próf. 517 00:24:03,640 --> 00:24:06,370 Sem átti að vera hjálpsamur úrræði frá öðru TF. 518 00:24:06,370 --> 00:24:11,380 Ef þú ert að búa til band á stafla eða sem staðbundin breytu, verður það 519 00:24:11,380 --> 00:24:16,920 bara vera array af gjöldum frekar en yfirleitt bleikju stjörnu bendir til 520 00:24:16,920 --> 00:24:18,600 annað band. 521 00:24:18,600 --> 00:24:20,550 En ég veit ekki. 522 00:24:20,550 --> 00:24:25,065 Það gæti verið bendi til annars string á stafla eins vel. 523 00:24:25,065 --> 00:24:27,240 Já. 524 00:24:27,240 --> 00:24:31,116 >> STUDENT: Ég veit að þú þarft að úthluta minni ef bendillinn er 525 00:24:31,116 --> 00:24:33,360 fá lýst inni annars virka. 526 00:24:33,360 --> 00:24:36,740 Þú þarft að gera það sama ef það er verið lýst inni helstu, 527 00:24:36,740 --> 00:24:39,570 þú ert að nota það inni í main? 528 00:24:39,570 --> 00:24:43,590 >> JASON Hirschhorn: Svo já. 529 00:24:43,590 --> 00:24:46,670 Þú getur lýst bendi einhverju minni heimilisfang í minni. 530 00:24:46,670 --> 00:24:51,440 Það getur verið minni heimilisfang af a heimamaður breytu, þó oftsinnis, 531 00:24:51,440 --> 00:24:55,760 fólk lýsa ekki minni heimilisföng að staðbundnar breytur vegna þess að þeir fara 532 00:24:55,760 --> 00:24:59,890 burt þegar það skilar, sem er þess vegna sem við malloc almennt hluti. 533 00:24:59,890 --> 00:25:04,630 En já, þú getur lýsa músina til annars heimamaður breytu. 534 00:25:04,630 --> 00:25:06,360 Það er bara almennt ekki gert. 535 00:25:06,360 --> 00:25:09,480 En ég get að líta á sem sérstakur hlutur eftir tegund. 536 00:25:09,480 --> 00:25:10,650 Já. 537 00:25:10,650 --> 00:25:12,350 >> STUDENT: Ég held að þetta sé tegund af því sem er verið að spyrja. 538 00:25:12,350 --> 00:25:16,930 Það virðist undarlegt að vera að virkja bendillinn ekki sem 539 00:25:16,930 --> 00:25:20,760 heimilisfang, en það sem virðist eins og gildi. 540 00:25:20,760 --> 00:25:25,970 Það virðist eins og CS50 er hvað er inni hlutur tilvera benti til og 541 00:25:25,970 --> 00:25:28,820 ekki raunverulegt netfang, ekki satt? 542 00:25:28,820 --> 00:25:30,520 >> JASON Hirschhorn: Svo er það ekki raunin, þó. 543 00:25:30,520 --> 00:25:32,470 Það er ekki það sem er að gerast. 544 00:25:32,470 --> 00:25:35,910 Þegar þú lýsa bleikju stjörnuna, það er minni heimilisfang. 545 00:25:35,910 --> 00:25:38,860 Ábendingar eru öll minni heimilisföng benda á eitthvað annað. 546 00:25:38,860 --> 00:25:41,480 Að eitthvað annað gæti verið á stafla, en nær alltaf er á 547 00:25:41,480 --> 00:25:43,440 hrúga á því hvernig við munum sjá það notað. 548 00:25:43,440 --> 00:25:46,860 549 00:25:46,860 --> 00:25:53,500 En stringname jafngildir tvöfalda tilvitnun "Getstring," við getum séð það og við 550 00:25:53,500 --> 00:25:55,010 getur að líta í gegnum það og kóða sem. 551 00:25:55,010 --> 00:26:01,190 getstring strengur er ekki verið vistuð í að breytilegur eða hvað sem strengur 552 00:26:01,190 --> 00:26:04,580 nafn er ekki verið að spara í að breytu, því það er ekki hvernig 553 00:26:04,580 --> 00:26:06,070 ábendingum vinna. 554 00:26:06,070 --> 00:26:06,770 Er að skynsamleg? 555 00:26:06,770 --> 00:26:07,170 >> STUDENT: Já. 556 00:26:07,170 --> 00:26:08,570 >> JASON Hirschhorn: OK. 557 00:26:08,570 --> 00:26:11,690 Vonandi, það var ekki ruglingslegt að einhver. 558 00:26:11,690 --> 00:26:15,732 En ef það var, getum við líta á það aftur í hluti, af því að við erum í raun að fara 559 00:26:15,732 --> 00:26:19,240 að kóða eitthvað sem mun vonandi vinna með strengi og hjálpa þér finnst 560 00:26:19,240 --> 00:26:22,170 öruggari með þeim. 561 00:26:22,170 --> 00:26:24,869 >> Aðrar spurningar sem tengjast þessum efni eða önnur efni sem 562 00:26:24,869 --> 00:26:26,119 Ég set aftur upp? 563 00:26:26,119 --> 00:26:32,280 564 00:26:32,280 --> 00:26:34,840 Og - 565 00:26:34,840 --> 00:26:36,310 núna. 566 00:26:36,310 --> 00:26:37,630 Já, Alden. 567 00:26:37,630 --> 00:26:39,860 >> Alden: Þannig að þetta er alveg ótengd, en getum við farið rúmlega 568 00:26:39,860 --> 00:26:42,760 virkilega hratt það sem við þurfum að vita um muninn á milli 32 og 569 00:26:42,760 --> 00:26:46,345 64-bita vél? 570 00:26:46,345 --> 00:26:47,740 >> JASON Hirschhorn: Já. 571 00:26:47,740 --> 00:26:52,111 Svo 32 bita er hversu margir bæti? 572 00:26:52,111 --> 00:26:53,060 >> Alden: Það er fjórum bæti. 573 00:26:53,060 --> 00:26:54,360 >> JASON Hirschhorn: Það er fjórum bæti. 574 00:26:54,360 --> 00:26:58,420 Og 64 bita er hversu margir bæti? 575 00:26:58,420 --> 00:26:59,112 >> STUDENT: Átta. 576 00:26:59,112 --> 00:27:00,610 >> JASON Hirschhorn: Átta bæti. 577 00:27:00,610 --> 00:27:03,980 Svo aftur, átta bitar er eitt bæti. 578 00:27:03,980 --> 00:27:08,340 CS50 tækið þitt er 32-bita vél. 579 00:27:08,340 --> 00:27:13,650 Svo minni heimilisföng eru fjögur bæti. 580 00:27:13,650 --> 00:27:17,460 Það eru 2 að 32 minni viðtakandi. 581 00:27:17,460 --> 00:27:21,310 0-2 til 32 mínus 1. 582 00:27:21,310 --> 00:27:27,630 Og ég er ekki jákvæð, en það er sennilega gildissviðs það sem þú þarft til að 583 00:27:27,630 --> 00:27:35,230 veit að 32-bita vél, að minni heimilisföng eru, aftur, fjögur bæti, 584 00:27:35,230 --> 00:27:39,620 og það er hámarksfjárhæð af minni viðtakandi. 585 00:27:39,620 --> 00:27:41,680 >> Einnig gögn gerðum - 586 00:27:41,680 --> 00:27:45,020 þetta gæti verið eitthvað sem vel það er rétt að átta sig. 587 00:27:45,020 --> 00:27:49,610 Á stærð við gögn gerð veltur á vél þú ert að vinna með. 588 00:27:49,610 --> 00:27:56,760 Svo bleikju, einn staf, er hvernig margir bæti á CS50 tæki okkar? 589 00:27:56,760 --> 00:27:57,980 Eitt bæti. 590 00:27:57,980 --> 00:28:02,310 Og það er í raun einn bæti sem vel á 64-bita vél. 591 00:28:02,310 --> 00:28:05,920 >> Og flestir tegundir gagna eru sama númer bæti á báðum vélum. 592 00:28:05,920 --> 00:28:11,620 En sumir tegundir gagna verða öðruvísi á báðum vélum. 593 00:28:11,620 --> 00:28:14,590 Svo það væri möguleiki á Það eina sem þú þarft að vita. 594 00:28:14,590 --> 00:28:16,710 >> En jafnvel það, held ég, er utan við mörk - 595 00:28:16,710 --> 00:28:20,990 Ég er næstum jákvæð, ef þú lítur til baka á gömlum Skyndipróf, það segir, ráð fyrir 596 00:28:20,990 --> 00:28:24,090 erfðaskrá vandamál sem þú ert að nota 32-bita vél. 597 00:28:24,090 --> 00:28:26,620 598 00:28:26,620 --> 00:28:30,620 En það eru, að fara með það í Ef þú hefur áhuga, þá eru 599 00:28:30,620 --> 00:28:35,920 gögn tegundir sem eru þau sömu stærð á öllum vélum. 600 00:28:35,920 --> 00:28:42,670 >> Ef þú hefur séð eitthvað eins og uint32_t, getur þú eða mega 601 00:28:42,670 --> 00:28:43,260 ekki hafa séð það. 602 00:28:43,260 --> 00:28:44,290 Það er a gögn tegund. 603 00:28:44,290 --> 00:28:47,570 Það er að segja, vera 32 bita burtséð hvað vél þetta er á. 604 00:28:47,570 --> 00:28:50,350 Svo þegar fólk er að skrifa flytjanlegur númer, sennilega munu þeir ekki nota ints. 605 00:28:50,350 --> 00:28:53,260 Þeir ætla í staðinn nota þessi önnur gögn gerðir að þeir vita mun vera sú sama 606 00:28:53,260 --> 00:28:54,780 stærð á hverjum einasta vél. 607 00:28:54,780 --> 00:28:58,080 608 00:28:58,080 --> 00:28:58,250 Madhu. 609 00:28:58,250 --> 00:29:00,150 >> Madhu: Ég átti spurningu um samantekt aðferð. 610 00:29:00,150 --> 00:29:04,110 Þannig að ef þú ætlar að skrifa forrit sem notar bókasafn eins CS50 eða eitthvað 611 00:29:04,110 --> 00:29:06,840 svona, ég veit að það bókasafn hefur að, á einhverjum tímapunkti, að vera 612 00:29:06,840 --> 00:29:08,590 saman og tengist inn 613 00:29:08,590 --> 00:29:13,380 En hversu mikið af því sem gerist á samantekt program? 614 00:29:13,380 --> 00:29:15,880 Hvaða hluti af þessu bókasafni ferli á sér stað þegar þú ert 615 00:29:15,880 --> 00:29:18,560 saman eigin program? 616 00:29:18,560 --> 00:29:24,020 >> JASON Hirschhorn: Svo skulum við fara yfir Almennt um stíga á þessu ferli. 617 00:29:24,020 --> 00:29:26,280 Þú skrifar. C skrá. 618 00:29:26,280 --> 00:29:33,530 Í c. Skrá þína, þú # include þinn bókasöfn haus, til dæmis, cs50.h. 619 00:29:33,530 --> 00:29:39,480 Hvað þýðir að mikil eru lína gera til program? 620 00:29:39,480 --> 00:29:40,525 Akchar. 621 00:29:40,525 --> 00:29:43,350 >> AKCHAR: Það bætir frumútgáfur af aðgerðir af haus 622 00:29:43,350 --> 00:29:45,120 skránum í bókasöfnum. 623 00:29:45,120 --> 00:29:45,600 >> JASON Hirschhorn: Einmitt. 624 00:29:45,600 --> 00:29:49,870 Það bætir þau virka frumútgáfur til kóðann þinn. 625 00:29:49,870 --> 00:29:55,230 Svo þegar númerið þitt er að safna saman í Fyrstu stigum, sem þýðandi veit 626 00:29:55,230 --> 00:29:59,250 að þessar aðgerðir í raun fyrir hendi, og að einhvers staðar að þeir hafa verið skilgreindir. 627 00:29:59,250 --> 00:30:02,460 The. H skrár innihalda ekki skilgreiningar þessar aðgerðir eða hvernig 628 00:30:02,460 --> 00:30:03,950 þeir vinna í raun. 629 00:30:03,950 --> 00:30:07,960 Cs50.h nær bara eitthvað sem segir getstring er alvöru hlutur sem 630 00:30:07,960 --> 00:30:09,270 getur gerst. 631 00:30:09,270 --> 00:30:14,240 Og standardio.h segir printf er alvöru hlutur sem getur gerst. 632 00:30:14,240 --> 00:30:23,190 >> Svo er C þinn með þessu. Haus skrá fær breytt í sumar 633 00:30:23,190 --> 00:30:27,750 tölvutæku númer, sem á endanum fær breytt í tvöfaldur 634 00:30:27,750 --> 00:30:30,030 númer, 0 og 1 er er. 635 00:30:30,030 --> 00:30:33,590 Og það er númer sem á endanum gets framkvæma. 636 00:30:33,590 --> 00:30:38,550 The-L cs50 línu - til dæmis, þegar þú ert að skrifa Clang - 637 00:30:38,550 --> 00:30:41,830 og þá eru-l cs50, þú skrifar að inn 638 00:30:41,830 --> 00:30:42,180 Og þú sérð það. 639 00:30:42,180 --> 00:30:43,890 Þegar þú skrifar að þú munt sjá þessi lína upp hér. 640 00:30:43,890 --> 00:30:47,740 Og við munum sjá að í annað þegar við kóða eða síðar þegar við kóða. 641 00:30:47,740 --> 00:30:50,390 >> En það-L cs50 lína gerir eitthvað svolítið öðruvísi en 642 00:30:50,390 --> 00:30:52,440 the # include cs50.h. 643 00:30:52,440 --> 00:30:56,300 Hvað þýðir að-L cs50 lína gera? 644 00:30:56,300 --> 00:30:56,820 Avi? 645 00:30:56,820 --> 00:31:00,310 >> AVI: Ég vil segja að það tengir Bókasafnið að virka 646 00:31:00,310 --> 00:31:02,710 kalla, eins og. o skrá. 647 00:31:02,710 --> 00:31:08,200 >> JASON Hirschhorn: Svo mjög loka, ef ekki blettað á. 648 00:31:08,200 --> 00:31:16,220 The-L cs50 tekur tvöfaldur skrá og sameinast það með tvöfaldur skrá. 649 00:31:16,220 --> 00:31:21,410 Svo cs50.h, það er ekkert lið í að snúa cs50.h frá C tungumál til tvöfaldur á hverjum 650 00:31:21,410 --> 00:31:23,130 einasta sinn sem það er verið að nota. 651 00:31:23,130 --> 00:31:26,650 Það væri kjánalegt, vegna þess að myndi sóa a einhver fjöldi af tími. 652 00:31:26,650 --> 00:31:30,420 Svo það hefur þegar verið unnin og sneri inn í executable. 653 00:31:30,420 --> 00:31:35,430 Og nú er að fara að sameinast með skrá í lok. 654 00:31:35,430 --> 00:31:38,370 Svo þessir 1 og 0 eru að fara að sameinast sjálfur 655 00:31:38,370 --> 00:31:39,150 og 0 í lok. 656 00:31:39,150 --> 00:31:43,670 Svo nú þú munt í raun að hafa raunverulegt 1 og 0 sem skilgreina hvernig getstring, 657 00:31:43,670 --> 00:31:47,890 til dæmis, virkar, eða hvernig printf, Til dæmis, virkar. 658 00:31:47,890 --> 00:31:52,750 >> Og til að fá meiri upplýsingar, það er stutt Vistþýðendur sem Nate gefur að 659 00:31:52,750 --> 00:31:55,410 þú ættir að kíkja sem fer í gegnum þessi skref. 660 00:31:55,410 --> 00:31:56,050 En - 661 00:31:56,050 --> 00:31:56,560 já. 662 00:31:56,560 --> 00:32:01,700 >> STUDENT: Eru þeir alltaf í o skrár. þegar þeir eru í bókasafninu formi, 663 00:32:01,700 --> 00:32:06,764 tilbúin til að sameinast, tengjast - eins og þeir eru í the tvöfaldur kóða? 664 00:32:06,764 --> 00:32:07,600 >> JASON Hirschhorn: OK. 665 00:32:07,600 --> 00:32:08,420 Hvað - 666 00:32:08,420 --> 00:32:11,780 >> STUDENT: Er það alltaf raunin fyrir bókasöfn þegar þú hlekkur þá? 667 00:32:11,780 --> 00:32:12,500 >> JASON Hirschhorn: Já. 668 00:32:12,500 --> 00:32:17,300 Svo er það. S skrár, sem verður vél númer, sem mun einnig vera 669 00:32:17,300 --> 00:32:17,975 dulinn að þér. 670 00:32:17,975 --> 00:32:19,410 Þú þarft ekki að hafa áhyggjur af þeim. 671 00:32:19,410 --> 00:32:24,930 En almennt, já, þeir ' vera í. o skrár tilbúin að fara. 672 00:32:24,930 --> 00:32:27,170 >> STUDENT: Svo þegar þú skip til bókasafn, þú skipið aðeins 673 00:32:27,170 --> 00:32:28,880 á. H og. o? 674 00:32:28,880 --> 00:32:32,210 Þú gera skip ekki. C eða. 'S. 675 00:32:32,210 --> 00:32:33,070 >> JASON Hirschhorn: Svo - 676 00:32:33,070 --> 00:32:36,260 og þetta er í þessari stuttu eins vel, ef þessar upplýsingar virðist vera að koma á 677 00:32:36,260 --> 00:32:36,700 lítið fljótt. 678 00:32:36,700 --> 00:32:39,870 En stutt á vistþýðendur viðræður um þetta eins vel. 679 00:32:39,870 --> 00:32:43,290 Þegar þú skip bókasafn, ef þú skip á. H, haus skrá, þá 680 00:32:43,290 --> 00:32:46,290 virka frumútgáfur, og 1 og 0 er, það er það eina sem þú þarft að gefa. 681 00:32:46,290 --> 00:32:50,640 Þú þarft ekki að gefa hvernig virka virkar, c. skrá. 682 00:32:50,640 --> 00:32:56,360 Vegna þess að benda abstrakt, eða benda API, að benda á þessa SPL, 683 00:32:56,360 --> 00:32:59,650 Stanford flytjanlegur bókasafn, það er fyrir þig að hafa áhyggjur óður í hvernig nýja 684 00:32:59,650 --> 00:33:04,220 GRect virkar, eða hvernig færa verk, eða hvernig bæta verk. 685 00:33:04,220 --> 00:33:06,520 Allt sem þú þarft að vita er að bæta við er fall sem þú getur 686 00:33:06,520 --> 00:33:08,880 nota, og það gerir þetta. 687 00:33:08,880 --> 00:33:12,760 Svo þú í raun þarft ekki að vita hvernig það er skrifað í C. Þú þarft bara að 688 00:33:12,760 --> 00:33:15,460 vita, eru hér aðgerðir, hvað þeir gera, og hér eru 1 og 0 689 00:33:15,460 --> 00:33:18,870 þegar þú vilt virkilega að nota þær. 690 00:33:18,870 --> 00:33:19,530 >> Cool. 691 00:33:19,530 --> 00:33:26,980 Einhverjar fleiri spurningar um vistþýðendur eða annað efni á borðinu? 692 00:33:26,980 --> 00:33:30,300 >> STUDENT: Ég er með spurningu um framkvæmd endurkvæma virka. 693 00:33:30,300 --> 00:33:31,170 Spurning um endurkvæmni. 694 00:33:31,170 --> 00:33:33,030 Ég hafði á tilfinningunni að myndi koma upp. 695 00:33:33,030 --> 00:33:38,310 Þannig að við skulum fljótt að fara í gegnum endurkvæmni með ákveðna 696 00:33:38,310 --> 00:33:40,690 dæmis, þáttatilraun virka. 697 00:33:40,690 --> 00:33:44,920 Því þetta er dæmi um að oft kemur upp eða er notað 698 00:33:44,920 --> 00:33:46,170 til að sýna endurkvæmni. 699 00:33:46,170 --> 00:33:52,390 700 00:33:52,390 --> 00:33:56,410 >> Svo "4!" er að lesa eins og 4 þáttatilraun. 701 00:33:56,410 --> 00:33:59,120 Og hvað þýðir 4 þáttatilraun meina? 702 00:33:59,120 --> 00:34:00,696 Hvað þýðir það að gera? 703 00:34:00,696 --> 00:34:02,235 Hvernig gera þú reiknar 4 aðfeldi? 704 00:34:02,235 --> 00:34:05,250 705 00:34:05,250 --> 00:34:07,960 4 sinnum 3 sinnum 2 sinnum 1. 706 00:34:07,960 --> 00:34:11,889 >> Svo önnur leið til að skrifa 4 aðfeldi er að skrifa þetta. 707 00:34:11,889 --> 00:34:16,780 708 00:34:16,780 --> 00:34:19,022 4 sinnum 3 þáttatilraun. 709 00:34:19,022 --> 00:34:22,080 Því 3 þáttatilraun er 3 sinnum 2 sinnum 1. 710 00:34:22,080 --> 00:34:27,580 SO 4 sinnum 3 þáttatilraun er 4 sinnum 3 sinnum 2 sinnum 1. 711 00:34:27,580 --> 00:34:32,679 Þetta er ástæðan fyrir þáttatilraun er frábær frambjóðandi fyrir endurkvæmni, því það er 712 00:34:32,679 --> 00:34:36,630 ljóst að það er eitthvað sem gerist aftur og aftur og aftur á að 713 00:34:36,630 --> 00:34:39,820 minni ýmislegt þar þú ná til enda. 714 00:34:39,820 --> 00:34:42,570 Þegar þú nærð 1, 1 þáttatilraun er 1. 715 00:34:42,570 --> 00:34:43,719 Þú getur ekki farið mikið lengra. 716 00:34:43,719 --> 00:34:47,219 0 þáttatilraun er einnig skilgreint sem 1. 717 00:34:47,219 --> 00:34:50,679 Þannig að þegar þú færð að 1 eða 0, þú ert í lok, og þú getur 718 00:34:50,679 --> 00:34:53,219 byrja að fara aftur upp. 719 00:34:53,219 --> 00:34:59,540 Þannig að ef við vildum að skrifa endurkvæma virka til að reikna aðfeldi, 720 00:34:59,540 --> 00:35:02,170 við erum að fara að skrifa nokkrar sauðakóðanum fyrir það núna. 721 00:35:02,170 --> 00:35:03,300 Áður en við skrifa að sauðakóðanum - 722 00:35:03,300 --> 00:35:05,660 Ég skal gefa ykkur nokkrar mínútur til að skrifa falsaður kóðann eða bara hugsa 723 00:35:05,660 --> 00:35:09,600 um það - það eru tveir hlutir fresti endurkvæma virka þarf. 724 00:35:09,600 --> 00:35:12,530 Hvað eru þessir tveir hlutir? 725 00:35:12,530 --> 00:35:13,220 >> JACK: Það þarf að kalla sig. 726 00:35:13,220 --> 00:35:13,680 >> JASON Hirschhorn: Nói? 727 00:35:13,680 --> 00:35:14,460 Ó, Jack. 728 00:35:14,460 --> 00:35:15,100 Fara á undan. 729 00:35:15,100 --> 00:35:16,640 >> JACK: Það þarf að kalla sig. 730 00:35:16,640 --> 00:35:19,220 >> JASON Hirschhorn: Svo endurkvæma virka þarf endurkvæma hringja, er 731 00:35:19,220 --> 00:35:20,220 hringja til að sjálfu sér. 732 00:35:20,220 --> 00:35:20,770 Það er eitt. 733 00:35:20,770 --> 00:35:21,510 Og hvað er annar hlutur? 734 00:35:21,510 --> 00:35:22,250 >> JACK: A grunn tilfelli. 735 00:35:22,250 --> 00:35:23,780 >> JASON Hirschhorn: A grunn tilfelli. 736 00:35:23,780 --> 00:35:26,940 A grunn tilfelli er, hér er þegar við hætta. 737 00:35:26,940 --> 00:35:29,510 Svo virka fær kallaði. 738 00:35:29,510 --> 00:35:31,410 Grunnurinn er að ræða kemur fyrst. 739 00:35:31,410 --> 00:35:33,710 Þú vilja til vita ef þú ert á the endir. 740 00:35:33,710 --> 00:35:37,110 Og ef þú ert ekki í lok, þú gera endurkvæma símtöl. 741 00:35:37,110 --> 00:35:39,880 Og þú ferð í gegnum þessa aðgerð aftur, athuga stöð mál þitt aftur. 742 00:35:39,880 --> 00:35:42,575 Ef þú ert ekki endirinn, að þú annar endurkvæma hringja, 743 00:35:42,575 --> 00:35:44,130 et cetera, et cetera. 744 00:35:44,130 --> 00:35:47,110 >> Þessi 'hvers vegna endurkvæma virka alltaf þurfa þessir grunn tilvikum og þá 745 00:35:47,110 --> 00:35:48,210 endurkvæma símtöl. 746 00:35:48,210 --> 00:35:51,280 Ef þú ert ekki með endurkvæma hringja, það myndi ekki vera endurkvæma virka. 747 00:35:51,280 --> 00:35:53,210 Ef þú did ekki hafa grunn að ræða, þú myndir fara að eilífu og 748 00:35:53,210 --> 00:35:54,780 það væri engin endir. 749 00:35:54,780 --> 00:35:57,870 Og stöð ræða kemur alltaf fyrst, vegna þess að þú verður alltaf vilja til að athuga 750 00:35:57,870 --> 00:36:00,420 ef þú ert í lok fyrsta. 751 00:36:00,420 --> 00:36:04,770 Svo áður en við gerum sumir sauðakóðanum, hvers vegna ertu ekki að taka eina mínútu til að hugsa um 752 00:36:04,770 --> 00:36:09,360 hvernig endurkvæma þáttatilraun virka myndi vera skrifuð? 753 00:36:09,360 --> 00:36:23,340 754 00:36:23,340 --> 00:36:26,010 >> Einnig, eins og margir eins og þú ert að gera, skrifa það út á blaði er 755 00:36:26,010 --> 00:36:27,960 hvað þú ert að fara til verða að gera á spurningakeppni á morgun. 756 00:36:27,960 --> 00:36:32,160 Svo sennilega gott að gera úr skugga um að númerið sem þú ert að skrifa 757 00:36:32,160 --> 00:36:34,420 niður á blað - 758 00:36:34,420 --> 00:36:35,160 eða þú getur gert það. 759 00:36:35,160 --> 00:36:36,710 Þú veist hvar semikommum eru. 760 00:36:36,710 --> 00:36:37,660 Þú manst setningafræði. 761 00:36:37,660 --> 00:36:40,400 Þar sem þú ert ekki fær um að hafa þýðanda segja að þú gerðir villu. 762 00:36:40,400 --> 00:37:02,356 763 00:37:02,356 --> 00:37:07,240 >> Einnig fylgja þeim línum, á morgun, þegar þú hefur erfðaskrá vandamál, ef þú 764 00:37:07,240 --> 00:37:11,490 eru hljóp fyrir tíma, eða ef þú ert mjög rugla um hvernig þú átt að 765 00:37:11,490 --> 00:37:16,030 skrifa tiltekin hlutur í C, það myndi behoove þér að skrifa gervi-kóða 766 00:37:16,030 --> 00:37:18,160 eða skrifa athugasemdir á eins og heilbrigður. 767 00:37:18,160 --> 00:37:21,940 Vegna þess að það er algjör trúnaður fyrir fullt af spurningum um quiz. 768 00:37:21,940 --> 00:37:24,840 Svo þú might vera hljóp, eða þú gæti bara að rugla. 769 00:37:24,840 --> 00:37:28,030 Skrifa í athugasemdir eða gervi-kóða eru oft leiðir sem þú 770 00:37:28,030 --> 00:37:29,360 hægt að fá hluta lánsfé. 771 00:37:29,360 --> 00:37:31,440 >> Svo ekki fara eitthvað autt á spurningakeppni. 772 00:37:31,440 --> 00:37:33,490 Það er engin viðurlög við setja hlutina inn 773 00:37:33,490 --> 00:37:37,650 Í raun, setja í gervi-kóða eða athugasemdir er að fara að hjálpa Röð 774 00:37:37,650 --> 00:37:40,410 reikna út ef þú veist í raun hvað þú ert að tala um, og kannski verðlaun 775 00:37:40,410 --> 00:37:42,030 þú sumir hluta kredit fyrir það. 776 00:37:42,030 --> 00:37:44,510 >> Einnig meðfram þeim línum, skrifa skýrt. 777 00:37:44,510 --> 00:37:47,650 Ef við getum ekki í raun hvað þú ert að skrifa, við erum ekki að fara að hringja í þig 778 00:37:47,650 --> 00:37:49,900 Á miðnætti á morgun til að reikna út það sem þú skrifaðir. 779 00:37:49,900 --> 00:37:51,520 Við erum bara að fara að taka burt stig. 780 00:37:51,520 --> 00:37:56,570 Skrifa skýrt svo að við getum heyrt, eða öllu heldur, við getum lesið það sem þú skrifaðir. 781 00:37:56,570 --> 00:38:00,230 >> Og ef það segir tvær setningar, ekki skrifa málsgrein. 782 00:38:00,230 --> 00:38:02,280 Fylgdu leiðbeiningunum. 783 00:38:02,280 --> 00:38:03,500 Skrifa skýrt. 784 00:38:03,500 --> 00:38:07,720 Og skrifa í þeim athugasemdum eða sauðakóðanum fyrir spurningar sem gæti 785 00:38:07,720 --> 00:38:10,270 verðlaun hluta lánsfé. 786 00:38:10,270 --> 00:38:12,520 >> OK, við skulum fara að þátta. 787 00:38:12,520 --> 00:38:15,000 Þannig að við höfum virka aðfeldi. 788 00:38:15,000 --> 00:38:18,400 789 00:38:18,400 --> 00:38:21,550 Ef ég væri að í raun skrifa þetta í C, hvað þarf ég að setja áður en nafn 790 00:38:21,550 --> 00:38:22,800 af virka? 791 00:38:22,800 --> 00:38:24,880 792 00:38:24,880 --> 00:38:30,060 The aftur tegund, sem í þessu tilfelli, munum við gefa það int. 793 00:38:30,060 --> 00:38:35,450 Og þá, er inni í hrokkið axlabönd hvað fer inni í hrokkið axlabönd fyrir 794 00:38:35,450 --> 00:38:36,850 fall? 795 00:38:36,850 --> 00:38:37,950 >> NEMENDUR: Rök tegund. 796 00:38:37,950 --> 00:38:39,150 >> JASON Hirschhorn: breitum. 797 00:38:39,150 --> 00:38:42,680 Svo þáttatilraun mun líklega taka rifrildi. 798 00:38:42,680 --> 00:38:44,500 Það verður líklega aðeins taka eitt viðfang. 799 00:38:44,500 --> 00:38:49,450 Og við munum segja það mun taka heiltala sem kallast x. 800 00:38:49,450 --> 00:38:52,770 Og aftur, þegar þú skrifar frumgerð af fall eða skrifa aðgerðina 801 00:38:52,770 --> 00:38:57,110 í kóðanum þínum áður en skilgreina það, þú skrifa gögn tegund og nafn 802 00:38:57,110 --> 00:39:01,370 sem breytu fyrir að virka aðeins. 803 00:39:01,370 --> 00:39:06,350 Svo er hægt að fara nokkrum númerið inn þetta virka, það verður vísað til sem x 804 00:39:06,350 --> 00:39:07,340 innra með sér. 805 00:39:07,340 --> 00:39:08,755 >> Við höfum þáttatilraun fallið. 806 00:39:08,755 --> 00:39:12,030 807 00:39:12,030 --> 00:39:15,850 Við þurfum tvennt, a grunntilvikið og endurkvæma hringja. 808 00:39:15,850 --> 00:39:20,900 Hvað er undirstaða málið fyrir þáttatilraun? 809 00:39:20,900 --> 00:39:24,850 Einhver sem skrifaði það út og sem hefur ekki talað enn, hvað er undirstaða 810 00:39:24,850 --> 00:39:26,100 rök fyrir þáttatilraun? 811 00:39:26,100 --> 00:39:28,400 812 00:39:28,400 --> 00:39:30,930 >> STUDENT: Ef n er minna en 2, skila 1. 813 00:39:30,930 --> 00:39:33,520 >> JASON Hirschhorn: Ef n er minna en 2, skila 1. 814 00:39:33,520 --> 00:39:37,216 Mér finnst að vegna þess að sér um 0 og 1. 815 00:39:37,216 --> 00:39:45,290 Þannig að við munum gera x <2, skila 1. 816 00:39:45,290 --> 00:39:47,870 Ef við fá liðið 0, ef við fáum liðin 1, þessi aðgerð mun 817 00:39:47,870 --> 00:39:49,790 strax aftur 1. 818 00:39:49,790 --> 00:39:54,020 Ef við fá liðið nokkrar tala hærri en eða jafnt og 2, við erum að fara að 819 00:39:54,020 --> 00:39:55,370 hafa endurkvæma hringja okkar. 820 00:39:55,370 --> 00:39:57,855 >> Og svo hvernig er að fara að vinna? 821 00:39:57,855 --> 00:40:01,070 Getur einhver annar sem vann að þessu sem hefur ekki talað enn gefa mér 822 00:40:01,070 --> 00:40:07,380 endurkvæma hringja fyrir þessa aðgerð í sauðakóðanum? 823 00:40:07,380 --> 00:40:10,770 Ef við fá liðið í tölu x og það er meiri en 2, hvað 824 00:40:10,770 --> 00:40:13,370 viljum við gera? 825 00:40:13,370 --> 00:40:17,930 Við höfum einnig dæmi skrifað á hlið sem gæti gefið þér vísbendingu. 826 00:40:17,930 --> 00:40:20,770 >> STUDENT: Hringja x sinnum aðfeldi x mínus 1? 827 00:40:20,770 --> 00:40:22,020 >> JASON Hirschhorn: Einmitt rétt. 828 00:40:22,020 --> 00:40:24,610 829 00:40:24,610 --> 00:40:37,750 Við erum að fara að fara aftur x sinnum aðfeldi x mínus 1. 830 00:40:37,750 --> 00:40:41,810 Og það jafnvel þó að ég skrifaði upp, grundvallaratriðum, hvað þú sagðir á ensku, 831 00:40:41,810 --> 00:40:44,580 þetta þáttatilraun virka vilja fá kallaði aftur. 832 00:40:44,580 --> 00:40:46,320 Það verður keyrt á x mínus 1. 833 00:40:46,320 --> 00:40:49,320 Það mun koma aftur með einhverja heiltölu og þá er það mun margfalda þessar tvær 834 00:40:49,320 --> 00:40:52,050 saman, og það gildi verður aftur til hvað heitir þetta 835 00:40:52,050 --> 00:40:55,010 þáttatilraun virka, sem gæti vera annað dæmi af 836 00:40:55,010 --> 00:40:58,420 þetta þáttatilraun virka. 837 00:40:58,420 --> 00:41:01,360 >> Svo er þessi dæmi um endurkvæma virka, mjög 838 00:41:01,360 --> 00:41:02,530 einfalt endurkvæma virka. 839 00:41:02,530 --> 00:41:04,530 En flestir vilja vera svona. 840 00:41:04,530 --> 00:41:11,170 Ef þú vildi eins og góð endurkvæma skora fyrir prófið, reyna erfðaskrá 841 00:41:11,170 --> 00:41:13,230 Tvíundarleit undirmöppum. 842 00:41:13,230 --> 00:41:18,950 Vegna þess að ef þú gerðir tvöfaldur leita Heimadæmi þrjú, þú gerðir sennilega það 843 00:41:18,950 --> 00:41:21,730 iteratively í while lykkju. 844 00:41:21,730 --> 00:41:23,700 >> En það getur einnig verið skrifaður endurkvæmt. 845 00:41:23,700 --> 00:41:26,310 Þú ert að fara að þurfa að skrifa þína eigin sérstakt fall sem tekur nokkrar 846 00:41:26,310 --> 00:41:29,020 mismunandi stjórn-lína rök - eða ekki stjórn-lína rök, sum 847 00:41:29,020 --> 00:41:30,910 mismunandi bara venjulegur rök. 848 00:41:30,910 --> 00:41:33,870 En þú gætir skrifað tvöfaldur leit endurkvæmur eins vel. 849 00:41:33,870 --> 00:41:36,190 >> STUDENT: Svo þú gætir hafa einnig skrifað, í stað x mínus 1, þú 850 00:41:36,190 --> 00:41:39,502 gæti hafa einnig skrifað x mínus mínus, eða þú gætir hafa 851 00:41:39,502 --> 00:41:40,830 skrifað mínus mínus x. 852 00:41:40,830 --> 00:41:44,740 Geturðu útskýrt bara virkilega fljótt hvers vegna þá væri mismunandi hlutir, 853 00:41:44,740 --> 00:41:49,510 eins hvað munur er á milli x mínus mínus og mínus mínus x? 854 00:41:49,510 --> 00:41:51,320 >> JASON Hirschhorn: Nei, ég er ekki að fara inn í það. 855 00:41:51,320 --> 00:41:55,500 En ég mun tala við þig um það á eftir flokki. x mínus mínus mínus mínus x 856 00:41:55,500 --> 00:41:57,780 lækka x um 1. 857 00:41:57,780 --> 00:41:59,090 En þeir gera það aðeins öðruvísi. 858 00:41:59,090 --> 00:42:00,340 En ég vil ekki að fara inn í það. 859 00:42:00,340 --> 00:42:04,330 860 00:42:04,330 --> 00:42:09,090 Aðrar spurningar um endurkvæmni eða þessi aðgerð? 861 00:42:09,090 --> 00:42:10,140 Það er í raun ekki einu sinni sauðakóðanum. 862 00:42:10,140 --> 00:42:15,060 Það er í grundvallaratriðum um númerið í C Þú myndi skrifa fyrir þetta. 863 00:42:15,060 --> 00:42:19,393 >> OK, aðrar spurningar um málefni upp hér? 864 00:42:19,393 --> 00:42:19,864 Já. 865 00:42:19,864 --> 00:42:23,130 >> STUDENT: ÉG hafa a fljótur samdráttur um fljótandi benda og nákvæmni. 866 00:42:23,130 --> 00:42:24,260 >> JASON Hirschhorn: Fljótandi benda og nákvæmni. 867 00:42:24,260 --> 00:42:26,920 Getur einhver virkilega hratt gefa mér samdráttur um 868 00:42:26,920 --> 00:42:28,210 fljótandi benda og nákvæmni? 869 00:42:28,210 --> 00:42:30,420 Þið öll þurft að gera þetta fyrir þinn Heimadæmi, svo þú ert allur 870 00:42:30,420 --> 00:42:31,700 þekkja það. 871 00:42:31,700 --> 00:42:35,090 Eða kannski ekki allra. 872 00:42:35,090 --> 00:42:36,602 Einhver? 873 00:42:36,602 --> 00:42:39,530 Gefa mér byrjaði blettur. 874 00:42:39,530 --> 00:42:40,750 Fljótandi benda og nákvæmni. 875 00:42:40,750 --> 00:42:42,380 Hvað er vandamálið? 876 00:42:42,380 --> 00:42:42,960 Já. 877 00:42:42,960 --> 00:42:43,680 Victoria? 878 00:42:43,680 --> 00:42:44,480 >> VANESSA: Vanessa. 879 00:42:44,480 --> 00:42:45,285 >> JASON Hirschhorn: Vanessa. 880 00:42:45,285 --> 00:42:45,680 Sorry. 881 00:42:45,680 --> 00:42:51,550 >> VANESSA: Það er aðeins tímabundið fjölda af tölum sem hægt er að eiga fulltrúa 882 00:42:51,550 --> 00:42:57,930 vegna þess að þú ert á, í okkar raunin, a 32-bita kerfi. 883 00:42:57,930 --> 00:43:03,080 Svo þú ert góður af að gera upp nokkrar tölur. 884 00:43:03,080 --> 00:43:03,910 >> JASON Hirschhorn: Svo er það nákvæmlega rétt. 885 00:43:03,910 --> 00:43:08,110 Það eru bara tiltekið magn af tölur sem hægt er að lýsa. 886 00:43:08,110 --> 00:43:11,770 Ef þú margfaldar tvær mjög stórar tölur, það gæti flæða magn 887 00:43:11,770 --> 00:43:13,950 bila sem þú þarft til að tákna heiltala. 888 00:43:13,950 --> 00:43:17,930 Þessi 'hvers vegna stundum notum við lengi lengi í stað int. 889 00:43:17,930 --> 00:43:19,210 Það hefur meira rými. 890 00:43:19,210 --> 00:43:21,210 Sem getur haldið stærri númer. 891 00:43:21,210 --> 00:43:24,310 >> Fleytitölu nákvæmni hefur að gera með að, en einnig þarf að gera við 892 00:43:24,310 --> 00:43:29,300 staðreynd að aukastaf númer eru ekki alltaf fulltrúa. 893 00:43:29,300 --> 00:43:29,540 Sorry. 894 00:43:29,540 --> 00:43:31,280 Leyfðu mér að setja þetta aftur upp. 895 00:43:31,280 --> 00:43:36,610 Tugatölunni 1.0 er ekki alltaf fulltrúa eins og þú vildi búast við, 896 00:43:36,610 --> 00:43:40,770 1,000000000. 897 00:43:40,770 --> 00:43:50,360 Það er stundum fulltrúa sem 1,000000001 eða 0,999999999. 898 00:43:50,360 --> 00:43:52,780 Það gæti verið jafnvel 89 kastað þarna einhvers staðar. 899 00:43:52,780 --> 00:43:56,560 Svo þeir aukastaf númer eru ekki fulltrúa nákvæmlega eins og þú vilt 900 00:43:56,560 --> 00:43:58,430 búast við þá til að vera fulltrúa. 901 00:43:58,430 --> 00:44:00,010 >> Svo í Heimadæmi - 902 00:44:00,010 --> 00:44:00,860 var það tveir? - 903 00:44:00,860 --> 00:44:05,290 Heimadæmi tvö, þar sem við fjallaði fljótandi tölur benda, þegar við vildum 904 00:44:05,290 --> 00:44:08,690 þá að tákna nákvæmlega hvað við vildum þá til að tákna, fjölda 905 00:44:08,690 --> 00:44:12,860 smápeninga, eða fjöldi sent, við margfalda þá með 100. 906 00:44:12,860 --> 00:44:14,750 Við ávalar þeim. 907 00:44:14,750 --> 00:44:18,660 Og þá erum við að skera burt allt bak við kommu. 908 00:44:18,660 --> 00:44:22,020 Það var til að tryggja að þeir myndu reyndar jafnt nákvæmlega það sem við vildum 909 00:44:22,020 --> 00:44:22,410 þeim að jafna. 910 00:44:22,410 --> 00:44:26,870 >> Því þegar þú tekur eitthvað sem er A fljóta og snúa það inn í int, þú 911 00:44:26,870 --> 00:44:29,860 skera burt allt til hægri á kommu. 912 00:44:29,860 --> 00:44:33,900 Vegna þess að það er einhver fleytitölu imprecision, 100.000 gæti verið 913 00:44:33,900 --> 00:44:37,440 fulltrúa sem 99,999999999. 914 00:44:37,440 --> 00:44:40,350 Og ef þú skera bara burt allt til rétt strax, þú ert að fara að 915 00:44:40,350 --> 00:44:41,600 fá vitlaust númer. 916 00:44:41,600 --> 00:44:44,050 917 00:44:44,050 --> 00:44:44,180 Já. 918 00:44:44,180 --> 00:44:45,290 >> STUDENT: Ég átti spurning um steypu. 919 00:44:45,290 --> 00:44:47,500 Hvaða röð er það komið í? 920 00:44:47,500 --> 00:44:54,480 Ef þú vilt gera fljóta, sviga, 1 skipt með 10, er það ekki 1 deilt með 10, 921 00:44:54,480 --> 00:44:58,910 þá fá 0,1, þá snúa það í fljóta? 922 00:44:58,910 --> 00:45:01,470 >> JASON Hirschhorn: Ef þú gerir fljóta 1 deilt með 10 - 923 00:45:01,470 --> 00:45:02,550 >> STUDENT: Já, og þá jafnt - 924 00:45:02,550 --> 00:45:04,240 Jæja, myndi það venjulega hafa það jafnir í - 925 00:45:04,240 --> 00:45:04,690 Já. 926 00:45:04,690 --> 00:45:06,760 Þú vilt gera það fljóta, ekki satt? 927 00:45:06,760 --> 00:45:12,790 >> JASON Hirschhorn: OK, þannig að við erum að fara að nota það til að segue inn í vangaveltur út 928 00:45:12,790 --> 00:45:15,390 Svörin við þessum spurningum með erfðaskrá. 929 00:45:15,390 --> 00:45:18,180 Þar sem þú munt sennilega hafa a einhver fjöldi af þessir mínútu spurningar og góð leið 930 00:45:18,180 --> 00:45:19,100 að leysa úr þeim er í gegnum erfðaskrá. 931 00:45:19,100 --> 00:45:21,320 Þannig að við erum að fara að kóða þetta núna, og þá erum við að fara að fara aftur og 932 00:45:21,320 --> 00:45:24,020 kóðann spurninguna þú hefðir. 933 00:45:24,020 --> 00:45:24,950 >> Þannig að fyrsta línan - 934 00:45:24,950 --> 00:45:29,390 Ég ætti ekki að hafa skrifað það - hvað er Það fyrsta sem við viljum gera þegar við 935 00:45:29,390 --> 00:45:32,250 opna nýtt skjal í gedit? 936 00:45:32,250 --> 00:45:34,190 >> STUDENT: Hafa. 937 00:45:34,190 --> 00:45:35,920 >> JASON Hirschhorn: Hafa hvað? 938 00:45:35,920 --> 00:45:37,952 >> STUDENT: CS50 bókasafn. 939 00:45:37,952 --> 00:45:39,920 >> JASON Hirschhorn: OK. 940 00:45:39,920 --> 00:45:42,590 Hvað annað ættum við að fela? 941 00:45:42,590 --> 00:45:46,820 Við erum bara að fara að athuga hvað gerist þegar þú kastar eitthvað að fljóta. 942 00:45:46,820 --> 00:45:48,605 En hvað þurfum við að fela ef við erum fara að skrifa C forrit? 943 00:45:48,605 --> 00:45:49,300 >> STUDENT: Standard I / O. 944 00:45:49,300 --> 00:45:50,625 >> JASON Hirschhorn: stdio.h. 945 00:45:50,625 --> 00:45:54,880 Við reyndar þurfum ekki, því að það program, cs50.h, jafnvel þó að það er 946 00:45:54,880 --> 00:45:55,920 alltaf gagnlegt að fela það. 947 00:45:55,920 --> 00:45:58,260 En við þurfum alltaf stdio.h. 948 00:45:58,260 --> 00:45:59,660 >> STUDENT: Þegar kóðun í C? 949 00:45:59,660 --> 00:46:15,770 >> JASON Hirschhorn: Þegar kóðun í C. 950 00:46:15,770 --> 00:46:17,090 >> Svo ég spara það eins og this. C skrá. 951 00:46:17,090 --> 00:46:18,590 Ég fæ gott setningafræði auðkenning. 952 00:46:18,590 --> 00:46:22,890 Ég skrifaði ógilt inni helsta. 953 00:46:22,890 --> 00:46:24,792 Hvað þýðir ógilt meina? 954 00:46:24,792 --> 00:46:26,740 >> STUDENT: Tekur ekki allir stjórn-lína rifrildi. 955 00:46:26,740 --> 00:46:28,900 >> JASON Hirschhorn: void þýðir, í þessu tilfelli, aðal undanskilur 956 00:46:28,900 --> 00:46:29,700 stjórn-lína rifrildi. 957 00:46:29,700 --> 00:46:32,720 Í öðrum tilvikum, þá þýðir það að virka tekur ekki stjórn-lína rök. 958 00:46:32,720 --> 00:46:36,560 Eða virka, ef ég væri að skrifa ógilt Helstu (tóm), sem myndi segja helstu'S 959 00:46:36,560 --> 00:46:38,460 ekki aftur neitt. 960 00:46:38,460 --> 00:46:39,960 Svo ógilt bara þýðir ekkert. 961 00:46:39,960 --> 00:46:42,510 Hvað myndi ég skrifa ef ég væri að taka stjórn-lína rök? 962 00:46:42,510 --> 00:46:45,250 963 00:46:45,250 --> 00:46:47,150 >> STUDENT: INT hring c band boga v 964 00:46:47,150 --> 00:46:49,055 >> JASON Hirschhorn: INT argc band argv. 965 00:46:49,055 --> 00:46:54,050 966 00:46:54,050 --> 00:46:55,572 Er það satt? 967 00:46:55,572 --> 00:46:58,720 >> STUDENT: Það er char stjörnu argv sviga. 968 00:46:58,720 --> 00:47:01,730 >> JASON Hirschhorn: Svo þú gætir skrifað band argv sviga eða bleikju stjörnu argv 969 00:47:01,730 --> 00:47:03,710 sviga, en þú þarft sviga. 970 00:47:03,710 --> 00:47:06,290 Vegna argv er fylki strengi, man. 971 00:47:06,290 --> 00:47:07,360 Það er ekki bara einn strengur. 972 00:47:07,360 --> 00:47:10,350 Svo er band argv, hér er einn strengur heitir argv. 973 00:47:10,350 --> 00:47:13,630 String argv sviga er, hér er fylki af strengjum. 974 00:47:13,630 --> 00:47:17,865 Svo int argc band argv sviga væri eitthvað sem ég 975 00:47:17,865 --> 00:47:18,810 myndi sennilega skrifað. 976 00:47:18,810 --> 00:47:23,050 >> Svo þú vilja til spara í heiltala? 977 00:47:23,050 --> 00:47:24,285 >> STUDENT: Já, heiltala. 978 00:47:24,285 --> 00:47:25,840 Eða í fljóta. 979 00:47:25,840 --> 00:47:26,710 >> JASON Hirschhorn: Í fljóta? 980 00:47:26,710 --> 00:47:30,790 Eins, fljóta x jafngildir 1 deilt með 10. 981 00:47:30,790 --> 00:47:32,040 >> JASON Hirschhorn: OK. 982 00:47:32,040 --> 00:47:40,160 983 00:47:40,160 --> 00:47:42,240 Hvernig prenta ég út fljóta í printf? 984 00:47:42,240 --> 00:47:45,100 985 00:47:45,100 --> 00:47:46,714 Hvað? 986 00:47:46,714 --> 00:47:47,560 >> STUDENT:% f. 987 00:47:47,560 --> 00:47:48,300 >> JASON Hirschhorn:% f. 988 00:47:48,300 --> 00:47:50,810 Hvað er heiltala? 989 00:47:50,810 --> 00:47:52,110 D eða i. 990 00:47:52,110 --> 00:47:53,000 Hvað er a band? 991 00:47:53,000 --> 00:47:54,240 >> STUDENT: s. 992 00:47:54,240 --> 00:47:56,140 >> JASON Hirschhorn: s. 993 00:47:56,140 --> 00:47:57,550 Hvernig fæ ég nýja línu? 994 00:47:57,550 --> 00:47:58,800 >> STUDENT: sviga n. 995 00:47:58,800 --> 00:48:04,610 996 00:48:04,610 --> 00:48:07,100 >> JASON Hirschhorn: Hvað á ég aftur ef helstu keyrir rétt? 997 00:48:07,100 --> 00:48:08,360 >> STUDENT: 0. 998 00:48:08,360 --> 00:48:09,430 Þarf ég að skrifa þessi lína, þó? 999 00:48:09,430 --> 00:48:10,170 >> STUDENT: Nei 1000 00:48:10,170 --> 00:48:11,513 OK, við munum ekki skrifa það, þá. 1001 00:48:11,513 --> 00:48:16,450 1002 00:48:16,450 --> 00:48:17,190 Geta allir lesið það? 1003 00:48:17,190 --> 00:48:18,485 Það lítur svolítið lítill. 1004 00:48:18,485 --> 00:48:20,160 Geta allir sjá, eða ættu Ég gera það stærra? 1005 00:48:20,160 --> 00:48:23,480 1006 00:48:23,480 --> 00:48:25,100 Ég held fyrir myndavélina, munum við gera það svolítið stærri, þó. 1007 00:48:25,100 --> 00:48:35,750 1008 00:48:35,750 --> 00:48:38,410 >> JASON Hirschhorn: Ef ég vil að snúa þessu C. Skrá inn í executable, hvað 1009 00:48:38,410 --> 00:48:39,260 skrifa ég? 1010 00:48:39,260 --> 00:48:41,610 >> STUDENT: Gerðu próf. 1011 00:48:41,610 --> 00:48:42,080 >> JASON Hirschhorn: Fyrirgefðu? 1012 00:48:42,080 --> 00:48:42,790 >> STUDENT: Gerðu próf. 1013 00:48:42,790 --> 00:48:44,040 >> JASON Hirschhorn: Gerðu próf. 1014 00:48:44,040 --> 00:48:46,700 1015 00:48:46,700 --> 00:48:48,410 Við vorum að tala um þessa línu áðan. 1016 00:48:48,410 --> 00:48:49,140 Clang. 1017 00:48:49,140 --> 00:48:51,270 Hvað er clang? 1018 00:48:51,270 --> 00:48:52,200 Nafn þýðanda. 1019 00:48:52,200 --> 00:48:53,920 Hvað er þetta lína? 1020 00:48:53,920 --> 00:48:55,580 >> STUDENT: Setur það upp fyrir notkun gdb. 1021 00:48:55,580 --> 00:48:59,230 >> JASON Hirschhorn: Leikmynd það upp fyrir notkun gdb. 1022 00:48:59,230 --> 00:49:02,338 Þessi lína, hvað er það? 1023 00:49:02,338 --> 00:49:03,290 >> STUDENT: Kóðinn. 1024 00:49:03,290 --> 00:49:06,010 >> JASON Hirschhorn: Það er frumskrár, c. skrá. 1025 00:49:06,010 --> 00:49:08,150 Hvað gera þessar tvær línur gera? 1026 00:49:08,150 --> 00:49:10,245 Eða þessir tveir ekki línur. 1027 00:49:10,245 --> 00:49:12,300 >> STUDENT: hún nöfn það prófa. 1028 00:49:12,300 --> 00:49:15,410 >> JASON Hirschhorn: Svo segir þjóta o, nefna það eitthvað öðruvísi. 1029 00:49:15,410 --> 00:49:16,790 Og hér þú ert að kalla það próf. 1030 00:49:16,790 --> 00:49:18,900 Ef ég var ekki búin að í, hvað myndi það nafn þetta? 1031 00:49:18,900 --> 00:49:20,260 >> STUDENT: A.out. 1032 00:49:20,260 --> 00:49:22,340 >> JASON Hirschhorn: A.out. 1033 00:49:22,340 --> 00:49:25,366 Hvað þýðir þetta að gera? 1034 00:49:25,366 --> 00:49:27,670 >> STUDENT: Tenglar stærðfræði bókasafn. 1035 00:49:27,670 --> 00:49:29,550 >> JASON Hirschhorn: Það tenglar í stærðfræði bókasafn. 1036 00:49:29,550 --> 00:49:32,880 Við vildum ekki fela í sér stærðfræði bókasafn, en þar sem það er svo algengt, hafa þeir 1037 00:49:32,880 --> 00:49:35,780 skrifað gera að alltaf eru stærðfræði bókasafn. 1038 00:49:35,780 --> 00:49:39,050 Og sömuleiðis, þetta felur í sér á CS50 bókasafn. 1039 00:49:39,050 --> 00:49:43,010 >> OK, þannig að ef við lista, höfum við nú keyrsluskrá sem heitir próf. 1040 00:49:43,010 --> 00:49:45,150 Að framkvæma það, ég skrifa próf. 1041 00:49:45,150 --> 00:49:48,330 Ég sé að fljótandi lið mitt, eins og vænta, er 0. 1042 00:49:48,330 --> 00:49:50,890 1043 00:49:50,890 --> 00:49:51,590 Er þessi - 1044 00:49:51,590 --> 00:49:52,060 svo - 1045 00:49:52,060 --> 00:49:55,210 >> STUDENT: Þá ef þú setur fljóta nú, eins og þú kasta á það sem fljóta - 1046 00:49:55,210 --> 00:49:56,870 >> JASON Hirschhorn: Cast sem er frá 1. flotholt? 1047 00:49:56,870 --> 00:49:59,180 >> STUDENT: Nei, kastaði fullt hlutur - 1048 00:49:59,180 --> 00:49:59,500 já. 1049 00:49:59,500 --> 00:50:02,460 Ef þú gerðir bara það, myndi að gera það 0,1? 1050 00:50:02,460 --> 00:50:07,170 >> JASON Hirschhorn: í lagi, svo í raun fljótt, 1 deilt með 10, þeir eru 1051 00:50:07,170 --> 00:50:08,690 heiltölur sem skipt er. 1052 00:50:08,690 --> 00:50:13,580 Svo þegar þú skiptir heiltölur, þá eru þeir 0, og þú ert að vista sem 0 í 1053 00:50:13,580 --> 00:50:17,170 fljóta, vegna þess að rista er bara heiltala deild. 1054 00:50:17,170 --> 00:50:19,180 Svo nú erum við að beygja eitthvað í fljóta. 1055 00:50:19,180 --> 00:50:21,650 >> Við skulum sjá hvað gerist. 1056 00:50:21,650 --> 00:50:22,900 Við munum gera próf. 1057 00:50:22,900 --> 00:50:25,870 1058 00:50:25,870 --> 00:50:31,090 Svo nú sjáum við að þessi skástrik var ekki heiltala deild, það var fljótandi 1059 00:50:31,090 --> 00:50:32,640 benda deild. 1060 00:50:32,640 --> 00:50:35,700 Vegna þess að einn af breitum hafði verið kastað að fljóta. 1061 00:50:35,700 --> 00:50:38,380 Svo nú var að segja, meðhöndla þessa deild eins og við erum að fást við 1062 00:50:38,380 --> 00:50:40,140 fljótandi stig, ekki með heiltölur. 1063 00:50:40,140 --> 00:50:42,760 Og svo fáum við svar við væntum. 1064 00:50:42,760 --> 00:50:44,620 >> Við skulum sjá hvað gerist - 1065 00:50:44,620 --> 00:50:47,103 oops. 1066 00:50:47,103 --> 00:50:51,646 Ef ég vildi að prenta meiri aukastaf blettir, hvernig gæti ég gert það? 1067 00:50:51,646 --> 00:50:55,550 >> STUDENT: Point punktur F, eða eins og margir aukastafi og þú vilt. 1068 00:50:55,550 --> 00:51:02,280 1069 00:51:02,280 --> 00:51:04,440 >> JASON Hirschhorn: Svo ég prenta 10 aukastöfum blettur. 1070 00:51:04,440 --> 00:51:06,610 Og við nú að sjá að við erum að fá sumir furðulegur efni. 1071 00:51:06,610 --> 00:51:09,650 Og það fer aftur til spurningunni þinni um fljótandi lið imprecision. 1072 00:51:09,650 --> 00:51:10,950 Það er undarlegt efni geymd hér. 1073 00:51:10,950 --> 00:51:13,650 1074 00:51:13,650 --> 00:51:15,275 >> OK, ekki að svara spurningunni þinni? 1075 00:51:15,275 --> 00:51:18,550 1076 00:51:18,550 --> 00:51:20,200 Hvað annað vildirðu að kóða fljótt? 1077 00:51:20,200 --> 00:51:25,470 >> STUDENT: Ég vildi bara sjá hvort ekki, ef þú leystur upp smá músina, 1078 00:51:25,470 --> 00:51:30,410 hvort sem bendillinn enn hafði geymt í það heimilisfang hvað það hefði verið 1079 00:51:30,410 --> 00:51:32,170 bendir til áður. 1080 00:51:32,170 --> 00:51:34,100 >> JASON Hirschhorn: OK, þannig að við skulum gera það. 1081 00:51:34,100 --> 00:51:38,030 Bleikju stjörnu PTR, þetta skapar breytu kallað PTR af taginu char stjörnu. 1082 00:51:38,030 --> 00:51:39,280 Hvernig skrifa ég malloc? 1083 00:51:39,280 --> 00:51:40,550 Alden? 1084 00:51:40,550 --> 00:51:41,800 >> Alden: Bara malloc. 1085 00:51:41,800 --> 00:51:44,820 1086 00:51:44,820 --> 00:51:51,040 En þá þarf það að vera stærð og í þessu tilfelli, ég held að þú vilt 1087 00:51:51,040 --> 00:51:52,465 vera að benda bleikju. 1088 00:51:52,465 --> 00:51:54,450 Svo það væri bleikju. 1089 00:51:54,450 --> 00:51:57,520 >> JASON Hirschhorn: OK, svo fleiri generically, Inside - 1090 00:51:57,520 --> 00:51:58,770 skulum breyta. 1091 00:51:58,770 --> 00:52:05,100 1092 00:52:05,100 --> 00:52:09,260 Inni malloc, viltu númerið bæti á hrúga. 1093 00:52:09,260 --> 00:52:12,320 Almennt, það sem við höfum séð að við erum gera er að við erum að fara að malloc 1094 00:52:12,320 --> 00:52:14,940 strings, til dæmis, eða fylki af heiltölur. 1095 00:52:14,940 --> 00:52:21,600 Þannig að ef við viljum 10 heiltölur, eða 10 stafir, 10 mun gefa okkur 10. 1096 00:52:21,600 --> 00:52:24,370 Og þá stærð stafir myndi gefa okkur að stærð stafir, sem í 1097 00:52:24,370 --> 00:52:25,120 þetta mál er 1 bæti. 1098 00:52:25,120 --> 00:52:26,250 Við fáum 10 bæti. 1099 00:52:26,250 --> 00:52:28,540 Ef við værum að skrifa stærð int, sem myndi gefa okkur 40 bæti. 1100 00:52:28,540 --> 00:52:31,520 >> Svo fleiri generically, inni malloc er fjöldi bæti þú vilt. 1101 00:52:31,520 --> 00:52:34,620 Í þessu tilfelli erum við að fá 1 bæti. 1102 00:52:34,620 --> 00:52:36,900 Sem virðast eins og a undarlegt notkun af malloc, en fyrir okkar 1103 00:52:36,900 --> 00:52:38,470 tilgangi vit. 1104 00:52:38,470 --> 00:52:40,420 Svo er það það. 1105 00:52:40,420 --> 00:52:43,420 >> Við erum að fara að hringja ókeypis. 1106 00:52:43,420 --> 00:52:47,040 Við að losna við það og við notum ptr aftur. 1107 00:52:47,040 --> 00:52:48,750 Og hvað gerðir þú vilt að athuga? 1108 00:52:48,750 --> 00:52:50,550 >> STUDENT: Mig langaði bara að athuga hvort eða ekki það væri eitthvað 1109 00:52:50,550 --> 00:52:51,900 inni af því. 1110 00:52:51,900 --> 00:52:53,050 >> JASON Hirschhorn: Svo hvort það bent til nokkuð? 1111 00:52:53,050 --> 00:52:57,740 >> STUDENT: Já, einmitt, hvort það hafði enn minni heimilisfang. 1112 00:52:57,740 --> 00:53:02,220 >> JASON Hirschhorn: Svo þú vilt að athuga gildi PTR? 1113 00:53:02,220 --> 00:53:03,470 >> STUDENT: Já, einmitt. 1114 00:53:03,470 --> 00:53:07,940 1115 00:53:07,940 --> 00:53:10,160 >> JASON Hirschhorn: Hvað á ég að skrifa hér ef ég vil að athuga gildi í 1116 00:53:10,160 --> 00:53:11,880 benda - hvað er, Jordan sagði, gildi? 1117 00:53:11,880 --> 00:53:13,720 Eða hvað er geymt inni í PTR? 1118 00:53:13,720 --> 00:53:14,620 >> STUDENT: A minni heimilisfang. 1119 00:53:14,620 --> 00:53:16,330 >> JASON Hirschhorn: A minni heimilisfang. 1120 00:53:16,330 --> 00:53:20,520 Þannig að ef ég skrifa bara þetta, verður það gefa mér gildi PTR. 1121 00:53:20,520 --> 00:53:22,800 Og hvernig get ég prentað út minni heimilisfang? 1122 00:53:22,800 --> 00:53:26,470 Hvað er band snið fyrir minni heimilisfang? 1123 00:53:26,470 --> 00:53:27,430 >> STUDENT:% p. 1124 00:53:27,430 --> 00:53:28,050 >> JASON Hirschhorn:% p. 1125 00:53:28,050 --> 00:53:29,500 % S er strengur. 1126 00:53:29,500 --> 00:53:30,750 % P á músina. 1127 00:53:30,750 --> 00:53:40,820 1128 00:53:40,820 --> 00:53:43,540 Er það satt? 1129 00:53:43,540 --> 00:53:44,790 Það er rétt. 1130 00:53:44,790 --> 00:53:49,450 1131 00:53:49,450 --> 00:53:51,040 Svo jafnt PTR - 1132 00:53:51,040 --> 00:53:53,350 það hefur samt eitthvað í það. 1133 00:53:53,350 --> 00:53:56,110 1134 00:53:56,110 --> 00:53:57,645 Þetta er líklega áhugaverð spurning. 1135 00:53:57,645 --> 00:53:59,198 Hvað þýðir þessi lína að gera? 1136 00:53:59,198 --> 00:54:00,830 >> STUDENT: Seg galla. 1137 00:54:00,830 --> 00:54:01,310 >> JASON Hirschhorn: Hvað? 1138 00:54:01,310 --> 00:54:02,678 >> STUDENT: Ég held að það seg galla. 1139 00:54:02,678 --> 00:54:03,574 >> JASON Hirschhorn: Hm? 1140 00:54:03,574 --> 00:54:04,920 >> STUDENT: Ég held að það mun seg kenna. 1141 00:54:04,920 --> 00:54:08,265 >> JASON Hirschhorn: Þannig að þetta lína af kóða, stjörnu PTR, hvað 1142 00:54:08,265 --> 00:54:10,152 þýðir stjarna meina? 1143 00:54:10,152 --> 00:54:11,240 >> STUDENT: Innihald. 1144 00:54:11,240 --> 00:54:11,560 >> JASON Hirschhorn: Já. 1145 00:54:11,560 --> 00:54:13,910 Fara að fá efni. 1146 00:54:13,910 --> 00:54:16,830 Þannig að þetta er að fara að fara í minni takast það og gefa mér það. 1147 00:54:16,830 --> 00:54:21,030 Ég notaði% c hérna vegna þess að það eru stafir geymd þar. 1148 00:54:21,030 --> 00:54:23,390 Þannig að við ætlum að fara að þessi heimilisfang Við bara sá - eða það mun sennilega vera 1149 00:54:23,390 --> 00:54:25,190 svolítið öðruvísi þetta þegar við hlaupa the program. 1150 00:54:25,190 --> 00:54:28,010 En við munum fara á þetta netfang sem við vitum enn til staðar 1151 00:54:28,010 --> 00:54:29,260 og sjá hvað er þar. 1152 00:54:29,260 --> 00:54:35,640 1153 00:54:35,640 --> 00:54:37,110 >> Svo það var ekki seg kenna. 1154 00:54:37,110 --> 00:54:38,970 Það kom bara ekki gefa okkur neitt. 1155 00:54:38,970 --> 00:54:43,350 Það hefði í raun gefið okkur eitthvað, bara við getum ekki séð það. 1156 00:54:43,350 --> 00:54:45,110 Og það fer aftur á þessa hugmynd - 1157 00:54:45,110 --> 00:54:47,270 og við erum ekki að fara að fá of mikið inn þetta, því það er út fyrir 1158 00:54:47,270 --> 00:54:48,460 umfang þessa námskeiðs. 1159 00:54:48,460 --> 00:54:51,260 En við ræddum um hérna, ef við fór utan við mörk af the array af 1160 00:54:51,260 --> 00:54:54,890 1, gætum við ekki fá í vandræðum. 1161 00:54:54,890 --> 00:54:58,550 >> Stundum, þegar þú ferð bara burt með 1, þú ert að gera eitthvað rangt, og þú 1162 00:54:58,550 --> 00:54:59,220 gæti fengið í vandræðum. 1163 00:54:59,220 --> 00:55:00,820 En þú þarft ekki alltaf að fá í vandræðum. 1164 00:55:00,820 --> 00:55:05,170 Það fer eftir því hversu mikið af slæmur hlutur þú gera, þú ert að fara að fá í vandræðum. 1165 00:55:05,170 --> 00:55:07,790 Sem er ekki að segja, að vera sloppy með númerið þitt. 1166 00:55:07,790 --> 00:55:12,080 En það er að segja, the program vilja ekki alltaf hætta, jafnvel ef þú ferð eitthvað 1167 00:55:12,080 --> 00:55:14,130 þú ert ekki að fara. 1168 00:55:14,130 --> 00:55:18,170 >> Gott dæmi um það er, a einhver fjöldi af fólk í vanda þeirra setja 3, sem 1169 00:55:18,170 --> 00:55:22,350 var 15, ekki að athuga mörk af borðinu. 1170 00:55:22,350 --> 00:55:25,860 Svo þú horfði til vinstri, horfði til hægri, horfði á the toppur, horfði 1171 00:55:25,860 --> 00:55:27,000 til botns. 1172 00:55:27,000 --> 00:55:31,540 En þú hefur ekki stöðva til sjá ef the toppur var reyndar að fara að vera á borðinu. 1173 00:55:31,540 --> 00:55:35,220 Og mikið af fólki sem gerði það og sneri að í, áætlun þeirra vann 1174 00:55:35,220 --> 00:55:38,960 fullkomlega, því þar að stjórn var geymd í minni, ef þú fórst einn 1175 00:55:38,960 --> 00:55:42,300 ofan það eða athugað að minni heimilisfang, það var ekki neitt 1176 00:55:42,300 --> 00:55:44,870 sérstaklega hræðilegt um það, svo program var ekki 1177 00:55:44,870 --> 00:55:45,970 fara að æpa á þig. 1178 00:55:45,970 --> 00:55:48,870 >> En langar samt að taka burt stig ef þú did ekki stöðva það, af því að þér 1179 00:55:48,870 --> 00:55:50,850 voru að gera eitthvað sem þú varst ekki ætlað að gera, og þú gætir hafa 1180 00:55:50,850 --> 00:55:51,860 fengið í vandræðum. 1181 00:55:51,860 --> 00:55:54,040 Stuðlar eru, þó, þú gerðir sennilega ekki. 1182 00:55:54,040 --> 00:55:57,790 Þannig að þetta er til að sýna að, já, við getum enn farið á það. 1183 00:55:57,790 --> 00:55:59,010 Og við erum ekki að fá í vandræði í þessu tilfelli. 1184 00:55:59,010 --> 00:56:04,000 Ef við reyndum að gera lesa Næstu 100 stafir, við myndum 1185 00:56:04,000 --> 00:56:06,000 sennilega fá í vandræðum. 1186 00:56:06,000 --> 00:56:09,400 Og þú getur kóðann lesa næstu 100 stafi ef þú vilt með því að gera sumir 1187 00:56:09,400 --> 00:56:10,110 konar fyrir lykkju. 1188 00:56:10,110 --> 00:56:10,850 Já. 1189 00:56:10,850 --> 00:56:16,250 >> STUDENT: Þar sem við vorum úthlutað að rúm raunveruleg gildi, myndum við ekki 1190 00:56:16,250 --> 00:56:17,050 í raun að vera fær um að sjá neitt. 1191 00:56:17,050 --> 00:56:21,740 Ættum við að reyna það með því að setja þessi jafnt er eins og C eða eitthvað? 1192 00:56:21,740 --> 00:56:22,640 >> JASON Hirschhorn: Great spurning. 1193 00:56:22,640 --> 00:56:25,340 Hvernig set ég það gildi - 1194 00:56:25,340 --> 00:56:28,980 hvaða línu af kóða ég skrifa á netinu sjö til að gera það sem þú segir? 1195 00:56:28,980 --> 00:56:34,040 >> STUDENT: Star PTR jafngildir einn vitna enda C einstaklings vitna. 1196 00:56:34,040 --> 00:56:36,970 >> JASON Hirschhorn: svo það er að setja eðli, c, á þeim stað, 1197 00:56:36,970 --> 00:56:40,200 því aftur, sem stjarna þýðir að fara á það. 1198 00:56:40,200 --> 00:56:43,320 Og þegar það er notað á vinstri hönd hlið af framsal rekstraraðili, sem jafngildir 1199 00:56:43,320 --> 00:56:47,270 undirrita, við erum ekki að fara að fá að gildi svo mikið sem setja þessi gildi. 1200 00:56:47,270 --> 00:56:48,520 Nú skulum sjá hvað gerist. 1201 00:56:48,520 --> 00:56:54,700 1202 00:56:54,700 --> 00:56:56,770 >> Við setjum eitthvað þarna og það var þar. 1203 00:56:56,770 --> 00:56:58,000 Við kallað frjáls. 1204 00:56:58,000 --> 00:57:00,100 Smá dót líklega gerst á hrúga. 1205 00:57:00,100 --> 00:57:01,890 Svo það er ekki þar lengur. 1206 00:57:01,890 --> 00:57:07,440 En aftur, við erum ekki að fá í vandræðum fyrir að fara þangað. 1207 00:57:07,440 --> 00:57:10,260 >> Ég ætla að gera þetta út í kóða til að sýna að mikið af þessum 1208 00:57:10,260 --> 00:57:12,410 spurningar sem þú hefur, þá eru þeir mjög áhugavert 1209 00:57:12,410 --> 00:57:13,650 svara mikið af tíma. 1210 00:57:13,650 --> 00:57:15,260 Og þeir eru í raun góðar spurningar. 1211 00:57:15,260 --> 00:57:19,010 Og er hægt að reikna þær út á eigin ef þinn, til dæmis, 1212 00:57:19,010 --> 00:57:19,990 við erum ekki í kafla. 1213 00:57:19,990 --> 00:57:20,940 Já. 1214 00:57:20,940 --> 00:57:24,430 >> STUDENT: Þar sem þú ert ekki að senda bendillinn hvar sem er, þú þarft að 1215 00:57:24,430 --> 00:57:26,530 nota malloc? 1216 00:57:26,530 --> 00:57:28,400 >> JASON Hirschhorn: Svo fer þetta aftur til byrjunar spurningunni þinni. 1217 00:57:28,400 --> 00:57:28,620 [? ?] 1218 00:57:28,620 --> 00:57:29,980 Er það bara staðbundin breytu? 1219 00:57:29,980 --> 00:57:32,280 Malloc hér er ekki sannfærandi. 1220 00:57:32,280 --> 00:57:35,260 Notkun malloc hér er ekki að sannfærandi því það er 1221 00:57:35,260 --> 00:57:36,500 bara staðbundin breytu. 1222 00:57:36,500 --> 00:57:40,970 >> STUDENT: Svo gastu gert bleikju stjörnu PTR jafngildir heilsa? 1223 00:57:40,970 --> 00:57:41,400 >> JASON Hirschhorn: Oh. 1224 00:57:41,400 --> 00:57:43,300 Þannig að við erum að fara að fá nú aftur til byrjunar spurningunni þinni. 1225 00:57:43,300 --> 00:57:46,885 Ég held að þú værir ekki sáttur með svarinu mínu. 1226 00:57:46,885 --> 00:57:48,220 OK? 1227 00:57:48,220 --> 00:57:49,226 Svona? 1228 00:57:49,226 --> 00:57:49,682 >> STUDENT: Já. 1229 00:57:49,682 --> 00:57:50,932 Bíddu. 1230 00:57:50,932 --> 00:57:54,090 1231 00:57:54,090 --> 00:57:57,850 >> JASON Hirschhorn: Og hvar viltu prenta út? 1232 00:57:57,850 --> 00:58:00,026 Þannig að við munum prenta út streng svona? 1233 00:58:00,026 --> 00:58:06,380 1234 00:58:06,380 --> 00:58:07,630 >> STUDENT: Áhugavert. 1235 00:58:07,630 --> 00:58:09,900 1236 00:58:09,900 --> 00:58:14,285 >> JASON Hirschhorn: Svo segir þetta þetta rök gerð staf. 1237 00:58:14,285 --> 00:58:17,200 1238 00:58:17,200 --> 00:58:18,620 Þannig að þetta ætti að vera eðli. 1239 00:58:18,620 --> 00:58:25,170 1240 00:58:25,170 --> 00:58:26,280 >> STUDENT: tekur bara það fyrsta. 1241 00:58:26,280 --> 00:58:28,610 >> JASON Hirschhorn: Þannig að þetta er það sem ég sagði áður. 1242 00:58:28,610 --> 00:58:34,240 Eins og ég sagði, það er ekki að geyma band inni breytilegum músina. 1243 00:58:34,240 --> 00:58:35,120 Það er að geyma - 1244 00:58:35,120 --> 00:58:36,350 >> STUDENT: Fyrsti gildi á band. 1245 00:58:36,350 --> 00:58:40,810 >> JASON Hirschhorn: Heimilisfang í fyrsta gildi streng. 1246 00:58:40,810 --> 00:58:46,940 Ef við værum að prenta út þetta, erum við fá verðmæti inni músina. 1247 00:58:46,940 --> 00:58:51,005 Og við munum sjá það er reyndar minni heimilisfang. 1248 00:58:51,005 --> 00:58:53,595 1249 00:58:53,595 --> 00:58:56,440 >> Er að skynsamleg? 1250 00:58:56,440 --> 00:58:56,940 Sorry. 1251 00:58:56,940 --> 00:58:58,996 Bíddu, er að svara þér , þó spurning? 1252 00:58:58,996 --> 00:58:59,790 >> STUDENT: Já. 1253 00:58:59,790 --> 00:59:05,830 >> JASON Hirschhorn: Þessi lína af kóða er búa til band og þá annað 1254 00:59:05,830 --> 00:59:09,115 breytilegum músina sem er að benda að þeim streng, sem array. 1255 00:59:09,115 --> 00:59:14,320 1256 00:59:14,320 --> 00:59:14,980 Já. 1257 00:59:14,980 --> 00:59:19,200 >> STUDENT: Svo ef við fórum einu minni takast lengra, við viljum fá h? 1258 00:59:19,200 --> 00:59:21,990 1259 00:59:21,990 --> 00:59:23,150 Hefur það verið geymt sem streng? 1260 00:59:23,150 --> 00:59:24,400 >> JASON Hirschhorn: Eins og við gerðum - 1261 00:59:24,400 --> 00:59:28,540 1262 00:59:28,540 --> 00:59:30,790 þannig að þetta er mikils virði að gera. 1263 00:59:30,790 --> 00:59:33,780 Þetta er lið tölur, sem þú krakkar hafa séð áður og ætti að vera 1264 00:59:33,780 --> 00:59:35,550 tiltölulega sátt við. 1265 00:59:35,550 --> 00:59:36,905 Þetta er svipað og að skrifa - 1266 00:59:36,905 --> 00:59:41,980 1267 00:59:41,980 --> 00:59:46,350 ef við vorum að skrifa þessa línu af kóða, við höfum séð array tákn áður. 1268 00:59:46,350 --> 00:59:55,900 Þetta ætti að gefa okkur annað gildi í þessu fylki, h. 1269 00:59:55,900 --> 01:00:05,010 >> Ef við gerðum þetta, þetta ætti einnig að gefa okkur annað gildi í því fylki. 1270 01:00:05,010 --> 01:00:08,320 Því það er að fara ekki í minni heimilisfang fyrsta hlutur, en 1271 01:00:08,320 --> 01:00:10,530 minni heimilisfang hlutur einn yfir. 1272 01:00:10,530 --> 01:00:14,360 Og þá stjörnu rekstraraðili dereferences sem bendi. 1273 01:00:14,360 --> 01:00:16,940 Og aftur, við skulum sjá. 1274 01:00:16,940 --> 01:00:18,664 Við fáum h aftur. 1275 01:00:18,664 --> 01:00:20,980 >> STUDENT: Hvað nákvæmlega er dereference meina? 1276 01:00:20,980 --> 01:00:23,650 >> JASON Hirschhorn: Dereference er fínt orð fyrir að fara til. 1277 01:00:23,650 --> 01:00:26,390 Fara til að og fá það sem er þarna er að dereference bendi. 1278 01:00:26,390 --> 01:00:28,240 Það er bara fínt orð fyrir það. 1279 01:00:28,240 --> 01:00:29,986 >> STUDENT: Ef við vildum að prenta allt band, við gátum 1280 01:00:29,986 --> 01:00:31,930 gera merkið músina? 1281 01:00:31,930 --> 01:00:33,490 >> JASON Hirschhorn: OK, við erum að fara að staldra hér við. 1282 01:00:33,490 --> 01:00:35,480 Við erum að fara að enda hér. 1283 01:00:35,480 --> 01:00:41,760 Merkið gefur þér veffang staðsetning, þannig að þegar þú gerir merkið án af 1284 01:00:41,760 --> 01:00:44,080 breytu, gefur það þér heimilisfangið þar sem breyta er geymt. 1285 01:00:44,080 --> 01:00:48,580 Merkið bendillinn mun gefa þér heimilisfang PTR þar PTR er í minni. 1286 01:00:48,580 --> 01:00:50,140 >> Við erum ekki að fara að fara á með þessu dæmi. 1287 01:00:50,140 --> 01:00:52,640 Þú getur reikna út þessar hlutina á eigin spýtur. 1288 01:00:52,640 --> 01:00:55,740 En aftur, þetta gæti jafnvel verið verging A hluti umfram það sem þú þarft að vita fyrir 1289 01:00:55,740 --> 01:00:58,000 gildissvið þessarar miðjan tíma - 1290 01:00:58,000 --> 01:00:59,070 eða þetta quiz, frekar. 1291 01:00:59,070 --> 01:01:00,270 Sorry. 1292 01:01:00,270 --> 01:01:03,770 >> Við erum að fara að fara, vegna þess að ég vildi eins og að gera einn kóða vandamál 1293 01:01:03,770 --> 01:01:05,100 áður en tíminn er upp. 1294 01:01:05,100 --> 01:01:09,340 Og við erum að fara að kóða það sem ég held er mest sannfærandi af þessum 1295 01:01:09,340 --> 01:01:11,020 dæmi, atoi. 1296 01:01:11,020 --> 01:01:14,520 Þannig að þetta var spurning um spurningakeppni fyrir tveimur árum. 1297 01:01:14,520 --> 01:01:17,810 Og ég hef það á borð hér. 1298 01:01:17,810 --> 01:01:20,680 >> Fólk var spurt á spurningakeppni - 1299 01:01:20,680 --> 01:01:23,640 þeir fengu aðeins meiri tesxt í spurningin, en ég útrýma 1300 01:01:23,640 --> 01:01:26,640 texti vegna þess að það var óþarfa fyrir tilgangi okkar núna. 1301 01:01:26,640 --> 01:01:29,180 Það var bara einhver bakgrunnur á hvaða atoi gerði. 1302 01:01:29,180 --> 01:01:31,425 En þú veist allt og eru mjög þekki atoi. 1303 01:01:31,425 --> 01:01:35,620 >> Ég legg til að þú kóðann þetta á blaði. 1304 01:01:35,620 --> 01:01:39,310 Ég legg líka að nota stefnu að við höfum farið yfir 1305 01:01:39,310 --> 01:01:41,040 mikið í kafla okkar. 1306 01:01:41,040 --> 01:01:44,130 Fyrst skaltu ganga úr skugga um að þú skiljir gera það atoi er. 1307 01:01:44,130 --> 01:01:47,580 Teikna mynd eða koma upp með sumir andlegt mynd af því í höfðinu á þér. 1308 01:01:47,580 --> 01:01:51,120 Næst skaltu skrifa út sauðakóðanum fyrir þetta. 1309 01:01:51,120 --> 01:01:53,120 Á spurningakeppni, ef það eina sem þú færð er sauðakóðanum, að minnsta kosti þú 1310 01:01:53,120 --> 01:01:54,550 setja eitthvað niður. 1311 01:01:54,550 --> 01:02:00,070 Og þá kort sem sauðakóðanum á C. Ef þú ert með ávísun í þinn 1312 01:02:00,070 --> 01:02:03,760 sauðakóðanum, eins athuga hvort eitthvað er 1, sem varpar á if 1313 01:02:03,760 --> 01:02:05,750 ástand og svo framvegis. 1314 01:02:05,750 --> 01:02:07,850 Og að lokum, kóða forritið í C. 1315 01:02:07,850 --> 01:02:15,000 >> Svo fara aftur til atoi og taka fimm mínútur að kóða þetta á blaði 1316 01:02:15,000 --> 01:02:19,480 pappír, sem er líklega um að Tíminn sem þú myndi taka á 1317 01:02:19,480 --> 01:02:21,260 quiz til að kóða atoi. 1318 01:02:21,260 --> 01:02:27,060 Fimm til 15 mínútur, fimm til 12, fimm til 10 mínútur, er um magn 1319 01:02:27,060 --> 01:02:30,150 skipti sem þú vilt eyða í þetta spurning í spurningakeppni. 1320 01:02:30,150 --> 01:02:31,670 Svo taka fimm mínútur núna. 1321 01:02:31,670 --> 01:02:35,957 Og ef þú hefur einhverjar spurningar, hækka hönd þín og ég kem í kring. 1322 01:02:35,957 --> 01:06:39,570 1323 01:06:39,570 --> 01:06:41,066 >> [AUKAVERKANIR samtöl] 1324 01:06:41,066 --> 01:08:35,279 1325 01:08:35,279 --> 01:08:37,580 >> JASON Hirschhorn: OK, svo sem var fimm mínútur. 1326 01:08:37,580 --> 01:08:39,880 Það var líklega um fjárhæð skipti sem þú vilt eyða í að á spurningakeppni, 1327 01:08:39,880 --> 01:08:42,120 kannski lítil hætta á þeim tíma. 1328 01:08:42,120 --> 01:08:44,010 Við munum ágrip í bita. 1329 01:08:44,010 --> 01:08:45,740 Leyfðu okkur að byrja kóðun þetta. 1330 01:08:45,740 --> 01:08:49,479 Og ef við komumst ekki alla leið í gegnum, Svörin við þessari og þetta 1331 01:08:49,479 --> 01:08:54,189 quiz spurning eru í boði, aftur, Fall 2011 er þegar þessari spurningu 1332 01:08:54,189 --> 01:08:54,913 birtist á spurningakeppni. 1333 01:08:54,913 --> 01:08:57,830 >> Og það var þess virði átta stig á spurningakeppni þá. 1334 01:08:57,830 --> 01:09:01,140 Átta stig er á hár endir af magn af punktum eitthvað er þess virði. 1335 01:09:01,140 --> 01:09:04,790 Flestum spurningum eru á bilinu af 1-6 stig. 1336 01:09:04,790 --> 01:09:08,500 Þannig að þetta er meira krefjandi , fyrir viss spurning. 1337 01:09:08,500 --> 01:09:09,750 Getur einhver fá mig byrja? 1338 01:09:09,750 --> 01:09:13,260 1339 01:09:13,260 --> 01:09:15,380 >> Almennt, hvað við erum að fara að vilja að gera með þetta 1340 01:09:15,380 --> 01:09:17,550 virka atoi, rökrétt? 1341 01:09:17,550 --> 01:09:19,569 Hvað viljum við gera? 1342 01:09:19,569 --> 01:09:22,279 Þannig að við erum að fara að skrifa sumir sauðakóðanum. 1343 01:09:22,279 --> 01:09:24,090 >> STUDENT: Breyta stöfum í heiltölur. 1344 01:09:24,090 --> 01:09:26,700 >> JASON Hirschhorn: Breyta stöfum í heiltölur. 1345 01:09:26,700 --> 01:09:27,479 OK. 1346 01:09:27,479 --> 01:09:30,870 Svo hversu margir stafir eru við að fara að þurfa að fara í gegnum? 1347 01:09:30,870 --> 01:09:32,295 >> STUDENT: Öll þau. 1348 01:09:32,295 --> 01:09:34,100 >> STUDENT: Allar persónurnar í band. 1349 01:09:34,100 --> 01:09:35,540 >> JASON Hirschhorn: Allar stafir í strengnum. 1350 01:09:35,540 --> 01:09:42,180 Þannig að ef við vildum fara í gegnum hvert staf í streng, hvað er málið 1351 01:09:42,180 --> 01:09:44,560 í C við höfum séð sem hefur gert okkur að fara í gegnum hvert 1352 01:09:44,560 --> 01:09:45,939 staf í streng? 1353 01:09:45,939 --> 01:09:46,819 >> NEMENDUR: A til hliðar. 1354 01:09:46,819 --> 01:09:48,069 >> JASON Hirschhorn: A til hliðar. 1355 01:09:48,069 --> 01:09:52,020 1356 01:09:52,020 --> 01:09:55,330 Þannig að við erum að fara að renna í gegnum Sérhver persóna í s. 1357 01:09:55,330 --> 01:10:00,940 >> Þá hvað við erum að fara til að vilja gera þegar við komum fram tiltekinn staf? 1358 01:10:00,940 --> 01:10:02,480 Segja að við erum að fá staðist 90. 1359 01:10:02,480 --> 01:10:03,460 Við fáum 9. 1360 01:10:03,460 --> 01:10:04,240 Það er karakter. 1361 01:10:04,240 --> 01:10:07,440 Hvað viljum við að gera með að eðli 9? 1362 01:10:07,440 --> 01:10:10,082 >> STUDENT: Draga hana úr karakter 0? 1363 01:10:10,082 --> 01:10:11,860 >> STUDENT: Bæta 0? 1364 01:10:11,860 --> 01:10:13,350 >> JASON Hirschhorn: Draga það úr eðli 0? 1365 01:10:13,350 --> 01:10:13,800 >> STUDENT: Já. 1366 01:10:13,800 --> 01:10:15,573 >> JASON Hirschhorn: Hví þú vilt gera það? 1367 01:10:15,573 --> 01:10:16,560 >> STUDENT: [inaudible] 1368 01:10:16,560 --> 01:10:17,010 gildi. 1369 01:10:17,010 --> 01:10:18,380 INT gildi þess. 1370 01:10:18,380 --> 01:10:21,580 >> JASON Hirschhorn: OK, svo við tökum að eðli 9, draga það frá 1371 01:10:21,580 --> 01:10:25,820 eðli 0 á að fá Raunveruleg heiltala 9. 1372 01:10:25,820 --> 01:10:27,070 Sætur. 1373 01:10:27,070 --> 01:10:31,255 1374 01:10:31,255 --> 01:10:37,000 Og hvernig veistu þessi karakter 9 mínus 0 eðli er 9? 1375 01:10:37,000 --> 01:10:39,222 Hvaða mynd fórstu að líta á? 1376 01:10:39,222 --> 01:10:43,130 >> STUDENT: Það eru rökrétt níu Staðir milli 9 og 0. 1377 01:10:43,130 --> 01:10:44,620 Eða þú getur litið á ASCII töflunni. 1378 01:10:44,620 --> 01:10:45,120 >> JASON Hirschhorn: ASCII töflunni. 1379 01:10:45,120 --> 01:10:46,490 En já, þú ert rétt eins og heilbrigður. 1380 01:10:46,490 --> 01:10:47,780 Þannig að við drögum 0. 1381 01:10:47,780 --> 01:10:49,010 Svo nú höfum við heiltölunni 9. 1382 01:10:49,010 --> 01:10:49,970 Og hvað við viljum gera við það? 1383 01:10:49,970 --> 01:10:54,970 Ef við höfum 90, er það fyrsta heiltölu við höfum, hvað við viljum gera? 1384 01:10:54,970 --> 01:10:58,180 >> STUDENT: Ég myndi setja í tímabundið heiltölu array, þá gera stærðfræði til að það 1385 01:10:58,180 --> 01:11:02,088 síðar til að gera það inn í enda. 1386 01:11:02,088 --> 01:11:03,020 >> JASON Hirschhorn: OK. 1387 01:11:03,020 --> 01:11:06,990 >> STUDENT: Þú getur byrjað í lok array og flytja síðan áfram svo 1388 01:11:06,990 --> 01:11:10,350 að í hvert skipti sem þú færir fram, þú margfaldar það með 10. 1389 01:11:10,350 --> 01:11:10,830 >> JASON Hirschhorn: OK. 1390 01:11:10,830 --> 01:11:12,250 Það hljómar eins og a laglegur sannfærandi hugmynd. 1391 01:11:12,250 --> 01:11:16,040 Við getum byrjað í lok array okkar, og við getum notað strleng. 1392 01:11:16,040 --> 01:11:17,030 Við getum notað strleng hérna. 1393 01:11:17,030 --> 01:11:18,870 Við munum fá lengd band okkar. 1394 01:11:18,870 --> 01:11:20,100 Við byrjum í lok. 1395 01:11:20,100 --> 01:11:29,170 Og + þá fyrstu, tökum bara það heiltala, og kannski við að búa eins og 1396 01:11:29,170 --> 01:11:32,270 Ný heiltölubreytu upp efst þar við erum að geyma allt. 1397 01:11:32,270 --> 01:11:37,340 Þannig að við lykkja í gegnum alla bleikju í s frá til baka á forsíðu, draga við 0, og 1398 01:11:37,340 --> 01:11:42,790 þá erum við að taka hana, og eftir þar sem það er, margfalda við það 1399 01:11:42,790 --> 01:11:45,860 með krafti 10. 1400 01:11:45,860 --> 01:11:50,644 Vegna þess að fyrsta, hvað gerum við margfalda rightmost stafinn með? 1401 01:11:50,644 --> 01:11:51,440 >> STUDENT: 10 til 0. 1402 01:11:51,440 --> 01:11:53,170 >> JASON Hirschhorn: 10 til 0. 1403 01:11:53,170 --> 01:11:56,010 Hvað eigum við margfalda seinni rightmost eðli með? 1404 01:11:56,010 --> 01:11:57,450 >> STUDENT: [inaudible]. 1405 01:11:57,450 --> 01:11:57,960 >> JASON Hirschhorn: Hvað? 1406 01:11:57,960 --> 01:11:59,150 >> STUDENT: 10 til 1. 1407 01:11:59,150 --> 01:12:00,420 >> JASON Hirschhorn: 10 til 1. 1408 01:12:00,420 --> 01:12:03,754 Þriðja-rightmost eðli? 1409 01:12:03,754 --> 01:12:04,580 >> STUDENT: 10 til 2. 1410 01:12:04,580 --> 01:12:05,350 >> JASON Hirschhorn: 10 til 2. 1411 01:12:05,350 --> 01:12:07,200 >> STUDENT: Sorry, ég skil ekki hvað við erum að gera hér. 1412 01:12:07,200 --> 01:12:08,640 >> JASON Hirschhorn: OK, við skulum fara aftur, þá. 1413 01:12:08,640 --> 01:12:12,500 Þannig að við erum að fara að fá liðin í streng. 1414 01:12:12,500 --> 01:12:14,470 Þar sem við erum að skrifa atoi. 1415 01:12:14,470 --> 01:12:15,260 Þannig að við fá liðið í streng. 1416 01:12:15,260 --> 01:12:17,640 Segja að við erum að fá samþykkt í band 90. 1417 01:12:17,640 --> 01:12:19,930 >> The fyrstur hlutur sem við erum að fara að gera er að stilla ný heiltölubreytu sem við erum 1418 01:12:19,930 --> 01:12:22,150 bara að fara að búa til sem nýja heiltölu okkar. 1419 01:12:22,150 --> 01:12:24,630 Það er það sem við erum að fara til að fara aftur í lokin. 1420 01:12:24,630 --> 01:12:30,110 Við þurfum að fara í gegnum hvert staf í band vegna þess að við höfum ákveðið 1421 01:12:30,110 --> 01:12:34,430 að við þurfum að snerta hvert og eitt og þá bæta við það til nýja heiltölu okkar. 1422 01:12:34,430 --> 01:12:36,330 >> En við getum ekki bara bæta við það sem tala. 1423 01:12:36,330 --> 01:12:38,270 Við getum ekki bara tekið 9 og bæta 9 við heiltölu okkar. 1424 01:12:38,270 --> 01:12:40,560 Það fer eftir því hvað staðurinn það er í band. 1425 01:12:40,560 --> 01:12:42,960 Við erum að fara að þurfa að margfalda það með krafti 10. 1426 01:12:42,960 --> 01:12:45,580 Því það er hvernig stöð 10 verk. 1427 01:12:45,580 --> 01:12:49,050 >> Þannig að við erum að fara að fá raunverulegt eðli, eða í raun tala 1428 01:12:49,050 --> 01:12:53,860 númer, með því að draga karakter 0 frá eðli 9 eins og við gerðum með 1429 01:12:53,860 --> 01:12:57,560 draga staf Capital frá hvað eðli sem við höfðum í einni af 1430 01:12:57,560 --> 01:12:58,120 þeim vandamálum. 1431 01:12:58,120 --> 01:13:04,190 Þannig að við munum í raun að fá númer frá 0 til 9 vistað sem alvöru tala, og við munum 1432 01:13:04,190 --> 01:13:07,590 margfalda það með krafti 10 eftir á því hvar við erum í band. 1433 01:13:07,590 --> 01:13:19,430 1434 01:13:19,430 --> 01:13:22,575 Og þá ætlum við að bæta við það til baka í nýja heiltölu breytu okkar. 1435 01:13:22,575 --> 01:13:32,840 1436 01:13:32,840 --> 01:13:37,890 >> Svo er það þetta myndi líta út eins og væri vera - við munum draga hérna. 1437 01:13:37,890 --> 01:13:40,086 Ef við fá liðið í band 90 - 1438 01:13:40,086 --> 01:13:41,336 >> STUDENT: [inaudible]. 1439 01:13:41,336 --> 01:13:43,190 1440 01:13:43,190 --> 01:13:45,540 >> JASON Hirschhorn: En atoi tekur streng. 1441 01:13:45,540 --> 01:13:46,350 Þannig að við ætlum að fara í gegnum bújörðinni. 1442 01:13:46,350 --> 01:13:49,900 Við munum fá liðið í 90. 1443 01:13:49,900 --> 01:13:51,540 Við förum frá aftan að framan. 1444 01:13:51,540 --> 01:13:53,920 Við tökum 0. 1445 01:13:53,920 --> 01:13:55,080 >> STUDENT: Fyrirgefðu. 1446 01:13:55,080 --> 01:13:55,880 Kannski er þetta heimskulegt. 1447 01:13:55,880 --> 01:13:59,440 Ef við erum að fá samþykkt í streng, Hvers vegna er 90 það sem við erum 1448 01:13:59,440 --> 01:14:00,260 fá staðist í? 1449 01:14:00,260 --> 01:14:03,160 Vegna þess að 90 er heil tala. 1450 01:14:03,160 --> 01:14:06,820 >> JASON Hirschhorn: Vegna atoi tekur band og snýr það inn í heiltölu 1451 01:14:06,820 --> 01:14:08,320 framsetning strengsins. 1452 01:14:08,320 --> 01:14:13,650 En strengur 90 er ekki heiltala 90 eða fjöldi 90. 1453 01:14:13,650 --> 01:14:17,920 Band 90 er fylki af tveimur eða þrír stafir, heldur er 9 1454 01:14:17,920 --> 01:14:22,740 eðli, 0 eðli og að sviga 0 staf. 1455 01:14:22,740 --> 01:14:26,260 >> Og við erum að skrifa atoi því fyrir dæmi, þegar þú tekur stjórn 1456 01:14:26,260 --> 01:14:30,230 rök lína, og það er vistað í argv, það er vistað sem band. 1457 01:14:30,230 --> 01:14:32,940 En ef þú vilt að meðhöndla það eins og a tala, þú þarft að umbreyta það til að 1458 01:14:32,940 --> 01:14:34,700 Raunveruleg heiltala. 1459 01:14:34,700 --> 01:14:37,210 Sem við gerðum einn af setur okkar vandamál. 1460 01:14:37,210 --> 01:14:38,800 Sem við gerðum í fjölda setur vandamálið okkar. 1461 01:14:38,800 --> 01:14:41,690 Allir sem tóku heiltölu sem stjórn lína rifrildi. 1462 01:14:41,690 --> 01:14:46,490 Svo að hvers vegna atoi virka okkar tekur streng. 1463 01:14:46,490 --> 01:14:51,910 >> Svo aftur, í dæmi okkar hér erum við að fara að taka það síðasta. 1464 01:14:51,910 --> 01:14:55,050 Við ætlum að draga karakterinn 0 af því, vegna þess að stafirnir 0 1465 01:14:55,050 --> 01:14:58,810 dreginn af eðli 0 gefur þér miðað við raunverulegan fjölda 0, í samræmi við 1466 01:14:58,810 --> 01:15:00,950 The ASCII stærðfræði sem við gerum. 1467 01:15:00,950 --> 01:15:04,870 >> Vegna stafir eru fulltrúa sem öðruvísi en raunverulegt þeirra - 1468 01:15:04,870 --> 01:15:08,830 staf, til dæmis, lágstafir A er 97. 1469 01:15:08,830 --> 01:15:10,260 Það er ekki - oops! 1470 01:15:10,260 --> 01:15:13,290 Það er ekki hvað þú vildi búast við það til að vera, 0, til dæmis. 1471 01:15:13,290 --> 01:15:16,200 Svo þú verður að draga staf að fá 0. 1472 01:15:16,200 --> 01:15:18,950 >> Þannig að við erum að fara að gera það hér til að fá raunverulegan fjölda. 1473 01:15:18,950 --> 01:15:22,560 Og þá erum við að fara að margfalda það með A máttur af 10 eftir því sem þær 1474 01:15:22,560 --> 01:15:27,030 er í band, og síðan taka það og bæta því við stað handhafa okkar 1475 01:15:27,030 --> 01:15:32,520 breytu svo við getum komið upp með Endanleg nýjum okkar heiltala. 1476 01:15:32,520 --> 01:15:35,080 Er að vit að öllum? 1477 01:15:35,080 --> 01:15:37,730 >> Þannig að við erum ekki að fara að kóða þetta núna, vegna þess að við erum 1478 01:15:37,730 --> 01:15:38,830 fá til skamms tíma. 1479 01:15:38,830 --> 01:15:40,860 Ég biðjumst velvirðingar á tímasetningu þess. 1480 01:15:40,860 --> 01:15:44,620 En þetta er það, vonandi, þú myndir að vera fær um að gera á prófi - á 1481 01:15:44,620 --> 01:15:47,710 kosti, fá þessa sauðakóðanum skrifað út. 1482 01:15:47,710 --> 01:15:50,840 >> Og þá, ef við vorum að skrifa á sauðakóðanum, reyndar væri þetta 1483 01:15:50,840 --> 01:15:51,490 laglegur fljótt. 1484 01:15:51,490 --> 01:15:55,230 Hver lína athugasemdir við við skrifuðum hér þýðir að um 1485 01:15:55,230 --> 01:15:56,970 ein lína af C kóða. 1486 01:15:56,970 --> 01:16:01,780 Lýsa nýja breytu, skrifa lykkja, sumir frádráttur, sumir 1487 01:16:01,780 --> 01:16:07,070 margföldun, og sumir verkefni. 1488 01:16:07,070 --> 01:16:09,020 Við myndi líklega einnig vilja til skrifa aftur línu. 1489 01:16:09,020 --> 01:16:12,040 Við gætum einnig vilja til að setja nokkrar athuganir í hér. 1490 01:16:12,040 --> 01:16:12,655 Já. 1491 01:16:12,655 --> 01:16:15,720 >> STUDENT: Svo getum við förum s eins og the raunverulegur band? 1492 01:16:15,720 --> 01:16:18,730 Vegna þess að ég veit að það er bara verið heimilisfang. 1493 01:16:18,730 --> 01:16:22,090 Eins og, hvernig myndir þú fá lengd band berist í gegnum? 1494 01:16:22,090 --> 01:16:25,310 >> JASON Hirschhorn: Svo hvernig did lengd streng? 1495 01:16:25,310 --> 01:16:25,830 Strlen. 1496 01:16:25,830 --> 01:16:26,660 >> STUDENT: strlen, já. 1497 01:16:26,660 --> 01:16:30,550 En getur þú sett s sem rök fyrir því? 1498 01:16:30,550 --> 01:16:34,620 >> JASON Hirschhorn: Svo strlen tekur bleikju stjörnu. 1499 01:16:34,620 --> 01:16:38,090 Og það segir að bleikju stjörnu, og það heldur telja þangað til það fær að 1500 01:16:38,090 --> 01:16:41,865 sviga 0. strlen var í raun einn af öðrum áætlunum sem við 1501 01:16:41,865 --> 01:16:42,850 voru að fara að kóða. 1502 01:16:42,850 --> 01:16:44,560 Það er önnur góð til að kóða. 1503 01:16:44,560 --> 01:16:47,270 Það eitt er svolítið auðveldara, vegna þess að ef þú ert að fara að hugsa um að 1504 01:16:47,270 --> 01:16:47,830 eðli - 1505 01:16:47,830 --> 01:16:51,620 Ég sagði bara það upphátt - strlen segir bendillinn og heldur áfram og 1506 01:16:51,620 --> 01:16:54,210 telja og halda utan fyrr en þú nærð sviga 0. 1507 01:16:54,210 --> 01:16:56,530 >> STUDENT: Ég skil. 1508 01:16:56,530 --> 01:17:00,200 >> JASON Hirschhorn: Svo bestur af heppni á spurningakeppni 0 á morgun. 1509 01:17:00,200 --> 01:17:03,170 Ef þú hefur einhverjar spurningar, ég vera úti eftir þetta. 1510 01:17:03,170 --> 01:17:05,610 Feel frjáls til email mig. 1511 01:17:05,610 --> 01:17:08,480 Ná til eigin TF ef þú ert ekki í kafla mínum, eða fá minn 1512 01:17:08,480 --> 01:17:10,005 email ef þú vilt það. 1513 01:17:10,005 --> 01:17:13,140 >> Ef þú vilt að Freak út og bara að senda mér tölvupóst, sem freakout email, ég 1514 01:17:13,140 --> 01:17:16,710 senda þér aftur, eins og, broskarl andlit, eða, eins og brandari eða eitthvað. 1515 01:17:16,710 --> 01:17:18,190 Svo ekki hika við að gera það eins vel. 1516 01:17:18,190 --> 01:17:20,750 Gangi þér vel aftur, og ég mun sjá ykkur öll í næstu viku. 1517 01:17:20,750 --> 01:17:23,435