1 00:00:00,000 --> 00:00:11,320 2 00:00:11,320 --> 00:00:13,260 >> Davidas Malan: Sveiki, ir Sveiki sugrįžę CS50. 3 00:00:13,260 --> 00:00:14,860 Taigi tai yra savaitės keturių pabaiga. 4 00:00:14,860 --> 00:00:16,680 Tik vienas skelbimas pirmas. 5 00:00:16,680 --> 00:00:19,600 Taigi vadinamoji penktoji pirmadienis artėja ateinantį pirmadienį. 6 00:00:19,600 --> 00:00:22,800 Tai galimybė keisti iš SAT / UNSAT su raide klasėje, arba iš 7 00:00:22,800 --> 00:00:24,130 laiškas kokybės SAT / UNSAT. 8 00:00:24,130 --> 00:00:27,130 Įkyriai, kad procesas tai reikalauja parašas, nes jūs turite užpildyti 9 00:00:27,130 --> 00:00:28,770 iš vienos iš šių rožinė pridėti / lašo formos. 10 00:00:28,770 --> 00:00:31,680 >> Kadangi techniškai, palydovinė / UNSAT versija ir raidė kokybės versija 11 00:00:31,680 --> 00:00:33,320 turi skirtingas katalogas numerius. 12 00:00:33,320 --> 00:00:34,240 Bet ne big deal. 13 00:00:34,240 --> 00:00:36,620 Tiesiog ateiti pas mane ar apiplėšti arba Lauren bet kurioje vietoje. 14 00:00:36,620 --> 00:00:39,550 Arba rašykite mums, jei jūs neturite natūra popierizmo jums reikia šiandien, ir mes 15 00:00:39,550 --> 00:00:43,410 bus tikrai padės jums imtis priežiūra, kad prieš pirmadienį. 16 00:00:43,410 --> 00:00:45,780 >> Viskas gerai, taip ir šiandien - 17 00:00:45,780 --> 00:00:47,630 Tiesą sakant, ten iš aidas tiek. 18 00:00:47,630 --> 00:00:51,070 Ar mes tonas mane truputi? 19 00:00:51,070 --> 00:00:51,730 Gerai. 20 00:00:51,730 --> 00:00:54,850 Taigi, šiandien mes pristatome temą žinomas kaip rodyklės. 21 00:00:54,850 --> 00:00:57,770 Ir aš pripažinti, kad tai yra vienas iš sudėtingesnės temos, kad mes linkę 22 00:00:57,770 --> 00:01:00,960 padengti šioje klasėje, ar tikrai bet įvadinis kursas, kuris naudoja C. 23 00:01:00,960 --> 00:01:05,510 >> Bet imtis savo žodį, ypač jei jūsų protas jaučiasi šiek tiek daugiau smilgos 24 00:01:05,510 --> 00:01:07,100 šiandien ir ateinančias savaites. 25 00:01:07,100 --> 00:01:10,340 Tai neatspindi jūs gaunate bet ne prastesni tai tiesiog reiškia, kad 26 00:01:10,340 --> 00:01:13,360 tai ypač sudėtingas temą kad aš pažadu keletą savaičių 27 00:01:13,360 --> 00:01:17,610 taigi, atrodys pernelyg stulbinančiai paprastas retrospektyviai. 28 00:01:17,610 --> 00:01:18,720 >> Aš vis dar prisimenu iki šios dienos. 29 00:01:18,720 --> 00:01:22,190 Sėdėjau Elliott valgomajame sėdi šalia mano TF Nishat Mehta, 30 00:01:22,190 --> 00:01:24,070 kuris buvo Elliott namo gyventojas. 31 00:01:24,070 --> 00:01:26,340 Ir kažkodėl tai tema tiesiog paspaudžia. 32 00:01:26,340 --> 00:01:29,430 Kuris yra pasakyti, kad aš taip pat kovojo su juo tam tikrą laiką suma, bet aš 33 00:01:29,430 --> 00:01:33,610 darysiu viską, kad būtų išvengta tokių kova su tema, kuri galiausiai 34 00:01:33,610 --> 00:01:34,580 yra gana galingas. 35 00:01:34,580 --> 00:01:37,350 >> Tiesą sakant, viena iš temų, mes aptarsime Artimiausiomis savaitėmis į priekį, kad 36 00:01:37,350 --> 00:01:41,130 Vertybinių popierių, ir kaip jūs iš tikrųjų galite išnaudoti mašinos būdais 37 00:01:41,130 --> 00:01:42,320 kad nebuvo numatyta. 38 00:01:42,320 --> 00:01:45,850 Ir tie išnaudojami paprastai klaidų, klaidų rezultatas, kad mes 39 00:01:45,850 --> 00:01:49,740 žmonės ne suprasti kai pagrindinės įgyvendinimo 40 00:01:49,740 --> 00:01:52,250 Išsamiau, per kuriuos programos bus. 41 00:01:52,250 --> 00:01:55,410 >> Dabar, kad tai atrodo visi patogesnis draugiškas, aš maniau aš žaisti 10 42 00:01:55,410 --> 00:01:59,680 antra Peržiūrėti mažai Claymation skaičius pavadintas Binky, kuris buvo atvežtas į 43 00:01:59,680 --> 00:02:03,020 gyvenimą, kaip mūsų draugas Stanfordo universitete, profesorius Nikas parlante. 44 00:02:03,020 --> 00:02:06,753 Taigi, leiskite man duoti jums tai kibinimas iš Binky čia. 45 00:02:06,753 --> 00:02:09,520 >> [VIDEO PLAYBACK] 46 00:02:09,520 --> 00:02:10,380 >> -Ei, Binky. 47 00:02:10,380 --> 00:02:11,050 Pabuskite. 48 00:02:11,050 --> 00:02:13,610 Atėjo laikas rodykle įdomus. 49 00:02:13,610 --> 00:02:14,741 >> -Kas tai? 50 00:02:14,741 --> 00:02:16,440 Sužinokite daugiau apie rodykles? 51 00:02:16,440 --> 00:02:17,928 O, Goodie. 52 00:02:17,928 --> 00:02:18,920 >> [PABAIGA VIDEO PLAYBACK] 53 00:02:18,920 --> 00:02:20,670 >> Davidas Malan: Tai Stanfordo kompiuterių mokslas. 54 00:02:20,670 --> 00:02:23,194 Taigi, daugiau apie tai ateityje. 55 00:02:23,194 --> 00:02:24,930 >> [Plojimai] 56 00:02:24,930 --> 00:02:26,660 >> Davidas Malan: Atsiprašome, Nikas. 57 00:02:26,660 --> 00:02:30,680 >> Taigi priminti, kad paskutinį kartą mes pasibaigė tai tikrai įdomus Įspūdingos filmą 58 00:02:30,680 --> 00:02:32,960 , kai ši funkcija tiesiog neveikia. 59 00:02:32,960 --> 00:02:34,960 Bent jau intuityviai, ji manė, kaip jis turėtų dirbti. 60 00:02:34,960 --> 00:02:37,600 Tiesiog keičiant vertybes dviejų sveikųjų skaičių. 61 00:02:37,600 --> 00:02:40,915 Tačiau negalime pamiršti, kad mes atspausdintas iš originalus vertės pagrindinės, vienos ir 62 00:02:40,915 --> 00:02:44,210 du, jie vis dar yra vienas ir du ir ne du ir vienas. 63 00:02:44,210 --> 00:02:46,070 >> Taigi leiskite man iš tikrųjų pereiti perkelti į prietaisą. 64 00:02:46,070 --> 00:02:50,180 Ir aš parašiau iki skeleto kodo fragmentą į iš anksto čia, kur galiu reikalauti, kad x 65 00:02:50,180 --> 00:02:52,500 bus 1, y bus 2. 66 00:02:52,500 --> 00:02:54,810 Aš tada spausdinti abiem savo vertės su spausdinimo f. 67 00:02:54,810 --> 00:02:57,540 >> Aš tada prašyti čia, apačioje, kad mes ketiname apsikeitimo juos. 68 00:02:57,540 --> 00:03:00,800 Palikau tuščią vietą čia mums užpildykite šiandien vos akimirką. 69 00:03:00,800 --> 00:03:03,380 Tada aš ruošiuosi teigti, kad dviejų kintamųjų buvo sukeisti. 70 00:03:03,380 --> 00:03:04,770 Tada aš ruošiuosi spausdinti juos iš naujo. 71 00:03:04,770 --> 00:03:07,090 Ir todėl tikiuosi, aš turėtumėte matyti 1, 2. 72 00:03:07,090 --> 00:03:07,380 2 1. 73 00:03:07,380 --> 00:03:09,830 Tai super paprasta tikslas dabar. 74 00:03:09,830 --> 00:03:12,430 >> Taigi, kaip mes einame apie Swapping du kintamieji? 75 00:03:12,430 --> 00:03:17,220 Na, jei aš siūlau čia, kad šie puodeliai gali atstovauti atminties kompiuteryje. 76 00:03:17,220 --> 00:03:19,070 Tai keli įkandimai, tai yra dar keli įkandimai. 77 00:03:19,070 --> 00:03:23,260 Ar mes savanoris ateiti pradėjimu ir maišyti mums keletą gėrimų, jei pažįstamas? 78 00:03:23,260 --> 00:03:23,920 Ateik iki. 79 00:03:23,920 --> 00:03:24,815 Koks tavo vardas? 80 00:03:24,815 --> 00:03:25,260 >> JESS: Jess. 81 00:03:25,260 --> 00:03:25,690 >> Davidas Malan: Jess? 82 00:03:25,690 --> 00:03:26,540 Nagi aukštyn, Jess. 83 00:03:26,540 --> 00:03:29,180 Jei jūs neprieštaraujate, mes turime pradėti "Google" Stiklo jums, kad mes galėtume 84 00:03:29,180 --> 00:03:30,430 įamžinti tai. 85 00:03:30,430 --> 00:03:32,800 86 00:03:32,800 --> 00:03:34,670 Gerai, stiklo. 87 00:03:34,670 --> 00:03:37,250 Filmuoti. 88 00:03:37,250 --> 00:03:43,103 Ir gerai, mes esame gerai eiti su Jess čia. 89 00:03:43,103 --> 00:03:43,810 Gerai. 90 00:03:43,810 --> 00:03:45,120 Malonu jus matyti. 91 00:03:45,120 --> 00:03:47,720 >> Taigi, ką aš norėčiau tai padaryti čia - jei galėtumėte, gana greitai - 92 00:03:47,720 --> 00:03:51,040 tiesiog teka mums pusę apelsinų stiklo sulčių ir pusė stiklinė pieno, 93 00:03:51,040 --> 00:03:55,710 ty veiksmingai skaičius 1 į vieną puodelį ir 2 kitoje puodelio. 94 00:03:55,710 --> 00:04:01,380 95 00:04:01,380 --> 00:04:02,630 >> Tai bus gera filmuota medžiaga. 96 00:04:02,630 --> 00:04:04,910 97 00:04:04,910 --> 00:04:05,860 >> JESS: Atsiprašau. 98 00:04:05,860 --> 00:04:06,330 >> Davidas Malan: Ne, ne. 99 00:04:06,330 --> 00:04:08,703 Tai Gerai. 100 00:04:08,703 --> 00:04:10,120 Nice. 101 00:04:10,120 --> 00:04:12,950 Gerai, kad mes turime keturis baitus verta apelsinų sulčių. 102 00:04:12,950 --> 00:04:14,460 Mes pavadino ją vertę 1. 103 00:04:14,460 --> 00:04:16,579 Dabar dar keturi baitai verta pieno. 104 00:04:16,579 --> 00:04:18,519 Jį vadiname vertė Vertė 2. 105 00:04:18,519 --> 00:04:20,440 Taigi x ir y atitinkamai. 106 00:04:20,440 --> 00:04:23,450 >> Gerai, kad dabar, jei po ranka užduotis - už jus, Jess, priešais visiems 107 00:04:23,450 --> 00:04:24,270 savo bendraklasių - 108 00:04:24,270 --> 00:04:28,510 yra sukeisti x ir y tokios vertybės kad mes norime, apelsinų sulčių 109 00:04:28,510 --> 00:04:32,070 kitas puodelis ir šiame puodelio pieno, kaip galbūt jūs - prieš jūs iš tikrųjų 110 00:04:32,070 --> 00:04:34,020 tai - eiti apie tai daro? 111 00:04:34,020 --> 00:04:35,220 >> Gerai, išmintingą sprendimą. 112 00:04:35,220 --> 00:04:36,340 Taigi, tau reikia šiek tiek daugiau atminties. 113 00:04:36,340 --> 00:04:38,190 Taigi galime skirti laikinas puodelis, jei bus. 114 00:04:38,190 --> 00:04:40,540 Ir dabar pereiti prie apsikeitimo x ir y. 115 00:04:40,540 --> 00:04:52,950 116 00:04:52,950 --> 00:04:53,530 >> Puikus. 117 00:04:53,530 --> 00:04:54,420 Taigi labai gerai padaryta. 118 00:04:54,420 --> 00:04:55,670 Thank you so much, Jess. 119 00:04:55,670 --> 00:04:59,520 120 00:04:59,520 --> 00:05:00,020 Prašom. 121 00:05:00,020 --> 00:05:01,950 Šiek tiek suvenyrų. 122 00:05:01,950 --> 00:05:04,350 >> Gerai, kad akivaizdu, super paprasta idėja. 123 00:05:04,350 --> 00:05:07,500 Visiškai intuityvus, kad mes turime šiek tiek daugiau saugojimo vietos - šioje formoje, 124 00:05:07,500 --> 00:05:09,750 puodelis - jei mes iš tikrųjų nori apsikeitimo šiuos du kintamuosius. 125 00:05:09,750 --> 00:05:11,110 Taigi galime daryti būtent tai. 126 00:05:11,110 --> 00:05:14,330 Čia tarp kur galiu reikalauti aš ketinate daryti kai apsikeičiama, aš 127 00:05:14,330 --> 00:05:15,720 eiti į priekį ir paskelbti temp. 128 00:05:15,720 --> 00:05:17,980 Ir aš nustatyti, kad jis lygus, tarkim, x. 129 00:05:17,980 --> 00:05:21,110 >> Tada aš ruošiuosi pakeisti vertę x kaip Jess padarė čia 130 00:05:21,110 --> 00:05:23,200 pienas ir apelsinų sultys būtų lygus y. 131 00:05:23,200 --> 00:05:27,460 Ir aš ruošiuosi pakeisti y būti lygi ne x, nes dabar mes būtume 132 00:05:27,460 --> 00:05:29,530 įstrigo apskritimo, o temp. 133 00:05:29,530 --> 00:05:33,170 Kur aš laikinai - arba kai Jess laikinai įdėti apelsinų sultis 134 00:05:33,170 --> 00:05:35,460 prieš clobbering kad puodelis su pienu. 135 00:05:35,460 --> 00:05:37,250 >> Taigi leiskite man eiti į priekį dabar ir padaryti tai. 136 00:05:37,250 --> 00:05:39,210 Tai vadinama noswap.c. 137 00:05:39,210 --> 00:05:41,190 O dabar leiskite man paleisti jokio apsikeitimo. 138 00:05:41,190 --> 00:05:43,910 Ir iš tiesų matau, jei aš išplėsti langą šiek tiek, kad 139 00:05:43,910 --> 00:05:45,160 x 1, y 2. 140 00:05:45,160 --> 00:05:47,230 Ir tada x 2, y 1. 141 00:05:47,230 --> 00:05:51,910 >> Tačiau primena, kad pirmadienį mes padarėme dalykų šiek tiek kitaip, kai aš 142 00:05:51,910 --> 00:05:56,760 o įgyvendino pagalbininkas funkciją, jei norite, kad iš tikrųjų buvo negaliojantis. 143 00:05:56,760 --> 00:05:58,010 Aš pašaukiau jį sukeisti. 144 00:05:58,010 --> 00:06:01,600 Aš davė jai du parametrus, ir aš vadinamas juos ir aš juos vadino b. 145 00:06:01,600 --> 00:06:04,380 >> Atvirai kalbant, aš galėčiau jiems skambinti x ir y. 146 00:06:04,380 --> 00:06:06,040 Nėra nieko sustabdyti mane nuo daro. 147 00:06:06,040 --> 00:06:08,140 Bet aš norėčiau ginčytis tai tada šiek tiek dviprasmiškas. 148 00:06:08,140 --> 00:06:11,910 Kadangi prisiminti, pirmadienį, kad mes teigė, kad šie parametrai 149 00:06:11,910 --> 00:06:13,650 kopijos vertybių praėjo in 150 00:06:13,650 --> 00:06:15,640 Todėl tik sujaukia jūsų protas, manau, jei naudojate 151 00:06:15,640 --> 00:06:17,370 lygiai tokie patys kintamieji. 152 00:06:17,370 --> 00:06:20,150 >> Taigi aš, o ne jiems skambinti ir b tik aiškumo. 153 00:06:20,150 --> 00:06:21,840 Bet mes galime juos vadinti labiausiai ką mes norime. 154 00:06:21,840 --> 00:06:26,280 Ir aš ruošiuosi kopijuoti ir įklijuoti efektyviai tai iš ten kodas 155 00:06:26,280 --> 00:06:27,170 žemyn į čia. 156 00:06:27,170 --> 00:06:29,110 Nes aš tik pamačiau, kad ji veikia. 157 00:06:29,110 --> 00:06:30,790 Štai gana geros formos. 158 00:06:30,790 --> 00:06:37,390 Ir aš pakeisti mano x A, mano x kad, mano y b ir mano y b. 159 00:06:37,390 --> 00:06:39,130 >> Taigi, kitaip tariant, patį logika. 160 00:06:39,130 --> 00:06:40,850 Lygiai toks pats dalykas, kad Jess padarė. 161 00:06:40,850 --> 00:06:44,350 Ir tada vienas dalykas, aš turiu padaryti iki Čia, žinoma, dabar pasinaudoti šia 162 00:06:44,350 --> 00:06:45,990 funkcija, arba skambinkite šią funkciją. 163 00:06:45,990 --> 00:06:50,430 Taigi, aš kreipsis šią funkciją su dviem įėjimai, x ir y, ir paspauskite Saugoti. 164 00:06:50,430 --> 00:06:52,300 >> Gerai, kad iš esmės tas pats. 165 00:06:52,300 --> 00:06:55,570 Tiesą sakant, aš tikriausiai padarė programą be reikalo sudėtingi 166 00:06:55,570 --> 00:07:00,820 raštu funkciją, kuri yra tik pradėjimo kai šešių eilučių kodo o aš 167 00:07:00,820 --> 00:07:02,970 anksčiau buvo įgyvendinami tai tik trys. 168 00:07:02,970 --> 00:07:06,230 >> Taigi leiskite man eiti į priekį dabar ir perdaryti tai, kad ne swap. 169 00:07:06,230 --> 00:07:07,920 Gerai, aš įsukus čia. 170 00:07:07,920 --> 00:07:11,290 Tai turėtų būti klaida, kad galbūt pamatyti vis dažniau kaip savo 171 00:07:11,290 --> 00:07:12,380 programos gauti daugiau sudėtingas. 172 00:07:12,380 --> 00:07:13,470 Bet tai lengva nustatyti. 173 00:07:13,470 --> 00:07:15,650 Leiskite pereikite atgal čia. 174 00:07:15,650 --> 00:07:18,190 >> Ir kas Pirma klaida matau? 175 00:07:18,190 --> 00:07:19,520 Numanomas deklaracija. 176 00:07:19,520 --> 00:07:21,466 Ką tai paprastai rodo? 177 00:07:21,466 --> 00:07:22,830 O, aš pamiršau prototipą. 178 00:07:22,830 --> 00:07:26,900 Aš pamiršau mokyti kompiliatorių, kad sukeisti ketina egzistuoja, nors jis 179 00:07:26,900 --> 00:07:28,920 neegzistuoja pačioje pradžioje programos. 180 00:07:28,920 --> 00:07:35,780 Taigi, aš tiesiog ketinate pasakyti negaliojančiu, apsikeitimo, int int b kabliataškis. 181 00:07:35,780 --> 00:07:37,280 >> Taigi, aš nesiruošia reimplement jį. 182 00:07:37,280 --> 00:07:39,140 Bet dabar jis atitinka tai, kas čia. 183 00:07:39,140 --> 00:07:42,530 Ir pastebėkite, iš kabliataškiu nebuvimas Čia, kuris nėra būtinas, kai 184 00:07:42,530 --> 00:07:43,200 įgyvendinti. 185 00:07:43,200 --> 00:07:46,010 >> Taigi leiskite man perdaryti tai, kad ne swap. 186 00:07:46,010 --> 00:07:46,910 Daug geriau forma. 187 00:07:46,910 --> 00:07:48,130 Pradėti jokio apsikeitimo. 188 00:07:48,130 --> 00:07:48,740 Ir damn it. 189 00:07:48,740 --> 00:07:51,650 Dabar mes grįžome ten, kur buvome, pirmadienį, kur dalykas nebuvo sukeisti. 190 00:07:51,650 --> 00:07:55,410 >> Ir kas paprastesnis paaiškinimas , kodėl taip yra? 191 00:07:55,410 --> 00:07:56,380 Taip? 192 00:07:56,380 --> 00:07:57,630 >> STUDENTŲ: [nesigirdi]. 193 00:07:57,630 --> 00:08:04,140 194 00:08:04,140 --> 00:08:05,230 >> Davidas Malan: Būtent. 195 00:08:05,230 --> 00:08:07,330 Taigi ir b yra kopijos x ir y. 196 00:08:07,330 --> 00:08:10,680 Ir iš tiesų, bet kuriuo metu jūs buvote telefonu funkciją taip toli, kad 197 00:08:10,680 --> 00:08:12,540 eina tokius kintamuosius kaip Ints - 198 00:08:12,540 --> 00:08:14,470 kaip apsikeitimo laukia čia - 199 00:08:14,470 --> 00:08:16,270 vaikinai buvo einančios kopijos. 200 00:08:16,270 --> 00:08:19,150 >> Dabar tai reiškia, kad reikia šiek tiek laiką, sekundės, už 201 00:08:19,150 --> 00:08:23,270 kompiuteris kopijuoti bitai iš vienos kintamasis į kitos bitai. 202 00:08:23,270 --> 00:08:24,610 Bet tai dar ne tokia baisi. 203 00:08:24,610 --> 00:08:25,920 Bet jie vis dėlto kopiją. 204 00:08:25,920 --> 00:08:30,020 >> Ir todėl dabar, atsižvelgiant į apsikeitimo kontekste Aš esu iš tikrųjų sėkmingai 205 00:08:30,020 --> 00:08:31,180 keičiasi A ir B. 206 00:08:31,180 --> 00:08:33,000 Tiesą sakant, darykime greitai normalumas patikrinti. 207 00:08:33,000 --> 00:08:36,830 Spausdinti f yra% i nauja linija. 208 00:08:36,830 --> 00:08:38,770 Ir tegul įjunkite. 209 00:08:38,770 --> 00:08:41,830 Dabar padarykime tą patį su b. 210 00:08:41,830 --> 00:08:43,640 Ir tegul tą patį padaryti čia. 211 00:08:43,640 --> 00:08:47,260 >> O dabar leiskite man nukopijuoti tuos pačius linijas vėl prie funkcija apačioje 212 00:08:47,260 --> 00:08:51,250 po mano trijų eilučių įdomus galėjo įvykdyti ir 213 00:08:51,250 --> 00:08:53,270 spausdinti A ir B dar kartą. 214 00:08:53,270 --> 00:08:56,030 Taigi dabar padarykime tai, kad ne swap. 215 00:08:56,030 --> 00:08:58,430 Leiskite terminalo langą tiek aukštesni, kad mes galime pamatyti 216 00:08:58,430 --> 00:08:59,520 daugiau apie tai vienu metu. 217 00:08:59,520 --> 00:09:00,860 >> Ir paleisti jokio apsikeitimo. 218 00:09:00,860 --> 00:09:04,000 x 1, y 2. yra 1, b 2. 219 00:09:04,000 --> 00:09:06,070 Ir tada, yra 2 b 1. 220 00:09:06,070 --> 00:09:09,390 Taigi, ji dirba, kaip Jess padarė čia viduje apsikeitimo. 221 00:09:09,390 --> 00:09:13,090 Bet, žinoma, tai neturi jokios įtakos dėl pagrindinėje kintamuosius. 222 00:09:13,090 --> 00:09:15,360 >> Taigi mes matėme apgauti, kai mes gali išspręsti šią problemą, tiesa? 223 00:09:15,360 --> 00:09:19,560 Jei esate susiduria su šia įkeltų klausimas, galima tiesiog kamuolio išmušimas iš rankų ir padaryti x 224 00:09:19,560 --> 00:09:22,400 ir y, kokios kintamieji vietoj? 225 00:09:22,400 --> 00:09:23,390 >> Jūs galite padaryti juos pasauliniu mastu. 226 00:09:23,390 --> 00:09:27,560 Įdėkite juos labai viršuje failą kaip mes padarėme, net 15 minutę. 227 00:09:27,560 --> 00:09:28,890 Mes naudojame pasaulinį kintamąjį. 228 00:09:28,890 --> 00:09:32,420 Tačiau iš žaidimo 15 kontekste ji protinga turėti pasaulio 229 00:09:32,420 --> 00:09:37,170 kintamąjį sudaro valdybą, nes iš 15.C visuma yra viskas 230 00:09:37,170 --> 00:09:38,650 apie įgyvendinant šį žaidimą. 231 00:09:38,650 --> 00:09:41,470 Štai ką failas yra daryti. 232 00:09:41,470 --> 00:09:44,170 >> Tačiau šiuo atveju čia, aš telefonu funkcija swap. 233 00:09:44,170 --> 00:09:45,380 Noriu apsikeitimo dviejų kintamųjų. 234 00:09:45,380 --> 00:09:48,950 Ir ji turėtų pradėti jaustis tiesiog per daug jausmingas jei sprendimas visiems mūsų 235 00:09:48,950 --> 00:09:51,300 problemų, kai mes paleisti į taikymo sritį klausimai yra padaryti pasauliniu mastu. 236 00:09:51,300 --> 00:09:54,730 Kadangi labai greitai mūsų programa ketina tapti gana netvarka. 237 00:09:54,730 --> 00:09:57,760 Ir mes padarėme, kad labai taupiai kaip 15.c. rezultatas 238 00:09:57,760 --> 00:10:00,470 >> Tačiau paaiškėja, nėra geriau apskritai. 239 00:10:00,470 --> 00:10:05,600 Leiskite man iš tikrųjų eiti atgal ir ištrinti spausdinti F ", tiesiog supaprastinti šį kodą. 240 00:10:05,600 --> 00:10:09,160 Ir leiskite man pasiūlyti, kad tai iš tiesų yra blogai. 241 00:10:09,160 --> 00:10:15,990 Bet jei aš, o ne pridėti kai žvaigždutes ir žvaigždės, galiu vietoj išjungti šią 242 00:10:15,990 --> 00:10:18,670 funkcija į vieną, kad yra iš tikrųjų veikia. 243 00:10:18,670 --> 00:10:25,020 >> Taigi leiskite man grįžti čia ir pripažinti, sakydamas, žvaigždutes visada sunku, 244 00:10:25,020 --> 00:10:26,170 todėl aš pasakyti žvaigždes. 245 00:10:26,170 --> 00:10:27,660 Aš tiesiog prisipažinti, kad kad vienas. 246 00:10:27,660 --> 00:10:28,190 Gerai. 247 00:10:28,190 --> 00:10:30,190 Ir dabar, ką aš ketinu daryti vietoj? 248 00:10:30,190 --> 00:10:34,130 >> Taigi, visų pirma, aš ruošiuosi nurodyti kad vietoj artimųjų int į 249 00:10:34,130 --> 00:10:37,980 apsikeitimo funkcija, aš vietoj vyksta pasakyti int žvaigždė. 250 00:10:37,980 --> 00:10:39,170 Dabar, ką žvaigždučių rodo? 251 00:10:39,170 --> 00:10:41,970 Tai yra tai, kad žymeklis, kad sąvoka Binky, Claymation pobūdžio, buvo 252 00:10:41,970 --> 00:10:43,465 nuoroda į šiuo metu senumo. 253 00:10:43,465 --> 00:10:47,610 >> Taigi, jei mes sakome, int žvaigždė, prasme tai dabar, kad nesiruošia būti 254 00:10:47,610 --> 00:10:49,110 išlaikė savo vertę. 255 00:10:49,110 --> 00:10:50,350 Jis nesiruošia būti kopijuojami in 256 00:10:50,350 --> 00:10:54,700 Atvirkščiai, adresas bus priimtas in 257 00:10:54,700 --> 00:10:57,840 >> Taigi priminti, kad kompiuterio viduje yra visa krūva atminties, kitaip 258 00:10:57,840 --> 00:10:58,760 žinoma kaip RAM. 259 00:10:58,760 --> 00:11:00,520 Ir tai RAM yra tiesiog visa krūva baitų. 260 00:11:00,520 --> 00:11:03,320 Taigi, jei jūsų Mac arba jūsų kompiuteris turi du gigabaitai, jūs turite 2 261 00:11:03,320 --> 00:11:05,760 milijardas baitų atminties. 262 00:11:05,760 --> 00:11:08,440 >> Dabar galime tik spėti, kad tik kad viskas gražiai ir tvarkingai, mes 263 00:11:08,440 --> 00:11:09,450 priskirti adresą - 264 00:11:09,450 --> 00:11:10,170 skaičius - 265 00:11:10,170 --> 00:11:12,270 kiekvienam RAM baitų kompiuterio. 266 00:11:12,270 --> 00:11:15,410 Pats pirmasis baitas tų 2 milijardų per nulį. 267 00:11:15,410 --> 00:11:18,572 Kitas vienas baitas numeris vienas, skaičius du, visi On Up būdas, taškas taškas 268 00:11:18,572 --> 00:11:20,530 taškų, iki maždaug 2 milijardus. 269 00:11:20,530 --> 00:11:23,640 >> Taigi jūs galite skaičius iš baitų atminties į savo kompiuterį. 270 00:11:23,640 --> 00:11:26,460 Taigi galime daryti prielaidą, kad tai, ką mes vadiname adresą. 271 00:11:26,460 --> 00:11:31,360 Taigi, kai aš matau int star, kas vyksta būti perduodama į apsikeitimo dabar 272 00:11:31,360 --> 00:11:32,830 adresas. 273 00:11:32,830 --> 00:11:37,150 Ne jo vertė, bet koks jo pašto adresas, taip sakant - 274 00:11:37,150 --> 00:11:38,810 jo vieta RAM. 275 00:11:38,810 --> 00:11:41,250 >> Ir panašiai b, aš ruošiuosi pasakyti tą patį. 276 00:11:41,250 --> 00:11:42,720 Žiniasklaida, žvaigždė, b. 277 00:11:42,720 --> 00:11:46,350 Kaip panaikinti, techniškai žvaigždės gali eiti kitose vietose. 278 00:11:46,350 --> 00:11:50,140 Bet mes standartizuoti žvaigždės Būdama šalia duomenų tipo. 279 00:11:50,140 --> 00:11:54,080 >> Taigi, apsikeitimo parašas dabar reiškia, duok man iš int adresas ir skambučių 280 00:11:54,080 --> 00:11:55,400 kad adresas. 281 00:11:55,400 --> 00:11:58,690 Ir duok man kitą adresą int ir skambinti, kad Adresas B. 282 00:11:58,690 --> 00:12:01,120 >> Bet dabar mano kodas čia turi pasikeisti. 283 00:12:01,120 --> 00:12:03,470 Nes jei aš pareiškiu, int temp - 284 00:12:03,470 --> 00:12:05,580 kuris vis dar tipo int - 285 00:12:05,580 --> 00:12:08,700 bet aš laikyti tai, kokios vertės? 286 00:12:08,700 --> 00:12:12,870 Kad būtų aišku, aš išleisti su kodas, kaip parašyta dabar? 287 00:12:12,870 --> 00:12:14,360 >> Aš išleisti buvimo vietą. 288 00:12:14,360 --> 00:12:16,500 Bet aš nerūpi vieta dabar, tiesa? 289 00:12:16,500 --> 00:12:21,940 Temp egzistuoja tik Jess "trečią puodelį egzistavo, kokiu tikslu? 290 00:12:21,940 --> 00:12:23,090 Norėdami išsaugoti vertę. 291 00:12:23,090 --> 00:12:24,830 Pieno ar apelsinų sulčių. 292 00:12:24,830 --> 00:12:28,520 Ne iš tikrųjų laikyti adresą nors iš tų dalykų, kurie jaučiasi 293 00:12:28,520 --> 00:12:31,200 šiek tiek absurdiškas šiame nekilnojamojo pasaulio kontekste vistiek. 294 00:12:31,200 --> 00:12:34,990 >> Taigi tikrai, ką aš noriu įdėti temp yra ne adresas, bet 295 00:12:34,990 --> 00:12:36,180 turinys. 296 00:12:36,180 --> 00:12:41,930 Taigi, jei yra, pavyzdžiui, 123 skaičius, tai 123-asis baitų atminties, kad tik 297 00:12:41,930 --> 00:12:45,090 būna, kad okupacinė, kad vertė ir būna, kad okupacinė. 298 00:12:45,090 --> 00:12:49,040 >> Jei aš noriu eiti į tą adresą, Aš turiu pasakyti, star. 299 00:12:49,040 --> 00:12:52,610 Be to, jei aš buvo pakeisti, kas adresu, Aš nesikeičiu 300 00:12:52,610 --> 00:12:53,570 tai pradėti. 301 00:12:53,570 --> 00:12:58,185 Jei aš noriu laikyti tai, kas ne vieta su tuo, kas toje vietoje, 302 00:12:58,185 --> 00:13:02,180 "B, žvaigždė b žvaigždė. 303 00:13:02,180 --> 00:13:05,340 >> Taigi trumpai tariant, net jei tai ne visai skęsta dar - ir aš ne tikėtis 304 00:13:05,340 --> 00:13:06,560 kad būtų taip greitai - 305 00:13:06,560 --> 00:13:11,100 suprasti, kad viskas, ką aš darau yra priešdėlį šios žvaigždės į mano kintamųjų, 306 00:13:11,100 --> 00:13:13,350 posakis nereikia patraukti vertybes. 307 00:13:13,350 --> 00:13:14,520 Nekeiskite vertybes. 308 00:13:14,520 --> 00:13:17,600 Bet, o, eikite į šiuos adresus ir gauti vertę. 309 00:13:17,600 --> 00:13:21,430 Eiti šiuo adresu ir kaita vertė ten. 310 00:13:21,430 --> 00:13:25,500 >> Taigi dabar leiskite man pereikite atgal į viršų, tik nustatyti šią eilutę čia, 311 00:13:25,500 --> 00:13:27,690 pakeisti prototipas varžybų. 312 00:13:27,690 --> 00:13:30,280 Bet aš dabar reikia padaryti dar vieną dalyką. 313 00:13:30,280 --> 00:13:35,500 Intuityviai, jei aš pasikeitė tipus argumentų, kad apsikeitimo tikisi, 314 00:13:35,500 --> 00:13:37,245 ką dar turiu pakeisti savo kodą? 315 00:13:37,245 --> 00:13:39,750 316 00:13:39,750 --> 00:13:40,840 >> Kai aš vadinu apsikeitimo. 317 00:13:40,840 --> 00:13:43,340 Nes dabar, ką esu Aš artimųjų apsikeitimo dar? 318 00:13:43,340 --> 00:13:47,450 X vertė ir y vertė, arba pienas ir apelsinų sultys. 319 00:13:47,450 --> 00:13:48,510 Bet aš nenoriu to daryti. 320 00:13:48,510 --> 00:13:51,060 Aš vietoj nori važiuoti, ką? 321 00:13:51,060 --> 00:13:53,050 Iš x vieta ir y vieta. 322 00:13:53,050 --> 00:13:55,300 Kokie jų pašto adresai, taip sakant. 323 00:13:55,300 --> 00:13:57,600 >> Taigi, norint tai padaryti, ten ampersendas. 324 00:13:57,600 --> 00:13:59,260 Ampersand tipo skamba kaip adresą. 325 00:13:59,260 --> 00:14:03,240 taip n ampersendas, adresas iš x ir y adresą. 326 00:14:03,240 --> 00:14:06,790 Taigi tai sąmoningas, kad mes naudojame jungimo ženklus, kai telefono funkcija, 327 00:14:06,790 --> 00:14:10,230 ir žvaigždės, deklaruojant ir kada Įgyvendinant šią funkciją. 328 00:14:10,230 --> 00:14:14,220 >> Ir tiesiog manau ženklui kaip adresas operatorius, ir žvaigždės, kaip 329 00:14:14,220 --> 00:14:15,490 ten operatorius - 330 00:14:15,490 --> 00:14:18,640 arba, tinkamai dereference operatorius. 331 00:14:18,640 --> 00:14:23,480 Štai visai daug žodžių tiesiog pasakyti, kad dabar, tikiuosi, mainai vyksta 332 00:14:23,480 --> 00:14:24,440 būti teisingi. 333 00:14:24,440 --> 00:14:26,550 >> Leiskite man eiti į priekį ir padaryti - 334 00:14:26,550 --> 00:14:30,940 tegul tikrųjų pervardyti failą, kitaip ši programa vis dar gali būti vadinamas ne sukeisti. 335 00:14:30,940 --> 00:14:33,240 Galiu reikalauti, kad mes jį vadiname swap.c dabar. 336 00:14:33,240 --> 00:14:35,670 Todėl įsitikinkite, mainytis. 337 00:14:35,670 --> 00:14:37,520 Taškų, velniop, apsikeitimo. 338 00:14:37,520 --> 00:14:40,210 >> O dabar iš tiesų, x 1, y 2. 339 00:14:40,210 --> 00:14:44,040 Ir tada, x 2, y yra vienas. 340 00:14:44,040 --> 00:14:46,500 Na pažiūrėkime, jei mes negalime padaryti šiek tiek skirtingai į tai, kas 341 00:14:46,500 --> 00:14:47,180 čia vyksta. 342 00:14:47,180 --> 00:14:51,250 Pirma, leiskite man priartinti mūsų piešimo ekranas čia. 343 00:14:51,250 --> 00:14:54,160 Ir leiskite man pasiūlyti akimirką - ir kai aš padaryti čia bus kopijuojamos 344 00:14:54,160 --> 00:14:58,660 ten dabar - leiskite man pasiūlyti, kad čia visa krūva atminties, arba 345 00:14:58,660 --> 00:15:00,540 RAM viduje savo kompiuterį. 346 00:15:00,540 --> 00:15:04,140 >> Ir tai bus įkandimo skaičius, tarkim, 1. 347 00:15:04,140 --> 00:15:05,720 Tai bus baitų skaičius 2. 348 00:15:05,720 --> 00:15:08,220 Ir aš padaryti visa krūva daugiau, ir tada iš dot dot taškų krūva 349 00:15:08,220 --> 00:15:10,880 rodo, kad yra 2 milijardai iš šių dalykų. 350 00:15:10,880 --> 00:15:13,520 4, 5, ir kt. 351 00:15:13,520 --> 00:15:17,055 >> Taigi yra pirmas penkias baitų mano kompiuterio atmintyje. 352 00:15:17,055 --> 00:15:17,560 Viskas gerai? 353 00:15:17,560 --> 00:15:19,060 Labai nedaugelis iš 2 mlrd. 354 00:15:19,060 --> 00:15:21,120 Bet dabar aš ruošiuosi pasiūlyti taip. 355 00:15:21,120 --> 00:15:27,490 Aš ruošiuosi pasiūlyti x vyksta laikyti skaičiumi 1, ir y vyksta 356 00:15:27,490 --> 00:15:29,690 laikyti numeris 2. 357 00:15:29,690 --> 00:15:35,000 Ir leiskite man eiti į priekį dabar ir yra šios vertybės taip. 358 00:15:35,000 --> 00:15:41,510 >> Leiskite tai padaryti taip. 359 00:15:41,510 --> 00:15:42,870 Duok man tik vieną sekundę. 360 00:15:42,870 --> 00:15:44,150 Vieną sekundę. 361 00:15:44,150 --> 00:15:45,680 Gerai. 362 00:15:45,680 --> 00:15:47,560 Aš noriu, kad tai šiek tiek - 363 00:15:47,560 --> 00:15:50,440 darykime tai dar kartą. 364 00:15:50,440 --> 00:15:53,250 Priešingu atveju aš ruošiuosi ir naudojant tie patys numeriai, netyčia, 365 00:15:53,250 --> 00:15:54,230 kelis kartus. 366 00:15:54,230 --> 00:15:57,320 >> Taigi tik todėl mes turime skirtingus numerius kalbėti apie, pavadinkime šį baitas 367 00:15:57,320 --> 00:16:03,391 skaičius 123, 124, 125, 126, ir taškas taškas taškas. 368 00:16:03,391 --> 00:16:08,400 Ir leiskite man teigti dabar, kad aš ruošiuosi įdėti Vertė 1 čia, ir vertė Vertė 2 369 00:16:08,400 --> 00:16:11,990 Čia, kitaip žinoma kaip x ir y. 370 00:16:11,990 --> 00:16:15,300 Taigi, jis tiesiog taip atsitinka, kad tai yra x, tai y. 371 00:16:15,300 --> 00:16:18,180 >> Ir tik kai kurių atsitiktinių atsitiktinai, kompiuteris, operacinė sistema, 372 00:16:18,180 --> 00:16:21,890 atsitiko įdėti x ne vietoje skaičius 123. 373 00:16:21,890 --> 00:16:25,590 Ir y galų gale ne vietoje 124 - 374 00:16:25,590 --> 00:16:26,330 damn it. 375 00:16:26,330 --> 00:16:28,700 Aš turėjo nustatyti, tai. 376 00:16:28,700 --> 00:16:34,040 O vyras, aš tikrai norite tai padaryti? 377 00:16:34,040 --> 00:16:37,340 Taip, aš noriu išspręsti šią problemą ir b tinkamai apie tai šiandien. 378 00:16:37,340 --> 00:16:39,950 Atsiprašome, new at this. 379 00:16:39,950 --> 00:16:45,020 >> 127, 131, ir aš nenorėjau, kad tai sudėtinga, tačiau kodėl aš pakeisti 380 00:16:45,020 --> 00:16:46,340 numeriai ten? 381 00:16:46,340 --> 00:16:48,360 Nes aš noriu, kad ints į iš tikrųjų būti keturių baitų. 382 00:16:48,360 --> 00:16:49,810 Taigi būkime super analinis apie tai. 383 00:16:49,810 --> 00:16:53,800 Taigi, kad jei 1 atsitinka būti sprendžiami 123, 2 bus adresu 384 00:16:53,800 --> 00:16:55,730 127, nes ji tik 4 liūlia toli. 385 00:16:55,730 --> 00:16:56,210 Štai ir viskas. 386 00:16:56,210 --> 00:16:58,640 Ir mes pamiršti apie visus kiti adresai pasaulyje. 387 00:16:58,640 --> 00:17:03,320 >> Taigi x yra ne vietoje 123 y yra ne vietoje 127. 388 00:17:03,320 --> 00:17:05,770 Ir dabar, ką aš iš tikrųjų nori daryti? 389 00:17:05,770 --> 00:17:10,099 Kai aš vadinu apsikeitimo dabar kas iš tikrųjų vyksta? 390 00:17:10,099 --> 00:17:14,920 Na, kai aš vadinu swap, aš einančios iš x adresą ir y adresą. 391 00:17:14,920 --> 00:17:18,540 Taigi, pavyzdžiui, jei šie du gabalai Popieriaus dabar atstovauja du 392 00:17:18,540 --> 00:17:23,510 argumentai a ir b apsikeitimo, ką aš ketina rašyti Pirmasis iš jų, 393 00:17:23,510 --> 00:17:27,720 kurį aš ruošiuosi skambinti vadina? 394 00:17:27,720 --> 00:17:30,610 >> Būtent, 123. 395 00:17:30,610 --> 00:17:31,905 Taigi tai galiu reikalauti yra. 396 00:17:31,905 --> 00:17:32,955 Tai parametras. 397 00:17:32,955 --> 00:17:35,856 Aš pradėti su x adresą ten. 398 00:17:35,856 --> 00:17:38,152 >> Kas tai? 399 00:17:38,152 --> 00:17:40,890 >> Kas tai? 400 00:17:40,890 --> 00:17:41,190 >> Ne, ne. 401 00:17:41,190 --> 00:17:41,720 Tai gerai. 402 00:17:41,720 --> 00:17:42,570 Dar gerai, vis dar gera. 403 00:17:42,570 --> 00:17:43,530 Taigi tai yra. 404 00:17:43,530 --> 00:17:46,240 Ir dabar antrą popieriaus lapo tai bus B, ir ką aš 405 00:17:46,240 --> 00:17:49,010 bus raštu tai popieriaus lapas? 406 00:17:49,010 --> 00:17:50,080 127. 407 00:17:50,080 --> 00:17:53,720 >> Taigi vienintelis dalykas, kuris pasikeitė nuo mūsų ankstesnių pasakoti šios istorijos yra 408 00:17:53,720 --> 00:17:58,590 , o ne pažodžiui 1 ir 2, aš ketina pereiti į 123 ir 127. 409 00:17:58,590 --> 00:18:02,130 Ir aš dabar ketina įgyvendinti šiuos viduje šį langelį, viskas gerai? 410 00:18:02,130 --> 00:18:04,640 Taigi, kad juodoji dėžė dabar yra apsikeitimo funkcija. 411 00:18:04,640 --> 00:18:07,230 >> Tuo tarpu, tegul dabar kas nors įgyvendinti apsikeitimo funkcija. 412 00:18:07,230 --> 00:18:09,090 Ar kas nors čia norėtų savanoriauti? 413 00:18:09,090 --> 00:18:09,560 Ateik iki. 414 00:18:09,560 --> 00:18:11,080 Koks tavo vardas? 415 00:18:11,080 --> 00:18:11,460 Čarlis. 416 00:18:11,460 --> 00:18:12,080 Visos teisės Charlie. 417 00:18:12,080 --> 00:18:14,810 Ateik iki. 418 00:18:14,810 --> 00:18:17,310 >> Taigi Čarlis žaisti mūsų juodosios dėžės vaidmuo. 419 00:18:17,310 --> 00:18:21,460 Ir Charlie, ką aš norėčiau jums padaryti dabar įgyvendinti apsikeitimo tokiu būdu 420 00:18:21,460 --> 00:18:25,320 kad, atsižvelgiant į šios dvi adresai, jūs iš tikrųjų vyksta 421 00:18:25,320 --> 00:18:26,330 pakeisti vertes. 422 00:18:26,330 --> 00:18:28,290 Ir aš šnabždesys ausies kaip paleisti televizorių čia. 423 00:18:28,290 --> 00:18:29,930 >> Taigi pirmyn, ir jūs juodoji dėžė. 424 00:18:29,930 --> 00:18:30,920 Pasiekite ten. 425 00:18:30,920 --> 00:18:34,054 Ką verčių matote, ir Kokiomis vertybėmis jūs matote b? 426 00:18:34,054 --> 00:18:36,740 >> CHARLIE: yra 123 ir B 127. 427 00:18:36,740 --> 00:18:37,530 >> Davidas Malan: Gerai, tiksliai. 428 00:18:37,530 --> 00:18:38,940 Dabar pristabdyti ten vos akimirką. 429 00:18:38,940 --> 00:18:41,680 Pirmas dalykas, kurį jūs ketinate daryti dabar, pagal kodeksą - kuris 430 00:18:41,680 --> 00:18:43,220 Aš dabar atsigriebti ekrane - 431 00:18:43,220 --> 00:18:46,750 bus skirti tiek tiek atminties vadinamas temp. 432 00:18:46,750 --> 00:18:48,850 Taigi, aš ruošiuosi eiti į priekį ir jums, kad atmintį. 433 00:18:48,850 --> 00:18:52,210 >> Taigi tai bus trečiasis kintamasis kad jūs turite prieinamas 434 00:18:52,210 --> 00:18:54,080 tu pašaukei temp. 435 00:18:54,080 --> 00:18:57,120 Ir ką jūs ketinate rašyti nuo temp popieriaus lapo? 436 00:18:57,120 --> 00:19:02,524 437 00:19:02,524 --> 00:19:03,470 >> CHARLIE: rodykles, tiesa? 438 00:19:03,470 --> 00:19:04,790 >> Davidas Malan: Gerai, gerai ne nebūtinai patarimų. 439 00:19:04,790 --> 00:19:07,230 Taigi kodo eilutę, kad aš pabrėžė, dešinėje pusėje, 440 00:19:07,230 --> 00:19:07,900 pradėkime ten. 441 00:19:07,900 --> 00:19:08,890 Ji sako žvaigždė. 442 00:19:08,890 --> 00:19:11,670 Taigi šiuo metu saugoti skaičius 123. 443 00:19:11,670 --> 00:19:16,660 Ir tik intuityviai, kas nebuvo žvaigždučių 123 reiškia? 444 00:19:16,660 --> 00:19:21,630 >> Bet konkrečiai, jei yra 123, žvaigždučių tai ką? 445 00:19:21,630 --> 00:19:22,560 A vertė. 446 00:19:22,560 --> 00:19:24,580 Ar daugiau atsainiai, eikite ten. 447 00:19:24,580 --> 00:19:28,620 Taigi leiskite man pasiūlyti, turintis į ranka, eiti į priekį ir gydyti, kad 448 00:19:28,620 --> 00:19:29,430 tarsi tai žemėlapis. 449 00:19:29,430 --> 00:19:32,940 Ir vaikščioti save per prie kompiuterio atmintis, ir mus rasti kas yra 450 00:19:32,940 --> 00:19:36,520 ne vietoje 123. 451 00:19:36,520 --> 00:19:37,720 Būtent. 452 00:19:37,720 --> 00:19:41,100 >> Taigi matome ne vietoje 123 yra tai, kas akivaizdu? 453 00:19:41,100 --> 00:19:44,240 Gerai, kad tai, kas vertė dabar esate ketina pradėti temp? 454 00:19:44,240 --> 00:19:44,750 Būtent. 455 00:19:44,750 --> 00:19:45,600 Taigi, eikite į priekį ir daryti. 456 00:19:45,600 --> 00:19:51,280 Ir parašykite skaičių 1 ant gabalas popieriaus tai šiuo metu tituluojamas temp. 457 00:19:51,280 --> 00:19:53,540 >> O dabar kitas žingsnis, kad jūs ketinate įgyvendinti 458 00:19:53,540 --> 00:19:54,310 bus ką. 459 00:19:54,310 --> 00:19:57,820 Na, dešinėje pusėje Kitą eilutę kodo žvaigžde b. B, 460 00:19:57,820 --> 00:19:59,260 kursas, parduotuvės adresą. 461 00:19:59,260 --> 00:20:02,270 Kuri spręstų 127. 462 00:20:02,270 --> 00:20:06,620 Žvaigždžių b tai ką, atsainiai kalbėti? 463 00:20:06,620 --> 00:20:08,700 >> Eiti į tą vietą. 464 00:20:08,700 --> 00:20:14,988 Taigi pirmyn ir mus rasti kas ne vietoje 127. 465 00:20:14,988 --> 00:20:15,480 Gerai. 466 00:20:15,480 --> 00:20:19,170 Žinoma, ne vietoje 127 vis dar vertė 2. 467 00:20:19,170 --> 00:20:24,060 Taigi, ką jūs ketinate dabar Laikyti visada kas į vietą? 468 00:20:24,060 --> 00:20:26,860 Taigi star reiškia, eikite į vietą a. 469 00:20:26,860 --> 00:20:29,770 Kas yra vieta? 470 00:20:29,770 --> 00:20:30,430 >> Būtent. 471 00:20:30,430 --> 00:20:34,190 Taigi dabar, jei norite pakeisti kas toje vietoje - 472 00:20:34,190 --> 00:20:36,470 Aš eisiu į priekį ir paleisti trintukas čia. 473 00:20:36,470 --> 00:20:37,760 O dabar padėkite jį atgal ant šepečio. 474 00:20:37,760 --> 00:20:42,190 Kokiu numeriu jūs ketinate rašyti toje tuščioje lango dabar? 475 00:20:42,190 --> 00:20:42,850 >> Būtent. 476 00:20:42,850 --> 00:20:46,470 Taigi tai kodo eilutę, turi būti aišku - tegul man pristabdyti kas Čarlio daro ir 477 00:20:46,470 --> 00:20:51,730 atkreipti dėmesį į čia, ką jis ką tik padariau, tai rašyti į tą laukelį vietoje 123 478 00:20:51,730 --> 00:20:55,150 vertę, kuri anksčiau buvo ne b. 479 00:20:55,150 --> 00:20:59,140 Ir taip mes dabar įgyvendinama iš tikrųjų tai antroje eilutėje kodą. 480 00:20:59,140 --> 00:21:01,920 >> Dabar, deja, yra dar viena eilutė lieka. 481 00:21:01,920 --> 00:21:04,900 Dabar, kas yra temp, pažodžiui? 482 00:21:04,900 --> 00:21:06,200 Tai akivaizdžiai numeris vienas. 483 00:21:06,200 --> 00:21:07,020 Tai nėra adresą. 484 00:21:07,020 --> 00:21:09,380 Tai tiesiog skaičius, tarsi iš savaitę vienas kintamasis. 485 00:21:09,380 --> 00:21:13,520 >> Ir dabar, kai jūs sakote žvaigždė b, tai reiškia, eiti į adresų B, kuri yra 486 00:21:13,520 --> 00:21:15,090 Žinoma čia. 487 00:21:15,090 --> 00:21:16,020 Taigi, kai jūs ten - 488 00:21:16,020 --> 00:21:18,320 Aš eisiu į priekį ir ištrinti, kas iš tikrųjų ten - ir ką jūs 489 00:21:18,320 --> 00:21:20,820 ketinate rašyti dabar vietos 127? 490 00:21:20,820 --> 00:21:22,010 >> CHARLIE: Temperatūra, kuri yra viena. 491 00:21:22,010 --> 00:21:23,430 >> Davidas Malan: Temperatūra, kuri yra viena. 492 00:21:23,430 --> 00:21:25,670 Ir kas atsitiks su temp, galų gale? 493 00:21:25,670 --> 00:21:26,600 Na, mes tikrai nežinome. 494 00:21:26,600 --> 00:21:27,420 Mes nerūpi. 495 00:21:27,420 --> 00:21:31,090 Bet kuriuo metu mes įdiegėme funkciją iki šiol, bet vietiniai kintamieji turite 496 00:21:31,090 --> 00:21:31,890 iš tiesų vietos. 497 00:21:31,890 --> 00:21:33,060 Ir jie tiesiog išnyksta. 498 00:21:33,060 --> 00:21:35,040 Jie regeneruotų veiklos sistema ilgainiui. 499 00:21:35,040 --> 00:21:39,800 >> Taigi faktas, kad temperatūra dar vertė 1 yra tarsi esmės 500 00:21:39,800 --> 00:21:41,150 neįdomu mums. 501 00:21:41,150 --> 00:21:43,100 Gerai, kad iš plojimų jei galėtume už Čarlis. 502 00:21:43,100 --> 00:21:46,400 Labai gerai padaryta. 503 00:21:46,400 --> 00:21:51,520 >> Gerai, tai kas daugiau daro tai reiškia, kad mes galime padaryti? 504 00:21:51,520 --> 00:21:54,400 Taigi paaiškėja, kad buvote pasakoti keletą baltos melas 505 00:21:54,400 --> 00:21:55,540 gana ilgą laiką. 506 00:21:55,540 --> 00:21:59,990 Iš tiesų, paaiškėja, kad eilutę, visą šį laiką, tikrai ne 507 00:21:59,990 --> 00:22:02,190 simbolių seka, per se. 508 00:22:02,190 --> 00:22:03,980 Jis rūšies yra tai, kad intuityviai. 509 00:22:03,980 --> 00:22:08,270 >> Bet techniškai kalbant, eilutė duomenų tipas, kad mes paskelbėme viduje 510 00:22:08,270 --> 00:22:12,170 CS50 biblioteka supaprastinti pasaulį už pirmąsias kelias savaites klasėje. 511 00:22:12,170 --> 00:22:20,130 Kas seka tikrai yra adresas iš charakterio kažkur RAM. 512 00:22:20,130 --> 00:22:25,530 Eilutė yra tikrai skaičius, pavyzdžiui, 123 arba 127, tai atsitiks paženklina 513 00:22:25,530 --> 00:22:28,420 kur eilutė prasideda jūsų kompiuterio atminties. 514 00:22:28,420 --> 00:22:31,870 >> Bet tai neatspindi eilutę, per se, nėra pati. 515 00:22:31,870 --> 00:22:33,460 Ir mes matome, tai taip. 516 00:22:33,460 --> 00:22:35,980 Leiskite man eiti į priekį ir atverti kai kodas, kuris yra tarp 517 00:22:35,980 --> 00:22:38,340 šiandien šaltinio kodo pavyzdžiai. 518 00:22:38,340 --> 00:22:42,225 Ir aš ruošiuosi eiti į priekį ir atidaryti iki, tarkim, palyginkite-0.c. 519 00:22:42,225 --> 00:22:44,830 520 00:22:44,830 --> 00:22:48,790 Tai Buggy programa, kuri vyksta turi būti įgyvendinamas taip. 521 00:22:48,790 --> 00:22:49,040 >> Pirmas. 522 00:22:49,040 --> 00:22:50,420 Aš ruošiuosi ką nors pasakyti. 523 00:22:50,420 --> 00:22:52,660 Tada aš ruošiuosi eiti į priekį ir gauti eilutę iš vartotojo 524 00:22:52,660 --> 00:22:53,750 toje kitoje eilutėje. 525 00:22:53,750 --> 00:22:55,370 Tada aš ruošiuosi pasakyti, kad tai dar kartą. 526 00:22:55,370 --> 00:22:57,540 Tada aš ruošiuosi gauti kitą eilutė iš vartotojo. 527 00:22:57,540 --> 00:23:00,390 >> Ir pastebėkite, rodau vieną iš virvelės kintamasis vadinamas s, ir 528 00:23:00,390 --> 00:23:03,040 kitas šių stygų į kintamasis vadinamas T. 529 00:23:03,040 --> 00:23:07,480 Ir dabar aš ruošiuosi teigti, labai pagrįstai, kad jei ai lygus lygus t, 530 00:23:07,480 --> 00:23:08,940 stygos yra tokios pačios. 531 00:23:08,940 --> 00:23:09,970 Rašote tą patį. 532 00:23:09,970 --> 00:23:11,830 Kita, stygos yra ne tas pats. 533 00:23:11,830 --> 00:23:15,440 >> Galų gale, jei mes įvesti du Ints, du simbolių, dvi plūdes, du dviviečiai, bet kurios 534 00:23:15,440 --> 00:23:18,400 duomenų tipai Mes kalbėjome apie iki šiol palyginti jas - 535 00:23:18,400 --> 00:23:22,070 Prisimenu, mes labai aiškiai, o atgal kad jums nereikia tai padaryti, nes 536 00:23:22,070 --> 00:23:25,840 vieno lygybės ženklas yra žinoma priskyrimo operatorius. 537 00:23:25,840 --> 00:23:26,820 Taigi, kad būtų klaida. 538 00:23:26,820 --> 00:23:29,260 >> Mes naudojame vienodą lygybės ženklą, kuris iš tikrųjų palygina 539 00:23:29,260 --> 00:23:31,050 dalykų tikrą lygybę. 540 00:23:31,050 --> 00:23:32,275 Bet aš teigia tai klaidų. 541 00:23:32,275 --> 00:23:37,400 Jeigu aš eiti į priekį ir padaryti palyginti nulis, ir tada nereikia taškas velniop palyginti nulį. 542 00:23:37,400 --> 00:23:39,700 Ir aš tipo, tarkim, labas. 543 00:23:39,700 --> 00:23:41,590 Ir tada tarkim Sveiki dar kartą. 544 00:23:41,590 --> 00:23:46,040 Tiesiog tą patį, kompiuteris teiginių aš įvedėte skirtingus dalykus. 545 00:23:46,040 --> 00:23:47,640 >> Dabar gal aš tiesiog neteisingai įrašytas kažką. 546 00:23:47,640 --> 00:23:49,910 Aš įveskite my name šį kartą. 547 00:23:49,910 --> 00:23:52,580 Aš turiu galvoje, labas. 548 00:23:52,580 --> 00:23:54,770 Sveiki. 549 00:23:54,770 --> 00:23:57,360 Tai skiriasi kiekvieną kartą. 550 00:23:57,360 --> 00:23:58,430 >> Na, kodėl taip yra? 551 00:23:58,430 --> 00:24:00,140 Kas iš tikrųjų vyksta po kapotu? 552 00:24:00,140 --> 00:24:03,270 Na, kas iš tikrųjų vyksta po dangtis yra eilutė tada 553 00:24:03,270 --> 00:24:07,410 Įvedžiau tą pirmą kartą, pavyzdžiui yra žodis hello, žinoma. 554 00:24:07,410 --> 00:24:11,660 Bet jei mes atstovaujame tai po dangtis, priminti, kad 555 00:24:11,660 --> 00:24:13,470 eilutė yra masyve. 556 00:24:13,470 --> 00:24:15,040 Ir mes jau sakiau kiek anksčiau. 557 00:24:15,040 --> 00:24:20,200 >> Taigi, jei aš padaryti, kad matrica, kaip šis, aš ketina atstovauti kažką labai 558 00:24:20,200 --> 00:24:23,030 panašus į ką mes padarėme prieš akimirką. 559 00:24:23,030 --> 00:24:25,390 Ir ten tikrai kažkas Specialusis čia. 560 00:24:25,390 --> 00:24:28,090 Ką mes nustatyti buvo Kiekvienos eilutės pabaiga? 561 00:24:28,090 --> 00:24:30,760 Taip, tai Backslash nulis, kuris yra tiesiog atstovauti būdas, 562 00:24:30,760 --> 00:24:33,610 pažodžiui, 00000000. 563 00:24:33,610 --> 00:24:35,680 Aštuoni bitai 0 iš eilės. 564 00:24:35,680 --> 00:24:37,610 >> Aš nežinau, tiesą sakant, kas po to. 565 00:24:37,610 --> 00:24:40,090 Tai tik krūva daugiau RAM viduje mano kompiuterį. 566 00:24:40,090 --> 00:24:40,970 Bet tai masyvo. 567 00:24:40,970 --> 00:24:42,260 Mes kalbėjome apie masyvų anksčiau. 568 00:24:42,260 --> 00:24:45,010 Ir mes paprastai kalbėti apie masyvų kaip vieta nuliui, 569 00:24:45,010 --> 00:24:46,580 tada vienas, tada du. 570 00:24:46,580 --> 00:24:47,950 Bet tai tik dėl patogumo. 571 00:24:47,950 --> 00:24:49,380 Ir tai visiškai reliatyvu. 572 00:24:49,380 --> 00:24:53,010 >> Kai jūs iš tikrųjų gauti atmintį nuo kompiuteris, tai, žinoma, bet 573 00:24:53,010 --> 00:24:55,450 2 milijardai kai nelyginis baitų, potencialiai. 574 00:24:55,450 --> 00:24:59,100 Taigi tikrai po gaubtu, visą šį laiką, taip. 575 00:24:59,100 --> 00:25:01,670 Tai gali labai gerai būti laikiklis nuliui. 576 00:25:01,670 --> 00:25:04,780 Bet jei jūs kasti dar giliau po dangtis, tai tikrai 577 00:25:04,780 --> 00:25:07,000 spręsti numerio 123. 578 00:25:07,000 --> 00:25:09,150 Tai adresas 124. 579 00:25:09,150 --> 00:25:11,040 Tai adresas 125. 580 00:25:11,040 --> 00:25:12,540 >> Ir aš ne susukti šį kartą. 581 00:25:12,540 --> 00:25:15,840 Tai yra dabar vienas baitų išskyrus dėl kokios priežasties? 582 00:25:15,840 --> 00:25:17,930 Kaip didelis yra char? 583 00:25:17,930 --> 00:25:19,170 Char yra tik vienas baitas. 584 00:25:19,170 --> 00:25:20,570 LC paprastai yra keturi baitai. 585 00:25:20,570 --> 00:25:24,850 Štai kodėl aš padariau tai 123, 127, 131 ir kt. 586 00:25:24,850 --> 00:25:27,560 Dabar galiu laikyti matematikos paprastesnis ir tiesiog plus 1. 587 00:25:27,560 --> 00:25:30,510 Ir tai dabar kas iš tikrųjų vyksta apie po gaubtu. 588 00:25:30,510 --> 00:25:37,760 >> Taigi, kai jūs paskelbti kažką panašaus į tai, eilutę s iš tikrųjų tai yra - 589 00:25:37,760 --> 00:25:39,170 it turns out - 590 00:25:39,170 --> 00:25:41,190 char žvaigždė. 591 00:25:41,190 --> 00:25:44,640 Žvaigždė, žinoma, reiškia adresas, dar žinomas kaip rodyklė. 592 00:25:44,640 --> 00:25:46,200 Taigi tai kažką adresą. 593 00:25:46,200 --> 00:25:47,510 Kas tai yra adresas? 594 00:25:47,510 --> 00:25:47,760 >> Na - 595 00:25:47,760 --> 00:25:51,680 Aš vienintelis, kuris gali pamatyti labai svarbus dalykas, aš padaryti, ar manote, kad 596 00:25:51,680 --> 00:25:52,560 Aš padaryti. 597 00:25:52,560 --> 00:25:55,270 Taigi eilutė - 598 00:25:55,270 --> 00:25:57,180 Liūdniausia yra tai, turiu monitorių teisę ten, kur aš 599 00:25:57,180 --> 00:25:58,100 galėjo matyti, kad. 600 00:25:58,100 --> 00:26:00,990 >> Gerai, kad eilutė s kas Skelbiau anksčiau. 601 00:26:00,990 --> 00:26:04,600 Tačiau paaiškėja, dėka mažai magija CS50 bibliotekoje, visa tai 602 00:26:04,600 --> 00:26:08,780 laiko eilutė pažodžiui buvo char žvaigždė. 603 00:26:08,780 --> 00:26:11,310 Žvaigždučių vėlgi reiškia rodyklė ar adresą. 604 00:26:11,310 --> 00:26:14,180 Faktas, kad tai gretutines Žodis simbolis reiškia, kad jis 605 00:26:14,180 --> 00:26:15,970 adresas simbolį. 606 00:26:15,970 --> 00:26:23,100 >> Taigi, jei gauti eilutę vadinamas, ir aš tipo į H-E-L-L-O, siūlyti dabar ką gauti 607 00:26:23,100 --> 00:26:27,330 eilutė pažodžiui buvo grąžinti visi šį kartą, nors mes, o 608 00:26:27,330 --> 00:26:29,980 supaprastino pasaulį? 609 00:26:29,980 --> 00:26:33,310 Ką gaunate eilutė iš tikrųjų grįžti kaip savo sugrįžimo vertę? 610 00:26:33,310 --> 00:26:35,830 611 00:26:35,830 --> 00:26:38,720 >> 123 Šiuo atveju, pavyzdžiui. 612 00:26:38,720 --> 00:26:42,630 Mes anksčiau sakė, kad gauti eilutę tiesiog grąžina eilutę, yra seka 613 00:26:42,630 --> 00:26:43,300 simbolių. 614 00:26:43,300 --> 00:26:44,790 Bet tai iš balto melo tiek. 615 00:26:44,790 --> 00:26:48,010 Būdas gauti eilutę tikrai veikia po kapotu tai gauna 616 00:26:48,010 --> 00:26:48,930 eilutė iš vartotojo. 617 00:26:48,930 --> 00:26:51,530 Tai plops ženklų, kad Jis ar ji tipų atmintyje. 618 00:26:51,530 --> 00:26:54,680 Tai kelia backslash nulį pabaigoje iš tų simbolių seka. 619 00:26:54,680 --> 00:26:57,310 >> Bet tada ką gauti eilutę tiesiog grįžti? 620 00:26:57,310 --> 00:27:02,710 Jis tiesiog grąžina adresą pirmųjų baitų RAM, kad 621 00:27:02,710 --> 00:27:04,130 jis naudojo tam jėga. 622 00:27:04,130 --> 00:27:07,500 Ir it turns out, kad tiesiog grįžti vieno adresas 623 00:27:07,500 --> 00:27:12,120 Pirmasis simbolis eilutės, tai yra pakanka rasti visuma 624 00:27:12,120 --> 00:27:12,630 eilutę. 625 00:27:12,630 --> 00:27:16,930 >> Kitaip tariant, gauti eilutė neturi grįžti 123 ir 124 ir 125. 626 00:27:16,930 --> 00:27:19,950 Ji neturi duoti man ilgai Visų svetainės dalyvių sąrašas baitai, kurie 627 00:27:19,950 --> 00:27:20,740 mano eilutė naudoja. 628 00:27:20,740 --> 00:27:22,670 Kadangi viena, jie visi atgal atgal. 629 00:27:22,670 --> 00:27:28,160 Ir du, remiantis pirmosios adresą, aš gali išsiaiškinti, kur eilutė baigiasi. 630 00:27:28,160 --> 00:27:29,910 Kaip? 631 00:27:29,910 --> 00:27:33,490 >> Specialusis null pobūdis, pabaigoje nulį kairiniu pasviruoju brūkšniu. 632 00:27:33,490 --> 00:27:35,430 Taigi, kitaip tariant, jei pereisite aplink - 633 00:27:35,430 --> 00:27:36,530 viduje kintamųjų - 634 00:27:36,530 --> 00:27:41,300 iš char adresas ir jūs prisiimate kad bet kurios eilutės pabaigoje, bet 635 00:27:41,300 --> 00:27:45,040 simbolių seka, kaip mes, žmonės manau eilučių, jei manyti, kad 636 00:27:45,040 --> 00:27:48,600 bet kurios tokios eilutės nėra pabaigos Backslash nulis, jūs auksinės spalvos. 637 00:27:48,600 --> 00:27:52,430 Kadangi jūs visada galite rasti iš eilutės pabaiga. 638 00:27:52,430 --> 00:27:54,870 >> Dabar, kas tikrai tada vyksta apie šią programą? 639 00:27:54,870 --> 00:27:59,990 Kodėl ši programa, palyginti-0.c, Buggy? 640 00:27:59,990 --> 00:28:01,690 Kas iš tiesų yra lyginami? 641 00:28:01,690 --> 00:28:02,420 Taip? 642 00:28:02,420 --> 00:28:05,000 >> STUDENTŲ: [nesigirdi]. 643 00:28:05,000 --> 00:28:05,730 >> Davidas Malan: Būtent. 644 00:28:05,730 --> 00:28:08,350 Tai palyginti vietas iš stygų. 645 00:28:08,350 --> 00:28:12,420 Taigi, jei vartotojas turi įvesti Apie vieną kartą, kaip aš, atmintis gali baigtis 646 00:28:12,420 --> 00:28:13,430 atrodo taip. 647 00:28:13,430 --> 00:28:18,210 Tada, jei naudotojas įveda Sveiki dar kartą, bet paskambinus gauti eilutę vėl, c yra 648 00:28:18,210 --> 00:28:21,800 ne itin protingas, jei mokyti kad jis būtų protingas rašyti kodą. 649 00:28:21,800 --> 00:28:22,430 >> C - 650 00:28:22,430 --> 00:28:23,860 ir kompiuterių apskritai - 651 00:28:23,860 --> 00:28:27,370 jei įvesite žodį Sveiki dar kartą, jūs žinote, ką jūs ketinate gauti. 652 00:28:27,370 --> 00:28:31,480 Jūs esate tik ketina gauti antrą masyvo atminties, kad taip, atsitinka būti 653 00:28:31,480 --> 00:28:35,510 saugoti H-e-L-L-O ir kt. 654 00:28:35,510 --> 00:28:38,240 >> Tai ketiname ieškoti patį mus žmonės, tačiau šis adresas 655 00:28:38,240 --> 00:28:39,460 gali būti 123. 656 00:28:39,460 --> 00:28:42,470 Tai gali būti tiesiog taip atsitikti, kad operacinė sistema turi kai galima 657 00:28:42,470 --> 00:28:45,430 vietos, pavyzdžiui, siekiama vietos - 658 00:28:45,430 --> 00:28:49,820 tarkim kažką savavališkai, kaip tai yra vieta 200. 659 00:28:49,820 --> 00:28:51,620 Ir tai yra vieta 201. 660 00:28:51,620 --> 00:28:53,060 Ir tai yra vieta 202. 661 00:28:53,060 --> 00:28:55,730 Mes neturite idėjos, kur, kad yra bus atmintyje. 662 00:28:55,730 --> 00:28:59,110 >> Bet ką tai reiškia, kad tai, kas bus saugomi galiausiai s? 663 00:28:59,110 --> 00:29:00,750 Skaičius 123. 664 00:29:00,750 --> 00:29:04,860 Kas bus saugomi t, Šiame savavališko pavyzdžiui? 665 00:29:04,860 --> 00:29:06,300 Skaičius 200. 666 00:29:06,300 --> 00:29:11,410 Ir visa tai reiškia, kad tada, žinoma, 123 nėra lygi 200. 667 00:29:11,410 --> 00:29:14,940 Ir taip, tai, jei sąlyga niekada įvertina, kad tiesa. 668 00:29:14,940 --> 00:29:18,430 Kadangi GET eilutė naudojant įvairias gabaliukus atminties kiekvieną kartą. 669 00:29:18,430 --> 00:29:20,360 >> Dabar mes matome, tai vėl Kitame pavyzdyje. 670 00:29:20,360 --> 00:29:23,764 Leiskite man eiti į priekį ir atverti Kopijuoti 0.c. 671 00:29:23,764 --> 00:29:28,770 Galiu reikalauti, kad šis pavyzdys ketina pabandyti - bet nepavyksta - kopijuoti dvi eilutes 672 00:29:28,770 --> 00:29:29,910 taip. 673 00:29:29,910 --> 00:29:31,730 >> Aš ruošiuosi ką nors pasakyti vartotojui. 674 00:29:31,730 --> 00:29:34,490 Aš tada ketinate gauti eilutė ir vadina jį s. 675 00:29:34,490 --> 00:29:36,400 Ir dabar darau šį patikrinimą čia. 676 00:29:36,400 --> 00:29:37,990 Mes paminėjo šį, o atgal. 677 00:29:37,990 --> 00:29:42,490 Bet kai gali gauti string grįžti NULL, kitas specialus simbolis, arba specialus 678 00:29:42,490 --> 00:29:45,050 simbolis tarkim. 679 00:29:45,050 --> 00:29:45,900 Jei tai iš atminties. 680 00:29:45,900 --> 00:29:48,970 >> Pavyzdžiui, jei vartotojas yra tikrai yra sunku ir rūšys žiaurus 681 00:29:48,970 --> 00:29:51,220 simbolių skaičius ne klaviatūra ir smūgius Enter. 682 00:29:51,220 --> 00:29:54,580 Jei tai simbolių skaičius tiesiog negali tilptų RAM kokia beprotiška 683 00:29:54,580 --> 00:29:57,820 priežastis, ir gauti eilutė galėtų labai gerai grįžti null. 684 00:29:57,820 --> 00:30:01,080 >> Arba, jei jūsų programa pati daro daug kitų dalykų, ir ten tiesiog 685 00:30:01,080 --> 00:30:03,790 Nepakanka atminties GET eilutę būtų sėkminga, ji gali baigtis 686 00:30:03,790 --> 00:30:05,240 grįžta null. 687 00:30:05,240 --> 00:30:07,160 Bet būkime tiksliau apie tai, kas tai yra. 688 00:30:07,160 --> 00:30:10,280 Kas yra S "duomenų tipas tikrai? 689 00:30:10,280 --> 00:30:11,610 Char žvaigždė. 690 00:30:11,610 --> 00:30:14,560 >> Taigi paaiškėja, dabar mes galime žievelės parems null sluoksnis. 691 00:30:14,560 --> 00:30:17,500 Pasirodo, nulis yra - taip, žinoma specialus simbolis. 692 00:30:17,500 --> 00:30:19,190 Bet kas tai yra iš tikrųjų? 693 00:30:19,190 --> 00:30:25,220 Tikrai, nulis yra tik simbolis, kad mes žmonės naudoja atstovauti nulis taip pat. 694 00:30:25,220 --> 00:30:29,010 >> Taigi nuo C autorių ir kompiuterių apskritai nusprendė metų 695 00:30:29,010 --> 00:30:30,010 , kad jūs žinote, ką. 696 00:30:30,010 --> 00:30:34,850 Kodėl mes užtikrinti, kad nė vienas vartotojas duomenys niekada, niekada, niekada 697 00:30:34,850 --> 00:30:36,730 saugomi bye nulio? 698 00:30:36,730 --> 00:30:39,610 Tiesą sakant, net mano savavališko pavyzdžiui prieš, aš ne pradėti numeravimą 699 00:30:39,610 --> 00:30:40,390 baitais nulio. 700 00:30:40,390 --> 00:30:41,540 Aš pradėjau viename. 701 00:30:41,540 --> 00:30:44,950 Kadangi Aš žinojau, kad žmonės visame pasaulyje nusprendė pasilikti nulis 702 00:30:44,950 --> 00:30:47,970 baitų niekieno RAM kaip kažkas ypatinga. 703 00:30:47,970 --> 00:30:52,020 >> Priežastis yra, bet kuriuo metu norite signalas, kad kažkas negerai 704 00:30:52,020 --> 00:30:55,960 atsižvelgiant į adresų sugrįžote Null - kitaip žinomas kaip nulio - 705 00:30:55,960 --> 00:30:59,410 ir nes žinote, kad nėra teisėtu duomenis adresu nulio, aiškiai 706 00:30:59,410 --> 00:31:00,400 tai reiškia, kad klaida. 707 00:31:00,400 --> 00:31:04,080 Ir štai kodėl mes, kaip įprasta, patikrinkite, ar for null ir sugrįžimo kažką 708 00:31:04,080 --> 00:31:06,260 kaip vienas iš tokių atvejų. 709 00:31:06,260 --> 00:31:09,300 >> Taigi, jei mes pereikite dabar, tai tik tada kai klaidos nebus tikrinamas tik tuo atveju, 710 00:31:09,300 --> 00:31:10,610 kažkas negerai su [? gelbėti?] 711 00:31:10,610 --> 00:31:13,470 apskritai ir uždarykite programą grąžinant anksti. 712 00:31:13,470 --> 00:31:19,030 Ši eilutė dabar galima perrašyti nes tai, o tai reiškia ką? 713 00:31:19,030 --> 00:31:23,155 Kairėje pusėje, duok dar rodyklę į simbolį, ir vadina jį t. 714 00:31:23,155 --> 00:31:26,935 Ką aš laikyti viduje t, remiantis apie šį vieną eilutę kodo? 715 00:31:26,935 --> 00:31:30,950 716 00:31:30,950 --> 00:31:32,170 >> Aš saugojimo vietą. 717 00:31:32,170 --> 00:31:34,742 Tiksliau vieta kad buvo s. 718 00:31:34,742 --> 00:31:39,000 Taigi, jei vartotojas turi įvesti labas, ir kad pirmasis Apie atsitinka baigti 719 00:31:39,000 --> 00:31:42,567 čia, tada skaičius 123 ketina grįžti iš gauti 720 00:31:42,567 --> 00:31:43,810 string ir laikyti - 721 00:31:43,810 --> 00:31:44,780 kaip sakėme anksčiau - 722 00:31:44,780 --> 00:31:45,440 s. 723 00:31:45,440 --> 00:31:50,560 >> Kai aš dabar deklaruoti dar vieną žymiklį char ir vadina jį t, kas skaičius 724 00:31:50,560 --> 00:31:53,940 tiesiog ketina baigti t, atsižvelgiant į istoriją? 725 00:31:53,940 --> 00:31:55,420 Taigi 123. 726 00:31:55,420 --> 00:32:00,310 >> Taigi techniškai dabar tiek s, o t yra nukreipta į tikslų 727 00:32:00,310 --> 00:32:02,410 patys gabaliukus atminties. 728 00:32:02,410 --> 00:32:06,140 Taigi pastebėti tai, ką aš ruošiuosi daryti dabar įrodyti, kad ši programa yra klaidų. 729 00:32:06,140 --> 00:32:08,820 >> Pirmiausia aš ruošiuosi teigti, su Spausdinti f, kapitalizuoti 730 00:32:08,820 --> 00:32:10,080 iš eilutės kopija. 731 00:32:10,080 --> 00:32:11,660 Tada aš ruošiuosi padaryti šiek tiek Klaidų. 732 00:32:11,660 --> 00:32:12,160 Aš ruošiuosi įsitikinti. 733 00:32:12,160 --> 00:32:16,710 Leiskite įsitikinkite, kad eilutė t yra jau didesnė už nulį ilgio, 734 00:32:16,710 --> 00:32:19,190 taip yra keletas simbolis yra kad iš tikrųjų pasinaudoti. 735 00:32:19,190 --> 00:32:22,840 >> Ir tada jūs tikriausiai pamenate, kad tai iš ankstesnių pavyzdžių. 736 00:32:22,840 --> 00:32:25,630 2 viršutinė - kuris yra ctype.h failas. 737 00:32:25,630 --> 00:32:30,800 T laikiklis nulis suteikia man nulis pobūdis styginių t. 738 00:32:30,800 --> 00:32:34,360 Ir 2 viršutinė tos pačios vertės, iš kursas, paverčia jį į didžiąsias. 739 00:32:34,360 --> 00:32:38,230 >> Taigi intuityviai, tai pabrėžė linija kodo yra kapitalizuoti pirmas 740 00:32:38,230 --> 00:32:40,250 laišką, t. 741 00:32:40,250 --> 00:32:44,485 Bet tai ne kapitalizuoti, intuityviai, pirmoji raidė s. 742 00:32:44,485 --> 00:32:48,130 Bet jei jūs galvojate į priekį, kas aš esu pamatyti, kai aš paleisti šią programą 743 00:32:48,130 --> 00:32:54,220 ir atspausdinti tiek originalus, s, o vadinamoji kopija, t? 744 00:32:54,220 --> 00:32:55,350 >> Jie tikrai bus tas pats. 745 00:32:55,350 --> 00:32:56,600 Ir kodėl jie bus vienodi? 746 00:32:56,600 --> 00:32:58,970 747 00:32:58,970 --> 00:33:01,020 Jie abu nukreipta į lygiai tas pats dalykas. 748 00:33:01,020 --> 00:33:01,610 Taigi galime tai padaryti. 749 00:33:01,610 --> 00:33:03,160 >> Padaryti kopiją nulį. 750 00:33:03,160 --> 00:33:04,070 Ji kaupia Gerai. 751 00:33:04,070 --> 00:33:06,500 Leiskite man paleisti kopijavimo nulį. 752 00:33:06,500 --> 00:33:10,110 Leiskite man įvesti kažką panašaus HELLO visi mažosiomis tada paspauskite "Enter". 753 00:33:10,110 --> 00:33:16,520 Ir ji teigia, kad abu originalus ai ir kopija iš tiesų yra identiški. 754 00:33:16,520 --> 00:33:17,920 >> Taigi, kas iš tikrųjų nutiko čia? 755 00:33:17,920 --> 00:33:20,100 Leiskite perbraižyti šią nuotrauką tik pasakyti į istoriją 756 00:33:20,100 --> 00:33:21,340 šiek tiek kitaip. 757 00:33:21,340 --> 00:33:26,060 Kas iš tikrųjų vyksta po dangtis kai aš pareiškiu, kažką panašaus 758 00:33:26,060 --> 00:33:30,410 char pradžia s ar seka s Gaunu rodyklę - 759 00:33:30,410 --> 00:33:33,090 kuris atsitinka būti keturių baitų į CS50 prietaiso 760 00:33:33,090 --> 00:33:34,410 ir kompiuteriniu aikštelė. 761 00:33:34,410 --> 00:33:36,008 Ir aš ruošiuosi tai vadiname s. 762 00:33:36,008 --> 00:33:39,810 Ir tai šiuo metu turi kai nežinoma vertė. 763 00:33:39,810 --> 00:33:43,900 >> Kai paskelbti kintamąjį, jei sau įdėti vertę ten, kurie 764 00:33:43,900 --> 00:33:44,570 žino, kas ten. 765 00:33:44,570 --> 00:33:48,110 Tai gali būti kai atsitiktinė seka bitai nuo praėjusių vykdymo. 766 00:33:48,110 --> 00:33:52,490 Taigi, kai aš, mano kodo eilutę gausite eilutę, ir tada laikyti grįžti 767 00:33:52,490 --> 00:33:54,800 vertė s gauti eilutę kažkaip - 768 00:33:54,800 --> 00:33:58,520 ir mes galų gale žievelės atgal kaip gauti string darbai, kažkaip skiria 769 00:33:58,520 --> 00:34:00,480 masyvas, kad tikriausiai atrodo kaip šis bitas. 770 00:34:00,480 --> 00:34:05,390 H-El-L-L-O Backslash nuliui. 771 00:34:05,390 --> 00:34:09,510 >> Sakykime, kad tai adresas 123 tik pirmas nuoseklumas. 772 00:34:09,510 --> 00:34:13,000 Taigi gauti string požiūriu, kaip pabrėžė liniją ten, ji grąžina 773 00:34:13,000 --> 00:34:15,000 skaičius sakėme, 123. 774 00:34:15,000 --> 00:34:17,420 Taigi, kas iš tikrųjų vyksta viduje yra čia? 775 00:34:17,420 --> 00:34:26,590 >> Na, kas iš tikrųjų vyksta viduje S 123. 776 00:34:26,590 --> 00:34:29,250 Bet tiesą sakant, gaunu mažai supainioti visus šiuos adresus, 777 00:34:29,250 --> 00:34:30,320 visi šie savavališkai numerius. 778 00:34:30,320 --> 00:34:32,290 123, 124, 127. 779 00:34:32,290 --> 00:34:34,570 Taigi, galime iš tikrųjų supaprastinti pasaulis truputį. 780 00:34:34,570 --> 00:34:38,800 >> Kai kalbame apie rodykles, tiesą sakant, į mus žmonės, kurie gi rūpi, kur 781 00:34:38,800 --> 00:34:39,870 viskas yra atminties? 782 00:34:39,870 --> 00:34:41,080 Tai visiškai savavališkai. 783 00:34:41,080 --> 00:34:43,370 Ji ketina priklausys nuo to, kaip kiek RAM vartotojas. 784 00:34:43,370 --> 00:34:46,590 Tai vyksta nuo tada, kai tą pačią dieną Paleidus programą, ko gero, ir 785 00:34:46,590 --> 00:34:48,250 ką įvesties vartotojas suteikia jums. 786 00:34:48,250 --> 00:34:50,060 Mes būstą nesvarbios informacijos. 787 00:34:50,060 --> 00:34:54,230 >> Taigi tegul abstraktus toli ir pasakyti, kad paleidus kodo eilutę, kaip tai, 788 00:34:54,230 --> 00:34:57,320 char žvaigždučių ai gauna grąžą vertė get eilutę. 789 00:34:57,320 --> 00:35:02,720 Kodėl ne mes, o tiesiog atkreipti ką mes nuolat raginama žymeklį, tarsi tai 790 00:35:02,720 --> 00:35:04,140 nukreipta į kažką? 791 00:35:04,140 --> 00:35:07,000 Taigi galiu reikalauti, kad dabar s iki yra rodyklė - 792 00:35:07,000 --> 00:35:08,480 po kapotu tai adresas. 793 00:35:08,480 --> 00:35:11,330 Bet tai tik nukreipta į Pirmas baitas į 794 00:35:11,330 --> 00:35:12,780 seka, kad buvo grąžinta. 795 00:35:12,780 --> 00:35:16,710 >> Jei aš dabar grįžti į kodą čia tai, kas vyksta šioje eilutėje? 796 00:35:16,710 --> 00:35:20,020 Na, šiuo paryškintos linijos dabar, Aš skelbiantis, matyt, dar 797 00:35:20,020 --> 00:35:21,070 kintamasis vadinamas T. 798 00:35:21,070 --> 00:35:25,700 Bet tai taip pat rodyklė, todėl aš ruošiuosi piešti, nes, teoriškai, tiksli 799 00:35:25,700 --> 00:35:26,710 paties dydžio dėžutę. 800 00:35:26,710 --> 00:35:28,160 Ir aš ruošiuosi jį vadiname k. 801 00:35:28,160 --> 00:35:33,500 >> Ir dabar, jei mes einame atgal į kodą dar kartą, kai aš laikyti ų viduje t, 802 00:35:33,500 --> 00:35:36,920 ką aš techniškai išleisti viduje t? 803 00:35:36,920 --> 00:35:39,350 Na techniškai tai buvo numeris 123. 804 00:35:39,350 --> 00:35:42,270 Taigi tikrai turėčiau būti raštu skaičius 123 ten. 805 00:35:42,270 --> 00:35:43,900 Bet leiskite jį aukštesnį lygį. 806 00:35:43,900 --> 00:35:48,090 t, jei tai tik rodyklė, intuityviai, yra tik tai. 807 00:35:48,090 --> 00:35:49,800 Štai ir viskas tai yra saugomi ten. 808 00:35:49,800 --> 00:35:54,970 >> Taigi dabar per pastaruosius įdomių linijų kodo, kai aš iš tikrųjų eiti apie 809 00:35:54,970 --> 00:36:00,680 Kapitalizacija nulinės charakterį t, kas vyksta? 810 00:36:00,680 --> 00:36:06,310 Na, t laikiklis nulis dabar nukreipta ką simbolis, matyt? 811 00:36:06,310 --> 00:36:07,460 >> Tai nukreipta h. 812 00:36:07,460 --> 00:36:08,870 Kadangi T laikiklis nulis - 813 00:36:08,870 --> 00:36:12,490 prisimenate, tai yra senas sintaksė. t laikiklis nulis tiesiog reiškia, jei t yra eilutė, t 814 00:36:12,490 --> 00:36:15,590 laikiklis nulis reiškia, kad vis nulis požymio stiprumo. 815 00:36:15,590 --> 00:36:18,650 Taigi, ką tai iš tikrųjų reiškia tai eiti į šio masyvo - 816 00:36:18,650 --> 00:36:21,520 ir taip, tai gali būti 123, tai gali būti 124. 817 00:36:21,520 --> 00:36:22,790 Bet visa tai giminaitis, prisiminti. 818 00:36:22,790 --> 00:36:25,640 Kai kalbame apie masyvo, mes turime kalbėti apie privalumas 819 00:36:25,640 --> 00:36:27,000 santykiniai rodikliai. 820 00:36:27,000 --> 00:36:31,120 >> Ir todėl dabar mes galime tiesiog manyti, kad t laikiklis nulis val. 821 00:36:31,120 --> 00:36:35,090 Taigi, jei aš vadinu 2 viršutinę apie tai, ką tai tikrai darote, yra kapitalizuoti 822 00:36:35,090 --> 00:36:38,290 mažoji h iki didžiųjų H. Bet, žinoma, kas yra s? 823 00:36:38,290 --> 00:36:41,010 Tai nukreipta į tą patį darn eilutę. 824 00:36:41,010 --> 00:36:44,200 >> Taigi visa tai, kad buvo daroma šiame kodekse iki šiol. 825 00:36:44,200 --> 00:36:45,960 Taigi, kas tada prasmė? 826 00:36:45,960 --> 00:36:48,300 Kaip mes išspręsti šias dvi problemas? 827 00:36:48,300 --> 00:36:50,870 Kaip mes, palyginti su faktiniais stygos? 828 00:36:50,870 --> 00:36:53,720 >> Na intuityviai, kaip būtų tu apie palyginant dvi 829 00:36:53,720 --> 00:36:55,090 stygos tikrą lygybę? 830 00:36:55,090 --> 00:36:58,920 831 00:36:58,920 --> 00:37:00,750 >> Ką reiškia, jei du stygos yra lygūs? 832 00:37:00,750 --> 00:37:04,330 Aišku, ne todėl, kad jų adresai EQUAL atminties, nes tai mažas 833 00:37:04,330 --> 00:37:06,590 lygis įgyvendinimas išsamiai. 834 00:37:06,590 --> 00:37:08,360 Visi simboliai yra tas pats. 835 00:37:08,360 --> 00:37:12,810 Taigi leiskite man pasiūlyti, ir leiskite man pristatyti Į compare.c vienos versijos 836 00:37:12,810 --> 00:37:14,970 čia, todėl palyginti-1.c. 837 00:37:14,970 --> 00:37:19,590 >> Leiskite man pasiūlyti, kad mes vis dar gauti rodyklė vadinamas ai, ir laikyti jį 838 00:37:19,590 --> 00:37:20,610 grįžti vertę GET eilutę. 839 00:37:20,610 --> 00:37:21,750 Leiskite padaryti tą patį su t. 840 00:37:21,750 --> 00:37:23,230 Taigi nė vienas iš kodas yra kitoks. 841 00:37:23,230 --> 00:37:25,420 Aš ruošiuosi įdėti šiek tiek daugiau klaidų tikrinimas dabar. 842 00:37:25,420 --> 00:37:29,390 Taigi dabar, kad mes tarsi lupimasis atgal tai į CS50, kas seka sluoksniai 843 00:37:29,390 --> 00:37:33,520 iš tikrųjų yra, mes turime būti daugiau analinis apie tai, kad mes nepiktnaudžiautų 844 00:37:33,520 --> 00:37:35,330 negaliojančių verčių, pavyzdžiui, null. 845 00:37:35,330 --> 00:37:36,440 >> Taigi, aš tik ketina patikrinti. 846 00:37:36,440 --> 00:37:41,490 Jei ai nėra lygi nuliui ir t nėra lygi nuliui, tai reiškia, kad mes gerai. 847 00:37:41,490 --> 00:37:44,460 Paimti eilutę nebuvo susukti gauti viena iš šių eilučių. 848 00:37:44,460 --> 00:37:51,270 Ir jūs galite galbūt atspėti dabar, ką nėra STR CMP tikriausiai daryti? 849 00:37:51,270 --> 00:37:52,000 Styginių palyginti. 850 00:37:52,000 --> 00:37:55,470 >> Taigi, jei jūs programą Java anksčiau, tai kaip lygus metodas 851 00:37:55,470 --> 00:37:56,490 styginių klasės. 852 00:37:56,490 --> 00:37:57,890 Bet tiems iš jūsų, kurie nėra užprogramuotas anksčiau, 853 00:37:57,890 --> 00:37:59,320 tai tik c funkcija. 854 00:37:59,320 --> 00:38:02,180 Taip atsitinka ateiti failą pavadinimu string.h. 855 00:38:02,180 --> 00:38:03,830 Štai kur tai deklaruoti. 856 00:38:03,830 --> 00:38:05,110 >> Ir styginių palyginti - 857 00:38:05,110 --> 00:38:07,530 Aš iš tikrųjų pamiršti jų naudojimą, bet tai nesvarbu. 858 00:38:07,530 --> 00:38:10,470 Prisiminkite, kad mes galime padaryti vyras, išmaišyti palyginti. 859 00:38:10,470 --> 00:38:12,590 Ir tai vyksta auklėti "Linux" programuotojai instrukcijos. 860 00:38:12,590 --> 00:38:14,060 Ir tai, tiesą sakant, šiek tiek paslaptingas. 861 00:38:14,060 --> 00:38:15,270 Bet matau, kad čia, yep. 862 00:38:15,270 --> 00:38:17,570 Turiu įtraukti string.h. 863 00:38:17,570 --> 00:38:20,590 >> Ir ji sako, čia pagal aprašymą " styginių palyginti funkcija palygina 864 00:38:20,590 --> 00:38:24,560 dvi eilutes S1 ir S2. "ir s1 ir S2, matyt, du 865 00:38:24,560 --> 00:38:26,120 argumentai perduoti in 866 00:38:26,120 --> 00:38:28,650 Aš tikrai ne prisiminti, kas konstanta yra, bet dabar SKELBIMAS APIE PIRKIMĄ - 867 00:38:28,650 --> 00:38:31,480 ir tu gali matyti tai jau kai jūs naudoti žinyno puslapių, jei 868 00:38:31,480 --> 00:38:32,390 visa tai - 869 00:38:32,390 --> 00:38:36,220 kad char žvaigždė yra tik sinonimas virvele. 870 00:38:36,220 --> 00:38:40,440 >> Taigi ji lygina dvi eilutes, S1 ir S2 ir grąžina sveikąjį skaičių mažiau 871 00:38:40,440 --> 00:38:44,930 kaip arba lygi arba didesnė už nulį jei S1 nustatyta, atitinkamai, turi būti 872 00:38:44,930 --> 00:38:47,450 mažesnis arba nesutampa, arba būti didesnis negu S2. 873 00:38:47,450 --> 00:38:51,220 Tai tiesiog labai sudėtingas būdas pasakyti kad eilutė palyginti grąžą 874 00:38:51,220 --> 00:38:55,760 nulis, jei dvi eilutes yra intuityviai identiški, personažas 875 00:38:55,760 --> 00:38:57,120 personažas pobūdžio. 876 00:38:57,120 --> 00:38:59,970 >> Ji grąžina neigiamą skaičių, jei ai, pagal abėcėlę, tai turėtų 877 00:38:59,970 --> 00:39:01,010 ateiti iki t. 878 00:39:01,010 --> 00:39:05,300 Arba grąžina teigiamą skaičių, jei s turėtų ateiti po t 879 00:39:05,300 --> 00:39:06,170 abėcėlės tvarka. 880 00:39:06,170 --> 00:39:08,360 Taigi šį paprastą funkciją, galėtų Jūs, pavyzdžiui, rūšiuoti 881 00:39:08,360 --> 00:39:09,770 visa krūva žodžių? 882 00:39:09,770 --> 00:39:13,984 >> Taigi ši nauja versija, aš ruošiuosi eiti į priekį ir padaryti compare1. 883 00:39:13,984 --> 00:39:15,750 Dot velniop palyginti vieną. 884 00:39:15,750 --> 00:39:18,030 Aš įvesti Apie visose mažosios. 885 00:39:18,030 --> 00:39:20,300 Aš einu įvesti Apie visose mažosiomis dar kartą. 886 00:39:20,300 --> 00:39:23,340 Ir laimei, dabar jis supranta, Įvedžiau tą patį. 887 00:39:23,340 --> 00:39:27,520 >> Tuo tarpu, jei aš įvesti HELLO mažesnis atveju ir HELLO didžiąsias raides ir 888 00:39:27,520 --> 00:39:29,710 palyginti juos, aš įvedėte skirtingi dalykai. 889 00:39:29,710 --> 00:39:32,530 Nes ne tik adresai skirtingi, bet mes palyginti 890 00:39:32,530 --> 00:39:35,350 skirtingų simbolių vėl ir vėl. 891 00:39:35,350 --> 00:39:37,320 >> Na eikime ir nustatyti vieną Kita problema dabar. 892 00:39:37,320 --> 00:39:41,590 Leiskite man atidaryti po vieną versiją kopija, kuri dabar adresai 893 00:39:41,590 --> 00:39:42,900 šis klausimas taip. 894 00:39:42,900 --> 00:39:45,650 Ir tai vienas vyksta ieškoti šiek tiek sudėtingesnis. 895 00:39:45,650 --> 00:39:49,320 Bet jeigu jūs manote apie tai, kas problema, reikia išspręsti, tikiuosi tai bus 896 00:39:49,320 --> 00:39:51,870 aišku, tik akimirką dabar. 897 00:39:51,870 --> 00:39:57,280 >> Taigi, pirmoji eilutė, ženklas pradžia t, iš profanas sąlygomis gali kas nors pasiūlyti 898 00:39:57,280 --> 00:39:59,450 ką ši eilutė čia reiškia? 899 00:39:59,450 --> 00:40:01,050 Char žvaigždučių t, kas tai daro? 900 00:40:01,050 --> 00:40:06,660 901 00:40:06,660 --> 00:40:07,210 >> Geras. 902 00:40:07,210 --> 00:40:09,500 Sukurti rodyklę į kai vieta atmintyje. 903 00:40:09,500 --> 00:40:10,930 Ir leiskite man patikslinti jį šiek tiek. 904 00:40:10,930 --> 00:40:17,180 Pripažinti kintamąjį, kad bus saugoti adresas kai char atminties, tiesiog 905 00:40:17,180 --> 00:40:18,480 būti šiek tiek daugiau tinkamai. 906 00:40:18,480 --> 00:40:21,210 >> Gerai, kad dabar yra dešinėje pusėje, aš niekada mačiau vieną iš šių funkcijų 907 00:40:21,210 --> 00:40:22,660 prieš malloc. 908 00:40:22,660 --> 00:40:26,980 Bet kas gali tai reiškia? 909 00:40:26,980 --> 00:40:28,050 Paskirstymo atminties. 910 00:40:28,050 --> 00:40:29,410 Atminties paskirstymas. 911 00:40:29,410 --> 00:40:33,050 >> Taigi paaiškėja, iki šiol mes ne tikrai turėjo galingą būdą 912 00:40:33,050 --> 00:40:36,210 klausia operacinę sistemą, duoti man šiek tiek atminties. 913 00:40:36,210 --> 00:40:39,980 Atvirkščiai, dabar mes turime funkcija vadinama malloc kad daro būtent tai. 914 00:40:39,980 --> 00:40:42,960 Nors tai yra šiek tiek išsiblaškymas dabar, pastebėsite, kad 915 00:40:42,960 --> 00:40:46,200 tarp dviejų Skliaustuose tiesiog bus skaičius. 916 00:40:46,200 --> 00:40:48,510 Kur aš įvedėte klausimą ženklai gali būti skaičius. 917 00:40:48,510 --> 00:40:51,020 >> Ir šis skaičius reiškia, man 10 baitų. 918 00:40:51,020 --> 00:40:52,320 Duok man 20 baitų. 919 00:40:52,320 --> 00:40:53,820 Duok man 100 baitų. 920 00:40:53,820 --> 00:40:56,500 Ir malloc darys viską, kad paprašyti operacinę sistemą - 921 00:40:56,500 --> 00:40:57,630 "Linux", šiuo atveju - 922 00:40:57,630 --> 00:40:59,630 Ei, yra jų 100 baitai RAM prieinama? 923 00:40:59,630 --> 00:41:04,320 Jei taip, grąžinti tuos baitus man grąžinant iš kurių apie adresą 924 00:41:04,320 --> 00:41:06,610 tie baitų, gal? 925 00:41:06,610 --> 00:41:07,610 Labai pirmasis. 926 00:41:07,610 --> 00:41:10,460 >> Taigi čia taip pat - ir tai yra vyraujanti C, bet kada jūs 927 00:41:10,460 --> 00:41:11,680 susijusius su adresais? 928 00:41:11,680 --> 00:41:15,830 Jūs beveik visada susijusios su Pirmasis toks adresas, nesvarbu koks didelis 929 00:41:15,830 --> 00:41:19,490 atminties riekė jums yra grąžino, taip sakant. 930 00:41:19,490 --> 00:41:20,880 >> Taigi tegul neria čia. 931 00:41:20,880 --> 00:41:23,940 Bandau skirti kaip daug baitų, tiksliai? 932 00:41:23,940 --> 00:41:24,080 Na. 933 00:41:24,080 --> 00:41:26,090 Styginių ilgis s - tegul padaryti konkretų pavyzdį. 934 00:41:26,090 --> 00:41:30,700 Jei s hello, H-El-L-L-O kas eilutės ilgis S, žinoma? 935 00:41:30,700 --> 00:41:32,010 Taigi tai penki. 936 00:41:32,010 --> 00:41:34,590 Bet aš darau plius 1 apie tai, kodėl? 937 00:41:34,590 --> 00:41:37,700 Kodėl aš noriu šešis baitus vietoj penkių? 938 00:41:37,700 --> 00:41:38,790 Niekinis pobūdis. 939 00:41:38,790 --> 00:41:41,210 >> Nenoriu palikti išjungti šią Specialusis null pobūdžio. 940 00:41:41,210 --> 00:41:45,160 Nes jei aš padaryti Sveiki kopiją ir just do H-El-L-L-O, bet aš ne įdėti 941 00:41:45,160 --> 00:41:50,160 kad specialus simbolis, kompiuteris gali neturėti, atsitiktinai, backslash 942 00:41:50,160 --> 00:41:51,730 nulio ten mane. 943 00:41:51,730 --> 00:41:55,570 Ir todėl, jei aš bandau išsiaiškinti, ilgis kopiją, galiu manyti, kad 944 00:41:55,570 --> 00:41:59,360 tai 20 simbolių ilgio, arba milijonų simbolių ilgio, jei aš tiesiog niekada neįvyks 945 00:41:59,360 --> 00:42:01,050 paspausti backslash nulį. 946 00:42:01,050 --> 00:42:05,780 >> Taigi mums reikia šešių baitų laikyti H-El-L-L-O Backslash nuliui. 947 00:42:05,780 --> 00:42:07,870 Ir tai yra tik būti super analinis. 948 00:42:07,870 --> 00:42:10,700 Tarkime, kad aš pamiršti, ką iš char dydis. 949 00:42:10,700 --> 00:42:12,020 Mes nuolat sakydamas, kad tai yra vienas baitas. 950 00:42:12,020 --> 00:42:12,860 Ir tai paprastai yra. 951 00:42:12,860 --> 00:42:15,425 Teoriškai, tai gali būti kažkas skiriasi, kitokią Mac arba 952 00:42:15,425 --> 00:42:16,250 kito kompiuterio. 953 00:42:16,250 --> 00:42:19,650 >> Taigi paaiškėja, ten tai operatorius vadinamas sizeof kad jei perduoti jį į 954 00:42:19,650 --> 00:42:22,680 pavadinimas Duomenų tipas - kaip char ar int arba float - 955 00:42:22,680 --> 00:42:26,930 jis jums pasakys, dinamiškai, kiek baitų char užima apie tai 956 00:42:26,930 --> 00:42:28,090 pirma kompiuteris. 957 00:42:28,090 --> 00:42:31,360 >> Taigi tai yra efektyviai tik tarsi sakydamas kartus 1 arba 958 00:42:31,360 --> 00:42:32,440 kartų visai nieko. 959 00:42:32,440 --> 00:42:36,340 Bet aš darau tai tiesiog būti super analinis, kad tik tuo atveju, char skiriasi 960 00:42:36,340 --> 00:42:40,610 kompiuteryje palyginti kasyklos, tokiu būdu matematika visada bus patikrinti. 961 00:42:40,610 --> 00:42:43,720 >> Galiausiai, žemyn čia aš patikrinti null, kuris visada yra gera praktika - vėl 962 00:42:43,720 --> 00:42:44,920 bet kuriuo metu mes susiduriame su rodyklėmis. 963 00:42:44,920 --> 00:42:47,520 Jei malloc negalėjo duoti me šešių liūlia - tai yra 964 00:42:47,520 --> 00:42:49,210 mažai tikėtinas, bet tik tuo atveju - 965 00:42:49,210 --> 00:42:50,730 grįžti vieną iš karto. 966 00:42:50,730 --> 00:42:53,290 Ir dabar, eiti į priekį ir kopijuoti eilutę taip. 967 00:42:53,290 --> 00:42:57,240 Ir tai yra susipažinęs sintaksė, nors kitą vaidmenį. 968 00:42:57,240 --> 00:43:01,210 >> Aš ruošiuosi eiti į priekį ir gauti eilutę ilgis s ir laikyti jį n. 969 00:43:01,210 --> 00:43:06,620 Aš tada ketiname pakartoti iš I lygus nulio iki ir įskaitant n, 970 00:43:06,620 --> 00:43:08,410 didesnis nei arba lygus. 971 00:43:08,410 --> 00:43:13,540 Taigi, kad kiekvienos iteracijos, aš įdėti osios pobūdis s į-osios 972 00:43:13,540 --> 00:43:15,380 pobūdis t. 973 00:43:15,380 --> 00:43:18,190 >> Taigi, kas iš tikrųjų vyksta po gaubtas čia? 974 00:43:18,190 --> 00:43:22,140 Na, jei tai, pavyzdžiui, yra s - 975 00:43:22,140 --> 00:43:26,400 ir aš įvedėte žodžio H-El-L-L-O ir ten Backslash nuliui. 976 00:43:26,400 --> 00:43:29,020 Ir vėl, tai yra s nukreipta čia. 977 00:43:29,020 --> 00:43:30,830 Ir čia dabar yra t. 978 00:43:30,830 --> 00:43:34,860 >> Ir tai yra nukreipta dabar atminties kopija, tiesa? 979 00:43:34,860 --> 00:43:37,340 Malloc davė man visą riekė atmintyje. 980 00:43:37,340 --> 00:43:41,440 Aš nežinau, iš pradžių kas bet kurioje iš šių vietų. 981 00:43:41,440 --> 00:43:44,340 Taigi, aš ruošiuosi galvoti apie tai, kaip visa krūva klaustukų. 982 00:43:44,340 --> 00:43:50,190 >> Bet kaip tik aš pradedu kilpų nuo nulio toliau aukštyn per iš S, T ilgio 983 00:43:50,190 --> 00:43:52,790 laikiklis nulis, ir t laikiklis 1 - 984 00:43:52,790 --> 00:43:55,080 ir aš įdėti šią dabar Viršuje - 985 00:43:55,080 --> 00:44:04,190 t laikiklis nulis ir s laikiklis nulinės reikšmės kad aš ruošiuosi būti kopijavimo 986 00:44:04,190 --> 00:44:09,875 iteracijų h čia, e-L-L-O. Plius, nes aš plius 987 00:44:09,875 --> 00:44:12,370 1 Backslash nuliui. 988 00:44:12,370 --> 00:44:19,060 >> Taigi dabar į palyginti-1.c atveju galų gale, jei aš spausdinti 989 00:44:19,060 --> 00:44:24,760 kapitalizacija t, turėtume matyti, kad s nepakito. 990 00:44:24,760 --> 00:44:26,090 Leiskite man eiti į priekį dabar ir daryti tai. 991 00:44:26,090 --> 00:44:28,630 Taigi, kad Copy1. 992 00:44:28,630 --> 00:44:30,860 Dot velniop Copy1. 993 00:44:30,860 --> 00:44:33,670 Aš ruošiuosi tipo labas, Enter. 994 00:44:33,670 --> 00:44:37,430 Ir dabar pastebėsite, tik kopiją buvo kapitalizuotas. 995 00:44:37,430 --> 00:44:40,890 Nes aš tikrai turi du gabaliukus atminties. 996 00:44:40,890 --> 00:44:44,390 >> Deja, jūs galite padaryti kai kurie gana blogai ir gana pavojingų dalykų čia. 997 00:44:44,390 --> 00:44:49,290 Leiskite atsigriebti pavyzdį čia dabar, kuri suteikia mums, mažai pavyzdį 998 00:44:49,290 --> 00:44:51,540 skirtingos linijos. 999 00:44:51,540 --> 00:44:56,040 Taigi tiesiog intuityviai čia, pirmoji eilutė kodo, int žvaigždučių x deklaruoja 1000 00:44:56,040 --> 00:44:57,340 kintamasis vadinamas x. 1001 00:44:57,340 --> 00:44:58,810 Ir kas duomenų tipas tos kintamojo? 1002 00:44:58,810 --> 00:45:01,820 1003 00:45:01,820 --> 00:45:04,290 Kas yra duomenų tipas, kad kintamasis? 1004 00:45:04,290 --> 00:45:06,980 Tai buvo ne Įspūdingos filmą. 1005 00:45:06,980 --> 00:45:08,350 >> Duomenų tipas int žvaigždė. 1006 00:45:08,350 --> 00:45:12,600 Taigi, ką tai reiškia? x bus atmintį int adresą. 1007 00:45:12,600 --> 00:45:13,520 Paprasta, kaip kad. 1008 00:45:13,520 --> 00:45:16,220 Y ketinate laikyti adresas int. 1009 00:45:16,220 --> 00:45:18,390 Kas yra trečioje eilutėje kodo daro ten? 1010 00:45:18,390 --> 00:45:21,850 Tai paskirstyti kiek baitų, greičiausiai? 1011 00:45:21,850 --> 00:45:22,350 Keturi. 1012 00:45:22,350 --> 00:45:25,460 Dėl int dydžio paprastai keturių, malloc keturių suteikia 1013 00:45:25,460 --> 00:45:29,950 mane parems riekė iš adreso atmintis, iš kurių baitų Pirmasis 1014 00:45:29,950 --> 00:45:32,110 saugomi dabar x. 1015 00:45:32,110 --> 00:45:34,410 >> Dabar mes juda mažai greitai. 1016 00:45:34,410 --> 00:45:35,760 Žvaigždžių x reiškia ką? 1017 00:45:35,760 --> 00:45:38,480 1018 00:45:38,480 --> 00:45:42,590 Tai reiškia, kad eiti šiuo adresu ir įdėti kokiu numeriu ten? 1019 00:45:42,590 --> 00:45:43,870 Įdėk numeris 42 ten. 1020 00:45:43,870 --> 00:45:47,590 Žvaigždžių m reiškia eiti į tai, kas ne y ir įdėti numeris 13 ten. 1021 00:45:47,590 --> 00:45:48,600 >> Bet palauk. 1022 00:45:48,600 --> 00:45:51,640 Kas yra Y šiuo metu? 1023 00:45:51,640 --> 00:45:54,950 Ką adresas yra m saugoti? 1024 00:45:54,950 --> 00:45:55,770 Mes nežinome, ar ne? 1025 00:45:55,770 --> 00:45:59,230 Mes niekada kartą naudojate užduotį operatorius dalyvauja y. 1026 00:45:59,230 --> 00:46:03,370 Taigi y kaip deklaruojamas antroje eilutėje kodas yra tik keletas šiukšlių vertė, didelis 1027 00:46:03,370 --> 00:46:04,760 klaustukas taip sakant. 1028 00:46:04,760 --> 00:46:07,230 Tai gali būti nukreipta atsitiktinai niekam atminties, kuri 1029 00:46:07,230 --> 00:46:08,340 paprastai yra blogai. 1030 00:46:08,340 --> 00:46:13,540 >> Taigi, kuo greičiau pasiektų šį liniją ten, y zvaigzdes lygus 13, kažką blogo, 1031 00:46:13,540 --> 00:46:17,220 kažkas labai blogai yra apie atsitikti Binky. 1032 00:46:17,220 --> 00:46:25,810 Taigi pažiūrėkime, ką ketina baigti vyksta binky čia šia minutę 1033 00:46:25,810 --> 00:46:26,200 ar taip atrodo. 1034 00:46:26,200 --> 00:46:26,490 >> [VIDEO PLAYBACK] 1035 00:46:26,490 --> 00:46:26,745 >> -Ei, Binky. 1036 00:46:26,745 --> 00:46:27,000 Pabuskite. 1037 00:46:27,000 --> 00:46:29,296 Atėjo laikas rodykle įdomus. 1038 00:46:29,296 --> 00:46:30,680 >> -Kas tai? 1039 00:46:30,680 --> 00:46:31,980 Sužinokite daugiau apie rodykles? 1040 00:46:31,980 --> 00:46:34,010 O, Goodie. 1041 00:46:34,010 --> 00:46:37,220 >> -Na, pradėti, manau, mes ketinate reikia keletą patarimų. 1042 00:46:37,220 --> 00:46:37,930 >> -Gerai. 1043 00:46:37,930 --> 00:46:41,650 Šis kodas skiriami du patarimų kuris gali nurodyti sveikaisiais skaičiais. 1044 00:46:41,650 --> 00:46:43,760 >> -Gerai, gerai, matau dvi rodykles. 1045 00:46:43,760 --> 00:46:45,850 Bet jie neatrodo, kad būti nukreipta į ką nors. 1046 00:46:45,850 --> 00:46:46,490 >> -Tai tiesa. 1047 00:46:46,490 --> 00:46:48,630 Iš pradžių patarimų ne pabrėžti, kad nieko. 1048 00:46:48,630 --> 00:46:51,700 Tai, ką jie atkreipia dėmesį į vadinami Pointees ir nustatyti juos yra 1049 00:46:51,700 --> 00:46:52,850 atskiras žingsnis. 1050 00:46:52,850 --> 00:46:53,740 >> -O, tiesa, tiesa. 1051 00:46:53,740 --> 00:46:54,500 Aš žinojau, kad. 1052 00:46:54,500 --> 00:46:56,270 Į Pointees yra atskira. 1053 00:46:56,270 --> 00:46:58,553 Taigi, kaip jums skirti pointee? 1054 00:46:58,553 --> 00:46:59,480 >> -Gerai. 1055 00:46:59,480 --> 00:47:03,707 Na, šis kodas skiria naują sveikieji skaičiai pointee, ir ši dalis nustato x 1056 00:47:03,707 --> 00:47:05,520 atkreipti dėmesį į jį. 1057 00:47:05,520 --> 00:47:06,760 >> -Ei, tai atrodo geriau. 1058 00:47:06,760 --> 00:47:08,520 Taigi, kad jis kažką daryti. 1059 00:47:08,520 --> 00:47:09,530 >> -Gerai. 1060 00:47:09,530 --> 00:47:14,110 Aš dereference rodyklė x laikyti skaičius 42 į savo pointee. 1061 00:47:14,110 --> 00:47:17,660 Už šį triuką, aš reikia mano magija Wand dereferencing. 1062 00:47:17,660 --> 00:47:20,695 >> -Jūsų stebuklinga lazdele iš dereferencing? 1063 00:47:20,695 --> 00:47:22,632 Mm, tai puiku. 1064 00:47:22,632 --> 00:47:24,620 >> -Tai kas kodas atrodo. 1065 00:47:24,620 --> 00:47:27,526 Aš tiesiog sukurti numerį, ir - 1066 00:47:27,526 --> 00:47:28,250 >> -Ei, atrodo. 1067 00:47:28,250 --> 00:47:29,680 Ten ji eina. 1068 00:47:29,680 --> 00:47:34,520 Daryti ant x taip dereference rodyklė prieiti prie savo pointee. 1069 00:47:34,520 --> 00:47:36,690 Šiuo atveju saugoti 42 ten. 1070 00:47:36,690 --> 00:47:40,890 Ei, pabandykite naudoti jį įrašykite šį numerį iš 13 pro kitą žymiklio m. 1071 00:47:40,890 --> 00:47:42,125 >> -Gerai. 1072 00:47:42,125 --> 00:47:46,810 Aš tiesiog eiti per čia y ir gauti skaičius 13 įsteigti. 1073 00:47:46,810 --> 00:47:50,890 Ir tada imtis Wand dereferencing ir tiesiog - 1074 00:47:50,890 --> 00:47:52,430 Whoa! 1075 00:47:52,430 --> 00:47:53,030 >> -Oh, ei. 1076 00:47:53,030 --> 00:47:54,610 Tai neveikia. 1077 00:47:54,610 --> 00:47:58,200 Pasakykite, Binky, aš nemanau, kad dereferencing Y yra gera idėja, 1078 00:47:58,200 --> 00:48:01,370 nes steigiant pointee yra atskiras žingsnis. 1079 00:48:01,370 --> 00:48:03,460 Ir aš nemanau, kad mes kada nors padarė. 1080 00:48:03,460 --> 00:48:03,810 >> -Hmm. 1081 00:48:03,810 --> 00:48:05,160 Gera vieta. 1082 00:48:05,160 --> 00:48:07,410 >> -Taip, skyrėme žymiklį y. 1083 00:48:07,410 --> 00:48:10,045 Bet mes niekada nustatyti jį rodytų į pointee. 1084 00:48:10,045 --> 00:48:10,490 >> -Hmm. 1085 00:48:10,490 --> 00:48:12,170 Labai pastabus. 1086 00:48:12,170 --> 00:48:13,790 >> -Ei, jūs ieškote geras ten, Binky. 1087 00:48:13,790 --> 00:48:16,920 Ar galite nustatyti jį taip, kad y punktai tuo pačiu pointee kaip X? 1088 00:48:16,920 --> 00:48:17,810 >> -Žinoma. 1089 00:48:17,810 --> 00:48:20,300 Aš naudoti savo stebuklinga lazdele iš rodyklė užduotį. 1090 00:48:20,300 --> 00:48:22,240 >> -Ar tai bus problema kaip ir anksčiau? 1091 00:48:22,240 --> 00:48:22,665 >> -Ne. 1092 00:48:22,665 --> 00:48:24,300 Tai neliečia Pointees. 1093 00:48:24,300 --> 00:48:27,880 Jis tiesiog keičia vieną žymiklį pažymėti į tą patį, kaip ir kitas. 1094 00:48:27,880 --> 00:48:28,970 >> -O, aš matau. 1095 00:48:28,970 --> 00:48:31,730 Dabar y atkreipia dėmesį į pačioje vietoje kaip ir x. 1096 00:48:31,730 --> 00:48:32,450 Taigi palaukti. 1097 00:48:32,450 --> 00:48:33,490 Dabar Y yra fiksuota. 1098 00:48:33,490 --> 00:48:34,630 Ji pointee. 1099 00:48:34,630 --> 00:48:36,520 Taigi galite pabandyti lazdelę iš dereferencing vėl 1100 00:48:36,520 --> 00:48:39,200 siųsti 13 daugiau. 1101 00:48:39,200 --> 00:48:39,840 >> -Gerai. 1102 00:48:39,840 --> 00:48:41,570 Čia eina. 1103 00:48:41,570 --> 00:48:42,870 >> -Ei, pažiūrėkit. 1104 00:48:42,870 --> 00:48:44,320 Dabar dereferencing darbus y. 1105 00:48:44,320 --> 00:48:47,020 Ir todėl, rodyklės dalintis kad vienas pointee, jie 1106 00:48:47,020 --> 00:48:48,585 abu pamatyti 13. 1107 00:48:48,585 --> 00:48:49,040 >> -Taip. 1108 00:48:49,040 --> 00:48:49,670 Pasidalyti. 1109 00:48:49,670 --> 00:48:50,380 Koks skirtumas. 1110 00:48:50,380 --> 00:48:52,290 Taigi, mes ketiname jungiklių vietas dabar? 1111 00:48:52,290 --> 00:48:52,970 >> -O, atrodo. 1112 00:48:52,970 --> 00:48:54,150 Mes pavėluotai. 1113 00:48:54,150 --> 00:48:55,200 >> -Bet - 1114 00:48:55,200 --> 00:48:57,060 >> -Tiesiog neužmirškite, tris rodyklė taisykles. 1115 00:48:57,060 --> 00:49:00,100 Numeris vienas, pagrindinė struktūra yra tai, kad jūs turite rodyklę. 1116 00:49:00,100 --> 00:49:02,170 Ir ji pažymi perkelti į pointee. 1117 00:49:02,170 --> 00:49:04,160 Bet rodyklė ir pointee yra atskira. 1118 00:49:04,160 --> 00:49:06,460 Ir dažna klaida yra sukurti rodyklę, bet 1119 00:49:06,460 --> 00:49:08,540 pamiršote suteikta pointee. 1120 00:49:08,540 --> 00:49:12,460 >> Numeris du, rodyklė dereferencing prasideda į rodyklę ir laikosi 1121 00:49:12,460 --> 00:49:14,570 rodyklė virš pasiekti savo pointee. 1122 00:49:14,570 --> 00:49:18,640 Kaip mes visi žinome, tai veikia tik jei yra yra pointee, kuris grįš į 1123 00:49:18,640 --> 00:49:19,790 Taisyklė numeris vienas. 1124 00:49:19,790 --> 00:49:23,670 >> Numeris trys, rodyklė užduotis trunka viena rodyklė ir keičiasi tai, kad rodytų į 1125 00:49:23,670 --> 00:49:25,850 pats pointee kaip kitą žymiklio. 1126 00:49:25,850 --> 00:49:27,840 Taigi po perleidimo, dvi rodykles 1127 00:49:27,840 --> 00:49:29,430 atkreipti dėmesį į tą patį pointee. 1128 00:49:29,430 --> 00:49:31,600 Kartais tai vadinama pasidalijimo. 1129 00:49:31,600 --> 00:49:33,430 Ir tai viskas yra į jį, tikrai. 1130 00:49:33,430 --> 00:49:33,840 Bye bye dabar. 1131 00:49:33,840 --> 00:49:34,300 >> [PABAIGA VIDEO PLAYBACK] 1132 00:49:34,300 --> 00:49:36,940 >> Davidas Malan: Taigi, daugiau patarimų, daugiau Binky kitą savaitę. 1133 00:49:36,940 --> 00:49:38,190 Dar pasimatysime pirmadienį. 1134 00:49:38,190 --> 00:49:42,187