1 00:00:00,000 --> 00:00:11,242 >> [Jwe mizik] 2 00:00:11,242 --> 00:00:16,630 >> DAVID J. Malan: Tout dwa sa a se CS50 ak sa a se kòmanse nan semèn senk. 3 00:00:16,630 --> 00:00:21,480 Se konsa, jounen jodi a, anba kousen chèz ou a, ou pa pral jwenn anyen. 4 00:00:21,480 --> 00:00:24,790 Men, pi wo a, ou ta dwe jwenn sa yo, yon ti kras montre apresiyayon nou an pou 5 00:00:24,790 --> 00:00:26,970 tout nan travay la ke ou mete nan jwèt la nan Kenz. 6 00:00:26,970 --> 00:00:30,290 Senpleman retire sèk la ti kras sou la anba yo kòmanse jwe pou la 7 00:00:30,290 --> 00:00:31,680 rès nan klas la. 8 00:00:31,680 --> 00:00:38,930 >> Se konsa, sonje ke, oswa konnen ke pwoblèm mete kat yo, ki soti fen semèn sa a, 9 00:00:38,930 --> 00:00:40,340 enplike nan ekri yon lòt jwèt. 10 00:00:40,340 --> 00:00:43,740 Men, fwa sa a li enplike lè l sèvi avèk yon aktyèl itilizatè grafik koòdone, se pa yon 11 00:00:43,740 --> 00:00:46,310 textuelle koòdone tankou Jwèt nan Kenz te ye a. 12 00:00:46,310 --> 00:00:50,210 Men, jwèt la ki bay manti devan yo nan ou, si ou pa te ankò wè sa a kap vini an, 13 00:00:50,210 --> 00:00:52,310 sanble yon ti kras yon bagay tankou sa a. 14 00:00:52,310 --> 00:00:55,170 Mwen pral antre nan tèminal mwen fenèt isit la nan gdb. 15 00:00:55,170 --> 00:00:58,600 Men, mwen pral ale pi devan epi kouri a solisyon anplwaye yo, kote ou ka gen aksè nan 16 00:00:58,600 --> 00:01:01,010 apre kouri aktyalizasyon 50 kòm dabitid. 17 00:01:01,010 --> 00:01:04,090 >> Men, mwen pral mete l 'nan yon ti kras sekrè mòd, yon ti kras Pak ze, 18 00:01:04,090 --> 00:01:08,480 sa yo rele Bondye mòd, pa mete Bondye nan argv1. 19 00:01:08,480 --> 00:01:12,920 Apre sa, mwen gen swiv enstriksyon pwòp m 'yo, kouri l 'nan pwòp mwen 20 00:01:12,920 --> 00:01:14,220 pwoblèm mete anyè. 21 00:01:14,220 --> 00:01:19,190 Se konsa, kounye a ou wè yon vèsyon konplè nan jwèt la nan levasyon. 22 00:01:19,190 --> 00:01:21,090 An reyalite, sa a se pa-men mòd. 23 00:01:21,090 --> 00:01:24,850 Se konsa, li la aktyèlman - 24 00:01:24,850 --> 00:01:26,470 wowed menm si ou ka - 25 00:01:26,470 --> 00:01:30,850 bèl trivial aplike Bondye mòd nan Levasyon, kontrèman ak jwèt nan Kenz, 26 00:01:30,850 --> 00:01:33,590 ki kèk nan ou ta ka genyen aborder pou edisyon an HACKER. 27 00:01:33,590 --> 00:01:37,890 >> Nan levasyon Li sifizan nan Bondye mòd tou senpleman fè sa, 28 00:01:37,890 --> 00:01:41,220 entwitif ak pedal la? 29 00:01:41,220 --> 00:01:45,630 Jis fè li egal a la tou sa pozisyon orizontal la se nan boul la. 30 00:01:45,630 --> 00:01:49,220 Se konsa, lontan ke ou fè sa nan lockstep ak boul la deplase jwèt sa a pral 31 00:01:49,220 --> 00:01:53,100 pa janm, tout tan, tout tan tout tan manke boul la epi ou pral genyen chak fwa. 32 00:01:53,100 --> 00:01:55,430 >> Men, nan edisyon HACKER yo semenn sa a gen pi plis pase jis mòd Bondye. 33 00:01:55,430 --> 00:01:56,720 Genyen yon nimewo nan karakteristik lòt. 34 00:01:56,720 --> 00:01:58,140 Nan mitan yo, lazer. 35 00:01:58,140 --> 00:02:01,070 Se konsa, ke si ou reyèlman pran pasyans ou ka kòmanse tire desann brik yo 36 00:02:01,070 --> 00:02:02,120 ak yon lòt moun kèk. 37 00:02:02,120 --> 00:02:04,560 Se pou moun nan nou ki ta renmen detèmine estanda kont HACKER 38 00:02:04,560 --> 00:02:08,750 edisyon, mwen ka wè ke yo semenn sa a edisyon HACKER fè espre a se yon 39 00:02:08,750 --> 00:02:12,830 ti kras pi plis pratik, di, pase Bondye mòd te la avèk jwèt nan Kenz. 40 00:02:12,830 --> 00:02:15,300 >> Se konsa, si w ap chèche yon detire ak w ap chèche pou kèk plezi plis 41 00:02:15,300 --> 00:02:18,400 karakteristik fè plonje nan si nan enterè yo. 42 00:02:18,400 --> 00:02:21,280 Koulye a, plis pratikman, kite m 'pwen soti yon sèl bagay yo tou. 43 00:02:21,280 --> 00:02:24,780 Gdb, ki kèk nan ou ka pa gen ankò manyen pèsonèlman, ki se amann. 44 00:02:24,780 --> 00:02:28,530 Men koulye a, se reyèlman tan nan jwenn itilize sa a ak konfòtab ak zouti sa a 45 00:02:28,530 --> 00:02:31,510 paske li pral fè lavi ou pi fasil, se vre wi. 46 00:02:31,510 --> 00:02:34,900 >> Pou chak konferans Rob a sou gdb yon koup nan semèn de sa, sonje 47 00:02:34,900 --> 00:02:36,810 ki gdb se yon debugjeur. 48 00:02:36,810 --> 00:02:41,230 Li se yon zouti ki pèmèt ou kouri ou pwogram men kouri li etap pa etap liy, 49 00:02:41,230 --> 00:02:45,680 pa liy, pou ke ou ka pike alantou li, pou ke ou wè bagay k ap pase, se konsa 50 00:02:45,680 --> 00:02:47,310 ke ou ka enprime soti valè nan varyab. 51 00:02:47,310 --> 00:02:50,580 Nan ti bout tan, li ba ou pou pi plis pouvwa pase printDef fè. 52 00:02:50,580 --> 00:02:52,900 >> Koulye a, Byensir, koòdone nan se trè Esoteric. 53 00:02:52,900 --> 00:02:55,180 Nwa ak blan koòdone textuelle pou pati ki pi. 54 00:02:55,180 --> 00:02:57,400 Kòmandman sa yo se yon ti jan difisil sonje an premye. 55 00:02:57,400 --> 00:03:01,230 Men, menm si li ta ka pran ou mwatye yon èdtan, yon èdtan, yo mete ki inicio 56 00:03:01,230 --> 00:03:02,940 envestisman nan tan nan li, mete konfyans mwen. 57 00:03:02,940 --> 00:03:06,440 Sètènman pa nan fen semès la li pral sove ou yon lòd nan grandè plis 58 00:03:06,440 --> 00:03:07,600 tan pase sa. 59 00:03:07,600 --> 00:03:09,200 >> Se konsa, yo byen bonè nan plonje nan semèn pous 60 00:03:09,200 --> 00:03:13,200 Men, an tèm de levasyon, konnen ke ou ka fè sa toutotan ou gen 61 00:03:13,200 --> 00:03:18,230 distribisyon Kòd la oswa kòd pwòp ou a nan pwogrè nan anyè Pst4 ou. 62 00:03:18,230 --> 00:03:21,680 Konnen ke ou ka kouri gdb. / Levasyon. 63 00:03:21,680 --> 00:03:23,490 >> Sa a se ale nan louvri moute yon fenèt tankou sa a. 64 00:03:23,490 --> 00:03:25,530 Kite m 'ba tèt mwen plis nan yon fenèt tèminal. 65 00:03:25,530 --> 00:03:27,770 Lè sa a, ki sa mwen pral ale pi devan ak fè sa, li pa nan jis kouri li. 66 00:03:27,770 --> 00:03:30,690 Mwen pral premye mete yon pwen kraze sonje, ki pèmèt ou pran yon poz 67 00:03:30,690 --> 00:03:32,500 ekzekisyon nan yon kote ki an patikilye. 68 00:03:32,500 --> 00:03:35,750 >> Jis kenbe bagay senp mwen pral kraze nan liy yon sèl jis pa sezisman 69 00:03:35,750 --> 00:03:37,000 nimewo nan yon sèl. 70 00:03:37,000 --> 00:03:40,080 71 00:03:40,080 --> 00:03:43,250 Kite m 'aktyèlman re-louvri fenèt sa a paske li ap resevwa yon 72 00:03:43,250 --> 00:03:45,700 ti kras ti la. 73 00:03:45,700 --> 00:03:53,270 Se konsa, sa m ap kounye a pral fè isit la se si mwen louvri moute fenèt tèminal mwen. 74 00:03:53,270 --> 00:03:53,910 Vini non sou, gen nou ale. 75 00:03:53,910 --> 00:03:59,850 >> Se konsa, kounye a si mwen tounen nan Dropbox, Pst4 epi kouri gdb. / levasyon antre, remake 76 00:03:59,850 --> 00:04:02,600 Mwen pral kraze yon sèl yo mete yon ti repo pwen nan liy yon sèl. 77 00:04:02,600 --> 00:04:04,840 Epi, koulye a mwen pral ale devan ak kalite kouri. 78 00:04:04,840 --> 00:04:07,370 Men, lè m 'fè, remake pa gen anyen sanble rive. 79 00:04:07,370 --> 00:04:08,120 >> Gen nan pa gen moute pòp. 80 00:04:08,120 --> 00:04:09,790 Gen nan pa gen grafik koòdone itilizatè ankò. 81 00:04:09,790 --> 00:04:13,340 Men, sa a konprann paske mwen se literalman nan liy yon sèl nan pwogram m 'yo. 82 00:04:13,340 --> 00:04:17,110 Men, remake ke mwen te vit voye, espesyalman kounye a 62, paske tout 83 00:04:17,110 --> 00:04:20,600 bagay la nan tèt yo nan sa a ranpli se bagay sa yo tankou kòmantè ak konstan ak 84 00:04:20,600 --> 00:04:22,460 entérésan bagay pou kounye a. 85 00:04:22,460 --> 00:04:25,840 >> Se konsa, koulye a, mwen se andedan nan prensipal yo, li sanble, nan liy 62. 86 00:04:25,840 --> 00:04:27,960 Lè sa a se jis distribisyon an Kòd, sonje. 87 00:04:27,960 --> 00:04:33,810 Si m 'louvri sa a moute pa prale a, Menm jan tou, nan anyè bwat gout mwen an Pst4, 88 00:04:33,810 --> 00:04:35,450 nan breakout.c. 89 00:04:35,450 --> 00:04:40,670 Men, si mwen desann, li desann e desann, ak kite m 'ale pi devan epi vire sou 90 00:04:40,670 --> 00:04:44,990 nimewo liy m 'yo. 91 00:04:44,990 --> 00:04:50,300 >> Ki sa mwen pral wè, si mwen woulo liv desann nan liy 62, se egzakteman liy ki 92 00:04:50,300 --> 00:04:50,910 nou te Sarepta sou. 93 00:04:50,910 --> 00:04:53,720 Se konsa, liy sa a isit la, 62, se kote n ap sou yo dwe. 94 00:04:53,720 --> 00:04:57,470 Se konsa, kounye a nan gdb, si mwen ale pi devan epi tape kounye a kap vini an, antre nan li a ale nan 95 00:04:57,470 --> 00:04:58,450 egzekite ki liy. 96 00:04:58,450 --> 00:05:00,610 Epi vwala, nou gen la sa yo rele fenèt g. 97 00:05:00,610 --> 00:05:02,800 Si abitye avèk ki sa yon GWindow se, pa enkyete. 98 00:05:02,800 --> 00:05:05,740 Espèk a ap entwodui ou nan li, jan byen ke yon nimewo nan videyo solisyon 99 00:05:05,740 --> 00:05:06,830 entegre nan espèk a. 100 00:05:06,830 --> 00:05:08,610 >> Men koulye a, se pou yo fè sa-a yon ti kras pi plis enteresan. 101 00:05:08,610 --> 00:05:10,960 Kite m 'deplase fenèt sa a sou bò lanmè a yon ti kras. 102 00:05:10,960 --> 00:05:13,480 Kite m 'fè fenèt la yon ti kras pi gwo pou m ka wè plis. 103 00:05:13,480 --> 00:05:16,140 >> Epi, koulye a kite m 'ale pi devan ak fè pwochen ankò. 104 00:05:16,140 --> 00:05:17,550 E genyen anpil brik m 'yo. 105 00:05:17,550 --> 00:05:20,490 Si mwen tape pwochen ankò koulye a mwen wè boul la. 106 00:05:20,490 --> 00:05:23,520 Men, si mwen tape pwochen ankò koulye a mwen wè pedal la. 107 00:05:23,520 --> 00:05:26,690 >> Men, erezman sa a jdi se pa reyèlman kolabore pa montre m ' 108 00:05:26,690 --> 00:05:27,660 tou sa m 'vle. 109 00:05:27,660 --> 00:05:30,820 Men koulye a, si m 'fè pwochen ankò, pwochen ankò, mwen se jis 110 00:05:30,820 --> 00:05:32,260 deklare kèk varyab. 111 00:05:32,260 --> 00:05:34,750 Apre sa, mwen ka enprime yon moun nan mesye sa yo soti. 112 00:05:34,750 --> 00:05:37,170 Enprime brik, simagri lavi moun. 113 00:05:37,170 --> 00:05:39,910 >> Epi, koulye a si mwen kontinye fè kap vini an, remake ke mwen ap 114 00:05:39,910 --> 00:05:40,870 andedan nan ki bouk. 115 00:05:40,870 --> 00:05:43,380 Men, kòd la ki pral egzekite egzakteman jan Mwen atann mwen. 116 00:05:43,380 --> 00:05:45,810 Se konsa, lè m 'frape fonksyon sa a, Rete tann pou klike, li la pral fè 117 00:05:45,810 --> 00:05:46,830 li literalman sa. 118 00:05:46,830 --> 00:05:48,870 Se konsa, mwen te sanble yo te pèdi kontwòl sou pwogram lan. 119 00:05:48,870 --> 00:05:50,480 >> Gdb pa an, ap ban m 'yon lòt èd memwa. 120 00:05:50,480 --> 00:05:51,500 Men, pa enkyete. 121 00:05:51,500 --> 00:05:53,720 Ale nan jwèt m 'yo, klike sou yon kote. 122 00:05:53,720 --> 00:05:56,270 >> Epi vwala, kounye a li resèt nan liy 86. 123 00:05:56,270 --> 00:05:59,460 Se konsa, ankò, li nan anpil valè, finalman, pou pwoblèm debogaj. 124 00:05:59,460 --> 00:06:03,050 Paske ou ka literalman etap nan Kòd ou a, bagay sa yo ekri an lèt detache deyò epi yo anpil, 125 00:06:03,050 --> 00:06:03,640 anpil, plis ankò. 126 00:06:03,640 --> 00:06:07,210 Men, pou kounye a, sa yo ki zouti pou kont li ta dwe pran ou trè lwen. 127 00:06:07,210 --> 00:06:10,050 >> Se konsa, nou ap, nan kou, pran yon gade nan Graphics, koulye a, tout nan yon toudenkou. 128 00:06:10,050 --> 00:06:12,350 Epi, koulye a mond nou an vin yon ti kras plis enteresan. 129 00:06:12,350 --> 00:06:15,680 E ou konnen, petèt, ki soti nan kèk nan la videyo sou entènèt ke nou gen sa yo 130 00:06:15,680 --> 00:06:18,280 bout pantalon ke ou ve yo te ap gade kòm yon pati nan seri pwoblèm. 131 00:06:18,280 --> 00:06:20,460 >> Apre sa, yo ve yo te tire, fè espre, kont yon seri blan. 132 00:06:20,460 --> 00:06:23,380 Se konsa, kèk nan yo gen ansèyman an Fellows desen kèk tèks sou la 133 00:06:23,380 --> 00:06:25,490 ekran ki nan kouvri sou bò a nan yo. 134 00:06:25,490 --> 00:06:27,760 Men, nan kou, sa a se pa tout sa ki enteresan nan mond lan reyèl. 135 00:06:27,760 --> 00:06:30,520 Sa a se jis yon konferans sal ak yon gwo ekran blan ak twal yon. 136 00:06:30,520 --> 00:06:33,330 Ak etonan nou an ekip pwodiksyon sòt nan fè tout bagay gade bèl 137 00:06:33,330 --> 00:06:36,620 apre reyalite a pa cultures soti oswa kouvri anyen 138 00:06:36,620 --> 00:06:37,840 nou fè oswa ou pa vle. 139 00:06:37,840 --> 00:06:41,560 >> Koulye a, jis motive semèn sa a ak reyèlman, kote ou ka ale, finalman, 140 00:06:41,560 --> 00:06:42,560 ak syans òdinatè. 141 00:06:42,560 --> 00:06:44,260 Pa sèlman apre yo fin pwoblèm mete kat. 142 00:06:44,260 --> 00:06:48,240 Men apre, lè yon lòt kou oswa yon tout pwogram etid li a etonan sa ou kapab 143 00:06:48,240 --> 00:06:51,090 fè jou sa yo an tèm de grafik an patikilye. 144 00:06:51,090 --> 00:06:53,440 >> Gen kèk nan ou ta ka gen pou wè sa a ap koule tankou dlo alantou sou entènèt. 145 00:06:53,440 --> 00:06:56,240 Men, mwen te panse mwen ta montre w, pou jis yon koup la minit, yon aperçu nan sa ki 146 00:06:56,240 --> 00:07:01,890 teknoloji òdinatè ak sa ki CGI, grafik sou òdinatè kapab fè jou sa yo 147 00:07:01,890 --> 00:07:04,510 ak yon chante ki familye e petèt fim. 148 00:07:04,510 --> 00:07:05,760 >> [Klas Mizik - Lana DEL RAY, "YOUNG ak bèl] 149 00:07:05,760 --> 00:10:50,270 150 00:10:50,270 --> 00:10:52,470 >> Oratè 1: Se jis yon ti jan etonan, petèt, jis ki jan 151 00:10:52,470 --> 00:10:52,857 omniprezant - 152 00:10:52,857 --> 00:10:57,040 >> [Aplodisman] 153 00:10:57,040 --> 00:10:59,230 >> Oratè 1: Mwen jis telechaje li. 154 00:10:59,230 --> 00:11:02,920 Men, li la vrèman etonan, mwen panse ke, jis ki jan omniprezant lojisyèl ak Kòd ak 155 00:11:02,920 --> 00:11:04,230 zouti tankou sa a reyèlman yo. 156 00:11:04,230 --> 00:11:07,685 Se konsa, sa a, se yon goute nan yon direksyon ki nan ki ou ka ale. 157 00:11:07,685 --> 00:11:10,620 Oh, pa gen okenn Aparèy plis jodi a. 158 00:11:10,620 --> 00:11:14,640 Oke, sa a, se distribisyon aktyèlman trajik bay pwen an Mwen jis te eseye fè. 159 00:11:14,640 --> 00:11:18,670 >> Tout dwa, se konsa kite a lanse Fizyon ankò. 160 00:11:18,670 --> 00:11:20,800 Fè m 'pita. 161 00:11:20,800 --> 00:11:24,190 Tout dwa, epi ou ta dwe gen leve yon voye yon imèl kòm yon sou kote si ou te fè jwenn yon 162 00:11:24,190 --> 00:11:25,460 remake tankou sa. 163 00:11:25,460 --> 00:11:29,940 Tout dwa, se konsa sonje ke semèn pase a nou te kòmanse kale tounen sa a 164 00:11:29,940 --> 00:11:31,380 pita li te ye kòm fisèl. 165 00:11:31,380 --> 00:11:34,700 >> fisèl rapèl yon kalite done ki nan te deklare nan bibliyotèk la CS50. 166 00:11:34,700 --> 00:11:37,740 Lè li nan yon pati nan wou yo fòmasyon ki pral kounye a kòmanse pran an. 167 00:11:37,740 --> 00:11:41,280 Se te yon konsèp itil byen bonè nan. 168 00:11:41,280 --> 00:11:43,750 Men koulye a, li pral jwenn plis enteresan ak plis pouvwa anpil 169 00:11:43,750 --> 00:11:48,330 aktyèlman wè ke anba kapo a, yon kòd se sèlman sa ki, t 'nou te di? 170 00:11:48,330 --> 00:11:50,500 >> Yeah, se konsa li a yon sa yo rele * Char. 171 00:11:50,500 --> 00:11:53,860 Men, * a gen vle di ke gen nan kèk kalite adrès enplike nan sa. 172 00:11:53,860 --> 00:11:58,690 Se konsa, lè ou di Char * ou jis vle di yon varyab ki gen done di ki kalite se yon 173 00:11:58,690 --> 00:11:59,290 konsèy kounye a. 174 00:11:59,290 --> 00:12:01,770 Lefèt ke gen nan zetwal la gen jis vle di ke w ap deklare yon 175 00:12:01,770 --> 00:12:03,020 sa yo rele konsèy. 176 00:12:03,020 --> 00:12:06,220 Epi ki konsèy ki pral aparamman magazen adrès la nan, nan 177 00:12:06,220 --> 00:12:07,810 kou, yon Char. 178 00:12:07,810 --> 00:12:08,960 >> Koulye a, poukisa sa a fè sans? 179 00:12:08,960 --> 00:12:11,200 Oke, sa se yon fisèl anba kapo a? 180 00:12:11,200 --> 00:12:15,130 Oke, pou kèk tan nou ve yo te di ke yon fisèl anba kapo a se 181 00:12:15,130 --> 00:12:18,460 jis H-e-L-l-o, pou egzanp. 182 00:12:18,460 --> 00:12:21,585 >> Men, nou te pale sou sa a kòm ke yo te, esansyèlman, yon etalaj. 183 00:12:21,585 --> 00:12:25,410 Ak yon etalaj ta Lè sa a, gade yon ti kras plis tankou sa a, ak chak nan sa yo 184 00:12:25,410 --> 00:12:26,460 pran yon mòde. 185 00:12:26,460 --> 00:12:28,710 Lè sa a, nou te di ke gen nan yon bagay espesyal tounen isit la, nan 186 00:12:28,710 --> 00:12:31,270 0 antislach, oswa nil Terminator. 187 00:12:31,270 --> 00:12:35,230 >> Se konsa, tout tan tout tan sa a, sa a isit la te gen yon fisèl. 188 00:12:35,230 --> 00:12:38,320 Men, reyèlman, yon kòd se aktyèlman yon adrès. 189 00:12:38,320 --> 00:12:43,210 Ak adrès, jan nou pral wè, yo souvan genyen prefiks yo ak 0x pa konvansyon. 190 00:12:43,210 --> 00:12:44,540 Ki sa ki 0x endike? 191 00:12:44,540 --> 00:12:45,970 nenpòt moun ki konnen? 192 00:12:45,970 --> 00:12:47,320 >> Se konsa, li jis vle di ekzadesimal. 193 00:12:47,320 --> 00:12:52,360 Se konsa, ou ta ka sonje, aktyèlman, ki soti nan PST 1, mwen kwè, youn nan cho moute a- 194 00:12:52,360 --> 00:12:55,740 kesyon aktyèlman mande sou ekzadesimal notasyon nan adisyon a 195 00:12:55,740 --> 00:12:57,100 binè ak desimal. 196 00:12:57,100 --> 00:13:00,460 Ak motivasyon a isit la se ke ak ekzadesimal ou gen 16 197 00:13:00,460 --> 00:13:01,770 chif a jete ou. 198 00:13:01,770 --> 00:13:07,900 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ki te swiv pa yon, B, C, D, E, f. 199 00:13:07,900 --> 00:13:10,430 >> Men, si ou konte tout moun sa yo leve, ou jwenn yon total de 16. 200 00:13:10,430 --> 00:13:13,200 Se konsa, sa a se nan kontra ak desimal, kote nou gen 10 201 00:13:13,200 --> 00:13:14,690 chif, 0 atravè nèf. 202 00:13:14,690 --> 00:13:17,750 Li nan nan kontra ak binè kote nou jis gen 0 ak 1. 203 00:13:17,750 --> 00:13:21,450 >> Men, nan fen jounen an ou kapab jis reprezante chif yo menm, men 204 00:13:21,450 --> 00:13:22,500 yon ti jan yon lòt jan. 205 00:13:22,500 --> 00:13:25,840 Lè ekzadesimal se komen paske kòm li vire soti - epi nou pral wè sa a 206 00:13:25,840 --> 00:13:28,790 pita nan kou a - menm lè nou jwenn nan pwogram entènèt nan yon kontèks 207 00:13:28,790 --> 00:13:32,100 HTML ak kòd koulè, ekzadesimal se bèl. 208 00:13:32,100 --> 00:13:36,390 Paske chak chif, vire soti, reprezante kat Bits pafètman. 209 00:13:36,390 --> 00:13:39,280 Se konsa, li jis kalite nan liy moute joliman kòm n ap pètèt wè. 210 00:13:39,280 --> 00:13:44,720 Se konsa, sa a ta kapab Ox123 oswa yon bagay tankou sa yo, indican adrès 123 211 00:13:44,720 --> 00:13:47,050 yon kote andedan nan mwen memwa òdinatè a. 212 00:13:47,050 --> 00:13:50,600 >> Men, nan kou, gen kèk pwoblèm sa yo rive Se poutèt sa kache 213 00:13:50,600 --> 00:13:51,520 aplikasyon. 214 00:13:51,520 --> 00:13:55,930 Men, sonje ke mwen te pran yon koud nan mete ann aplikasyon yon fonksyon tankou sa a - 215 00:13:55,930 --> 00:14:00,260 konpare priz 0 dot c semèn pase a, ki menm si li te sanble ak li te 216 00:14:00,260 --> 00:14:04,270 dwat, li tou senpleman pa t 'konpare de strings kòrèkteman. 217 00:14:04,270 --> 00:14:07,470 >> Mwen te jete prensipal yo, epi mwen te voye jete lwen kòmantè sa yo jis yo konsantre nan sou 218 00:14:07,470 --> 00:14:08,970 kòd la sa a, se nan enterè isit la. 219 00:14:08,970 --> 00:14:10,660 Epi li an wouj paske li nan buggy. 220 00:14:10,660 --> 00:14:11,670 Pou sa ki rezon ki fè? 221 00:14:11,670 --> 00:14:15,890 >> Oke, nan gen nan tèt lè mwen te deklare yon kòd, ki sa ki te vrèman ale sou 222 00:14:15,890 --> 00:14:17,260 anba kapo a? 223 00:14:17,260 --> 00:14:19,530 Oke, kite m 'janbe lòt bò nan la ekran isit la epi trase sa. 224 00:14:19,530 --> 00:14:23,230 Se konsa, mwen te deklare, ankò, GetString fisèl la. 225 00:14:23,230 --> 00:14:26,640 >> Se konsa, mwen pral ale pi devan kounye a epi yo trase yo pou sa li vrèman se. 226 00:14:26,640 --> 00:14:28,590 Li nan pral fè yon kare isit la. 227 00:14:28,590 --> 00:14:30,490 Men, mwen pral reklame ki sa a, se 32 miyèt moso. 228 00:14:30,490 --> 00:14:32,890 Omwen li nòmalman se, omwen sou CS50 nan 229 00:14:32,890 --> 00:14:34,520 aparèy nan yon anpil nan òdinatè. 230 00:14:34,520 --> 00:14:35,980 Mwen pral rele li s. 231 00:14:35,980 --> 00:14:39,070 >> Men koulye a, sonje ke nou rele GetString. 232 00:14:39,070 --> 00:14:41,430 Se konsa, GetString retounen, nan kou, yon kòd. 233 00:14:41,430 --> 00:14:45,790 Si kalite itilizatè nan h-e-L-l o-antre nan fisèl la alo vin tounen. 234 00:14:45,790 --> 00:14:51,010 Epi ki fisèl, jan nou jis di, fini moute yon kote nan memwa òdinatè w lan an 235 00:14:51,010 --> 00:14:53,240 ak yon 0 antislach nan fen an. 236 00:14:53,240 --> 00:14:56,650 Mwen pral pran sa a tankou etalaj la - oswa vwazen blòk nan karaktè - 237 00:14:56,650 --> 00:14:58,330 ke li aktyèlman se. 238 00:14:58,330 --> 00:15:01,790 >> Epi, koulye a, ki sa ki GetString aktyèlman retounen? 239 00:15:01,790 --> 00:15:04,340 Ki sa ki te GetString te retounen tout tan sa a? 240 00:15:04,340 --> 00:15:07,520 Bon, nou di, nan semenn anvan, li retounen yon kòd. 241 00:15:07,520 --> 00:15:10,250 Men, plis teknikman, ki sa ki GetString retounen aparamman? 242 00:15:10,250 --> 00:15:11,610 >> ODYANS: Yon adrès. 243 00:15:11,610 --> 00:15:12,600 >> Oratè 1: Yon adrès. 244 00:15:12,600 --> 00:15:16,630 Espesyalman li retounen adrès la nan mòde an trè premye, tou sa li se. 245 00:15:16,630 --> 00:15:18,830 Mwen jis kenbe lè l sèvi avèk yon sèl, de, twa paske li nan pratik. 246 00:15:18,830 --> 00:15:21,380 >> Li retounen adrès la nan premye a karaktè nan fisèl la. 247 00:15:21,380 --> 00:15:23,510 Epi nou te di semèn pase ke ki se ase. 248 00:15:23,510 --> 00:15:26,710 Paske nou ka toujou konnen ki kote nan fen fisèl la jis pa 249 00:15:26,710 --> 00:15:30,150 iteration sou li, petèt, ak yon pou bouk oswa yon bouk pandan y ap oswa yon bagay tankou 250 00:15:30,150 --> 00:15:34,990 ki, jis kap chèche "antislach 0", pèsonaj la Sentinel espesyal. 251 00:15:34,990 --> 00:15:37,220 >> Lè sa a, nou konnen ke fisèl la k ap pase yo nan longè - 252 00:15:37,220 --> 00:15:37,980 nan ka sa a - 253 00:15:37,980 --> 00:15:38,670 senk. 254 00:15:38,670 --> 00:15:43,800 Se konsa, teknikman sa GetString fè se li retounen Ox123 nan ka sa a. 255 00:15:43,800 --> 00:15:53,670 Men, teknikman sa ki Lè sa a, k ap pase se ke nou sere, andedan nan yo, Ox123. 256 00:15:53,670 --> 00:15:56,460 Nan fen jounen an, menm si sa a se nouvo konsèp, endikasyon yo, yo ap 257 00:15:56,460 --> 00:15:57,350 jis varyab. 258 00:15:57,350 --> 00:16:00,440 Men, yo rive nan magazen Bits ki kolektivman reprezante yon adrès. 259 00:16:00,440 --> 00:16:03,700 Se konsa, teknikman tout sa yo vin ki estoke nan yo se Ox123. 260 00:16:03,700 --> 00:16:04,680 >> Men, nou kòm moun - 261 00:16:04,680 --> 00:16:06,020 ki gen ladan pati jodi a - 262 00:16:06,020 --> 00:16:09,290 yo se reyèlman pa ale nan pran swen, anjeneral, sa ki adrès aktyèl la se 263 00:16:09,290 --> 00:16:10,520 nan kèk ti moso nan memwa. 264 00:16:10,520 --> 00:16:14,040 Li nan jis ba nivo detay gen entelektyèlman enteresan. 265 00:16:14,040 --> 00:16:15,440 Se konsa, mwen pral defèt sa a. 266 00:16:15,440 --> 00:16:19,810 Men, olye de sa, plis wo nivo, jis di ke lè nou ap pale de pwent 267 00:16:19,810 --> 00:16:22,170 Mwen pral jis trase plis user-zanmitay flèch ki tradwi nan 268 00:16:22,170 --> 00:16:26,060 menm lide ak rezime yo ale Nap nan sa ki vrè a 269 00:16:26,060 --> 00:16:27,700 adrès kache a se. 270 00:16:27,700 --> 00:16:33,290 >> Koulye a, si nou tounen nan kòd la, ki sa ki ki te pase semèn pase a si nou gen fil t 271 00:16:33,290 --> 00:16:34,510 egal GetString? 272 00:16:34,510 --> 00:16:38,630 Oke, si mwen ankò, di ki kalite nan alo tan sa a mwen pral jwenn 273 00:16:38,630 --> 00:16:40,460 yon lòt ti moso nan memwa. 274 00:16:40,460 --> 00:16:44,820 H-e-L-l-o antislach 0. 275 00:16:44,820 --> 00:16:48,320 >> Men, paske mwen te rele GetString yon dezyèm fwa - 276 00:16:48,320 --> 00:16:51,100 e mwen konnen sa a soti nan gade nan nan Kòd sous pou GetString - menm 277 00:16:51,100 --> 00:16:54,350 menm si li nan koensidans ki alo te tape nan de fwa, GetString se pa 278 00:16:54,350 --> 00:16:55,890 pral pou yo eseye optimize yo epi yo dwe entelijan. 279 00:16:55,890 --> 00:16:58,550 Li nan jis pral jwenn yon lòt ti moso nan memwa nan òdinatè a, ki se 280 00:16:58,550 --> 00:16:59,640 yo pral nan yon lòt adrès. 281 00:16:59,640 --> 00:17:02,330 Se pou yo abitrèman jis di 456. 282 00:17:02,330 --> 00:17:04,079 >> Lè sa a, ki sa ki li pral retounen? 283 00:17:04,079 --> 00:17:08,030 Li nan ale nan retounen 456 ak magazen li nan t. 284 00:17:08,030 --> 00:17:12,010 Se konsa, sa se reyèlman ale sou, sou la sou bò gòch bò la se mwen gen yon lòt moso 285 00:17:12,010 --> 00:17:14,260 nan memwa, 32 Bits tipikman. 286 00:17:14,260 --> 00:17:16,720 Ak nan gen ki pral ale Ox456. 287 00:17:16,720 --> 00:17:20,140 Men, ankò, mwen pa enterese nan sa yo nimewo patikilye ankò. 288 00:17:20,140 --> 00:17:23,069 Mwen jis ale nan abstrè trase li kòm yon flèch. 289 00:17:23,069 --> 00:17:25,202 >> Se konsa, sa a se kounye a yon eksplikasyon nouvo. 290 00:17:25,202 --> 00:17:28,735 Men, li la lide nan menm egzak ki nan te pase tout tan sa a. 291 00:17:28,735 --> 00:17:33,150 Se konsa, rezon ki fè yo lè sa a, ke sa a premye vèsyon an compare te buggy 292 00:17:33,150 --> 00:17:34,480 semèn pase a se poukisa? 293 00:17:34,480 --> 00:17:38,000 Lè ou fè si yo egal egal t Ki sa yo ou se vre wi: 294 00:17:38,000 --> 00:17:40,550 anba kapo a konpare? 295 00:17:40,550 --> 00:17:41,910 >> Ou ap konpare adrès yo. 296 00:17:41,910 --> 00:17:47,950 Epi jis entwitif, byen klè, Ox123 a pa pral Ox456 egal-ego. 297 00:17:47,950 --> 00:17:49,380 Moun sa yo ki nimewo, sa yo ki Bits yo se jis diferan. 298 00:17:49,380 --> 00:17:53,220 >> Se konsa, toujou, semèn pase a li te di ou tape bagay diferan, menm si la 299 00:17:53,220 --> 00:17:55,360 mo yo te motamo menm bagay la. 300 00:17:55,360 --> 00:17:58,770 Se konsa, nou ranje sa a. 301 00:17:58,770 --> 00:18:00,120 An tèm pwofàn la, sa ki te ranje a? 302 00:18:00,120 --> 00:18:02,110 >> ODYANS: Sèvi ak yon fonksyon. 303 00:18:02,110 --> 00:18:02,870 >> Oratè 1: Sèvi ak yon fonksyon. 304 00:18:02,870 --> 00:18:05,190 Oswa zetwal yo definitivman patisipe, men sèvi ak yon fonksyon fè sa? 305 00:18:05,190 --> 00:18:05,962 >> ODYANS: Pou konpare strings yo. 306 00:18:05,962 --> 00:18:07,390 >> Oratè 1: Pou konpare strings yo. 307 00:18:07,390 --> 00:18:11,030 Se konsa, pwoblèm nan fondamantal isit la te ke mwen te jis konsidere a 308 00:18:11,030 --> 00:18:15,870 bon jan kalite nan strings yo dwe defini nan konparezon nan adrès yo. 309 00:18:15,870 --> 00:18:18,540 Men, evidamman sa se sèlman bèbè kounye a yon fwa ou konprann sa k ap pase sou 310 00:18:18,540 --> 00:18:19,510 anba kapo a. 311 00:18:19,510 --> 00:18:23,270 Vrèman konpare strings yo wè si yo ap egal nan fason ke yon moun 312 00:18:23,270 --> 00:18:26,680 ta konsidere de strings yo dwe egal nou bezwen konpare yo karaktè pou 313 00:18:26,680 --> 00:18:28,070 N. pou karaktè. 314 00:18:28,070 --> 00:18:30,020 >> Koulye a, mwen te kapab gen fè sa a trè tediously. 315 00:18:30,020 --> 00:18:32,240 Men, familyerman, nou lè l sèvi avèk yon pou bouk. 316 00:18:32,240 --> 00:18:36,050 Epi jis konpare yo bracket mwen kont t bracket mwen. 317 00:18:36,050 --> 00:18:39,590 s bracket mwen plis 1 kont t bracket mwen plis 1, ak pou fè, andedan 318 00:18:39,590 --> 00:18:40,580 kèk kalite bouk. 319 00:18:40,580 --> 00:18:44,950 Men, si mwen wè nenpòt karaktè de ki diferan, oswa si mwen reyalize ke Ooh, s se 320 00:18:44,950 --> 00:18:48,410 pi kout pase T oswa pi lontan pase t Mwen kapab imedyatman di fo, 321 00:18:48,410 --> 00:18:49,390 yo ap pa menm bagay la. 322 00:18:49,390 --> 00:18:55,370 >> Men, si mwen jwenn nan s ak t ak di menm, se li menm, se li menm, se li menm, se li menm, nan fen 323 00:18:55,370 --> 00:18:58,520 tou de strings, mwen kapab di vre, yo se egal-ego. 324 00:18:58,520 --> 00:19:01,040 Oke, Erezman, ane de sa yon moun te ekri ki Kòd pou nou. 325 00:19:01,040 --> 00:19:03,790 >> Apre sa, yo rele l 'StrComp pou fisèl konpare. 326 00:19:03,790 --> 00:19:11,900 Men, menm si li nan yon vann san preskripsyon ti kras entwisyon, StrComp retounen 0 si moun 327 00:19:11,900 --> 00:19:14,520 de strings, s ak t yo se menm bagay la. 328 00:19:14,520 --> 00:19:18,090 Men, li retounen valè negatif si yo ta dwe vini anvan t lòd avèk lèt ​​alfabè oswa 329 00:19:18,090 --> 00:19:20,610 pozitif valè si li ta dwe vini apre t lòd avèk lèt ​​alfabè. 330 00:19:20,610 --> 00:19:24,030 >> Se konsa, si ou te janm vle sòt yon bagay, li vire soti ki StrComp se itil. 331 00:19:24,030 --> 00:19:26,660 Paske li pa jis di wi oswa non, egal oswa ou pa. 332 00:19:26,660 --> 00:19:30,440 Li ba ou yon sans de kòmann-nan tankou yon vanyan diksyonè. 333 00:19:30,440 --> 00:19:33,770 Se konsa, StrComp, s vigil t egal egal 0 vle di ke nan 334 00:19:33,770 --> 00:19:35,200 strings se vrèman egal-ego. 335 00:19:35,200 --> 00:19:38,680 Paske, moun ki te ekri fonksyon sa a ane de sa prezimableman itilize yon pou bouk 336 00:19:38,680 --> 00:19:42,840 oswa yon pandan y ap bouk oswa yon bagay tankou sa entegre sou karaktè yo ankò 337 00:19:42,840 --> 00:19:45,270 ak ankò e ankò. 338 00:19:45,270 --> 00:19:47,300 >> Men, de pwoblèm leve isit la. 339 00:19:47,300 --> 00:19:48,750 Sa a te copy0.c. 340 00:19:48,750 --> 00:19:51,680 Ak de la nan wouj se paske li nan defekte. 341 00:19:51,680 --> 00:19:52,800 Ak sa ki t 'nou fè isit la? 342 00:19:52,800 --> 00:19:54,310 Oke, premye fwa mwen rele GetString. 343 00:19:54,310 --> 00:19:56,255 Apre sa, mwen estoke valè a retounen nan s. 344 00:19:56,255 --> 00:20:00,260 Se konsa, sa a, se bèl anpil menm bagay la tou kòm pati sa a nan tèt nan imaj la. 345 00:20:00,260 --> 00:20:01,490 >> Men, sa ki vin apre sa? 346 00:20:01,490 --> 00:20:04,980 Oke, kite m 'ale pi devan epi debarase m nan yon pakèt antye nan sa a. 347 00:20:04,980 --> 00:20:09,650 Nou pral remonte nan tan kote nou jis gen s, ki se kounye a ki konsistan avèk 348 00:20:09,650 --> 00:20:10,940 liy yon sèl moute a. 349 00:20:10,940 --> 00:20:11,400 >> Mwen tcheke. 350 00:20:11,400 --> 00:20:13,450 Si yo egal egal 0. 351 00:20:13,450 --> 00:20:18,670 Koulye a, yon nòt bò rapid, lè ta ka GetString retounen 0? 352 00:20:18,670 --> 00:20:19,580 Genyen pa memwa ase. 353 00:20:19,580 --> 00:20:19,880 Dwa? 354 00:20:19,880 --> 00:20:22,310 >> Li ra ke sa a ki pral rive, sètènman sou yon òdinatè ki nan 355 00:20:22,310 --> 00:20:24,740 te resevwa dè santèn de mèg oswa menm jig nan RAM. 356 00:20:24,740 --> 00:20:27,080 Men, li te kapab, nan teyori, retounen 0, espesyalman si la 357 00:20:27,080 --> 00:20:28,080 itilizatè pa kolabore. 358 00:20:28,080 --> 00:20:31,640 Genyen fason yo pretann tankou ou gen pa antre anyen ak jwe fent 359 00:20:31,640 --> 00:20:34,100 GetString nan retounen 0 efektivman. 360 00:20:34,100 --> 00:20:35,470 >> Se konsa, li pral tcheke pou sa. 361 00:20:35,470 --> 00:20:39,430 Paske si nenpòt nan ou te kòmanse jwenn, deja, fot segmentation - 362 00:20:39,430 --> 00:20:42,280 ki te gen pwobableman gen yon sous nan kèk fristrasyon - 363 00:20:42,280 --> 00:20:46,150 sa yo se prèske toujou rezilta a nan erè memwa ki gen rapò ak. 364 00:20:46,150 --> 00:20:50,440 Yon jan kanmenm ou messed moute ak konsiderasyon nan yon konsèy, menm si ou pa t 'konnen 365 00:20:50,440 --> 00:20:51,530 te gen yon konsèy. 366 00:20:51,530 --> 00:20:55,260 Se konsa, ou ta ka genyen pwovoke segmentation fot osi bonè ke yon semèn lè l sèvi avèk 367 00:20:55,260 --> 00:21:02,100 yon bagay tankou yon pou bouk oswa pandan y ap yon bouk ak etalaj yon pa ale twò lwen 368 00:21:02,100 --> 00:21:05,900 sot pase yo limit yo nan kèk etalaj ki ou te deklare, nan semèn de nan 369 00:21:05,900 --> 00:21:06,690 an patikilye. 370 00:21:06,690 --> 00:21:09,220 >> Ou ta ka te fè li menm nan pwoblèm mete kat ak levasyon. 371 00:21:09,220 --> 00:21:12,910 Menm si ou pwobableman pa gen pou wè nenpòt ki zetwal yo nan kòd la distribisyon pou 372 00:21:12,910 --> 00:21:17,410 Levasyon, li vire soti ki moun ki GRect ak GOval ak lòt bagay sa yo, 373 00:21:17,410 --> 00:21:19,650 sa yo se aktyèlman endikasyon anba kapo a. 374 00:21:19,650 --> 00:21:23,430 >> Men, Stanford, tankou nou, sòt de kache ki detay omwen pou bibliyotèk yo 375 00:21:23,430 --> 00:21:26,540 rezon, anpil tankou nou fè pou fisèl ak * Char. 376 00:21:26,540 --> 00:21:30,060 Men, GRect ak GOval ak tout moun ki bagay ou mesye yo oswa yo pral lè l sèvi avèk 377 00:21:30,060 --> 00:21:32,630 semèn sa a se finalman memwa adrès. 378 00:21:32,630 --> 00:21:33,650 Ou jis pa konnen li. 379 00:21:33,650 --> 00:21:37,240 >> Se konsa, li pa etone lè sa a, petèt, ke ou ta ka vwayaj sou kèk 380 00:21:37,240 --> 00:21:38,580 segmentation fot. 381 00:21:38,580 --> 00:21:41,290 Men, sa ki nan enteresan isit la kounye a, si apre nou fin tcheke pou 0 nou fè 382 00:21:41,290 --> 00:21:43,460 fisèl t vin s. 383 00:21:43,460 --> 00:21:44,690 Oke, kite m 'deklare t. 384 00:21:44,690 --> 00:21:47,730 Mwen pral trase li kòm yon kare, 32 Bits, rele li t. 385 00:21:47,730 --> 00:21:49,740 Lè sa a, mwen pral fè vin s. 386 00:21:49,740 --> 00:21:51,130 >> Oke, sa sa vle di? 387 00:21:51,130 --> 00:21:53,280 Oke, li nan yon ti kras difisil panse sou li foto ki gen bon konprann. 388 00:21:53,280 --> 00:21:55,025 Men, kite a panse osijè de sa ki andedan x? 389 00:21:55,025 --> 00:21:59,430 Ki sa ki nan literalman andedan sa a varyab? 390 00:21:59,430 --> 00:22:01,500 Valè Ox123 a. 391 00:22:01,500 --> 00:22:05,815 >> Se konsa, lè m 'di fisèl t ap vin a, ki jis literalman vle di pran nimewo a 392 00:22:05,815 --> 00:22:10,070 nan s, ki se Ox123 li mete l 'Ox123. 393 00:22:10,070 --> 00:22:13,740 Oswa pictorially, si mwen kalite abstrè lwen ke detay li gen nan 394 00:22:13,740 --> 00:22:16,600 efè nan literalman fè sa a kòm byen. 395 00:22:16,600 --> 00:22:22,110 >> Se konsa, koulye a, panse tounen nan semèn pase a lè nou leve, li mwen kapitalis T. 396 00:22:22,110 --> 00:22:23,800 te fè T bracket 0. 397 00:22:23,800 --> 00:22:27,150 Oke, T bracket 0, menm si li nan yon konsèy, ou ka trete li tankou si 398 00:22:27,150 --> 00:22:29,220 li nan yon etalaj, ak yon kare notasyon bracket. 399 00:22:29,220 --> 00:22:31,550 >> Se konsa, kote se T bracket 0? 400 00:22:31,550 --> 00:22:32,990 Oke, li nan h la. 401 00:22:32,990 --> 00:22:36,800 Se konsa, lè nou sèvi ak ki liy nan Kòd, de anwo kay la, ki se nan ki c type.h 402 00:22:36,800 --> 00:22:38,460 dosye header, ki nan kote li a deklare. 403 00:22:38,460 --> 00:22:44,410 Ou ap valorizasyon sa a H. Men, nan Natirèlman, sa a, se h nan menm egzak ki nan 404 00:22:44,410 --> 00:22:46,540 andedan nan yo, se konsa pale. 405 00:22:46,540 --> 00:22:51,930 Se konsa, kounye a ou te chanje oswa pwofite kapitalize tou de orijinal la a ak 406 00:22:51,930 --> 00:22:53,120 sa yo rele kopi. 407 00:22:53,120 --> 00:22:56,620 Paske ou pa t 'fè yon kopi nan la fason ki yon moun ta vle li nan dwe. 408 00:22:56,620 --> 00:22:59,710 >> Se konsa, sa ki te ranje a isit la, nan copy1.c semèn pase a? 409 00:22:59,710 --> 00:23:03,070 410 00:23:03,070 --> 00:23:05,580 Fonksyon, se konsa nou te kapab aktyèlman kopi fisèl la. 411 00:23:05,580 --> 00:23:08,700 Men, fondamantalman, ki sa nou bezwen fè yo nan lòd yo kopye fisèl la? 412 00:23:08,700 --> 00:23:12,070 >> Oke, nan vèsyon sa-a vèt isit la mwen se pral fè li san patipri ba nivo. 413 00:23:12,070 --> 00:23:14,260 Gen aktyèlman fonksyon yo te ka ede ak sa. 414 00:23:14,260 --> 00:23:17,710 Men, yonn nan pi fondamantal, epi pifò nan abitye yon sèl, omwen, byento pral 415 00:23:17,710 --> 00:23:19,600 abitye nan nou, se sa ki annapre yo - 416 00:23:19,600 --> 00:23:21,910 Se konsa yon sèl sou liy lan premye nan kòd nan vèt kounye a. 417 00:23:21,910 --> 00:23:23,970 >> Mwen jis reekri yo kòm * Char. 418 00:23:23,970 --> 00:23:25,250 Gen nan pa gen fonksyonèl diferans la. 419 00:23:25,250 --> 00:23:28,790 Mwen jis jete lwen bibliyotèk la CS50 ak Mwen rele li sa li ye, yon * Char. 420 00:23:28,790 --> 00:23:31,640 >> Koulye a, dot, dot, dot, paske te gen kèk erè kont kouran, sa a pa 421 00:23:31,640 --> 00:23:33,200 enteresan pale sou ankò. 422 00:23:33,200 --> 00:23:34,710 Se konsa, koulye t deklare. 423 00:23:34,710 --> 00:23:35,780 Li tou se yon * Char. 424 00:23:35,780 --> 00:23:38,280 Se konsa, mwen trase yon kare ti kras sou ekran an tankou anvan an. 425 00:23:38,280 --> 00:23:41,870 >> Men, sou bò men dwat-ou, malok, nou te di a se memwa asiyen. 426 00:23:41,870 --> 00:23:44,130 Se konsa, asiyen kèk ti moso nan memwa. 427 00:23:44,130 --> 00:23:48,830 Ak konbyen bytes fè nou aktyèlman vle asiyen, li sanble? 428 00:23:48,830 --> 00:23:50,340 >> Oke, longè fil nan s. 429 00:23:50,340 --> 00:23:52,310 Se konsa, si li nan alo sa a, se yo pral senk. 430 00:23:52,310 --> 00:23:53,950 Nou pral di H-e-L-L-o. 431 00:23:53,950 --> 00:23:55,090 Se konsa, senk bytes. 432 00:23:55,090 --> 00:23:57,960 >> Men, Lè sa a, plis 1, poukisa 1? 433 00:23:57,960 --> 00:23:58,830 N. a 0. 434 00:23:58,830 --> 00:24:03,640 Si nou pa kite plas pou nèg sa a nou ta ka aksidantèlman kreye yon sitiyasyon 435 00:24:03,640 --> 00:24:05,600 kote fisèl la se h-e-L-L-o. 436 00:24:05,600 --> 00:24:08,470 Lè sa a, GetString nan tan kap vini yo se rele ak mwen tape nan, pou egzanp, 437 00:24:08,470 --> 00:24:14,020 David, D-yon-v-mwen-d, òdinatè a ki pral panse ke yo se aktyèlman 438 00:24:14,020 --> 00:24:18,900 H-e-L-l-o-d-yon-v-mwen-d paske gen nan pa gen okenn kraze nan ant mo sa yo. 439 00:24:18,900 --> 00:24:19,810 >> Se konsa, nou bezwen ke repo. 440 00:24:19,810 --> 00:24:20,720 Se konsa, nou pa vle senk. 441 00:24:20,720 --> 00:24:22,100 Nou vle sis bytes. 442 00:24:22,100 --> 00:24:23,110 >> Men, bytes m'ap di a. 443 00:24:23,110 --> 00:24:25,220 Men, li la gwosè reyèlman tan nan Char. 444 00:24:25,220 --> 00:24:28,040 Teknikman Char se prèske toujou yon multiple sèl. 445 00:24:28,040 --> 00:24:31,030 >> Men, jis fè kòd nou yo pòtab, se konsa pale, konsa ke li ap travay sou 446 00:24:31,030 --> 00:24:33,750 òdinatè diferan menm si yo ka gen yon ti jan diferan anba a 447 00:24:33,750 --> 00:24:36,590 kapo, mwen pral generic di gwosè nan Char pou ke 448 00:24:36,590 --> 00:24:37,660 Kòd mwen an ap toujou travay. 449 00:24:37,660 --> 00:24:40,610 Apre sa, mwen pa gen compile li jis paske mwen mete yo ajou òdinatè mwen oswa itilize 450 00:24:40,610 --> 00:24:42,140 kèk platfòm diferan. 451 00:24:42,140 --> 00:24:45,300 >> Se konsa, mwen te gen 6 fwa gwosè a nan yon Char, ki k ap pase yo 1. 452 00:24:45,300 --> 00:24:47,440 Se konsa, ki malok vle di te kapab ban m 'sis bytes. 453 00:24:47,440 --> 00:24:49,140 Ki sa ki se ki aktyèlman ap fè? 454 00:24:49,140 --> 00:24:52,810 Oke, kite m 'woule tounen nan tan isit la kote nou nan istwa a. 455 00:24:52,810 --> 00:24:57,620 >> Se konsa, si m 'ale tounen isit la, mwen te deklare yon * Char rele t. 456 00:24:57,620 --> 00:25:00,280 Mwen te rele koulye a malok pou sis bytes. 457 00:25:00,280 --> 00:25:06,400 Epi, koulye a mwen pral trase sa yo sis bytes jis tankou etalaj la pi bonè. 458 00:25:06,400 --> 00:25:10,570 Men, mwen aktyèlman pa konnen sa ki nan andedan sa a etalaj. 459 00:25:10,570 --> 00:25:14,640 >> Si ou asiyen memwa li vire soti ki ou pa ka fè konfyans ki gen nan kèk 460 00:25:14,640 --> 00:25:15,810 li te ye valè la. 461 00:25:15,810 --> 00:25:18,400 Li te kapab yo te itilize pa yon bagay lòt moun, kèk fonksyon lòt, gen kèk lòt 462 00:25:18,400 --> 00:25:19,630 liy nan kòd ki ou te ekri. 463 00:25:19,630 --> 00:25:22,870 Se konsa, nou pral jeneralman rele sa yo fatra valè epi trase yo, petèt, kòm 464 00:25:22,870 --> 00:25:26,170 mak kesyon, jis ki endike ke nou pa konnen ki sa la aktyèlman la. 465 00:25:26,170 --> 00:25:30,390 Epi sa a, pa gen okenn kontra gwo toutotan nou yo entelijan ase yo recouvrir moun 466 00:25:30,390 --> 00:25:34,550 fatra valè ak nimewo oswa charaktèr ke nou pran swen sou. 467 00:25:34,550 --> 00:25:36,340 >> Se konsa, nan ka sa a sa mwen pral fè? 468 00:25:36,340 --> 00:25:38,670 Oke, liy m 'nan kòd kap vini an, mwen gen kat. 469 00:25:38,670 --> 00:25:41,350 Int mwen jwenn 0, n ap vin la longè fil nan s. 470 00:25:41,350 --> 00:25:42,750 Se konsa, yon abitye pou bouk. 471 00:25:42,750 --> 00:25:45,875 Mwen se mwens pase oswa egal a n, ki se nòmalman se pi wo a. 472 00:25:45,875 --> 00:25:47,500 >> Men, fwa sa a li nan ekspre. 473 00:25:47,500 --> 00:25:51,890 Mwen + +, ak Lè sa a, Mwen tou senpleman fè t bracket mwen vin la. 474 00:25:51,890 --> 00:25:56,320 Paske foto mwen sanble sa a nan moman sa a, ki estoke nan t se nan 475 00:25:56,320 --> 00:25:59,530 adrès sa a moso o aza nan memwa valè ki gen yo se enkoni. 476 00:25:59,530 --> 00:26:03,030 Men, le pli vit ke mwen fè t bracket 0 ki mete m 'isit la. 477 00:26:03,030 --> 00:26:07,430 >> Ak sa ki fini moute resevwa trase a? 478 00:26:07,430 --> 00:26:08,740 Nou fini mete h. 479 00:26:08,740 --> 00:26:11,170 Paske sa a, se sa ki nan nan nan bracket 0. 480 00:26:11,170 --> 00:26:14,300 Lè sa a, menm bagay la pou E, ak L, ak L, ak o. 481 00:26:14,300 --> 00:26:17,930 >> n, poukisa m 'ale nan yon egal a n? 482 00:26:17,930 --> 00:26:19,200 Paske nan pèsonaj la 0. 483 00:26:19,200 --> 00:26:23,580 Se konsa, jis yo dwe klè, lè sa a, si mwen aktyèlman efase tou sa sa yo fatra 484 00:26:23,580 --> 00:26:28,870 valè yo ak Lè sa a aktyèlman trase nan sa m 'atann, sa a se s, 1 bracket 2, 485 00:26:28,870 --> 00:26:32,440 3, 4, plis ki nan fin nouvo karaktè. 486 00:26:32,440 --> 00:26:36,080 >> Se konsa, kounye a si nou kontinye sot pase yo dot la, dot, dot nan vèsyon sa-a kòrèk 487 00:26:36,080 --> 00:26:41,930 ak kapitalize t bracket 0 mwen ta, nan Natirèlman, ap valorizasyon jis sa a 488 00:26:41,930 --> 00:26:47,050 nèg isit la, ki concept, te finalman objektif la. 489 00:26:47,050 --> 00:26:48,040 Se konsa, ki nan tout konsèy la se. 490 00:26:48,040 --> 00:26:51,430 >> Men, ou ve yo te lè l sèvi avèk yo pou semèn kounye a nan kontèks la nan strings. 491 00:26:51,430 --> 00:26:53,530 Men, anba kapo a yo ap yon ti kras plis konplèks. 492 00:26:53,530 --> 00:26:57,520 Men, si ou panse osijè de yo nan sa a imaj fòm Mwen pwopoze ke yo ap 493 00:26:57,520 --> 00:27:01,720 pwobableman pa tout sa ki pè menm jan yo ta ka premye sanble nan premye gade, 494 00:27:01,720 --> 00:27:04,730 patikilyèman ak sa yo sentaks nouvo. 495 00:27:04,730 --> 00:27:07,290 Nenpòt kesyon sou pwent, strings, oswa charaktèr? 496 00:27:07,290 --> 00:27:07,580 Yeah? 497 00:27:07,580 --> 00:27:09,252 >> ODYANS: Èske ou ka ale tounen [fèbl a]? 498 00:27:09,252 --> 00:27:10,502 >> Oratè 1: Asire w. 499 00:27:10,502 --> 00:27:14,058 500 00:27:14,058 --> 00:27:19,525 >> ODYANS: Se konsa, kouman vini nan anpil sot pase yo ou liy, ou pa gen yon * T liy 501 00:27:19,525 --> 00:27:21,513 ak yon s * nan liy a? 502 00:27:21,513 --> 00:27:23,004 pa ou gen referans a la - 503 00:27:23,004 --> 00:27:24,640 >> Oratè 1: Ah, yon kesyon vrèman bon. 504 00:27:24,640 --> 00:27:26,800 Poukisa nou pa mwen gen yon t * ak yon s *? 505 00:27:26,800 --> 00:27:30,340 Paske yon ti tan, semèn pase a, tankou nan nou an swap fonksyon, mwen t 'di ke lè 506 00:27:30,340 --> 00:27:33,350 ou te gen yon konsèy vle di la pa kote ou ale la jan nou te fè 507 00:27:33,350 --> 00:27:36,590 fizikman sou sèn nan, te aktyèlman sèvi ak operatè a zetwal. 508 00:27:36,590 --> 00:27:40,570 >> Li sanble ke sa a bracket kare- notasyon se sa nou ap rele Massachusetts Institute of Technology 509 00:27:40,570 --> 00:27:44,190 sik, ki se jis yon fason sexy nan li di notasyon steno li a pou 510 00:27:44,190 --> 00:27:45,950 egzakteman sa w ap dekri. 511 00:27:45,950 --> 00:27:49,385 Men, li la yon ti kras plis entwisyon. 512 00:27:49,385 --> 00:27:53,510 Lè sa a risk pou yo fè sa a sanble pi fasil pou konplike pase sa li bezwen yo dwe, 513 00:27:53,510 --> 00:27:56,990 sa ki reyèlman ale sou isit la se sa ki annapre yo - 514 00:27:56,990 --> 00:28:01,450 Si mwen di t * sa vle di ale nan adrès la ki estoke nan t. 515 00:28:01,450 --> 00:28:04,350 >> Se konsa, literalman, si t ap estoke adrès sa a nan h 516 00:28:04,350 --> 00:28:07,300 okòmansman, * vle di t ale isit la. 517 00:28:07,300 --> 00:28:10,730 Koulye a, sa ki t bracket 0 vle di? 518 00:28:10,730 --> 00:28:11,560 Menm bagay egzak. 519 00:28:11,560 --> 00:28:13,510 Se jis nan yon itilizatè ti kras pi plis zanmitay ekri. 520 00:28:13,510 --> 00:28:14,430 >> Men, mwen pa fè ankò. 521 00:28:14,430 --> 00:28:17,800 Mwen pa ka jis di * T * vin s. 522 00:28:17,800 --> 00:28:19,440 Paske sa ki ta mwen ap fè lè sa a? 523 00:28:19,440 --> 00:28:22,950 Mwen ta dwe mete h, h, h, h, h nan tout tout bagay la. 524 00:28:22,950 --> 00:28:22,995 Dwa? 525 00:28:22,995 --> 00:28:26,020 >> Paske * T se ale nan adrès la nan t. 526 00:28:26,020 --> 00:28:27,580 Men, nou ap andedan nan yon bouk. 527 00:28:27,580 --> 00:28:32,150 Ak sa ki valè mwen incrementing, nan kou, sou chak iteration? 528 00:28:32,150 --> 00:28:32,690 mwen. 529 00:28:32,690 --> 00:28:34,590 >> Men, gen nan yon opòtinite isit la, dwa? 530 00:28:34,590 --> 00:28:37,870 Menm si sa a santi l tankou li a ap resevwa yon ti kras pi plis sofistike 531 00:28:37,870 --> 00:28:40,730 pase notasyon a kare-bracket nou te itilize pou kèk tan - 532 00:28:40,730 --> 00:28:43,840 kite m 'defèt chanjman h mwen gen - 533 00:28:43,840 --> 00:28:48,870 menm si sa a se kounye a ap resevwa yon ti kras amateur, lide a debaz yo, si * T 534 00:28:48,870 --> 00:28:53,630 vle di isit la ak * T se jis ale nan adrès la nan t. 535 00:28:53,630 --> 00:28:54,990 >> Men, sa ki te adrès la nan t? 536 00:28:54,990 --> 00:28:56,850 Nimewo a nou kenbe lè l sèvi avèk? 537 00:28:56,850 --> 00:29:00,540 Tankou Ox456, se pou yo pote ki tounen jis pou dedomajman pou la nan diskisyon. 538 00:29:00,540 --> 00:29:05,380 Oke, si mwen vle jwenn nan e la nan t fisèl, mwen jis vle pou yo ale nan, 539 00:29:05,380 --> 00:29:06,460 esansyèlman, 456. 540 00:29:06,460 --> 00:29:09,230 >> Oswa olye, 457. 541 00:29:09,230 --> 00:29:10,590 Mwen jis bezwen ajoute yon sèl. 542 00:29:10,590 --> 00:29:11,790 Men, mwen ka fè sa, dwa? 543 00:29:11,790 --> 00:29:14,680 Paske t, menm si mwen kenbe desen li kounye a kòm yon flèch, li nan jis yon 544 00:29:14,680 --> 00:29:16,570 nimewo, Ox456. 545 00:29:16,570 --> 00:29:21,400 Men, si mwen ajoute youn nan sa, oswa plis jeneralman, si mwen ajoute mwen ak sa yo ki mwen kapab 546 00:29:21,400 --> 00:29:24,350 aktyèlman jwenn egzakteman ki kote mwen vle. 547 00:29:24,350 --> 00:29:26,260 Se konsa, si mwen aktyèlman fè sa - 548 00:29:26,260 --> 00:29:28,970 ak sa a se sa ki kounye a yo rele aritmetik konsèy - 549 00:29:28,970 --> 00:29:30,375 Mwen ka retire liy sa a. 550 00:29:30,375 --> 00:29:33,550 Ki se, franchman, mwen panse ke pi klè ak yon ti kras itilizatè plis zanmitay li. 551 00:29:33,550 --> 00:29:35,970 Men, sa a se pa mwens kòrèk. 552 00:29:35,970 --> 00:29:38,570 >> Liy sa a nan kòd koulye a, se lè l sèvi avèk aritmetik konsèy. 553 00:29:38,570 --> 00:29:40,920 Li nan di yo ale nan la swiv adrès - 554 00:29:40,920 --> 00:29:44,670 tou sa yo kòmanse nan t se, ki se t plis mwen, ki okòmansman 555 00:29:44,670 --> 00:29:45,730 se 0, ki se gwo. 556 00:29:45,730 --> 00:29:49,280 Paske sa vle di nan konmansman an nan t 1 plis, plis 2, plis 3, ak pou fè. 557 00:29:49,280 --> 00:29:51,030 Men, kontra a menm ak s. 558 00:29:51,030 --> 00:29:52,750 >> Se konsa, Massachusetts Institute of Technology sik yo pou sa. 559 00:29:52,750 --> 00:29:55,900 Men, konprann sa ki reyèlman ale sou anba kapo a, mwen ta diskite, 560 00:29:55,900 --> 00:29:57,410 se aktyèlman itil nan ak tèt li. 561 00:29:57,410 --> 00:30:00,620 Paske sa vle di kounye a gen pa pi plis majik ale sou 562 00:30:00,620 --> 00:30:01,620 anba kapo a. 563 00:30:01,620 --> 00:30:03,920 Gen pa pral yo dwe anpil plis kouch ke nou ka kale do pou ou. 564 00:30:03,920 --> 00:30:04,810 Sa a se c. 565 00:30:04,810 --> 00:30:06,410 Ak sa a se pwogramasyon. 566 00:30:06,410 --> 00:30:08,002 Reyèlman bon kesyon. 567 00:30:08,002 --> 00:30:11,570 >> Tout dwa, kidonk sa a te ke buggy pwogram mwen te refere li a pi bonè. 568 00:30:11,570 --> 00:30:12,650 swap te defekte. 569 00:30:12,650 --> 00:30:14,070 Si t 'sanble yo travay. 570 00:30:14,070 --> 00:30:17,390 Sonje byen, jis tankou ak lèt ​​la ak ji a zoranj - ki mwen te kòmanse 571 00:30:17,390 --> 00:30:18,660 bwè demonstrasyon a jodi a. 572 00:30:18,660 --> 00:30:22,220 Se konsa, jis menm jan ak ji a zoranj ak lèt la, nou t 'gen yo sèvi ak yon 573 00:30:22,220 --> 00:30:26,200 pou yon ti tan varyab, tan, kenbe yon pou yon ti tan pou nou te kapab Lè sa a, 574 00:30:26,200 --> 00:30:28,820 chanje valè li yo ak Lè sa a, mete b. 575 00:30:28,820 --> 00:30:32,870 >> Men, sa a fonksyon, nou te di, oswa sa a pwogram nan kote sa a fonksyon te 576 00:30:32,870 --> 00:30:35,670 ekri nan Liv la te mal ak defekte, poukisa? 577 00:30:35,670 --> 00:30:38,870 578 00:30:38,870 --> 00:30:39,090 Wi? 579 00:30:39,090 --> 00:30:42,471 >> ODYANS: [fèbl]. 580 00:30:42,471 --> 00:30:44,940 >> Oratè 1: Egzakteman, lè ou rele swap - 581 00:30:44,940 --> 00:30:47,820 oswa plis jeneralman, lè ou rele pi nenpòt - 582 00:30:47,820 --> 00:30:51,210 si agiman yo ak sa yo ki fonksyon yo primitif, se konsa pale, antye ak charaktèr 583 00:30:51,210 --> 00:30:56,740 ak double ak flote, bagay sa yo san yo pa zetwal yo, w ap pase nan yon kopi 584 00:30:56,740 --> 00:30:57,540 agiman an. 585 00:30:57,540 --> 00:31:01,580 Se konsa, si x ak te 1 y te 2, yon ki pral yo dwe 1 epi b a pwal 2. 586 00:31:01,580 --> 00:31:05,250 Men, yo ap ale nan dwe fragman diferan nan Bits, fragman diferan nan 587 00:31:05,250 --> 00:31:07,540 memwa ki rive yo dwe estoke valè ki idantik. 588 00:31:07,540 --> 00:31:12,160 >> Se konsa, sa a Kòd se super pafè nan échanjé A ak B. 589 00:31:12,160 --> 00:31:13,850 Li pa bon nan échanjé - 590 00:31:13,850 --> 00:31:15,290 nan egzanp semèn pase a - 591 00:31:15,290 --> 00:31:16,390 x ak y. 592 00:31:16,390 --> 00:31:18,780 Paske ankò, yo ap nan sijè ki abòde lan sa ki mal. 593 00:31:18,780 --> 00:31:21,310 >> Koulye a, ki jan nou te ale sou fixing sa a? 594 00:31:21,310 --> 00:31:23,140 Nou te gen fè fonksyon an gade yon uglier ti kras. 595 00:31:23,140 --> 00:31:25,250 Men, ankò, konsidere sa sa a jis vle di. 596 00:31:25,250 --> 00:31:27,840 597 00:31:27,840 --> 00:31:31,500 >> Men, aktyèlman, kite m ', pou konsistans, chanje yon sèl bagay se konsa li a ki idantik ak 598 00:31:31,500 --> 00:31:33,200 ki sa nou jis te fè. 599 00:31:33,200 --> 00:31:35,690 Kòm mwen mansyone semèn pase a, li pa fè sa gen pwoblèm kote li ale. 600 00:31:35,690 --> 00:31:38,120 An reyalite, anjeneral ou ta mete a etwal akote non an varyab. 601 00:31:38,120 --> 00:31:40,750 Men mwen panse ke li ta yon ti kras pi fasil yo konsidere * kap vini an nan la 602 00:31:40,750 --> 00:31:44,910 done ki kalite kòm sa vle di li nan yon konsèy nan yon Int nan ka sa a. 603 00:31:44,910 --> 00:31:46,270 >> Se konsa, sa m 'fè la a? 604 00:31:46,270 --> 00:31:49,590 M ap di pa ban m 'yon Int ki te swiv pa yon lòt Int, 605 00:31:49,590 --> 00:31:50,810 rele yo a ak b. 606 00:31:50,810 --> 00:31:52,460 Ban m 'adrès la nan yon Int. 607 00:31:52,460 --> 00:31:53,960 Ban m 'adrès la nan yon lòt Int. 608 00:31:53,960 --> 00:31:56,330 Rele moun ki adrese yon b ak. 609 00:31:56,330 --> 00:32:00,860 >> Lè sa a, lè l sèvi avèk notasyon a * desann anba a, ale nan chak nan sa yo adrès 610 00:32:00,860 --> 00:32:05,290 jan sa nesesè swa jwenn oswa mete valè li yo. 611 00:32:05,290 --> 00:32:07,400 Men, gen nan yon eksepsyon isit la. 612 00:32:07,400 --> 00:32:11,130 Poukisa mwen pa gen yon * pwochen nan tan? 613 00:32:11,130 --> 00:32:15,070 Poukisa mwen pa fè sa, pou egzanp? 614 00:32:15,070 --> 00:32:19,370 Li santi l tankou mwen ta dwe jis ale tout deyò epi yo korije tout bagay la. 615 00:32:19,370 --> 00:32:19,752 Yeah? 616 00:32:19,752 --> 00:32:21,002 >> ODYANS: [fèbl]. 617 00:32:21,002 --> 00:32:23,280 618 00:32:23,280 --> 00:32:25,480 >> Oratè 1: Mwen pa te deklare tan kòm yon fisèl. 619 00:32:25,480 --> 00:32:28,830 620 00:32:28,830 --> 00:32:34,950 Se konsa, sa a ta deklare, nan ka sa a, yon tan yo dwe adrès la nan yon Int. 621 00:32:34,950 --> 00:32:37,380 Men, sa a pa byen sa m 'vle, pou yon koup nan rezon ki fè. 622 00:32:37,380 --> 00:32:38,616 >> ODYANS: Ou pa vle swap yo. 623 00:32:38,616 --> 00:32:41,800 >> Oratè 1: Egzakteman, mwen pa vle swap anyen ak tan. tan se jis 624 00:32:41,800 --> 00:32:42,790 semèn-yon sèl bagay. 625 00:32:42,790 --> 00:32:45,150 Tout sa mwen vle se yon varyab nan magazen kèk nimewo. 626 00:32:45,150 --> 00:32:47,330 Mwen pa menm pran swen sou adrès nan moman sa a. 627 00:32:47,330 --> 00:32:50,530 >> Mwen jis bezwen 32 Bits oswa se konsa nan magazen yon Int. 628 00:32:50,530 --> 00:32:56,690 Apre sa, mwen vle mete nan 32 moun ki Bits tou sa ki pa nan yon, se konsa pale, men 629 00:32:56,690 --> 00:33:01,260 ki sa ki nan yon, jis yo dwe plis presi. 630 00:33:01,260 --> 00:33:06,420 Paske si yon se yon adrès, * yon vle di ale la epi pou yo jwenn valè a 1. 631 00:33:06,420 --> 00:33:10,560 Pou egzanp, nan egzanp semèn pase a oswa nan ka b a, jwenn valè a nan 2. 632 00:33:10,560 --> 00:33:11,750 >> Se konsa, sa ki reyèlman ale sou? 633 00:33:11,750 --> 00:33:15,070 Kite m 'desine yon foto isit la ki pral sèlman toumante apa yon pati nan jodi a. 634 00:33:15,070 --> 00:33:18,580 Men, sa a yo ap kontinye parèt pou kèk tan. 635 00:33:18,580 --> 00:33:22,430 >> Sa a, mwen reklame, se sa ki òdinatè w lan an memwa sanble lè ou kouri nan yon 636 00:33:22,430 --> 00:33:24,060 pwogram nan, nenpòt pwogram lan. 637 00:33:24,060 --> 00:33:28,340 Lè ou kouri nan yon pwogram nan tèt la anpil nan RAM òdinatè w lan an - se konsa panse a 638 00:33:28,340 --> 00:33:33,530 rektang sa a, se vre wi, menm jan ou RAM òdinatè a oswa memwa yo, tout 101 639 00:33:33,530 --> 00:33:36,920 milya dola bytes nan li yo, tout de milya dola bytes yo, tout jigokte de nan li, 640 00:33:36,920 --> 00:33:39,910 tou sa kantite a ou gen se, kite a trase li kòm yon rektang. 641 00:33:39,910 --> 00:33:43,260 Apre sa, mwen reklamasyon ke lè ou kouri nan yon pwogram tankou Microsoft Word oswa Chrome 642 00:33:43,260 --> 00:33:49,220 oswa yon bagay tankou sa, Bits yo ki Microsoft oswa ki Google te ekri - 643 00:33:49,220 --> 00:33:50,910 nan ka yo nan pwogram sa yo - 644 00:33:50,910 --> 00:33:54,490 yo chaje nan memwa òdinatè w lan an kote yo ka ekzekite plis 645 00:33:54,490 --> 00:33:57,520 byen vit, yo t'ap manje nan CPU a, ki se sèvo yo nan òdinatè a. 646 00:33:57,520 --> 00:34:00,940 >> Ak nan TAM yo ap estoke nan anpil nan tèt pwogram ou an, se konsa pale. 647 00:34:00,940 --> 00:34:03,300 Nan lòt mo, si sa a se yon ti moso nan memwa, lè ou doub klike sou 648 00:34:03,300 --> 00:34:05,740 Microsoft Word, Bits yo vin sou kondwi a difisil. 649 00:34:05,740 --> 00:34:06,680 Yo jwenn chaje nan RAM. 650 00:34:06,680 --> 00:34:10,330 Epitou, n ap bouskile yo moute nan tèt la anpil sa a rektang concept. 651 00:34:10,330 --> 00:34:13,010 >> Oke, rès la nan memwa ou a se itilize pou bagay diferan. 652 00:34:13,010 --> 00:34:16,460 Nan tèt la anpil ou wè inisyalize done ak uninitialize done. 653 00:34:16,460 --> 00:34:20,500 Sa a te fè, pou pati ki pi, ak konstan oswa varyab mondyal 654 00:34:20,500 --> 00:34:21,340 ki gen valè. 655 00:34:21,340 --> 00:34:22,980 Men, plis sou sa yo yon lòt lè. 656 00:34:22,980 --> 00:34:25,150 >> Lè sa a, ou gen pil wòch la, ki nou pral tounen vin jwenn. 657 00:34:25,150 --> 00:34:28,420 Men, nan pati anba a se yon pati nan sa a, se patikilyèman konvnabl kounye a. 658 00:34:28,420 --> 00:34:30,210 Li nan chemine a sa yo rele. 659 00:34:30,210 --> 00:34:33,850 Se konsa, jis tankou nan pi fò sal nenpòt D isit la sou lakou lekòl la, ou gen sa yo plato ki 660 00:34:33,850 --> 00:34:37,210 jis pile sou tèt chak lòt yo sou ki ou ka mete manje ak etajèr. 661 00:34:37,210 --> 00:34:40,139 Chemine a nan yon sistèm òdinatè se yon bagay ki menm jan an. 662 00:34:40,139 --> 00:34:42,679 Eksepte Lè nou konsidere ke plato a, menm jan nou itilize nan sal à, nan kou, ki te vle di 663 00:34:42,679 --> 00:34:45,710 pote bagay sa yo plato yo oswa ankadreman yo - 664 00:34:45,710 --> 00:34:49,469 kòm nou pral rele yo - nan yon nan òdinatè memwa ki itilize yo kenbe 665 00:34:49,469 --> 00:34:51,610 varyab ak valè. 666 00:34:51,610 --> 00:34:53,929 >> Se konsa, sa ki vrèman ale sou anba kapo a? 667 00:34:53,929 --> 00:34:55,820 Oke, kite m 'baskile sou nan ekran an isit la. 668 00:34:55,820 --> 00:34:58,370 Men, nan kite konsantre jis sou la pati anba pou yon moman. 669 00:34:58,370 --> 00:35:02,770 Si sa a se pati ki anba mwen memwa òdinatè a, li vire soti lè m ' 670 00:35:02,770 --> 00:35:05,350 rele fonksyon prensipal - ki k ap pase, franchman, 671 00:35:05,350 --> 00:35:06,950 otomatikman pou m '- 672 00:35:06,950 --> 00:35:10,510 Mwen jwenn yon ti moso nan memwa nan la anba nan RAM mwen se konsa yo pale. 673 00:35:10,510 --> 00:35:13,390 Lè sa a se kote prensipal la varyab lokal ale. 674 00:35:13,390 --> 00:35:16,770 Li nan kote arg ak argv petèt ale a, epi nenpòt varyab mwen 675 00:35:16,770 --> 00:35:18,170 deklare andedan nan prensipal la. 676 00:35:18,170 --> 00:35:20,260 Yo fini nan pati anba a nan RAM òdinatè mwen an. 677 00:35:20,260 --> 00:35:25,040 >> Koulye a, sipoze ke apèl prensipal yon fonksyon tankou swap, tankou li te fè semèn pase a? 678 00:35:25,040 --> 00:35:30,620 Oke, nou esansyèlman mete yon plato nouvo, yon nouvo ankadreman, sou moso mwen nan memwa. 679 00:35:30,620 --> 00:35:34,160 Men, mwen pral dekri sa a kòm ki fè pati fonksyon an swap. 680 00:35:34,160 --> 00:35:35,770 >> Kounye a ki sa ki andedan nan swap? 681 00:35:35,770 --> 00:35:39,240 Oke, ki baze sou pwogram semèn pase a ak youn nan nou jis te wè yon ekstrè nan, 682 00:35:39,240 --> 00:35:46,590 andedan nan ankadreman swap la, oswa sou swap la plato, yo se sa ki varyab? 683 00:35:46,590 --> 00:35:47,970 Oke, yon ak b. 684 00:35:47,970 --> 00:35:51,850 Paske moun yo te agiman lokal li yo, plis yon twazyèm, tan. 685 00:35:51,850 --> 00:35:54,470 Se konsa, reyèlman, mwen te kapab trase sa a yon ti kras plis propr. 686 00:35:54,470 --> 00:35:56,680 Kite m 'ale pi devan epi defèt etikèt la. 687 00:35:56,680 --> 00:35:58,520 Men, kite m 'reklamasyon ke ou konnen ki sa? 688 00:35:58,520 --> 00:36:00,560 >> yon se pwobableman ale nan fini isit la. 689 00:36:00,560 --> 00:36:02,160 B ki pral fini isit la. 690 00:36:02,160 --> 00:36:03,810 Men, tan ki pral fini isit la. 691 00:36:03,810 --> 00:36:05,160 Koulye a,, k'ap kòmande nou yo ta ka gen yon ti kras diferan. 692 00:36:05,160 --> 00:36:06,840 Men, concept sa a se lide la. 693 00:36:06,840 --> 00:36:11,490 >> Epi jis kolektivman, sa a se sa nou pral rele ankadreman swap a, oswa 694 00:36:11,490 --> 00:36:12,136 manje-sal plato. 695 00:36:12,136 --> 00:36:13,150 Men, kontra a menm ak prensipal la. 696 00:36:13,150 --> 00:36:14,040 Men, mwen pa pral rdesine sa. 697 00:36:14,040 --> 00:36:17,810 Men, sa a kote arg ak argv ak nenpòt nan varyab lokal li yo tankou x ak y 698 00:36:17,810 --> 00:36:18,940 ta ka kòm byen. 699 00:36:18,940 --> 00:36:22,170 >> Se konsa, kounye a konsidere sa ki vrèman k ap pase lè ou rele swap. 700 00:36:22,170 --> 00:36:26,370 Lè ou rele swap, egzekite Kòd tankou sa a, w ap pase nan, nan la 701 00:36:26,370 --> 00:36:30,670 vèsyon buggy, A ak B kòm kopi x ak y. 702 00:36:30,670 --> 00:36:34,300 Se konsa, si mwen kounye a trase sa a sou ekran an - 703 00:36:34,300 --> 00:36:36,700 te rive nan jwenn pi bon nan sa a - 704 00:36:36,700 --> 00:36:40,850 se konsa istwa a mwen te di tèt mwen te nan vèsyon sa-a buggy, lè nou 705 00:36:40,850 --> 00:36:46,130 rele swap pase nan literalman a ak b kòm nonm antye yo, sa ki vrèman rive? 706 00:36:46,130 --> 00:36:48,250 >> Oke, sa ki vrèman k ap pase sa a. 707 00:36:48,250 --> 00:36:52,850 Kite m 'ale pi devan epi defèt jis klè moute kèk espas isit la. 708 00:36:52,850 --> 00:36:54,720 Se konsa, sa a se memwa òdinatè mwen an. 709 00:36:54,720 --> 00:36:57,510 >> Se konsa, si mwen gen, pou egzanp - 710 00:36:57,510 --> 00:36:58,910 aktyèlman kite a fè li fason sa a - 711 00:36:58,910 --> 00:37:02,690 si mwen reklamasyon ke sa a se x, estoke valè a 1 jis tankou semèn pase a. 712 00:37:02,690 --> 00:37:05,930 Lè sa a se y, estoke valè a 2 jis tankou semèn pase a. 713 00:37:05,930 --> 00:37:11,370 Lè sa a se prensipal yo, lè m'ap rele swap, kidonk bay tèt mwen aksè a yon ak 714 00:37:11,370 --> 00:37:15,150 b ak tan, mwen pral reklamasyon ke sa a se yon ak sa a se 1. 715 00:37:15,150 --> 00:37:16,080 >> Sa a se b. 716 00:37:16,080 --> 00:37:17,010 Sa a se 2. 717 00:37:17,010 --> 00:37:18,370 Se sa yo rele tan. 718 00:37:18,370 --> 00:37:23,360 >> Men, okòmansman, li gen kèk valè fatra jouk tan mwen aktyèlman magazen an li yon, 719 00:37:23,360 --> 00:37:24,450 ki se 1. 720 00:37:24,450 --> 00:37:28,320 Apre sa, mwen ale pi devan epi chanje yon yo dwe ki sa? 721 00:37:28,320 --> 00:37:29,720 Valè B a. 722 00:37:29,720 --> 00:37:31,980 >> Se konsa, koulye a, mwen gen de isit la. 723 00:37:31,980 --> 00:37:34,050 Lè sa a, nou te di b vin tan. 724 00:37:34,050 --> 00:37:37,670 Yon fwa ankò, jis kòm yon saniti tcheke, twazyèm lan liy nan Kòd isit la se tou senpleman sa a 725 00:37:37,670 --> 00:37:39,440 yon sèl, b vin tan. 726 00:37:39,440 --> 00:37:41,730 >> Se konsa, anfen, ki sa mwen fè? 727 00:37:41,730 --> 00:37:46,800 Mwen ale pi devan epi chanje b yo dwe tou sa valè a nan tan se, ki se 1. 728 00:37:46,800 --> 00:37:48,390 Mwen pa manyen tan ankò. 729 00:37:48,390 --> 00:37:54,100 >> Men koulye a,, pwoblèm nan se le pli vit ke swap retounen, paske li pa nan Distribiye 730 00:37:54,100 --> 00:37:57,540 tounen kèk valè, gen nan pa gen retounen deklarasyon klèman nan li. 731 00:37:57,540 --> 00:37:59,080 Ki sa ki nan aktyèlman pase? 732 00:37:59,080 --> 00:38:03,480 Oke, esansyèlman tout bagay sa a memwa - 733 00:38:03,480 --> 00:38:07,410 OK, aparamman gonm nan renmen sèlman yon sèl dwèt nan yon tan - 734 00:38:07,410 --> 00:38:08,180 jis disparèt. 735 00:38:08,180 --> 00:38:10,070 >> Koulye a, an reyalite li pa pral nenpòt kote. 736 00:38:10,070 --> 00:38:11,810 Men, ou ka panse a li kounye a kòm mak kesyon. 737 00:38:11,810 --> 00:38:14,040 Paske li nan pa gen okenn ankò aktyèlman nan itilize. 738 00:38:14,040 --> 00:38:17,470 E pa gen anyen yo fè ak valè sa yo. 739 00:38:17,470 --> 00:38:21,920 >> Se konsa, nan ka a nan vèsyon an vèt nan sa a Kòd, ki sa ki olye se ke yo te 740 00:38:21,920 --> 00:38:24,640 pase nan swap? 741 00:38:24,640 --> 00:38:25,770 Se konsa, adrese. 742 00:38:25,770 --> 00:38:28,520 Se konsa, adrès la nan x ak adrès ki nan y. 743 00:38:28,520 --> 00:38:35,790 Se konsa, si nou re-di istwa sa a yon dènye tan, epi mwen aktyèlman trase swap ankò, 744 00:38:35,790 --> 00:38:44,620 Men, se avèk endikasyon, sa a ke yo te yon, sa a yo te b, ak sa a tan ke yo te, ki sa ki 745 00:38:44,620 --> 00:38:49,080 aktyèlman estoke nan yon nan sa a vèt vèsyon nan kòd m 'kote m ap pase 746 00:38:49,080 --> 00:38:52,110 nan adrès? 747 00:38:52,110 --> 00:38:53,780 >> Li nan ale nan gen yon konsèy x. 748 00:38:53,780 --> 00:38:54,890 Se konsa, mwen te kapab desine yon flèch. 749 00:38:54,890 --> 00:38:57,310 Men, kite a sèvi ak abitrè a menm egzanp tankou anvan. 750 00:38:57,310 --> 00:39:01,220 Se pou nou di ke sa a se yon bagay tankou Ox123. 751 00:39:01,220 --> 00:39:04,970 Ak sa a se pral fè Ox127 paske li nan kat bytes lwen paske li nan yon 752 00:39:04,970 --> 00:39:07,370 Int, se konsa Ox127. 753 00:39:07,370 --> 00:39:09,080 >> Li di ankò, mwen pran kèk libète ak nimewo yo. 754 00:39:09,080 --> 00:39:11,430 Yo ap pi piti anpil pase yo ta aktyèlman ap ak nan yon lòd diferan. 755 00:39:11,430 --> 00:39:14,350 Men, sa a ki jan foto a se kounye a diferan. 756 00:39:14,350 --> 00:39:19,060 >> Men, lè mwen sèvi ak kòd sa a vèt ak mwen Int tan jwenn * a. 757 00:39:19,060 --> 00:39:25,010 * Yon vle di fè bagay sa yo, pran an adrese sa a, se nan yon epi ale nan li, 758 00:39:25,010 --> 00:39:26,190 ki se 1. 759 00:39:26,190 --> 00:39:28,480 Epi sa a, sa m 'Lè sa a, mete yo nan tan. 760 00:39:28,480 --> 00:39:32,480 Pandan se tan, nan liy nan pwochen nan Kòd isit la, * yon vin b, ki sa sa vle di? 761 00:39:32,480 --> 00:39:36,910 >> Oke, * yon, se konsa ale isit la vin * b, ki vle di ale la. 762 00:39:36,910 --> 00:39:39,310 Lè sa vle di mete valè a la. 763 00:39:39,310 --> 00:39:43,670 Finalman, liy ki sot pase yo nan Kòd tou senpleman di * b vin tan. 764 00:39:43,670 --> 00:39:48,900 >> Se konsa, b di ale la ak recouvrir li ak tan ki, nan ka sa a, ki pral 765 00:39:48,900 --> 00:39:51,520 yo dwe, ankò, 1. 766 00:39:51,520 --> 00:39:54,920 Lè sa a se poukisa vèsyon an vèt nan travay Kòd nou an, Lè nou konsidere ke wouj la 767 00:39:54,920 --> 00:39:56,010 vèsyon pa janm te fè. 768 00:39:56,010 --> 00:39:59,020 Li tout jis klou desann nan ki jan la memwa se jere ak ki kote li nan 769 00:39:59,020 --> 00:40:02,580 aktyèlman mete yo nan ou RAM òdinatè a. 770 00:40:02,580 --> 00:40:07,270 Men, pou kounye a, sa a, se youn nan bagay ki ki se chemine a te itilize pou. 771 00:40:07,270 --> 00:40:09,225 >> Kesyon sou Layout a? 772 00:40:09,225 --> 00:40:10,380 Sou endikasyon? 773 00:40:10,380 --> 00:40:11,630 Oswa sou swap? 774 00:40:11,630 --> 00:40:13,740 775 00:40:13,740 --> 00:40:17,043 >> Tout dwa, se konsa malok, sonje, te fè yon bagay tankou sa a. 776 00:40:17,043 --> 00:40:18,260 Sa se te yon super egzanp ki senp. 777 00:40:18,260 --> 00:40:20,550 Lè sa a te yon sèl la ki Binky prezante nou, kwake byen 778 00:40:20,550 --> 00:40:21,870 byen vit, nan fen klas la. 779 00:40:21,870 --> 00:40:24,480 Dammit, gen nou ale ankò. 780 00:40:24,480 --> 00:40:28,780 >> Se konsa, sonje ke sa a te egzanp lan ki Binky prezante nou, kwake 781 00:40:28,780 --> 00:40:30,360 yon ti jan byen vit nan fen klas la. 782 00:40:30,360 --> 00:40:33,640 Ak isit la nou itilize malok reyèlman pou yon dezyèm fwa. 783 00:40:33,640 --> 00:40:37,330 Paske premye fwa nou itilize li nan kreye ase RAM, asiyen ase RAM 784 00:40:37,330 --> 00:40:38,340 nan magazen yon kòd. 785 00:40:38,340 --> 00:40:40,250 >> Fwa sa a, Binky kenbe li senp. 786 00:40:40,250 --> 00:40:42,465 Se konsa, li nan magazen jis yon Int, aparamman. 787 00:40:42,465 --> 00:40:43,510 Epi sa a, totalman amann. 788 00:40:43,510 --> 00:40:46,560 Li se yon etranj ti kras, franchman, sèvi ak malok asiyen yon sèl Int. 789 00:40:46,560 --> 00:40:50,650 Men, pwen an nan claymation Nick a te vrèman jis rakonte istwa a nan sa ki 790 00:40:50,650 --> 00:40:53,830 k ap pase oswa ou pa rive lè ou maltrete memwa. 791 00:40:53,830 --> 00:40:56,520 >> Se konsa, nan ka sa a, pwogram sa a te fè yon bagay kèk. 792 00:40:56,520 --> 00:41:01,580 Nan pwemye ka a isit la, li menm yon konsèy rele x nan yon Int. 793 00:41:01,580 --> 00:41:04,480 Li Lè sa a, deklare yon konsèy rele y nan yon Int. 794 00:41:04,480 --> 00:41:06,150 Li Lè sa a, magazen nan x, ki sa? 795 00:41:06,150 --> 00:41:07,110 Yon lòt moun kounye a. 796 00:41:07,110 --> 00:41:09,685 Ki sa ki vin estoke nan x dapre liy nan twazyèm nan pwogram sa a? 797 00:41:09,685 --> 00:41:12,380 >> ODYANS: [fèbl]. 798 00:41:12,380 --> 00:41:14,130 >> Oratè 1: Oke, pa byen bytes, pou chak di. 799 00:41:14,130 --> 00:41:16,760 Gen plis egzak kounye a. 800 00:41:16,760 --> 00:41:18,325 Ki sa ki vin estoke nan x? 801 00:41:18,325 --> 00:41:21,000 802 00:41:21,000 --> 00:41:22,060 Yon adrès, mwen panse ke m 'te tande l'. 803 00:41:22,060 --> 00:41:23,570 >> Se konsa, sa malok retounen? 804 00:41:23,570 --> 00:41:26,030 malok konpòtman repati yon ti moso nan memwa. 805 00:41:26,030 --> 00:41:27,850 Men, ki jan li ba ou aksè nan li? 806 00:41:27,850 --> 00:41:29,460 Li retounen ki sa? 807 00:41:29,460 --> 00:41:32,000 Postal la nan multiple nan premye nan moso la nan memwa. 808 00:41:32,000 --> 00:41:33,020 >> Koulye a, sa a se senp super. 809 00:41:33,020 --> 00:41:35,380 Se jis nan yon sèl multiple, ki vle di nan adrese nou ap vin tounen se la 810 00:41:35,380 --> 00:41:37,300 adrès nan tout bagay la. 811 00:41:37,300 --> 00:41:42,070 Se konsa, ki estoke nan x lè sa a, se adrès la sa a ti moso nan memwa. 812 00:41:42,070 --> 00:41:43,400 Pandan se tan, ki sa k ap pase answit? 813 00:41:43,400 --> 00:41:45,890 Se konsa, aktyèlman, se pou yo ale pi devan epi trase sa-a vit soti reyèl. 814 00:41:45,890 --> 00:41:52,490 >> Se konsa, si nou janbe lòt bò nan ekran an isit la ak nou jwe sa a soti Int * x ak Int * y 815 00:41:52,490 --> 00:41:53,740 ki pral fè sa pou mwen? 816 00:41:53,740 --> 00:41:58,280 Mwen reklamasyon ke li nan jis pral fè yon bagay tankou sa a ak rele li x, ak 817 00:41:58,280 --> 00:42:00,010 sa a ak rele li y. 818 00:42:00,010 --> 00:42:03,110 Pandan se tan, liy nan twazyèm nan Kòd la se ale nan asiyen gwosè a nan yon Int, 819 00:42:03,110 --> 00:42:06,160 ki k ap pase yo - regrèt si m 'te di yon sèl mwen anvan m 'te vle di yon sèl Int - 820 00:42:06,160 --> 00:42:08,280 kat bytes sou yon òdinatè òdinè. 821 00:42:08,280 --> 00:42:09,720 Omwen ak aparèy la CS50. 822 00:42:09,720 --> 00:42:11,490 >> Se konsa, sa a ki pral asiyen li, ki moun ki konnen? 823 00:42:11,490 --> 00:42:12,800 Yon kote soti isit la. 824 00:42:12,800 --> 00:42:15,780 Ak sa a se ki estoke nan kèk bèf adrès, ki moun ki konnen? 825 00:42:15,780 --> 00:42:18,330 Men, sa k ap pase jwenn tounen se ke adrès. 826 00:42:18,330 --> 00:42:22,270 Men, nou pral pran sa a pictorially kòm jis yon flèch tankou sa. 827 00:42:22,270 --> 00:42:25,430 >> Koulye a, nan liy nan pwochen * x vin 42. 828 00:42:25,430 --> 00:42:29,400 Ki sa ki * x vle di nan tèm pwofàn la? 829 00:42:29,400 --> 00:42:30,040 Jis ale la. 830 00:42:30,040 --> 00:42:30,960 Ale nan ki adrès. 831 00:42:30,960 --> 00:42:35,900 Oswa nan lòt mo, swiv la flèch li mete 42 la. 832 00:42:35,900 --> 00:42:38,140 Men, Lè sa a, yon move bagay ki te pase Binky, dwa? 833 00:42:38,140 --> 00:42:43,950 >> Sonje byen, liy senk isit la, * y ap vin 13, tout bon yon nimewo malheureux, 834 00:42:43,950 --> 00:42:44,760 te fè sa pou nou? 835 00:42:44,760 --> 00:42:47,320 Oke, * vle di y ale la. 836 00:42:47,320 --> 00:42:50,460 Bon, sa a pa te bay yon valè ankò, dwa? 837 00:42:50,460 --> 00:42:54,090 Kòd la pa gen y ke yo te initialisé anyen. 838 00:42:54,090 --> 00:42:56,120 Nou te x ke yo te initialisé nan yon lari yo. 839 00:42:56,120 --> 00:42:57,640 Men, y te deklare moute tèt. 840 00:42:57,640 --> 00:43:00,250 Men, lè sa a yon virgules, pa gen okenn valè te aktyèlman mete nan li. 841 00:43:00,250 --> 00:43:02,330 Se konsa, li jis yo rele sa a yon fatra valè. 842 00:43:02,330 --> 00:43:03,430 Ki moun ki konnen sa ki nan genyen? 843 00:43:03,430 --> 00:43:07,160 Li nan sold yo nan Bits ki te itilize pa kèk liy anvan yo nan kòd nan 844 00:43:07,160 --> 00:43:08,300 pwogram m 'yo. 845 00:43:08,300 --> 00:43:13,250 >> Se konsa, si mwen di ale la, sa a se tankou, Mwen pa gen okenn lide kote sa a flèch la se 846 00:43:13,250 --> 00:43:14,490 ale nan fini. 847 00:43:14,490 --> 00:43:17,720 Epi sa a, lè ou tipikman jwenn yon fay segmentation. 848 00:43:17,720 --> 00:43:22,430 Si ou aksidantèlman dèreferans, se konsa yo pale, oswa ale nan yon adrès sa a pa 849 00:43:22,430 --> 00:43:25,400 aktyèlman yon adrès lejitim, move bagay rive. 850 00:43:25,400 --> 00:43:27,550 >> Epi sa a, egzakteman sa ki te pase panse Binky. 851 00:43:27,550 --> 00:43:31,060 Se konsa, sonje ke istwa a ki Nick te di isit la se te lide a menm jan ak sa ki 852 00:43:31,060 --> 00:43:34,050 Mwen te trase ak ilizyon an lakre sou tablo a la. 853 00:43:34,050 --> 00:43:35,960 X ak Y yo te deklare. 854 00:43:35,960 --> 00:43:39,690 >> Lè sa a, nou resevwa lajan gwosè a nan yon Int ak estoke l 'nan x. 855 00:43:39,690 --> 00:43:42,130 Lè sa a, liy nan pwochen nou te fè * x. 856 00:43:42,130 --> 00:43:46,070 Sa a te majik ralonj Nick a nan dereferencing. 857 00:43:46,070 --> 00:43:49,780 Sa mete 42 nan memwa a vize deyò pa x. 858 00:43:49,780 --> 00:43:51,600 >> Men, sa a se kote bagay sa yo ale oribleman mal. 859 00:43:51,600 --> 00:43:51,820 Dwa? 860 00:43:51,820 --> 00:43:53,550 Nou te eseye y dèreferans. 861 00:43:53,550 --> 00:43:55,620 Men, y te gen kèk valè fos, dwa? 862 00:43:55,620 --> 00:43:57,720 >> Sa flèch nan anba a sou bò gòch kwen, se pa 863 00:43:57,720 --> 00:43:58,950 aktyèlman montre anyen. 864 00:43:58,950 --> 00:44:01,520 Li nan kalite fè sa mwen te fè isit la sou tablo a. 865 00:44:01,520 --> 00:44:05,900 Se konsa, move bagay rive, segmentation fòt, oswa Binky mal, nan ka sa a. 866 00:44:05,900 --> 00:44:10,800 >> Men, si nou Lè sa a, ranje ki pa fè x vin y ki jan fè chanjman nan istwa? 867 00:44:10,800 --> 00:44:15,760 Oke, si m 'fè x vin y, sa a, se efektivman menm bagay la tou kòm li te di 868 00:44:15,760 --> 00:44:19,235 tou sa sa a se, bèf yon bagay ki pral fè menm bagay la isit la, 869 00:44:19,235 --> 00:44:20,080 Bèf-yon bagay. 870 00:44:20,080 --> 00:44:22,970 Oswa pictorially nou pral trase yon flèch. 871 00:44:22,970 --> 00:44:25,530 >> Se konsa, isit la sou tablo a ak Binky, ak liy nan pwochen nan 872 00:44:25,530 --> 00:44:28,350 Kòd, * y vle di ale la. 873 00:44:28,350 --> 00:44:29,400 Ki kote ki gen la? 874 00:44:29,400 --> 00:44:30,820 Sa vle di plis pase isit la. 875 00:44:30,820 --> 00:44:36,050 >> Lè nou mete sa yo dwe 13 li jis enplike nan prale ak 876 00:44:36,050 --> 00:44:39,470 ekri 13 isit la kounye a. 877 00:44:39,470 --> 00:44:44,130 Se konsa, petèt pa konplètman dwat nan premye gade. 878 00:44:44,130 --> 00:44:47,740 Men, yo Rekapitilasyon ak yo sèvi ak jagon an menm ki Binky te lè l sèvi avèk isit la, se konsa 879 00:44:47,740 --> 00:44:50,485 de premye asiyen endikasyon yo, x ak y, men se pa pointees yo. 880 00:44:50,485 --> 00:44:54,750 Men, pointees se pa yon jeneralman itilize tèm. 881 00:44:54,750 --> 00:44:56,120 Men, konsèy absoliman se. 882 00:44:56,120 --> 00:44:59,200 Men, li la sa k ap pwente nan nan nomanklatur Binky a. 883 00:44:59,200 --> 00:45:01,660 >> Liy sa a kap vini an, nan kou, repati yon pointee Int. 884 00:45:01,660 --> 00:45:04,840 Se konsa, yon ti moso nan memwa - jan mwen te trase sou sou bò men dwat-ou gen - li mete 885 00:45:04,840 --> 00:45:06,470 x egal a lonje dwèt sou li. 886 00:45:06,470 --> 00:45:11,350 Sa a x dereferences nan magazen 42 nan memwa a ke li nan montre nan. 887 00:45:11,350 --> 00:45:13,380 Lè sa a, sa a, nan kou, te yon move bagay. 888 00:45:13,380 --> 00:45:15,600 Paske y pa te montre nan anyen ankò. 889 00:45:15,600 --> 00:45:16,530 Sa a fiks li. 890 00:45:16,530 --> 00:45:18,240 Se konsa, sa a se toujou pwogram buggy. 891 00:45:18,240 --> 00:45:21,580 Jis paske nou ap mouche nan la liy Kòd pa liy yo t'ap di konsa, o byen, 892 00:45:21,580 --> 00:45:22,690 kite l aksidan la. 893 00:45:22,690 --> 00:45:23,420 Sa se yon move bagay. 894 00:45:23,420 --> 00:45:26,790 Chans yo se pwogram lan jis ale nan avote tout ansanm nan ki liy. 895 00:45:26,790 --> 00:45:30,550 Men, si ou te yo retire te fè aksidan an liy ak ranplase li ak de ki sot pase a 896 00:45:30,550 --> 00:45:32,470 liy gen ou yo bay - 897 00:45:32,470 --> 00:45:35,310 lè l sèvi avèk plasman konsèy - y nan pwen x kòm t pwen. 898 00:45:35,310 --> 00:45:39,280 Lè sa a, ou dèreferans y nan yon fason trè an sekirite. 899 00:45:39,280 --> 00:45:41,520 >> Se konsa, kote sa a kite nou fè? 900 00:45:41,520 --> 00:45:45,350 Oke, sanble ke anba kapo a nan bibliyotèk la CS50, endikasyon yo 901 00:45:45,350 --> 00:45:46,320 itilize nan tout. 902 00:45:46,320 --> 00:45:48,910 Epitou, n ap aktyèlman kòmanse kale tounen ke kouch anvan lontan. 903 00:45:48,910 --> 00:45:51,740 Men, li sanble tou, yon ekspresyon ki kèk nan ou ta ka dwe abitye avèk, 904 00:45:51,740 --> 00:45:54,580 patikilyèman sa yo ki pi alèz, se aktyèlman sa yo ki an yon popilè trè 905 00:45:54,580 --> 00:45:56,390 sit entènèt, oswa debòde chemine, jou sa yo. 906 00:45:56,390 --> 00:45:58,720 >> Men, sa a aktyèlman gen anpil teknik sans. 907 00:45:58,720 --> 00:46:00,160 Nou kounye a konnen ki sa yon pil se. 908 00:46:00,160 --> 00:46:02,550 Se tankou yon pil nan plato ki anba po andedan nan yon sal manje. 909 00:46:02,550 --> 00:46:05,140 >> Oswa andedan nan òdinatè a ou memwa li yo sa yo ankadreman 910 00:46:05,140 --> 00:46:06,900 ke yo te itilize pa fonksyon. 911 00:46:06,900 --> 00:46:10,760 Oke, li vire soti ke paske yo te ke trè senp aplikasyon 912 00:46:10,760 --> 00:46:14,970 memwa ak ankadreman sou sa yo rele an- chemine, ou ka aktyèlman pran kontwòl 913 00:46:14,970 --> 00:46:17,050 nan yon sistèm òdinatè fasil. 914 00:46:17,050 --> 00:46:22,180 Ou ka Hack nan yon sistèm si moun tankou nou pa genyen ekri Kòd nou 915 00:46:22,180 --> 00:46:23,300 patikilyèman byen. 916 00:46:23,300 --> 00:46:26,670 >> Si moun tankou nou sèvi ak fragman nan memwa oswa itilize ranje - 917 00:46:26,670 --> 00:46:27,810 menm pi souvan - 918 00:46:27,810 --> 00:46:31,800 men pafwa bliye tcheke nan limit nan etalaj nou an jan ou ta ka 919 00:46:31,800 --> 00:46:38,470 gen tèt ou pafwa, ak iteratif fason twò lwen sot pase yo nan fen yon etalaj. 920 00:46:38,470 --> 00:46:40,520 Nan ka ki pi bon, pwogram ou an ta ka jis aksidan. 921 00:46:40,520 --> 00:46:42,280 Fòt segmentation, kalite nan anbarasan. 922 00:46:42,280 --> 00:46:45,480 Pa gwo, men li la pa nesesèman yon bagay lajman move. 923 00:46:45,480 --> 00:46:49,480 >> Men, si pwogram ou an se aktyèlman sou reyèl òdinatè itilizatè yo ', si li ap kouri 924 00:46:49,480 --> 00:46:53,070 sou yon sit wèb ki aktyèl moun o aza sou entènèt la ap frape, kite 925 00:46:53,070 --> 00:46:56,690 moun pwovoke move bagay sou Kòd ou a jeneralman yo pa yon bon bagay paske 926 00:46:56,690 --> 00:46:59,930 sa vle di yon opòtinite yo pran kontwòl òdinatè a. 927 00:46:59,930 --> 00:47:01,350 Ak sa a se pral gade yon ti kras skre. 928 00:47:01,350 --> 00:47:04,570 Men, mwen te panse mwen ta pè ou ak egzanp sa a sot pase isit la. 929 00:47:04,570 --> 00:47:05,650 >> Isit la nan yon egzanp kòd. 930 00:47:05,650 --> 00:47:07,370 Men, gen yon Wikipedia bon atik ki mache nan 931 00:47:07,370 --> 00:47:08,530 sa a nan plis detay. 932 00:47:08,530 --> 00:47:13,890 Mwen gen prensipal la sou rele anba a foo, pase nan argv nan 1. 933 00:47:13,890 --> 00:47:15,750 Epi sa a, jis pou ke ou ka kouri pwogram nan epi yo pase 934 00:47:15,750 --> 00:47:17,080 yon D 'abitrè. 935 00:47:17,080 --> 00:47:20,180 >> Lè sa a, foo se te deklare moute tèt kòm aksepte yon fisèl, oswa plis 936 00:47:20,180 --> 00:47:21,700 jisteman, yon * Char. 937 00:47:21,700 --> 00:47:23,860 Li Lè sa a, mwen menm yon etalaj de charaktèr. 938 00:47:23,860 --> 00:47:27,130 Rele li yon tanpon, plis jeneralman, nan gwosè 12. 939 00:47:27,130 --> 00:47:30,900 Se konsa, 12 charaktèr ka anfòm anndan sa a etalaj yo rele c. 940 00:47:30,900 --> 00:47:33,510 >> Lè sa a, li itilize fonksyon sa a nouvo, ki se nouvo, men se pa difisil yo 941 00:47:33,510 --> 00:47:34,930 konprann, kopi memwa. 942 00:47:34,930 --> 00:47:39,290 Li kopi memwa a soti nan ba, sa ki te n an ki sot pase a varyab, kèlkeswa sa 943 00:47:39,290 --> 00:47:42,080 itilizatè tape nan argv 1 nan c. 944 00:47:42,080 --> 00:47:43,090 Konbyen bytes? 945 00:47:43,090 --> 00:47:44,260 Fisèl Longè a nan ba. 946 00:47:44,260 --> 00:47:48,380 >> Se konsa, nan lòt mo, si itilizatè a kalite nan H-e-L-l-o antre, longè fil 947 00:47:48,380 --> 00:47:49,260 nan alo se senk. 948 00:47:49,260 --> 00:47:52,790 Se konsa, senk nan sa yo bytes ki pral jwenn kopye nan etalaj la yo rele c, ki 949 00:47:52,790 --> 00:47:54,110 se nan gwosè 12. 950 00:47:54,110 --> 00:47:58,710 Men, sa ki itilizatè a kalite nan yon pi lontan ankò mo sa a, se 13 karaktè oswa 14 951 00:47:58,710 --> 00:48:01,250 karaktè oswa 100 karaktè oswa plis? 952 00:48:01,250 --> 00:48:02,660 >> Ki kote yo pral yo ale? 953 00:48:02,660 --> 00:48:06,090 Oke, ki ankadreman, ki plato nan chemine nan manje-sal, 954 00:48:06,090 --> 00:48:06,930 yo ap ale nan ale la. 955 00:48:06,930 --> 00:48:10,080 Epi li jis pral kòmanse ranplasan lòt bagay ki nan deja 956 00:48:10,080 --> 00:48:12,880 sou sa chemine, debòde chemine a, se konsa pale. 957 00:48:12,880 --> 00:48:14,780 >> Se konsa, pictorially, panse a li nan fason sa. 958 00:48:14,780 --> 00:48:17,970 Sa a se jis yon vèsyon kolore nan foto a nou ve yo te fè desen. 959 00:48:17,970 --> 00:48:20,060 Nan pati anba a, se pou yo di, se prensipal la. 960 00:48:20,060 --> 00:48:24,690 Men, sou tèt, ki sa ou ap wè kounye a se ankadreman, koulè a ​​kode, koulye a, pou yon 961 00:48:24,690 --> 00:48:26,090 fonksyon rele foo. 962 00:48:26,090 --> 00:48:30,170 Men, sa ki nan enteresan isit la sou foo se ke isit la se ankadreman li yo. 963 00:48:30,170 --> 00:48:32,860 Se konsa, li la trase jis tankou mwen te fè men nan limyè ble. 964 00:48:32,860 --> 00:48:35,220 Epi, koulye a sa a se kote c bracket 0 ale. 965 00:48:35,220 --> 00:48:37,410 Lè sa a se kote c bracket 11 ki pral fini. 966 00:48:37,410 --> 00:48:39,670 >> Nan lòt mo, li k ap pase nan dwe reprezante kòm yon kare. 967 00:48:39,670 --> 00:48:42,320 Men, si ou jis kenbe plopping bytes desann - oswa charaktèr - yo ap ale nan fen 968 00:48:42,320 --> 00:48:46,070 moute nan kote 0 tout wout la moute a 11 paske li 0 Catalogue. 969 00:48:46,070 --> 00:48:49,170 >> Men, kote se pèsonaj la 13th ale nan fini? 970 00:48:49,170 --> 00:48:50,310 Kote nan 14yèm a? 971 00:48:50,310 --> 00:48:52,430 Kote nan pèsonaj la 50th ale nan fini? 972 00:48:52,430 --> 00:48:54,070 >> Li nan ale nan kenbe desann. 973 00:48:54,070 --> 00:48:57,350 Paske menm si nou te trase a foto ak chemine a ap grandi, nan 974 00:48:57,350 --> 00:48:59,920 adrès, li vire soti, ale nan adrès piti, ti 975 00:48:59,920 --> 00:49:01,830 endikasyon, nan adrès gwo. 976 00:49:01,830 --> 00:49:03,540 Se konsa, li jis kenbe moute ak yo. 977 00:49:03,540 --> 00:49:05,660 >> Se konsa, si itilizatè a kalite nan hello, sa a, se gwo. 978 00:49:05,660 --> 00:49:08,650 Pa gen ensèk, pa gen okenn pwoblèm, san danje tout moun. 979 00:49:08,650 --> 00:49:11,940 Men, si itilizatè a kalite nan sa nou pral rele konfwontasyon kòd, reprezante 980 00:49:11,940 --> 00:49:16,040 generic kòm yon atak,, atak, atak, atak, sa ki ka rive? 981 00:49:16,040 --> 00:49:19,760 >> Bon, si tout nan opinyon an ki itilizatè a tape nan se pa sèlman kèk zanmitay 982 00:49:19,760 --> 00:49:21,540 oswa ofansif fisèl nan karaktè. 983 00:49:21,540 --> 00:49:24,050 Li nan aktyèlman yon sekans nan karaktè ke si ou konpile li, 984 00:49:24,050 --> 00:49:26,050 li aktyèlman se kòd. 985 00:49:26,050 --> 00:49:29,570 Petèt li nan kòd ki supresyon tout la dosye sou kondwi difisil ou oswa voye Spam 986 00:49:29,570 --> 00:49:30,810 oswa yon bagay tankou sa. 987 00:49:30,810 --> 00:49:35,110 Remake sa ki nan kle isit la se ke si nèg la move te resevwa chans ase 988 00:49:35,110 --> 00:49:37,830 recouvrir moso wouj la nan memwa - 989 00:49:37,830 --> 00:49:41,080 ki mwen pa t 'desine sou foto mwen men sa a Wikipedia foto isit la gen - 990 00:49:41,080 --> 00:49:42,890 sa yo rele adrès retou li yo. 991 00:49:42,890 --> 00:49:47,470 >> Lè manje retounen, lè retounen swap, ki jan òdinatè a konnen yo ale nan 992 00:49:47,470 --> 00:49:49,790 moute isit la yo desann isit la? 993 00:49:49,790 --> 00:49:52,920 Oswa yo nan segman sou teknoloji moute pi wo a, ki jan li konnen yo ale nan swap a 994 00:49:52,920 --> 00:49:54,870 Kòd - 0 a ak nan 1 ki konpoze swap - 995 00:49:54,870 --> 00:49:56,020 tounen nan prensipal yo? 996 00:49:56,020 --> 00:50:00,450 Genyen yon adrès retou sa yo rele ki estoke nan ki ankadreman chemine menm, sou 997 00:50:00,450 --> 00:50:02,140 plato a kafeterya menm. 998 00:50:02,140 --> 00:50:06,080 >> Se konsa, si nèg la move se entelijan ase yo mete kòd atak, kòd atak, atak 999 00:50:06,080 --> 00:50:07,960 Kòd, epi pou yo jwenn chans ase - 1000 00:50:07,960 --> 00:50:11,630 souvan nan esè ak erè - a recouvrir ke adrès retou wouj, 1001 00:50:11,630 --> 00:50:14,360 ak adrès la ak avi trè tèt la. 1002 00:50:14,360 --> 00:50:16,830 Avi 0835C080. 1003 00:50:16,830 --> 00:50:20,650 Li nan ekri nan Liv la bak moute tèt pou rezon ki fè nou pral petèt revize. 1004 00:50:20,650 --> 00:50:22,050 Sa a se ladan nimewo. 1005 00:50:22,050 --> 00:50:25,790 >> Se konsa, si nèg la move vin chans ase oswa se entelijan ase yo recouvrir wouj la 1006 00:50:25,790 --> 00:50:29,480 dezabiye nan memwa ak adrès la nan kòd ki li gen yon jan kanmenm 1007 00:50:29,480 --> 00:50:34,980 sou fòm piki nan òdinatè w lan, devine ki gen Kòd yo pral tounen tounen yo 1008 00:50:34,980 --> 00:50:38,260 le pli vit ke foo se fè egzekite? 1009 00:50:38,260 --> 00:50:39,440 >> Kòd nèg la move an. 1010 00:50:39,440 --> 00:50:43,610 Se konsa, sa a Kòd atak, AAA, ankò, ka voye Spam, ta ka efase tout dosye yo 1011 00:50:43,610 --> 00:50:44,500 sou difisil kondwi ou. 1012 00:50:44,500 --> 00:50:48,740 Men, se sa ki vrèman yon debòde chemine se, oswa yon depase tanpon, oswa yon 1013 00:50:48,740 --> 00:50:51,060 tanpon atak debòde. 1014 00:50:51,060 --> 00:50:54,400 >> Lè li nan ekstrèmman, ekstrèmman komen nan jou sa a ak pwogram ki ekri nan 1015 00:50:54,400 --> 00:50:58,220 C, C + +, e menm kèk lòt lang yo. 1016 00:50:58,220 --> 00:51:02,275 Sou ki nòt pè, nou pral fini ak yon blag. 1017 00:51:02,275 --> 00:51:03,230 >> [Ri] 1018 00:51:03,230 --> 00:51:04,550 >> Al gade nan ou nan Mèkredi. 1019 00:51:04,550 --> 00:51:07,920 1020 00:51:07,920 --> 00:51:10,310 Nan CS50 kap vini an - 1021 00:51:10,310 --> 00:51:15,920 Se konsa, mwen se tout soti nan lanp ki gen kapasite jodi a men rete tann, san grès lèt, mwatye telefòn nan 1022 00:51:15,920 --> 00:51:17,850 liv, ji a zoranj ke mwen bwè jodi a. 1023 00:51:17,850 --> 00:51:20,370 1024 00:51:20,370 --> 00:51:22,780 USB kab, yon kle. 1025 00:51:22,780 --> 00:51:24,800 >> [Jwe mizik]