1 00:00:00,000 --> 00:00:02,310 [Powered by Google Translate] [Semèn 4, Kontinye] 2 00:00:02,310 --> 00:00:04,240 [David J. Malan - Inivèsite Harvard] 3 00:00:04,240 --> 00:00:07,290 [Sa a se CS50. - CS50.TV] 4 00:00:07,290 --> 00:00:11,290 >> Sa a se CS50, e sa se nan fen semèn 4. 5 00:00:11,290 --> 00:00:14,030 Se konsa, kèk bon nouvèl ak kèk move nouvèl. 6 00:00:14,030 --> 00:00:26,240 Pa gen konferans nan Lendi, pa gen pwoblèm mete an semèn pwochèn. [Elèv yo bat bwavo] 7 00:00:26,240 --> 00:00:28,680 Ou pa ap ale nan renmen kote sa a se prale. 8 00:00:28,680 --> 00:00:31,590 Men, nou gen sa a olye Mèkredi pwochen, 9 00:00:31,590 --> 00:00:37,740 epi gen tou pou chak kursus 1 konferans lan Vandredi pwochen Vandredi pou nou ka rete sou tras. 10 00:00:37,740 --> 00:00:40,580 Men, tout bagay yo pral filme-li kòm dabitid, Se konsa, pa bezwen enkyete. 11 00:00:40,580 --> 00:00:44,100 >> Ak ki gen rapò ak egzamen 0 ki sa nou pral fè nan direksyon fen semèn nan 12 00:00:44,100 --> 00:00:47,140 se afiche sou cs50.net paj dakèy kou a nan yon eksplikasyon 13 00:00:47,140 --> 00:00:50,160 nan sa ki sòt de atant ou ta dwe gen lè li rive egzamen an premye. 14 00:00:50,160 --> 00:00:55,100 An jeneral, li pral chwa miltip, vrè ou fo, repons kout, kout pwoblèm coding. 15 00:00:55,100 --> 00:00:57,360 Ou pa ap ale nan dwe espere aplike ekivalan a 16 00:00:57,360 --> 00:01:00,030 nan yon pwoblèm ki ou ta wè sou yon pset, pou ki ou gen yon òdinatè 17 00:01:00,030 --> 00:01:03,240 ak yon debugjeur ak renmen an, men pral gen ti kodaj pwoblèm. 18 00:01:03,240 --> 00:01:06,900 >> Ak tout bon, gid sa a pi bon yo ka resevwa yon sans de sa ki CS50 ti tès yo tankou 19 00:01:06,900 --> 00:01:09,180 se ale nan cs50.net, ale nan lyen ki ti tès, 20 00:01:09,180 --> 00:01:11,920 epi ou ka wè dènye ane yo plizyè yon valè de ti tès. 21 00:01:11,920 --> 00:01:16,600 Jis reyalize ke kourikoulòm nan pa te toujou menm bagay la tou sou ane yo. 22 00:01:16,600 --> 00:01:18,510 Pafwa nou ajoute, pafwa soustraksyon, 23 00:01:18,510 --> 00:01:20,670 Se konsa, si ou wè kèk sijè sou youn nan moun ki fin vye granmoun ti tès 24 00:01:20,670 --> 00:01:25,380 ke ou pa gen okenn lide ki sa li la pale de, li la swa ke nou t 'kouvri l' 25 00:01:25,380 --> 00:01:27,210 oswa ke nou pa t 'kouvri l'. 26 00:01:27,210 --> 00:01:31,110 Men, nan fòm lan nan revizyon, sa a Dimanch, Lendi, Madi ak 27 00:01:31,110 --> 00:01:34,770 kòm byen ke yon kou-lajè sesyon revizyon sou lannwit dimanch - 28 00:01:34,770 --> 00:01:37,500 lè ak kote yo dwe te anonse sou paj dakèy kou a - 29 00:01:37,500 --> 00:01:40,120 nou tout nou gen yon opòtinite yo revize ak zanmi ansèyman kou a nan 30 00:01:40,120 --> 00:01:44,830 materyèl la pou ane sa a, tou de nan seksyon epi kòm yon klas plen, 31 00:01:44,830 --> 00:01:48,400 ak moun ki pral filme-li kòm dabitid kòm byen. 32 00:01:48,400 --> 00:01:53,380 >> Tout dwa. Se konsa, san brwi pi lwen, youn kòmantè sou pase / fail epi ajoute / lage. 33 00:01:53,380 --> 00:01:57,980 Ou kapab gen pou wè nòt mwen yè swa, e sa se vrèman jis kèk rasirans adisyonèl 34 00:01:57,980 --> 00:02:01,250 ke si ou se nan mitan moun patikilyèman mwens konfòtab oubyen yon kote nan ant 35 00:02:01,250 --> 00:02:04,870 epi ou santi jis yon ti jan nan plis pase tèt ou, 36 00:02:04,870 --> 00:02:08,430 reyalize ke se vre byen nòmal, epi gen nan yon estrikti ki sipò ase nan plas, 37 00:02:08,430 --> 00:02:13,530 youn nan ki lè biwo yo te entansyon sou amelyorasyon 'pi plis toujou pou chak lannwit imel mwen sot pase yo, 38 00:02:13,530 --> 00:02:16,520 ak reyalize tou ki yon opsyon tankou pase / fail pou yon klas tankou sa a 39 00:02:16,520 --> 00:02:21,540 vrèman ki te vle di kòm yon mekanis yo pran kwen nan koupe nan yon kou tankou sa a, 40 00:02:21,540 --> 00:02:24,200 pou ke ankò, si w ap depanse sa yo 10, 15, 20 èdtan 41 00:02:24,200 --> 00:02:28,160 jis ap eseye jwenn kèk pset travay epi ou konnen ou 90-95% nan wout la gen 42 00:02:28,160 --> 00:02:32,100 men ou pa ka jwenn kèk ensèk modi, nan yon pase / fail modèl sa a, se sòt de oke. 43 00:02:32,100 --> 00:02:36,230 >> Lide a se ke ak ki mekanis ou ka Lè sa a, ale konsantre sou psets lòt ou 44 00:02:36,230 --> 00:02:39,530 oswa dòmi oswa tou sa li se ke ou vle konsantre sou. 45 00:02:39,530 --> 00:02:43,390 Se konsa, reyalize ke ou gen jouk sa a ap vini Madi - teknikman 5yèm Lendi a, 46 00:02:43,390 --> 00:02:50,840 men li la yon jou fèt, kidonk sa a Madi ap vini - a chanje soti nan pase / fail vèrsa korije oswa vis. 47 00:02:50,840 --> 00:02:54,450 Epi si w ap reyèlman sou goufr a, epi yo panse a jete nèt, 48 00:02:54,450 --> 00:02:56,440 tanpri trape m 'apre konferans oswa pase nenpòt kilè m' yon nòt. 49 00:02:56,440 --> 00:02:59,990 Nou ta renmen omwen chat ou anvan ou òf adyeu. 50 00:02:59,990 --> 00:03:03,470 Tout dwa. Se konsa, nou te kòmanse pran wou yo fòmasyon nan tan pase a. 51 00:03:03,470 --> 00:03:06,030 An patikilye, nou konsantre sou fisèl. 52 00:03:06,030 --> 00:03:09,740 Fisèl se yon bagay ki te deklare nan bibliyotèk la CS50, 53 00:03:09,740 --> 00:03:14,340 espesyalman nan ki dosye yo rele cs50.h ki nou pral kòmanse fè yon gade nan semèn sa a ak pwochen. 54 00:03:14,340 --> 00:03:17,250 Men, fisèl se reyèlman jis yon senplifikasyon nan yon bagay 55 00:03:17,250 --> 00:03:20,980 sa a, se yon ti kras plis arcanely dekri kòm * Char. 56 00:03:20,980 --> 00:03:24,090 Char nou ap abitye avèk yo. Se jis nan yon karaktè sèl. 57 00:03:24,090 --> 00:03:28,010 Men, * kòm nan Lendi deziye ki sa? >> [Elèv] Yon konsèy. 58 00:03:28,010 --> 00:03:31,290 Yon konsèy. Ak sa ki nan yon konsèy? >> [Elèv] Yon adrès. 59 00:03:31,290 --> 00:03:33,420 >> Se tankou yon adrès, yon kote nan memwa. 60 00:03:33,420 --> 00:03:35,910 Ki sa ki nan yon adrès oswa kote oswa memwa? 61 00:03:35,910 --> 00:03:40,290 Yon fwa ankò, tout moun nan nou gen laptops ak yon Gig oswa 2 jigokte nan RAM gen plis chans jou sa yo, 62 00:03:40,290 --> 00:03:44,160 ak sa vle di ou gen yon milya dola oswa 2 milya dola bytes yon valè de memwa. 63 00:03:44,160 --> 00:03:46,240 E li pa vrèman gen pwoblèm ki sa li fizikman sanble, 64 00:03:46,240 --> 00:03:51,220 , men pran sou lafwa ke ou ka Nimewo tout bytes endividyèl yo ki laptop pwòp ou a gen - 65 00:03:51,220 --> 00:03:54,580 sa a se multiple 0, sa a se multiple 1, sa a se multiple 2 milya dola - 66 00:03:54,580 --> 00:03:56,100 ak sa a, se ekzakteman ki sa yon òdinatè fè. 67 00:03:56,100 --> 00:04:00,030 Lè ou asiyen espas pou yon karaktè sèl, pou egzanp, 68 00:04:00,030 --> 00:04:02,480 li evidamman gen yo viv yon kote nan memwa òdinatè ou a, 69 00:04:02,480 --> 00:04:05,860 e petèt li nan nan nimewo multiple 12345, 70 00:04:05,860 --> 00:04:08,470 ak sa a, se yon kote moute isit la nan memwa òdinatè ou a. 71 00:04:08,470 --> 00:04:12,630 Ak adrès la Lè sa a, nan ki karaktè se 12345. 72 00:04:12,630 --> 00:04:16,140 >> Koulye a, nan semèn 0 la a kounye a konsa byen lwen, nou pa te vrèman pran swen 73 00:04:16,140 --> 00:04:19,170 kote nan bagay sa yo memwa yo estoke paske anjeneral nou sèvi ak senbòl, 74 00:04:19,170 --> 00:04:22,540 varyab, ak ranje aktyèlman jwenn nan done nou an. 75 00:04:22,540 --> 00:04:24,950 Men, kòm nan Lendi ak tout plis la jodi a, w ap kounye a pral gen 76 00:04:24,950 --> 00:04:27,710 tout plis espresif kapasite yo ak ekri pwogram 77 00:04:27,710 --> 00:04:31,330 reyèlman manipile memwa yon òdinatè a sepandan ou wè anfòm, 78 00:04:31,330 --> 00:04:33,720 pou toude objektif bon ak move, 79 00:04:33,720 --> 00:04:39,620 pinèz ke yo te yon rezilta trè komen nan pwen sa a nan aprann bagay sa a. 80 00:04:39,620 --> 00:04:42,460 Men, sa ki li vrèman vle di yo dwe yon * Char? 81 00:04:42,460 --> 00:04:46,140 Ann al pi devan tounen nan - epi nou pral tounen vin jwenn Binky kòm te pwomèt jodi a. 82 00:04:46,140 --> 00:04:48,670 Se pou nou ale nan yon egzanp ki senp isit la. 83 00:04:48,670 --> 00:04:53,060 Kite m 'sove sa a ranpli kòm compare.c, ak kite m' jis jwenn kèk kòd modèl isit la 84 00:04:53,060 --> 00:05:00,490 konsa gen ladan stdio.h, kite m 'tou bay tèt mwen gen ladan cs50.h. Mwen pral rale nan 'kanpe. 85 00:05:00,490 --> 00:05:05,850 Kite m 'kòmanse ekri prensipal Int, prensipal (san valè), ak koulye a, mwen vle fè yon bagay tankou sa a: 86 00:05:05,850 --> 00:05:13,520 printf ("Ban m yon fisèl:") ak Lè sa a, Mwen pral sèvi ak nan fisèl vin GetString 87 00:05:13,520 --> 00:05:16,750 yo ka resevwa yon fisèl soti nan itilizatè a, lè sa a mwen pral mande itilizatè a pou yon lòt youn. 88 00:05:16,750 --> 00:05:21,870 ("Ban m 'yon lòt fisèl:") ak mwen pral mande yo via GetString jwenn sa. 89 00:05:21,870 --> 00:05:27,020 Mwen pral rele li t paske t vin apre a ak s se yon non bèl pou yon fisèl si li nan bèl jenerik. 90 00:05:27,020 --> 00:05:30,030 Se konsa, GetString, ak koulye a, mwen jis vle fè yon chèk saniti ak mwen pral di 91 00:05:30,030 --> 00:05:39,770 si (yo == t) Lè sa a, mwen jis pral di itilizatè a printf ("Ou tape menm bagay la \ n!"); 92 00:05:39,770 --> 00:05:45,520 lòt bagay mwen pral enprime soti yon bagay tankou ("Ou tape yon bagay diferan! \ n") 93 00:05:45,520 --> 00:05:48,460 oswa kèlkeswa sa fraz la yo pral. Se konsa, yon bagay tankou sa. 94 00:05:48,460 --> 00:05:52,200 Lè sa a, kòm dabitid, mwen pral tounen 0 ki jis siyifye ke pa gen anyen move ki te pase, 95 00:05:52,200 --> 00:05:54,400 ak mwen pral ale pi devan epi pou konpile tout epi kouri pwogram sa a. 96 00:05:54,400 --> 00:05:56,540 >> Men, nan Lendi nou kouri pwogram sa a, 97 00:05:56,540 --> 00:06:00,420 ak aktyèlman te di yo ke HELLO se pa HELLO ak OREVWA se pa OREVWA. 98 00:06:00,420 --> 00:06:03,140 Konpòtman an nou te wè se te yon ti kras pi plis tankou sa a. 99 00:06:03,140 --> 00:06:11,450 Kite m 'ale nan anyè sous m' yo, rale an isit la, e kite yo fè konpare. 100 00:06:11,450 --> 00:06:14,570 Konpile oke. Kite m 'kouri konpare. Ban m yon fisèl: Hello. 101 00:06:14,570 --> 00:06:16,300 Ban m 'yon lòt fisèl: Hello. 102 00:06:16,300 --> 00:06:18,000 Ou tape yon bagay diferan! 103 00:06:18,000 --> 00:06:22,650 Oke, kite m 'eseye yon bagay ki pi senp tankou 50 50,. Ou tape yon bagay diferan! 104 00:06:22,650 --> 00:06:25,740 hi, hi. Se konsa, byen klè, yon bagay ki ale sou isit la. 105 00:06:25,740 --> 00:06:28,440 Men, sa ki te eksplikasyon an pou poukisa? 106 00:06:28,440 --> 00:06:33,850 Aparaman, liy 12 se konplètman disfonksyonèl. 107 00:06:34,300 --> 00:06:39,430 Ki sa ki nan pwoblèm nan fondamantal isit la? Yeah. >> [Elèv] Li nan konpare adrès yo. 108 00:06:39,430 --> 00:06:41,850 Yeah, egzakteman. Li nan aktyèlman konpare adrès ki 109 00:06:41,850 --> 00:06:44,580 nan ki HELLO ak HELLO yo estoke. 110 00:06:44,580 --> 00:06:48,290 Li pa nan konpare lèt yo HELLO ankò e ankò, 111 00:06:48,290 --> 00:06:52,370 paske sa ki reyèlman te rive, tout tan sa a nou ve yo te lè l sèvi avèk GetString - 112 00:06:52,370 --> 00:06:56,130 Sa a se tablo ankò memwa òdinatè nou an, 113 00:06:56,130 --> 00:07:00,100 epi kite pou nou di m 'rele ou GetString apre deklare yon s varyab. 114 00:07:00,100 --> 00:07:01,930 Ki sa ki memwa mwen sanble? 115 00:07:01,930 --> 00:07:07,070 Se pou nou abitrèman di ke yo sanble tankou sa a. Li se yon kare. 116 00:07:07,070 --> 00:07:09,040 Ak bèl anpil nenpòt ki lè mwen te trase yon moso nan memwa sou ekran an 117 00:07:09,040 --> 00:07:12,860 si li nan 32 Bits mwen te fè desen kare tankou sa a paske tout bon nan aparèy la, 118 00:07:12,860 --> 00:07:17,380 yon konsèy, yon adrès, se 32 miyèt moso. Li nan menm bagay la tou kòm yon int. 119 00:07:17,380 --> 00:07:19,420 Ki ka varye ki baze sou sistèm òdinatè. 120 00:07:19,420 --> 00:07:24,630 Moun sa yo ki nan nou ki yo vagman ki abitye avèk lefèt ke Mac ou a oswa PC a se 64 Bits, 121 00:07:24,630 --> 00:07:28,120 ki aktyèlman vle di ke òdinatè w lan ap sèvi ak bagèt 64-ti jan, 122 00:07:28,120 --> 00:07:33,730 64-bit adrès, ak nan mitan upsides ki te la yo se òdinatè ou 123 00:07:33,730 --> 00:07:35,560 ka gen pi plis pase RAM pase. 124 00:07:35,560 --> 00:07:39,240 Long istwa kout, li tounen nan jou a, lè òdinatè sèlman itilize 32 Bits 125 00:07:39,240 --> 00:07:42,740 ki reprezante adrès, nimewo nan pi gwo nan bytes ou ta ka reprezante 126 00:07:42,740 --> 00:07:46,280 nan ka sa a se sa ki te si ou gen 32 Bits? 127 00:07:46,280 --> 00:07:49,590 Se konsa, 4 milya dola, dwa, paske 2 a 32 an se 4 milya dola. 128 00:07:49,590 --> 00:07:51,370 Nimewo sa a ki te renouvlab nan kou an. 129 00:07:51,370 --> 00:07:55,240 >> Se konsa, si ou gen sèlman 32 Bits, nimewo ki pi wo a ou ka konte rive apeprè nan 4 milya dola. 130 00:07:55,240 --> 00:07:58,750 Men, sa ki te yon limitasyon fondamantal nan òdinatè jouk kèk ane de sa 131 00:07:58,750 --> 00:08:01,180 paske si ou ka sèlman konte kòm yon wo 4 milya dola, 132 00:08:01,180 --> 00:08:05,270 sa pa enpòtan si ou achte 8 jigokte nan RAM oswa menm 5 jigokte nan RAM; 133 00:08:05,270 --> 00:08:07,780 ou pa ka konte ki wo, konsa li te initil. 134 00:08:07,780 --> 00:08:11,430 Ou te kapab sèlman aksè premye 3 oswa 4 jigokte yo nan memwa òdinatè ou a. 135 00:08:11,430 --> 00:08:14,410 Sa a se mwens nan yon pwoblèm, koulye a, epi ou ka achte MacBook Pou ak Dells 136 00:08:14,410 --> 00:08:17,680 avèk 8 jigokte nan RAM oswa menm plis jou sa yo. 137 00:08:17,680 --> 00:08:24,100 Men, si mwen asiyen byen tou senpleman nan pwogram sa a yon konsèy, yon konsèy rele a, 138 00:08:24,100 --> 00:08:28,370 li ta ka gade tankou sa a sou ekran an paske tout bon nou bezwen kale tounen kouch sa a. 139 00:08:28,370 --> 00:08:33,520 Mwen kenbe li di fisèl, men kòm nan Lendi, fisèl se reyèlman * Char, 140 00:08:33,520 --> 00:08:35,590 adrès la nan kèk karaktè. 141 00:08:35,590 --> 00:08:39,280 Se konsa, kite a pran ki wou fòmasyon nan menm si n ap kontinye itilize GetString pou kounye a. 142 00:08:39,280 --> 00:08:42,600 Se konsa, mwen te deklare a, ak sa a se yon ti moso nan memwa, 32 Bits. 143 00:08:42,600 --> 00:08:47,370 Ki sa ki nan nan isit la nan memwa pa default? >> [Fèbl repons elèv] 144 00:08:47,370 --> 00:08:50,040 Ki sa ki nan sa? >> [Elèv] Fatra. Fatra >>. Egzakteman. 145 00:08:50,040 --> 00:08:54,610 Si ou pwogramè a pa mete yon valè nan yon varyab, ki moun ki konnen sa li ye? 146 00:08:54,610 --> 00:08:57,990 Pafwa ou jwenn chans ak li a 0, ki se kalite yon bèl, valè default pwòp, 147 00:08:57,990 --> 00:09:00,310 men kòm nou te wè Lendi, pafwa li nan istwa san sans konplè, 148 00:09:00,310 --> 00:09:04,130 kèk reyèlman gwo nimewo pozitif oswa negatif ki te soti nan ki kote? 149 00:09:05,350 --> 00:09:07,010 Yeah. >> [Elèv] fonksyon an anvan. >> Yeah. 150 00:09:07,010 --> 00:09:10,170 >> Souvan fonksyon an ke yo kouri rele anvan paske sonje, 151 00:09:10,170 --> 00:09:13,920 menm jan ou rele fonksyon nan memwa yo, yo pran pi plis ak plis espas anba nan fon an leve, 152 00:09:13,920 --> 00:09:17,040 ak le pli vit ke retounen yo fonksyon, vin ke memwa reyitilize 153 00:09:17,040 --> 00:09:20,890 pa nèg la pwochen ki vin rele, ki moun ki lè l sèvi avèk tranch menm ou nan memwa. 154 00:09:20,890 --> 00:09:23,450 Epi si ou te gòch fatra a, valè anvan, 155 00:09:23,450 --> 00:09:28,190 nou ta ka erè a kòm gen kèk valè lè reyèlman nou pa t 'mete anyen la. 156 00:09:28,190 --> 00:09:30,960 Se konsa, RAM nou an nan pwen sa a sanble tankou sa a. 157 00:09:30,960 --> 00:09:36,030 Koulye a, sou bò men dwat-ou nan liy 7 n ap rele GetString, 158 00:09:36,030 --> 00:09:40,150 ki nou te toujou ap fè kounye a pou semèn, men ki sa ki GetString vrèman ap fè? 159 00:09:40,150 --> 00:09:43,350 GetString ekri pa anplwaye nan CS50 se yon ti kras entelijan 160 00:09:43,350 --> 00:09:46,500 nan ki le pli vit ke itilizatè a kòmanse sezisman kle ak frape Antre, 161 00:09:46,500 --> 00:09:50,010 GetString figi soti konbyen frap te fè frape nan itilizatè, 162 00:09:50,010 --> 00:09:53,360 konbyen karaktè mwen bezwen asiyen RAM pou li a. 163 00:09:53,360 --> 00:09:55,660 Ak ki kote ki RAM soti nan, ki moun ki konnen? 164 00:09:55,660 --> 00:09:58,930 Li nan yon kote nan 2 jigokte òdinatè ou a oswa etajèr nan memwa. 165 00:09:58,930 --> 00:10:05,200 Men, kite a sipoze ke òdinatè a jwenn espas pou pawòl Bondye a HELLO dwa isit la. 166 00:10:05,200 --> 00:10:08,710 Pawòl Bondye a mwen tape te H-E-L-L-O. 167 00:10:08,710 --> 00:10:13,510 Men, si nou trase sa a kòm yon sekans nan karaktè, nou ta ka rale l 'tankou sa a. 168 00:10:13,510 --> 00:10:17,860 Men, mwen bezwen fè 1 anplis bagay sa yo. Ki sa ki fè pati nan fen nenpòt fisèl nan C? 169 00:10:17,860 --> 00:10:20,710 Pèsonaj la nil, ki nou ekri kòm \ 0. 170 00:10:20,710 --> 00:10:23,980 Li nan teknikman 0 a nimewo, men antislach a fè tout klè nan 171 00:10:23,980 --> 00:10:28,150 ke sa a se literalman nimewo a 0, 0 a nonm antye; 172 00:10:28,150 --> 00:10:32,440 li pa, pou egzanp, 0 quote-unquote ke ou ta ka tape nan klavye la. 173 00:10:32,440 --> 00:10:33,940 Se konsa, sa a se Hello. 174 00:10:33,940 --> 00:10:36,350 >> Ak nou sa nou te di nan Lendi ke yon fonksyon tankou GetString 175 00:10:36,350 --> 00:10:39,580 se aktyèlman retounen tout semèn sa yo? 176 00:10:39,580 --> 00:10:43,960 Li pa nan retounen yon fisèl se pou chak paske sa pa reyèlman gen sans 177 00:10:43,960 --> 00:10:47,710 paske strings pa egziste. Yo ap sòt de yon fabwikasyon nan bibliyotèk la CS50. 178 00:10:47,710 --> 00:10:51,300 Ki sa ki se reyèlman yon fisèl, plis teknikman? >> [Elèv] Li nan karaktè a an premye. 179 00:10:51,300 --> 00:10:55,950 Egzakteman. Li nan afè tou senpleman adrès la nan karaktè nan premye ki itilizatè a tape pous 180 00:10:55,950 --> 00:11:02,810 Se konsa, si pawòl mwen HELLO fini l 'kanpe nan 123 nimewo multiple ak Lè sa a, nan multiple nimewo 124, 181 00:11:02,810 --> 00:11:08,320 125, 126, ak pou fè, si mwen jis nimewo bytes mwen ki ant 0 sou leve, 182 00:11:08,320 --> 00:11:12,650 sa ki vrèman GetString ki retounen se literalman 123 an kantite. 183 00:11:12,650 --> 00:11:19,270 Se konsa, sa vin mete li nan s se 123 nan nimewo, pa H la lèt, pa pawòl Bondye a HELLO, 184 00:11:19,270 --> 00:11:23,130 byen tou senpleman adrès la nan ki mwen ka jwenn lèt la nan premye Hello. 185 00:11:23,130 --> 00:11:26,500 Men, ki pa sanble tankou ase. Mwen te mande ou pou yon fisèl, se pa yon karaktè. 186 00:11:26,500 --> 00:11:32,970 Se konsa, kouman nou oswa òdinatè a konnen ke elo kalite vini ansanm ak H la? 187 00:11:35,760 --> 00:11:37,460 Ki sa ki nan sòt nan nan akò nou genyen? Yeah. 188 00:11:37,460 --> 00:11:40,100 [Elèv] Li kenbe tèt li rakonte jwenn kèk plis karaktè. >> Egzakteman. 189 00:11:40,100 --> 00:11:44,570 >> Genyen nan sa a konvansyon imen-òdinatè kote lè ou ap fè fas ak strings, 190 00:11:44,570 --> 00:11:49,410 otreman li te ye koulye a tankou zetwal Char, ou senpleman gen figi soti 191 00:11:49,410 --> 00:11:54,350 ki kote nan fen chak fisèl nan lavi se pa vrèman jis iteration sou li ak yon riban pou, 192 00:11:54,350 --> 00:11:57,820 yon ti tan riban, kèlkeswa sa, se konsa ke lè ou jwenn nan fen fisèl la 193 00:11:57,820 --> 00:12:02,160 kounye a ou ka dégager de sa, oh, mo a tout antye te Hello. 194 00:12:02,160 --> 00:12:04,820 Moun sa yo ki nan nou ki gen eksperyans pwogram anvan ka konnen nan Java 195 00:12:04,820 --> 00:12:09,880 ou ka jis rele. longè ak nan lòt lang yo ou ka rele longè oswa menm jan an. 196 00:12:09,880 --> 00:12:14,060 Sa a se paske nan yon anpil nan lang yo, espesyalman bagay sa yo rele objè-oryante lang, 197 00:12:14,060 --> 00:12:18,580 longè nan yon bagay ki kalite enklizyon andedan nan yon moso done tèt li, 198 00:12:18,580 --> 00:12:24,000 anpil renmen nou enklizyon idantifikasyon ak non ak kay andedan yon elèv nan Lendi. 199 00:12:24,000 --> 00:12:28,700 Men, C se nivo pi ba. Pa gen okenn bagay oubyen klas yo, si ou te tande sa yo tèm anvan. 200 00:12:28,700 --> 00:12:31,490 Tout sa ou dwe vrèman se adrès memwa. 201 00:12:31,490 --> 00:12:35,540 Se konsa, sa a se sòt de wout la fin vye granmoun-alamòd pou reprezante done ki enteresan estrikti. 202 00:12:35,540 --> 00:12:38,760 Ou gen yon valè kòmansman tankou adrès la nan karaktè nan premye 203 00:12:38,760 --> 00:12:42,340 ak Lè sa a, sèlman kèk konvansyon abitrè ke tout moun dakò yo swiv. 204 00:12:42,340 --> 00:12:46,420 Se konsa, kouman se longè fil aplike, t 'nou pwopoze? 205 00:12:46,420 --> 00:12:51,360 Strlèn, strlèn, ki kèk nan nou gen kounye a te itilize yon fwa kèk. Li trè senp, dwa? 206 00:12:51,360 --> 00:12:53,060 Se tankou 2 liy nan kòd. 207 00:12:53,060 --> 00:12:56,140 Li nan bèl anpil yon riban pou nan kèk sòt, petèt ak yon varyab adisyonèl lokal. 208 00:12:56,140 --> 00:13:00,540 Men, strlèn jis gen pran yon konsèy ak Lè sa a, kòmanse kap chèche \ 0. 209 00:13:00,540 --> 00:13:05,190 >> Epi kòm pli vit ke li rive jwenn li menm, li kapab retounen kantite total etap ke li nan pran nan sa fisèl. 210 00:13:05,190 --> 00:13:07,150 Se konsa, nou ka dégager sa a soti nan sa ki ale sou kap vini an. 211 00:13:07,150 --> 00:13:11,850 Sipoze Lè sa a, Mwen deklare t jan mwen te fè nan liy 10. 212 00:13:11,850 --> 00:13:14,280 Sa a se kèk valè fatra. Ki moun ki konnen an premye? 213 00:13:14,280 --> 00:13:18,490 Men, sou bò men dwat-ou nan liy nan 10 m ap rele GetString ankò. 214 00:13:18,490 --> 00:13:20,050 Ki moun ki konnen kote sa a fini moute? 215 00:13:20,050 --> 00:13:23,830 Se pou nou abitrèman di ke sistèm nan fonksyone yo te jwenn plas pou li fason sou isit la. 216 00:13:23,830 --> 00:13:28,610 Mwen rive azar tape H-E-L-L-O ankò, 217 00:13:28,610 --> 00:13:31,260 epi pou nou ka trase kalite a menm nan foto. 218 00:13:31,260 --> 00:13:34,290 Men reyalite a ke mwen te redesign foto sa a se ekspre 219 00:13:34,290 --> 00:13:37,720 paske sa se yon. diferan HELLO pase yon sèl sa a 220 00:13:37,720 --> 00:13:43,920 Se konsa, isit la sa a ta kapab kote 456, sa a se 457, ak pou fè. 221 00:13:43,920 --> 00:13:47,170 Se konsa, sa vin mete kote make la kesyon yon fwa se te? 222 00:13:47,170 --> 00:13:50,190 Nan ka sa a 456. 223 00:13:50,190 --> 00:13:53,540 Nou ap davwa nimewo sa yo abitrèman vrèman paske apre jodi a 224 00:13:53,540 --> 00:13:57,110 nou pa ap ale nan pran swen anpil sou sa ki adrès ki nan anyen se. 225 00:13:57,110 --> 00:14:02,690 Tout sa nou pran swen sou se ke nou kapab konnen ki adrès la nan kèk moso nan done tankou Hello. 226 00:14:02,690 --> 00:14:07,100 >> Se konsa, reyèlman sa pifò moun fè nan syans konpitè lè w ap pale sou adrès memwa 227 00:14:07,100 --> 00:14:10,210 epi pale sou pwent espesyalman, 228 00:14:10,210 --> 00:14:14,220 olye ke deranje n ap kalkile konnen 123 - ki renmen le ki kote bagay sa a aktyèlman se, 229 00:14:14,220 --> 00:14:17,440 nou jis konnen ke li se nan kèk adrès nimerik - 230 00:14:17,440 --> 00:14:22,180 nou senplifye mond lan ak jis di ke moun sa a montre nan ki karaktè 231 00:14:22,180 --> 00:14:25,080 epi t ap lonje dwèt ak sa yo ki karaktè. 232 00:14:25,080 --> 00:14:27,430 Ak lefèt ke li nan yon flèch se byen entansyonèl 233 00:14:27,430 --> 00:14:31,610 paske literalman kounye a nan se lonje dwèt nan H epi t ap lonje dwèt nan lòt H la 234 00:14:31,610 --> 00:14:34,720 paske nan fen jounen an, li pa gen pwoblèm ki sa adrès la se, 235 00:14:34,720 --> 00:14:40,240 men li fè matyè ke nou gen kapasite nan eksprime ke adrès ak kèk moso nan kòd. 236 00:14:40,240 --> 00:14:42,730 Nou pa t 'reyèlman manipile sa yo adrès jis ankò 237 00:14:42,730 --> 00:14:47,770 se konsa nou pral wè ki kote nou ka foure ak sòt nan fè bagay sa yo ak pwent, 238 00:14:47,770 --> 00:14:52,030 men pou kounye a nan liy 12 literalman ki sa Valè yo se nou konpare 239 00:14:52,030 --> 00:14:55,500 selon istwa sa a nan liy 12? 240 00:14:56,570 --> 00:15:01,290 Nou ap di la a se 123 egal egal a 456? Epi sa a, definitivman pa ka a. 241 00:15:01,290 --> 00:15:05,320 E menm concept, sa a konsèy se definitivman pa menm bagay la tou tankou sa a 242 00:15:05,320 --> 00:15:09,500 paske ou rele GetString de fwa, ak GetString pa eseye yo dwe Super entelijan, 243 00:15:09,500 --> 00:15:12,470 li pa eseye reyalize, o, ou tape HELLO 5 minit Anons sa pibliye depi; 244 00:15:12,470 --> 00:15:15,090 kite m ba w konsèy a menm jan mwen te ban nou anvan, 245 00:15:15,090 --> 00:15:18,450 li jis repati yon moso nouvo sou memwa chak fwa ou rele li. 246 00:15:18,450 --> 00:15:20,350 >> Se konsa, kouman nou ranje pwoblèm sa a? 247 00:15:20,350 --> 00:15:24,270 Si pi wo nivo mwen vle konpare strings yo HELLO ak HELLO - 248 00:15:24,270 --> 00:15:28,680 Mwen pa pran swen sou pwent yo - ki jan mwen ale sou reponn kesyon an, 249 00:15:28,680 --> 00:15:31,980 t 'itilizatè a tape menm bagay la? Ki sa ki nan nesesè isit la? Yeah. 250 00:15:31,980 --> 00:15:35,200 [Elèv] Sèvi ak yon fonksyon. >> M ka sèvi ak yon fonksyon soti nan bwat la. 251 00:15:35,200 --> 00:15:38,170 M ka sèvi ak yon fonksyon rele strkan, s-T-r-c-m-p, 252 00:15:38,170 --> 00:15:41,190 jis vèsyon an abreje nan di fisèl konpare. 253 00:15:41,190 --> 00:15:45,070 Men, si nou ale nan, pou egzanp, konpare 2, ki se nan mitan feyè jodi a, 254 00:15:45,070 --> 00:15:46,690 M 'fè egzakteman sa. 255 00:15:46,690 --> 00:15:51,750 Mwen te kenbe tout lòt bagay menm jan an nan liy 1 sou desann nan 26 oswa konsa, 256 00:15:51,750 --> 00:15:54,360 e kounye a, remake te nan pati sa a chanje jis yon ti jan. 257 00:15:54,360 --> 00:15:57,690 Se pou nou inyore liy 28 pou yon moman epi konsantre sèlman sou yon sèl sa a. 258 00:15:57,690 --> 00:16:00,410 Nou sa nou te di Lendi a ke str compare li fè? 259 00:16:00,410 --> 00:16:05,200 Li kenbe pwosesis la nan pran 2 endikasyon, s ak t nan ka sa a, 260 00:16:05,200 --> 00:16:08,480 sòt de pwatikman mete dwèt li sou 2 lèt sa yo, 261 00:16:08,480 --> 00:16:11,530 epi ki sa li dwe fè se yon bagay tankou yon riban pandan y ap oswa yon pou riban, 262 00:16:11,530 --> 00:16:16,050 epi li di yo se sa yo menm bagay la tou? Si se konsa, l ap deplase dwèt yo oswa pwent yo pi devan. 263 00:16:16,050 --> 00:16:17,970 Èske sa yo menm bagay la tou, sa yo menm bagay la tou, sa yo menm bagay la tou, 264 00:16:17,970 --> 00:16:22,710 sa yo menm bagay la tou, sa yo menm bagay la tou? Ak Ooh, mwen nan fen fisèl la nan tou de nan epi t. 265 00:16:22,710 --> 00:16:26,780 Mwen pa jwenn nenpòt kontradiksyon. Wi, sa yo strings yo se menm bagay la. 266 00:16:26,780 --> 00:16:31,940 Ak sa ki str konpare retou si 2 strings yo se menm bagay la tou, aparamman? Zewo. 267 00:16:31,940 --> 00:16:35,900 Se konsa, 0 se yon bon bagay nan ka sa a paske si li retounen -1 oswa +1, 268 00:16:35,900 --> 00:16:40,560 ki vle di ke s jis k ap pase nan vin devan t lòd avèk lèt ​​alfabè oswa apre t. 269 00:16:40,560 --> 00:16:43,760 Epi poukisa ta ki kapab itil yo gen yon fonksyon ki di ou ki fisèl vini anvan 270 00:16:43,760 --> 00:16:46,720 oswa apre nan yon diksyonè? 271 00:16:46,720 --> 00:16:48,740 [Elèv] Rechèch. >> Rechèch ak Fouye. 272 00:16:48,740 --> 00:16:51,730 >> Se konsa, ou kapab fè bagay sa yo tankou rechèch binè oswa sòt jarèt oswa rantre sòt 273 00:16:51,730 --> 00:16:53,230 kote ou kapab konpare bagay sa yo. 274 00:16:53,230 --> 00:16:56,420 Se konsa, lwen nou te kalite koupe kèk kwen epi sèlman te pale osijè de Fouye 275 00:16:56,420 --> 00:16:59,430 nan yon kontèks la nan nimewo paske li nan bèl ak fasil yo pale sou, 276 00:16:59,430 --> 00:17:02,430 men ou kapab sètènman konpare strings, pòm ak fig, 277 00:17:02,430 --> 00:17:05,349 paske si pòm se konnen yo vin jwenn mwen anvan fig, Menm jan tou, 278 00:17:05,349 --> 00:17:09,319 ou ka deplase strings alantou nan memwa jis tankou Rob te fè ak sòt unifye nan videyo a 279 00:17:09,319 --> 00:17:15,880 e nou te fè isit la sou sèn ak sòt seleksyon, sòt ensèsyon, ak sòt jarèt. 280 00:17:15,880 --> 00:17:18,710 Se konsa, kote lòt bagay nou ka pran sa a? Ann eseye sa a. 281 00:17:18,710 --> 00:17:23,980 Sòt Se pou nou nan bliye ke leson pou yon moman epi eseye kounye a ak fè kopi 1.c fè bagay swivan yo. 282 00:17:23,980 --> 00:17:26,800 Nan liy 21 m ap di yon bagay ekri ak lèt ​​detache, 283 00:17:26,800 --> 00:17:28,520 Lè sa a, mwen jwenn yon fisèl soti nan itilizatè a yo, 284 00:17:28,520 --> 00:17:30,690 Lè sa a, mwen tcheke sa a. 285 00:17:30,690 --> 00:17:33,620 Nou pa t 'reyèlman rantre nan sa a abitid ankò, men kite a kounye a fè sa. 286 00:17:33,620 --> 00:17:40,990 Se pou nou aktyèlman kale tounen kouch sa a. Sa a se vrèman * Char. Sa a Guy se reyèlman * Char. 287 00:17:40,990 --> 00:17:45,690 Se konsa, sa sa vle di yo dwe tcheke si yo nil ==? 288 00:17:45,690 --> 00:17:48,380 Li sanble ke lè w rele yon fonksyon tankou GetString 289 00:17:48,380 --> 00:17:51,540 oswa plis jeneralman jis mande yon òdinatè ak ba ou kèk memwa, 290 00:17:51,540 --> 00:17:53,030 yon bagay t 'ka ale mal. 291 00:17:53,030 --> 00:17:56,630 Si ou te kapab fou epi mande òdinatè a pou yon teraokte nan memwa 292 00:17:56,630 --> 00:18:01,780 pa mande pou trillions nan bytes nan memwa ki jis pa egziste nan òdinatè a, 293 00:18:01,780 --> 00:18:05,130 men GetString ak lòt fonksyon bezwen kèk fason pou tap rele ke nan ou 294 00:18:05,130 --> 00:18:06,820 si ou te mande pou twòp. 295 00:18:06,820 --> 00:18:10,450 Yo ak fason pou fè sa ki GetString sa a se si ou te mande pou plis memwa 296 00:18:10,450 --> 00:18:14,250 pase sa ki disponib nan òdinatè a, menm si sa a, se super, pwobabilite super ba 297 00:18:14,250 --> 00:18:17,730 paske okenn nan nou yo ale nan tape yon karaktè billions ak Lè sa a, frape Antre, 298 00:18:17,730 --> 00:18:21,980 men ki ba pwobabilite menm si li kapab, mwen toujou vle tcheke pou li jis nan ka, 299 00:18:21,980 --> 00:18:26,120 ak valè a espesyal ki GetString, repons, ak lòt fonksyon retounen 300 00:18:26,120 --> 00:18:30,630 si gen yon bagay te ale mal se nil nan tout kapsil. 301 00:18:30,630 --> 00:18:36,520 >> Ak sa ki nil? Nil jis pou k ap pase nan reprezante yon konsèy. Li nan 0 adrès memwa. 302 00:18:36,520 --> 00:18:40,800 Mond lan deside ke abitrèman, si sa a se memwa òdinatè mwen an - ou konnen ki sa? - 303 00:18:40,800 --> 00:18:46,260 nou pral vòlè jis 1 multiple nan memwa òdinatè chak a, ak sa a se kote 0. 304 00:18:46,260 --> 00:18:49,560 Nou pwal bay li yon tinon a nil, epi nou ap ale nan pwomèt 305 00:18:49,560 --> 00:18:52,660 ke nou pa janm ap aktyèlman mete done reyèl gen 306 00:18:52,660 --> 00:18:56,770 paske nou jis abitrèman bezwen yon valè espesyal, 0, aka nil, 307 00:18:56,770 --> 00:19:00,230 pou nou ka rele nan itilizatè yo si gen yon bagay ale mal. 308 00:19:00,230 --> 00:19:03,590 Otreman ou pa ta ka konnen 0 vle di mete yon bagay isit la 309 00:19:03,590 --> 00:19:05,490 oswa sa sa vle di yon bagay ale mal? 310 00:19:05,490 --> 00:19:09,190 Nou gen nan tout dakò ke pa gen anyen te vle di nil tounen, 311 00:19:09,190 --> 00:19:11,700 te okenn adrès aktyèl retounen. 312 00:19:11,700 --> 00:19:15,210 Koulye a, isit la mwen jis adopte konvansyon imen mwen an mwen retounen 1 nan prensipal 313 00:19:15,210 --> 00:19:17,040 si gen yon bagay ale mal. 314 00:19:17,040 --> 00:19:20,650 Sa a se paske konvansyon retounen prensipal la se retounen 0 si bon, 315 00:19:20,650 --> 00:19:22,990 1 oswa kèk valè lòt si move. 316 00:19:22,990 --> 00:19:28,200 Men, GetString ak nenpòt fonksyon ki kontra nan retounen memwa nil si gen yon bagay ale mal. 317 00:19:28,200 --> 00:19:33,480 >> Oke. Se konsa, malerezman, 27 liy super senp si li se, konplètman neglije voye yon kopi fisèl la. 318 00:19:33,480 --> 00:19:35,740 Poukisa? Nou ka wè sa a jan sa a. 319 00:19:35,740 --> 00:19:40,120 Mwen reklame nan liy 27 yo dwe fè yon kopi nan ak rele li t. 320 00:19:40,120 --> 00:19:45,790 Se konsa, Mwen M pa mande itilizatè a pou 2 strings tan sa a; mwen jis di valè a li nan s 321 00:19:45,790 --> 00:19:47,870 yo ta dwe mete nan t kòm byen. 322 00:19:47,870 --> 00:19:52,890 Se konsa, kounye a jis demontre kouman kase sa a se, nan liy 29 pati ki sa mwen ap fè? 323 00:19:52,890 --> 00:19:56,980 Premye mwen tcheke si longè nan t se pi gran pase 0. 324 00:19:56,980 --> 00:19:59,330 Genyen kèk fisèl la. Itilizatè a tape yon bagay pous 325 00:19:59,330 --> 00:20:03,410 Ki sa ki se liy 32 ap fè, aparamman? 326 00:20:03,410 --> 00:20:08,910 [Fèbl elèv repons] Dwa >>. Ou ka kalite dégager li soti nan sa m 'te di li nan fè a. 327 00:20:08,910 --> 00:20:13,200 Men, teknikman, ki sa ki sa a ap fè? t [0] reprezante ki sa? 328 00:20:13,200 --> 00:20:15,140 [Elèv] karaktè nan zeroth. >> [Malan] karaktè nan zeroth. 329 00:20:15,140 --> 00:20:19,620 Oswa, plis imen ki tankou, pèsonaj la an premye nan t, tou sa se sa ki, H petèt nan ka sa a. 330 00:20:19,620 --> 00:20:24,990 Ak toupper fè sa li di. Li majuskul pèsonaj la zeroth nan t e li chanje li. 331 00:20:24,990 --> 00:20:28,430 Se konsa, sa vle di pran pèsonaj la zeroth nan t, fè li majuskul, 332 00:20:28,430 --> 00:20:30,320 li mete l 'tounen nan ki kote menm. 333 00:20:30,320 --> 00:20:35,540 Se konsa, si mwen tape alo nan miniskil, sa a ta dwe chanje h an miniskil nan yon kapital H. 334 00:20:35,540 --> 00:20:41,400 Men, pwoblèm nan se ke nan liy 35 ak 36 sa mwen pral fè se enprime soti pou nou an ak t. 335 00:20:41,400 --> 00:20:43,120 Ak sa ki nan blok ou a? 336 00:20:43,120 --> 00:20:47,250 Kisa mwen aktyèlman pral wè si mwen tape nan alo nan tout miniskil? 337 00:20:47,250 --> 00:20:52,280 Kisa ki pwal jwenn enprime? >> [Fèbl repons elèv] >> Ki sa ki nan sa? 338 00:20:52,280 --> 00:20:58,360 [Elèv] Big H ak rès la piti. >> Gwo H la ak rès la ti pou ki, s oswa t? 339 00:20:58,360 --> 00:21:03,170 [Elèv] Tou de. >> Tou de. Egzakteman. Se konsa, kite a wè sa k ap pase sou isit la. 340 00:21:03,170 --> 00:21:08,380 >> Kite m 'ale pi devan epi pou konpile tout sa a. Sa a se copy1, sa fè copy1. Tout dwa. 341 00:21:08,380 --> 00:21:14,840 Rale pous Kite m 'ale pi devan epi kouri copy1, Antre, di yon bagay: alo nan miniskil. 342 00:21:14,840 --> 00:21:19,570 Li pwofite kapitalize kopi a, men li aparamman pwofite kapitalize orijinal la kòm byen, 343 00:21:19,570 --> 00:21:22,070 paske sa kounye a k ap pase nan istwa sa a? 344 00:21:22,070 --> 00:21:27,030 Nan liy 27 Mwen pa aktyèlman yo sanble kopye fisèl la, 345 00:21:27,030 --> 00:21:30,450 men menm si ou ka gen entwitivman espere ke yo dwe ka a, 346 00:21:30,450 --> 00:21:33,680 si ou panse sou foto sa a, ki sa ki vrèman m 'fè? 347 00:21:33,680 --> 00:21:35,410 Mwatye nan foto a se menm bagay la. 348 00:21:35,410 --> 00:21:39,390 Se konsa, kite a woule tounen nan tan pou ke t pa ankò egziste nan istwa a. 349 00:21:39,390 --> 00:21:43,160 S ka egziste nan istwa a, men an kite l 'miniskil alo tan sa a. 350 00:21:43,160 --> 00:21:46,710 Se konsa, kite m 'repare sa m' aktyèlman tape pous 351 00:21:46,710 --> 00:21:51,280 Nan ka sa a isit la nou gen h-e-l-l-o. 352 00:21:51,280 --> 00:21:58,050 Nou pral trase li kòm yon sekans nan karaktè, mete liy séparation mwen isit la ak 0 \ m 'yo. 353 00:21:58,050 --> 00:22:05,980 Se konsa, sa a se kote nou ye le pli vit ke liy 1 rive nan 24 ich-, bay oswa pran, te egzekite. 354 00:22:05,980 --> 00:22:07,800 Sa a se foto a nan memwa mwen. 355 00:22:07,800 --> 00:22:10,800 Lè m 'jwenn nan liy 27, kisa k ap rive? 356 00:22:10,800 --> 00:22:14,730 Jis tankou anvan, mwen jwenn yon konsèy, ki mwen pral trase tankou sa a kare. 357 00:22:14,730 --> 00:22:19,740 Yo rele li t. Ak sa ki nan valè li pa default? Ki moun ki konnen? Gen kèk fatra valè. 358 00:22:19,740 --> 00:22:22,060 >> Se konsa, mwen pral abstrè ki lwen kòm yon mak kesyon. 359 00:22:22,060 --> 00:22:27,670 Ak le pli vit ke bò a men dwat-ou nan liy 27 ègzekutra, ki sa mwen mete andedan nan t? 360 00:22:27,670 --> 00:22:30,770 Menm bagay la ki nan li nan s. 361 00:22:30,770 --> 00:22:34,120 Se konsa, si nou pou yon moman retire sa a abstraction nan flèch la epi nou di, 362 00:22:34,120 --> 00:22:40,330 oh, sa a se adrès chaj memwa 123, lè w di t ap vin a, virgules, 363 00:22:40,330 --> 00:22:42,700 w ap literalman mete 123 isit la. 364 00:22:42,700 --> 00:22:45,200 Koulye a, si nou kalite senplifye mond nou an ankò avèk foto, 365 00:22:45,200 --> 00:22:48,750 sa ou te vrèman fè se jis ajoute yon lòt flèch nan mond ou a 366 00:22:48,750 --> 00:22:52,910 ki nan lonje dwèt soti nan t fisèl la menm egzak. 367 00:22:52,910 --> 00:22:59,730 Se konsa, lè nan liy 31 ak 32 Mwen aktyèlman ale sou chanje t [0], 368 00:22:59,730 --> 00:23:05,580 ki sa ki t [0] aparamman synonyme ak kounye a? s [0] 369 00:23:05,580 --> 00:23:07,030 Se konsa, sa a, se tout sa ki k ap pase. 370 00:23:07,030 --> 00:23:09,900 E menm si sa a sòt de santi l yon ti kras nivo ki ba ak Esoteric 371 00:23:09,900 --> 00:23:12,760 ak sa a sòt de santi l tankou petèt entwitivman sa a ta dwe gen sèlman te travay - 372 00:23:12,760 --> 00:23:15,410 Mwen te fè kopi de bagay sa yo anvan ak li jis te travay - 373 00:23:15,410 --> 00:23:18,590 si ou aktyèlman panse sou sa yon fisèl vrèman se, se yon * Char. 374 00:23:18,590 --> 00:23:21,700 Oke, sa se sa? Li nan adrès la nan kèk karaktè. 375 00:23:21,700 --> 00:23:24,930 Lè sa a, petèt li fè sans plis ke lè ou eseye fè yon bagay 376 00:23:24,930 --> 00:23:29,220 super w pèdi senp tankou sa a, tout sa ou ap fè se kopye yon memwa adrès. 377 00:23:29,220 --> 00:23:32,530 Ou pa ap aktyèlman fè anyen ak fisèl nan tèt li. 378 00:23:32,530 --> 00:23:37,500 Se konsa, menm si ou pa gen okenn lide kijan ou ta rezoud pwoblèm sa a nan kòd, 379 00:23:37,500 --> 00:23:45,080 wo nivo, Concept, ki sa nou bezwen fè yo nan lòd fè ta vre kopi nan, aparamman? 380 00:23:46,670 --> 00:23:48,820 Yeah. >> [Elèv] Ba li yon kote nouvo? >> Egzakteman. 381 00:23:48,820 --> 00:23:50,800 >> Nou bezwen bay t yon mak nouvo kote. 382 00:23:50,800 --> 00:23:55,230 Nou bezwen yon jan kanmenm kreye yon mond kote ke nou jwenn yon moso nouvo sou memwa, 383 00:23:55,230 --> 00:24:00,090 ki jis pou dedomajman pou clarté nan mwen pral trase dwa anba a yon sèl sa a, men li pa bezwen yo dwe la. 384 00:24:00,090 --> 00:24:04,880 Men, li bezwen yo dwe gwosè nan menm, se konsa mwen pral trase liy sa yo vètikal nan plas la menm. 385 00:24:04,880 --> 00:24:09,720 Li gen pwoblèm si sa a se tout fatra okòmansman. Ki moun ki konnen sa ki te genyen? 386 00:24:09,720 --> 00:24:13,850 Men, etap 1 a pral gen yo dwe ban m 'kòm memwa anpil tankou mwen bezwen 387 00:24:13,850 --> 00:24:18,630 nan anfòm yon kopi hello, Lè sa a, konnen ki jan a kapab bay kopi h an isit la, e nan isit la, 388 00:24:18,630 --> 00:24:20,390 l la isit la ak pou fè. 389 00:24:20,390 --> 00:24:24,880 Men, sa a deja ta dwe santi yon ti kras evidan menm si kèk nan detay yo yo toujou abstrè. 390 00:24:24,880 --> 00:24:28,690 A kapab bay kopi sa a fisèl nan sa a, li nan jis yon pou riban oswa yon riban pandan y ap 391 00:24:28,690 --> 00:24:31,580 oubyen yon bagay ak ki ou te vin tounen tout plis abitye a. 392 00:24:31,580 --> 00:24:35,970 Se konsa, kite a eseye sa a. Kite m 'ale nan copy2.c. 393 00:24:35,970 --> 00:24:43,270 Nan copy2.c nou gen prèske menm pwogram lan eksepte pou liy 27. 394 00:24:43,270 --> 00:24:47,260 Li sanble yon konplèks ti kras, men si nou kraze li desann lan dekoupe, 395 00:24:47,260 --> 00:24:48,950 bò gòch la-men se menm bagay la. 396 00:24:48,950 --> 00:24:52,790 Char * t kreye bagay sa a nan memwa, byen ak yon mak kesyon 397 00:24:52,790 --> 00:24:54,680 paske nou pa gen okenn lide sa ki nan gen pa defo. 398 00:24:54,680 --> 00:24:57,920 Sou bò men dwat-ou nou ap kounye a entwodwi yon fonksyon nouvo, malok, 399 00:24:57,920 --> 00:25:00,640 pou memwa asiyen, ban m 'memwa, 400 00:25:00,640 --> 00:25:06,900 epi li aparamman pran konbyen agiman, ki jan anpil bagay andedan parantèz? 401 00:25:09,660 --> 00:25:12,130 Mwen tande jan n'ap plenyen an 1 ak 2, men li se jis 1. 402 00:25:12,130 --> 00:25:15,320 Gen nan pa gen vigil, ki vle di gen nan jis 1 bagay andedan parantèz yo. 403 00:25:15,320 --> 00:25:17,720 Menm si gen nan parantèz lòt, kite m 'mete aksan sou 404 00:25:17,720 --> 00:25:21,460 Ki sa ki andedan nan parantèz yo eksteryè, epi li sa a ekspresyon: 405 00:25:21,460 --> 00:25:25,880 (Strlèn (yo) + 1) * sizof (Char). 406 00:25:25,880 --> 00:25:29,190 Se konsa, si nou aktyèlman panse ke sa a nan, sa a ap di, ban m 'longè nan s. 407 00:25:29,190 --> 00:25:34,440 Poukisa mwen, menm si, ajoute 1 sou longè a? >> [Fèbl repons elèv] 408 00:25:34,440 --> 00:25:40,200 Egzakteman. Nou bezwen espas pou sa a Guy a ke a, pèsonaj la sizyèm ki pa gen okenn siyifikasyon angle 409 00:25:40,200 --> 00:25:42,250 men gen espesyal siyifikasyon pwogramatik. 410 00:25:42,250 --> 00:25:46,800 >> Se konsa, nou bezwen yon + 1 pou sa paske strlèn retounen tann imen an nan longè, 411 00:25:46,800 --> 00:25:50,890 alo oswa 5, li pa ba ou pèsonaj la nil adisyonèl. 412 00:25:50,890 --> 00:25:52,980 Se konsa, mwen manyèlman ajoute sa a ak + 1. 413 00:25:52,980 --> 00:25:56,060 Lè sa a, sa a, gwosè * nan (Char), nou pa t 'wè sa a anvan. 414 00:25:56,060 --> 00:25:57,480 Sa a se pa teknikman yon fonksyon. 415 00:25:57,480 --> 00:26:04,150 Li se yon mo kle espesyal ki jis di ou sa ki gwosè a se nan kèk kalite done sou yon òdinatè 416 00:26:04,150 --> 00:26:06,980 paske an reyalite, kèk nan nou gen òdinatè 32-bit. 417 00:26:06,980 --> 00:26:10,900 Mwen gen yon òdinatè trè fin vye granmoun nan kay la, epi li sèlman itilize 32 Bits ki reprezante endikasyon. 418 00:26:10,900 --> 00:26:13,900 Se konsa, si m 'te fè yo piti yo gen yon kalite done, li ta kapab 32 miyèt moso. 419 00:26:13,900 --> 00:26:18,300 Men, si mwen sèvi ak nouvo mwen an anpenpan òdinatè, mwen ta ka jwenn tounen yon valè de 64 Bits 420 00:26:18,300 --> 00:26:20,510 pou yon bagay tankou yon adrès. 421 00:26:20,510 --> 00:26:25,400 Se konsa, nan ka sa a, jis yo dwe Super ki an sekirite, nou pa ap ale nan yon bagay kòd difisil tankou - 422 00:26:25,400 --> 00:26:28,740 byen, ki sa ki gwosè a nan yon Char selon sa nou te di ke byen lwen tèlman? 423 00:26:28,740 --> 00:26:34,450 Nou te bèl anpil di vèbalman ke li nan 1 multiple, ak sa a, se bèl anpil vre atravè Komisyon Konsèy la. 424 00:26:34,450 --> 00:26:37,000 Men ankò, sipozisyon gen tandans yo dwe move. 425 00:26:37,000 --> 00:26:40,850 Yo mennen nan lojisyèl buggy si moun sèvi ak lojisyèl ou nan fason nou pa t 'gen entansyon. 426 00:26:40,850 --> 00:26:44,750 Se konsa, nan kite abstrè sa a lwen ak jis plis generic di 427 00:26:44,750 --> 00:26:46,830 Mwen bezwen sa a sègman anpil nan memwa 428 00:26:46,830 --> 00:26:50,210 epi chak ti moso nan memwa yo ta dwe ekivalan a gwosè a nan yon karaktè, 429 00:26:50,210 --> 00:26:54,870 ki se an reyalite egal a 1 nan ka sa a, men se yon fason pi plis enerik nan ekri li. 430 00:26:54,870 --> 00:27:00,460 Se konsa, si mo a se hello, konbyen bytes malok aparamman asiyen pou alo? 431 00:27:00,460 --> 00:27:04,980 [Elèv] Sis. >> Sis. Egzakteman anpil jan nou gen mak kesyon sou ekran an. 432 00:27:04,980 --> 00:27:07,800 Lè sa a, pran yon devine kounye a ki baze sou sa ou konprann sou GetString 433 00:27:07,800 --> 00:27:12,790 ki sa malok pwobableman retounen? >> [Elèv] Yon adrès. 434 00:27:12,790 --> 00:27:17,020 Yon adrès nan ki sa? Nan moso an premye nan memwa. 435 00:27:17,020 --> 00:27:20,670 >> Nou pa gen okenn lide sa ki nan la, paske kèk fonksyon lòt 436 00:27:20,670 --> 00:27:23,010 te kapab lè l sèvi avèk sa a memwa deja a. 437 00:27:23,010 --> 00:27:28,380 Men, malok, tankou GetString, retounen adrès ki nan multiple an premye nan memwa 438 00:27:28,380 --> 00:27:30,540 ke li te mete sou kote pou ou. 439 00:27:30,540 --> 00:27:38,380 Sepandan, ki sa li pa fè se ranpli nan sa a vid ak yon gwo karaktè nil antislach 440 00:27:38,380 --> 00:27:43,030 paske li vire soti ou ka itilize malok asiyen anyen: antye, strings, ranje, 441 00:27:43,030 --> 00:27:45,700 flote, estrikti elèv yo. 442 00:27:45,700 --> 00:27:47,750 Ou kapab sèvi ak malok konplètman generic. 443 00:27:47,750 --> 00:27:51,470 Li pa pran swen oswa ou gen konnen ki sa w ap allocation memwa pou li a. 444 00:27:51,470 --> 00:27:55,810 Se konsa, li ta enpèrtinan pou malok mete yon 0 \ 445 00:27:55,810 --> 00:27:58,340 nan fen chak ti moso nan memwa li nan ban nou 446 00:27:58,340 --> 00:28:02,620 paske sa a \ 0 bagay se jis yon konvansyon pou strings. 447 00:28:02,620 --> 00:28:06,310 Li pa nan itilize pou antye, li pa nan itilize pou flote, li pa te itilize pou elèv yo. 448 00:28:06,310 --> 00:28:11,730 Se konsa, gotcha la ak malok se ke chay la se antyèman sou ou pwogramè a 449 00:28:11,730 --> 00:28:16,790 sonje konbyen bytes ou afekte yo ak pa janm sèvi ak yon riban pou 450 00:28:16,790 --> 00:28:21,570 oswa yon riban pandan y ap epi ale sot pase fwontyè a nan moso nan memwa ou ve yo te bay yo. 451 00:28:21,570 --> 00:28:23,540 Mete yon lòt fason, osito ke ou asiyen memwa, 452 00:28:23,540 --> 00:28:28,510 ou pa kapab mande sistèm nan fonksyone, o, nan chemen an,, ki jan gwo yon ti moso nan memwa te sa a? 453 00:28:28,510 --> 00:28:32,080 Li nan antyèman jiska ou sonje si ou bezwen ke valè. 454 00:28:32,080 --> 00:28:34,330 >> Se konsa, kite a wè ki jan mwen kontinye nan sèvi ak sa a memwa. 455 00:28:34,330 --> 00:28:38,430 Nan liy 28 ak 29 poukisa mwen fè sa? 456 00:28:39,850 --> 00:28:42,260 Jis total saniti chèk la. 457 00:28:42,260 --> 00:28:45,110 Jis nan ka yon bagay ale mal, mwen mande pou kèk kantite lajan fou nan memwa 458 00:28:45,110 --> 00:28:48,690 oswa mwen te tèlman anpil bagay kouri sou òdinatè a ke gen jis se pa memwa ase, 459 00:28:48,690 --> 00:28:51,780 yon bagay tankou sa, mwen omwen vle tcheke pou nil. 460 00:28:51,780 --> 00:28:55,260 An reyalite, pi fò òdinatè a ap ba ou ilizyon a ke chak pwogram 461 00:28:55,260 --> 00:28:57,080 ka itilize antye a nan RAM ou a, 462 00:28:57,080 --> 00:29:00,740 men menm Se konsa, si itilizatè a kalite nan kèk fisèl fou lontan petèt paske yo se yon nèg move 463 00:29:00,740 --> 00:29:03,440 epi yo ap aktyèlman ap eseye aksidan pwogram ou an oswa Hack nan li, 464 00:29:03,440 --> 00:29:07,300 ou vle omwen tcheke valè a retounen nan malok epi si li egal nil. 465 00:29:07,300 --> 00:29:11,630 Men, si li fè sa, kite la jis kite kounye a paske mwen pa konnen ki sa fè nan ka sa a. 466 00:29:11,630 --> 00:29:13,950 Kouman pou mwen yon kopi kòd la? Genyen nan yon kèk fason fè sa. 467 00:29:13,950 --> 00:29:18,850 Gen str kopi fonksyon nan C, men li la super senp pou nou fè pou fason sa a la fin vye granmoun-alamòd. 468 00:29:18,850 --> 00:29:23,110 >> Premye kite m 'konnen sa ki longè nan s se. 469 00:29:23,110 --> 00:29:26,930 Mwen te kapab mete sa a nan riban an, men olye mwen jis mete l 'deyò isit la pou clarté. 470 00:29:26,930 --> 00:29:30,610 Se konsa, n kounye a estoke longè nan fisèl orijinal la, ki se aparamman 5. 471 00:29:30,610 --> 00:29:35,290 Lè sa a, nan riban pou m 'mwen iteration soti nan 0 sou jiska n, 472 00:29:35,290 --> 00:29:40,940 yo, epi sou chak iterasyon mwen mete nan [mwen] andedan t [mwen]. 473 00:29:40,940 --> 00:29:45,060 Se konsa, sa a, se sa m 'konprann onkenn ak 2 dwèt mwen lonje dwèt nan strings yo anvan. 474 00:29:45,060 --> 00:29:49,260 Kòm sa a pou riban iterates tankou sa a, mwen pral yo dwe kopye h nan isit la, 475 00:29:49,260 --> 00:29:52,890 e nan isit la, l nan isit la paske sa se s, sa a se t. 476 00:29:52,890 --> 00:29:58,770 Lè sa a, alafen, nan liy 35 poukisa mwen fè sa? 477 00:29:58,770 --> 00:30:03,770 Mwen bezwen asire w ke m ap mete fen nan t nan fisèl. 478 00:30:03,770 --> 00:30:06,170 Apre sa, mwen te fè li fason sa a yo dwe Super eksplisit. 479 00:30:06,170 --> 00:30:09,510 Men, pwopoze, yon moun, si ou te kapab, yon fason diferan nan fè sa. 480 00:30:09,510 --> 00:30:13,930 Mwen pa reyèlman bezwen liy 35. Genyen yon lòt fason yo fè sa. 481 00:30:13,930 --> 00:30:18,880 Yeah. >> [Fèbl repons elèv] >> Di li pi fò. 482 00:30:18,880 --> 00:30:20,960 [Elèv] Mwens pase oswa egal a. >> Egzakteman. 483 00:30:20,960 --> 00:30:24,450 Nou te ka jis di mwens pase oswa egal a n, ki an jeneral te gen move 484 00:30:24,450 --> 00:30:28,190 paske prèske toujou lè nou ale moute nan yon egal a bagay la n ap konte 485 00:30:28,190 --> 00:30:30,000 n 'al jwenn 1 etap twò lwen. 486 00:30:30,000 --> 00:30:32,170 Men, sonje, konbyen bytes t 'nou asiyen? 487 00:30:32,170 --> 00:30:37,210 Nou resevwa lajan strlèn nan s, se konsa 5 + 1 pou yon total 6. 488 00:30:37,210 --> 00:30:39,980 Se konsa, nan ka sa a nou te ka fè yon bagay tankou sa a 489 00:30:39,980 --> 00:30:46,450 pou ke nou ap kopye pa sèlman alo a, men tou 0 a \ nan fen an trè. 490 00:30:46,450 --> 00:30:49,860 Altènativman, nou te ka sèvi ak yon fonksyon rele str kopi, strki, 491 00:30:49,860 --> 00:30:51,700 men sa pa ta dwe prèske kòm anpil plezi. 492 00:30:51,700 --> 00:30:54,000 Men, ki nan tout sa li fè sa anba kapo a. 493 00:30:54,000 --> 00:30:56,050 Lè sa a, alafen, nou fè menm bagay la tankou anvan. 494 00:30:56,050 --> 00:31:01,620 Mwen tirer t ak Lè sa a, mwen reklame ke orijinal la sanble tankou sa a ak kopi a sanble tankou sa. 495 00:31:01,620 --> 00:31:08,570 Se konsa, kite a eseye sa a kounye a. Kite m 'ale nan isit la. Fè copy2. Nou pral rale nan epi kouri copy2. 496 00:31:08,570 --> 00:31:13,840 Mwen pral tape nan alo nan miniskil, ak tout bon mwen jwenn miniskil alo kòm orijinal la 497 00:31:13,840 --> 00:31:16,930 men kapital Alo pou kopi a. 498 00:31:16,930 --> 00:31:20,300 Men mwen pa fè jis ankò. Mwen bezwen fè 1 dènye bagay isit la. 499 00:31:20,300 --> 00:31:28,000 46 ak 47 an klèman ap libere memwa yo, men ki sa sa aktyèlman vle di? 500 00:31:28,000 --> 00:31:33,250 Kisa mwen fè, ou panse ke, lè w rele liy 46 ak liy 47? 501 00:31:33,250 --> 00:31:38,900 Ki efè ki genyen? Yeah. 502 00:31:38,900 --> 00:31:43,140 [Fèbl repons elèv] >> Egzakteman. 503 00:31:43,140 --> 00:31:46,380 >> Ou se jis di sistèm nan fonksyone, hey, mèsi pou sa a memwa. 504 00:31:46,380 --> 00:31:48,320 Ou kapab kounye a itilize li pou yon lòt moun. 505 00:31:48,320 --> 00:31:50,790 Ak isit la a yon egzanp pafè nan valè fatra. 506 00:31:50,790 --> 00:31:55,430 Mwen te jis itilize sa a memwa a ekri pawòl Bondye a alo nan 2 kote yo, 507 00:31:55,430 --> 00:31:57,490 isit la, isit la, isit la, ak isit la. 508 00:31:57,490 --> 00:32:00,910 Se konsa, sa a se h-e-l-l-o-\ 0. 509 00:32:00,910 --> 00:32:06,960 Men, Lè sa a, mwen rele liy 46 ak liy 47, epi ou konnen ki sa k ap pase la an tèm de foto a? 510 00:32:06,960 --> 00:32:10,010 Aktyèlman, rete tann, foto sa a se youn nan fin vye granmoun. 511 00:32:10,010 --> 00:32:12,550 Yon fwa nou fè kopi a, sa a Guy se aktyèlman montre isit la, 512 00:32:12,550 --> 00:32:16,110 kidonk kite la retire nimewo yo ak jis abstrè lwen kòm flèch nou yo ankò. 513 00:32:16,110 --> 00:32:19,370 Kisa k ap pase nan foto sa a lè m 'rele gratis? 514 00:32:19,370 --> 00:32:22,750 [Fèbl elèv repons] >> Pa menm. 515 00:32:22,750 --> 00:32:29,510 Si m 'rele gratis sou yo epi t - kalite yon kesyon Trick - foto sa a pa chanje nan tout 516 00:32:29,510 --> 00:32:33,880 paske w rele nan epi rele t jis di sistèm nan fonksyone, 517 00:32:33,880 --> 00:32:39,010 hey, ou ka itilize sa a memwa ankò, men li pa chanje sa a nil 518 00:32:39,010 --> 00:32:41,840 oswa kèk karaktè espesyal, li pa chanje sa a, 519 00:32:41,840 --> 00:32:47,350 li pa chanje h la oswa e la oswa l la oswa l la oswa o an swa nan kote yo nenpòt lòt bagay. 520 00:32:47,350 --> 00:32:51,610 An tèm de foto a, le pli vit ke ou rele gratis, chanjman pa gen anyen. 521 00:32:51,610 --> 00:32:56,570 Ak ladan l 'manti orijin nan valè fatra paske si mwen Lè sa a, pita nan pwogram sa a 522 00:32:56,570 --> 00:33:01,010 mande sistèm nan fonksyone pou plis memwa ak GetString oswa malok oswa yon bagay tankou sa 523 00:33:01,010 --> 00:33:04,900 ak sistèm nan fonksyone di, asire w, mwen gen 12 bytes nan memwa jis libere leve, 524 00:33:04,900 --> 00:33:08,080 itilize sa yo, ki sa ou pral yo dwe lage? 525 00:33:08,080 --> 00:33:10,830 Ou ap pral lage yon ti moso nan memwa ke nou ta tipikman trase 526 00:33:10,830 --> 00:33:13,700 ak mak kesyon, men ki sa moun sa yo ki mak kesyon? 527 00:33:13,700 --> 00:33:17,000 Yo rive yo h-e-l-l-o, h-e-l-l-o. 528 00:33:17,000 --> 00:33:20,940 Sa yo se valè nouvo fatra nou osito ke ou libere moute ke memwa. 529 00:33:20,940 --> 00:33:22,750 >> Genyen nan yon enplikasyon mond reyèl isit la tou. 530 00:33:22,750 --> 00:33:24,720 Sa rive fè ak RAM, men òdinatè ou 531 00:33:24,720 --> 00:33:26,720 aktyèlman fè menm bagay la ak ki gen kapasite. 532 00:33:26,720 --> 00:33:30,620 Nou pral pale sou sa a an patikilye ki gen yon seri pwoblèm nan lavni ki konsantre sou forensics. 533 00:33:30,620 --> 00:33:36,170 Men, sa ki aktyèlman k ap pase si ou gen kèk sansib dosye finansye sou Desktop ou 534 00:33:36,170 --> 00:33:39,600 oswa kèk JPEG preliminè epi ou trennen l 'nan fatra ou a, 535 00:33:39,600 --> 00:33:44,390 sa ki pase lè ou trennen l 'nan fatra a oswa bin la resikle? 536 00:33:44,390 --> 00:33:47,240 Ou te konnen sa m 'te pale sou. [Ri] 537 00:33:47,240 --> 00:33:52,370 Kisa k ap pase lè ou te trennen ke prèv nan bwat resiklaj ou a oswa fatra kapab? 538 00:33:52,370 --> 00:33:55,920 [Fèbl repons elèv] 539 00:33:55,920 --> 00:33:58,000 Byen, konsa atansyon. Kisa k ap pase lè ou fè sa? 540 00:33:58,000 --> 00:34:01,030 Repons lan kout se pa gen anyen, dwa? 541 00:34:01,030 --> 00:34:04,790 Preliminè oswa sansib dosye a toujou jis chita chita l 'yon kote nan kondwi difisil ou. 542 00:34:04,790 --> 00:34:07,940 Pifò nan nou omwen te aprann fason an difisil ke ou bezwen vide fatra ou 543 00:34:07,940 --> 00:34:10,429 oswa bin resiklaj ou a aktyèlman efase dosye. 544 00:34:10,429 --> 00:34:13,440 Ak tout bon, lè ou klike sou dwa oswa kontwole klike sou fatra ou kapab 545 00:34:13,440 --> 00:34:15,580 oswa chwazi File, Vide fatra oswa kèlkeswa sa 546 00:34:15,580 --> 00:34:21,420 epi ou aktyèlman vide fatra a kapab oswa resikle bin, sa ki aktyèlman rive lè sa a foto sa a? 547 00:34:22,810 --> 00:34:25,969 Plis anyen. Se konsa, pa gen anyen k ap pase aktyèlman sou ki gen kapasite. 548 00:34:25,969 --> 00:34:30,880 >> Men, si nou jis tanporèman digresyon ak ekri - I'll jis itilize do a nan sa a. 549 00:34:30,880 --> 00:34:34,639 Se konsa, kounye a istwa a ap chanje soti nan RAM, ki se kote pwogram egziste 550 00:34:34,639 --> 00:34:39,250 pandan w ap kouri yo, ki gen kapasite, ki se kote yo yo estoke tèm long 551 00:34:39,250 --> 00:34:42,920 menm lè gen blakawout, pou kounye a - epi nou pral tounen vin jwenn sa a nan tan kap vini an - 552 00:34:42,920 --> 00:34:46,380 kite yo jis pretann ke sa a reprezante andedan kay la kondwi difisil nan òdinatè w lan 553 00:34:46,380 --> 00:34:50,110 paske li tounen nan jou a, yo itilize yo dwe disk sikilè, anpil tankou disk flou. 554 00:34:50,110 --> 00:34:55,130 Se konsa, si ou fè gen kèk sansib Excel ranpli, li ta ka pran jiska sa a ti moso nan memwa 555 00:34:55,130 --> 00:34:59,770 sou ki gen kapasite òdinatè ou a, epi mwen jis desen menm 1S abitrè ak 0s. 556 00:34:59,770 --> 00:35:03,970 Lè w glise dosye a tankou sa fatra ou a ka oswa resikle bin, 557 00:35:03,970 --> 00:35:07,750 literalman pa gen anyen k ap pase paske Apple ak Microsoft te jis deside 558 00:35:07,750 --> 00:35:10,450 fatra a kapab e resikle bin se reyèlman jis yon kontneur tanporè. 559 00:35:10,450 --> 00:35:14,710 Petèt evantyèlman OS a pral vide l pou ou, men anjeneral, li pa fè anyen, 560 00:35:14,710 --> 00:35:17,090 omwen jiskaske ou ap reyèlman ki ba sou espas. 561 00:35:17,090 --> 00:35:20,870 >> Sepandan, lè ou ale nan fatra vid oswa vid bin resiklaj, 562 00:35:20,870 --> 00:35:23,460 Menm jan an, pa gen anyen k ap pase nan foto sa a. 563 00:35:23,460 --> 00:35:28,590 Tout sa ki k ap pase se yon lòt kote sou òdinatè ou, gen kèk kalite tab. 564 00:35:28,590 --> 00:35:35,400 Li nan sòt de tankou yon fèy twonpe ti kras ki di sa, kite la di, resume.doc, 565 00:35:35,400 --> 00:35:40,920 Se konsa kourikouloum-vite ou a nan yon dosye Pawòl Microsoft te itilize yo viv nan kote 123 sou ki gen kapasite difisil ou a, 566 00:35:40,920 --> 00:35:43,710 pa nan memwa ak pa nan RAM men sou difisil ki gen kapasite ou a, 567 00:35:43,710 --> 00:35:49,050 ak preliminè ou lavi JPEG nan 456, ak dosye Excel ou ap viv nan 789 oubyen nenpòt kote. 568 00:35:49,050 --> 00:35:53,640 Lè ou efase dosye pa aktyèlman vidanj fatra a oswa bin la resikle, 569 00:35:53,640 --> 00:35:59,530 foto sa a pa chanje. 0s a ak 1S sou kondwi difisil ou pa ale nenpòt kote. 570 00:35:59,530 --> 00:36:03,930 Men, tablo sa a, sa a baz done ti kras nan kalite, fè sa ki chanjman. 571 00:36:03,930 --> 00:36:08,750 Lè ou efase rezime w, li se kòm si se dosye a efase nan kèk sans, 572 00:36:08,750 --> 00:36:12,790 men tout òdinatè a ap bliye kote ke bagay rete sou kondwi difisil ou. 573 00:36:12,790 --> 00:36:17,870 0s a ak 1S ki konpoze rezime w oswa nenpòt nan sa yo dosye lòt yo toujou intact. 574 00:36:17,870 --> 00:36:21,960 >> Se konsa, si ou te fè sa a aksidantèlman, gen nan toujou yon pwobabilite ki pa zewo 575 00:36:21,960 --> 00:36:25,800 ke ou ka refè done ou lè l sèvi avèk Norton Itilite oswa kèk lojisyèl komèsyal 576 00:36:25,800 --> 00:36:29,810 bi ki gen nan lavi a se jwenn 0s ak 1S sa yo ki te sòt de te òfelen, 577 00:36:29,810 --> 00:36:33,300 bliye isit la, men kite isit la, se konsa ke ou kapab jwenn done ou tounen. 578 00:36:33,300 --> 00:36:38,410 Oswa envestigatè legal ak lapolis la oswa FBI ta aktyèlman pran yon kondwi difisil 579 00:36:38,410 --> 00:36:42,550 ak aktyèlman chèche modèl nan 0s ak 1S ki gade tankou JPEGs, gade tankou Excel fichiers, 580 00:36:42,550 --> 00:36:46,400 ak retabli yo nan fason sa a menm si òdinatè a ki oubliyé yo la. 581 00:36:46,400 --> 00:36:49,820 Se konsa, wout la sèlman vrèman efase done, kòm n ap diskite nan tan kap vini an, 582 00:36:49,820 --> 00:36:54,190 se frote oswa siye dosye a oswa ki gen kapasite difisil pa - 583 00:36:54,190 --> 00:36:56,540 Ou pa ka vrèman debarase m de 0s la ak 1S 584 00:36:56,540 --> 00:36:59,440 paske otreman ou ta kòmanse avèk yon kondwi difisil jigokte 585 00:36:59,440 --> 00:37:02,380 ak ou ta fini ak yon kondwi difisil megaokte si ou toujou ap yo te efase, 586 00:37:02,380 --> 00:37:04,380 literalman, 0s ak 1S. 587 00:37:04,380 --> 00:37:06,310 Se konsa, sa ou t ap fè si ou reyèlman te vle kouvri tracks ou 588 00:37:06,310 --> 00:37:10,510 ak pwoblèm fondamantal la ke gen la toujou 0s ak 1S sou ki gen kapasite a? 589 00:37:10,510 --> 00:37:14,930 Mwen wè yon moun jèstikule ke ou ta fizikman kraze aparèy la. Ki pral travay. 590 00:37:14,930 --> 00:37:19,600 [Ri] Men, si sa a, se kalite yon solisyon chè, sa ki ta gen plis rezonab? 591 00:37:19,600 --> 00:37:23,270 Yeah. >> [Elèv] recouvrir yo. >> Recouvrir yo ak ki sa? >> [Elèv] done Lòt. 592 00:37:23,270 --> 00:37:29,070 Lòt done. Ou ka jis recouvrir ki gen kapasite ou a ak 0s oswa 1S oswa tout 0s, tout 1S. 593 00:37:29,070 --> 00:37:31,230 >> Epi sa a, tout bon ki sa kèk nan lojisyèl an fè. 594 00:37:31,230 --> 00:37:33,570 Ou kapab achte lojisyèl oswa menm jwenn gratis lojisyèl, 595 00:37:33,570 --> 00:37:36,610 e menm bati nan Mac OS jou sa yo, mwens sa nan Windows, 596 00:37:36,610 --> 00:37:38,660 se kapasite a byen efase. 597 00:37:38,660 --> 00:37:41,960 Aktyèlman, si ou vle tout kay kouri jodi a si ou gen yon Mac ak fè sa, 598 00:37:41,960 --> 00:37:45,740 si ou te gen kèk bagay nan fatra ou a ka, ou kapab fè Tache Fatra Vide, 599 00:37:45,740 --> 00:37:47,610 ki fè sa ki egzakteman sa. 600 00:37:47,610 --> 00:37:53,350 Olye ke sèlman dosye efase isit la, li pa efase isit la a, 0s ak 1, 601 00:37:53,350 --> 00:38:01,240 olye, li jis chanje yo tout, pou egzanp, nan 0s ak dot, dot, dot. 602 00:38:01,240 --> 00:38:05,330 Se konsa yonn nan psets lavni ou a pral aktyèlman ap fè espre refè done - 603 00:38:05,330 --> 00:38:08,430 foto ke nou te pran nan moun, kote, ak bagay sou lakou lekòl la 604 00:38:08,430 --> 00:38:12,810 pou ki nou pwal fè yon imaj legal nan kat memwa yon kamera dijital la, 605 00:38:12,810 --> 00:38:17,120 ki se lide an egzak menm - epi ou pral gen yo dwe defye aktyèlman jwenn 606 00:38:17,120 --> 00:38:20,160 modèl yo ki reprezante JPEGs sou kondwi difisil ou a, 607 00:38:20,160 --> 00:38:23,610 anpil tankou ke elèv ansyen ki gen imel mwen li kèk semèn de sa te fè 608 00:38:23,610 --> 00:38:25,860 refè foto, sè l 'la. 609 00:38:25,860 --> 00:38:30,300 Poukisa nou pa nou pran yon ti repo-5 minit isit la, epi n ap argroup ak plis sou memwa. 610 00:38:33,030 --> 00:38:38,610 Se konsa, isit la nan kote bagay sa yo jwenn yon ti lide-koube, men sa a se yon etap trè pwisan 611 00:38:38,610 --> 00:38:40,480 nan direksyon konprann sa a tout moun pi plis la. 612 00:38:40,480 --> 00:38:42,900 Isit la se yon pwogram yo rele pointers.c. 613 00:38:42,900 --> 00:38:45,430 Li se nan mitan kòd echantiyon a jodi a. 614 00:38:45,430 --> 00:38:51,280 Remake nan liy ki premye kèk, 19 a 22, tout n ap fè se yon bagay tankou GetString 615 00:38:51,280 --> 00:38:54,460 epi retounen yon adrès, estoke li nan s. 616 00:38:54,460 --> 00:38:58,380 Dépi pou pset menm 3 si ou vle, men pset 4 yo, epi sou 617 00:38:58,380 --> 00:39:01,030 ki kote ou ka kòmanse pran sa yo wou fòmasyon nan tèt ou, 618 00:39:01,030 --> 00:39:04,030 pa gen okenn rezon ki fè yo pretann ke strings egziste ankò. 619 00:39:04,030 --> 00:39:07,030 Li nan sètènman oke jis kòmanse di Char *. 620 00:39:07,030 --> 00:39:12,610 >> Kòm yon sou kote, nan referans sou entènèt ak nan liv ou ka souvan wè zetwal la akote varyab la. 621 00:39:12,610 --> 00:39:15,600 Ou ta ka menm wè espas alantou tou de bò nan li. 622 00:39:15,600 --> 00:39:17,680 Tout moun nan sa yo se fonksyonèl kòrèk. 623 00:39:17,680 --> 00:39:21,180 Pou kounye a, menm si, nou pral estandadize sou apwòch sa a fè super klè 624 00:39:21,180 --> 00:39:24,000 ki * Char, se tankou li di konsèy karaktè. 625 00:39:24,000 --> 00:39:25,680 Sa a se kalite a done. 626 00:39:25,680 --> 00:39:28,730 Lè sa a, non an nan varyab la se nan nan ka sa a. 627 00:39:28,730 --> 00:39:31,180 Se konsa, nou te pran yon fisèl e nou te rele l 'la. 628 00:39:31,180 --> 00:39:35,180 Lè sa a, desann isit la remake ke mwen ap fè aktyèlman yon ti kras nan artifices. 629 00:39:35,180 --> 00:39:39,080 Se sa yo rele aritmetik konsèy, ki se sòt de senp super. 630 00:39:39,080 --> 00:39:41,790 Li jis vle di adisyon ak soustraksyon chif ki rive jiska pwent. 631 00:39:41,790 --> 00:39:43,660 Men, sa sa a aktyèlman travay. 632 00:39:43,660 --> 00:39:49,170 Pwogram sa a aparamman simagri 1 karaktè fisèl la nan chak liy sa yo ki rezilta nan fen - 633 00:39:49,170 --> 00:39:54,920 Jis pou nou ka gate kote sa a ki pral, fè pwent, kouri pwent, kite m 'rale pous 634 00:39:54,920 --> 00:39:58,940 Koulye a, kite m 'kalite nan yon bagay tankou HELLO ak kalite Antre 635 00:39:58,940 --> 00:40:01,080 epi li simagri 1 karaktè pou chak liy. 636 00:40:01,080 --> 00:40:04,730 Up jiskaske yon dezyèm Anons sa pibliye depi, nou ta te fè sa a avèk notasyon bracket kare. 637 00:40:04,730 --> 00:40:09,760 Nou ta gen yon riban pou epi nou ta fè printf nan s [mwen] ak nou ta fè sa ankò, li ankò e ankò 638 00:40:09,760 --> 00:40:11,950 ak yon n antislach nan fen chak liy. 639 00:40:11,950 --> 00:40:16,800 Men, pwogram sa a se diferan. Pwogram sa a se lè l sèvi avèk, literalman, aritmetik. 640 00:40:16,800 --> 00:40:18,860 Se konsa, sa k ap pase sou isit la? 641 00:40:18,860 --> 00:40:24,720 Premye a tout, anvan sa a riban menm ègzekutra, ki sa ki, jis yo dwe klè, se s aktyèlman? 642 00:40:24,720 --> 00:40:27,270 S se? >> [Elèv] Yon adrès. >> Yon adrès. 643 00:40:27,270 --> 00:40:32,980 >> Epitou, se adrès ki nan, nan ka a nan hello, pèsonaj la an premye nan mo sa a, ki se h. 644 00:40:32,980 --> 00:40:37,370 Se konsa, yo se, nan egzanp sa a an patikilye, adrès la nan h. 645 00:40:37,370 --> 00:40:41,850 Se konsa, sa sa vle di fè a + mwen? 646 00:40:41,850 --> 00:40:46,280 Bon, mwen kòmanse nan 0 nan sa a pou riban. Nou te fè fwa ke anpil. 647 00:40:46,280 --> 00:40:49,760 Mwen ki pral moute al longè nan fisèl la, aparamman. 648 00:40:49,760 --> 00:40:53,950 Se konsa, sou iterasyon an premye nan sa a riban, mwen se evidamman 0. 649 00:40:53,950 --> 00:41:01,740 Se konsa, sa a ekspresyon ap di a + mwen - olye, s +0--sa a, se evidamman jis la. 650 00:41:01,740 --> 00:41:04,320 Se konsa, sa se * s isit la? 651 00:41:04,320 --> 00:41:08,530 Koulye a, nou ap sèvi ak zetwal nan nan yon fason yon ti kras diferan. 652 00:41:08,530 --> 00:41:13,080 Kite m 'ale pi devan epi debarase m de t paske nou ap fè pale de t ak kopi a. 653 00:41:13,080 --> 00:41:15,540 Koulye a, nou jis vle rakonte yon istwa ki enplike s. 654 00:41:15,540 --> 00:41:20,090 Se konsa, nan moman sa a, apre yo fin gen fisèl kalite, mond nou an sanble byen tankou li te fè anvan 655 00:41:20,090 --> 00:41:26,630 ak jis nan estoke adrès ki nan h ak plis ankò jeneralman pwente nan fisèl la hello. 656 00:41:26,630 --> 00:41:33,170 Si m 'fè kounye a yon liy tankou * (yo + mwen), se pou yo eseye sa a soti. 657 00:41:33,170 --> 00:41:40,140 Se konsa, * (yo + mwen). Kite m 'senplifye sa a paske sa a se 0, kidonk sa a se * (yo +0). 658 00:41:40,140 --> 00:41:43,790 Oke, rete tann yon minit. Senplifye pi lwen. Sa a se * (yo). 659 00:41:43,790 --> 00:41:47,020 Oke, kounye a parantèz yo yo se kalite estipid, se konsa kounye a kite a jis fè * s. 660 00:41:47,020 --> 00:41:50,540 Se konsa, nan iterasyon an premye nan sa a riban, ki liy ki nan make, 26, 661 00:41:50,540 --> 00:41:53,650 se bèl anpil ekivalan a enprime sa a. 662 00:41:53,650 --> 00:41:56,040 Ki sa ki kalite nan done a * s? 663 00:41:56,040 --> 00:42:00,770 Nan kontèks sa a, paske zetwal la k ap pase yo akote yo nan tèt li, 664 00:42:00,770 --> 00:42:04,930 men plis espesyalman, paske nou pa deklare a, 665 00:42:04,930 --> 00:42:09,730 nou pa kreye yon varyab ankò, gen nan pa gen mansyone nan * Char nan liy 26, 666 00:42:09,730 --> 00:42:14,280 gen nan pa gen mansyone nan fisèl la mo kle, nou se jis lè l sèvi avèk yon varyab ki rele a, 667 00:42:14,280 --> 00:42:19,650 li vire soti kounye a zetwal la gen yon ti kras diferan, epi, Byensir, konfizyon sans. 668 00:42:19,650 --> 00:42:26,590 * S isit la vle di ale nan adrès ki nan s ak ekri ak lèt ​​detache tou sa ki gen la. 669 00:42:26,590 --> 00:42:33,750 Se konsa, yo se isit la, * s se - sòt de tankou parachut ak Nechèl yo, swiv flèch la - isit la. 670 00:42:33,750 --> 00:42:35,850 Se konsa, sa a se nan *. 671 00:42:35,850 --> 00:42:39,060 >> Se konsa, sa vin enprime sou iterasyon an premye nan ki riban nan liy 26? 672 00:42:39,060 --> 00:42:42,170 Mwen enprime soti c%, ki se kontneur la pou yon karaktè, 673 00:42:42,170 --> 00:42:48,520 Lè sa a, yon \ n pou yon liy nouvo. * (Yo + mwen) kote mwen se 0 se jis sa a. 674 00:42:48,520 --> 00:42:53,670 Se konsa, sa Char mwen mete nan pou c%? H. 675 00:42:53,670 --> 00:42:56,900 Nan iterasyon nan pwochen nan riban an - ou ka pwobableman wè kote sa a ki pral - 676 00:42:56,900 --> 00:43:01,350 iterasyon nan pwochen mwen se evidamman 1, kidonk sa a vle di la +1, 677 00:43:01,350 --> 00:43:05,580 ak Lè sa a, koulye a, mwen bezwen parantèz yo paske kounye a zetwal la bezwen di 678 00:43:05,580 --> 00:43:08,620 ale nan adrès memwa nan +1. 679 00:43:08,620 --> 00:43:14,170 Ki sa ki nan? Se pou nou woule tounen nan tan ak di sa flèch kounye a se pa sa aktyèlman fè nou nenpòt favè. 680 00:43:14,170 --> 00:43:18,450 Kite a plis espesyalman di ke sa a se estoke 123 nimerik la 681 00:43:18,450 --> 00:43:25,110 paske nan kòmansman an nan sa a fil hello, sa a se adrès 123, sa a se 124, ak pou fè. 682 00:43:25,110 --> 00:43:30,550 Se konsa, sou iterasyon nan dezyèm lè m ap di yo +1, sa se tankou li di 123 +1, 683 00:43:30,550 --> 00:43:35,340 ki te rekonèt kòm 124 konsa, sa ki Char vin enprime sou iterasyon nan dezyèm? 684 00:43:35,340 --> 00:43:37,850 E nan adrès memwa 124. 685 00:43:37,850 --> 00:43:44,440 Lè sa a, + ankò, 125, 126, 127, ak sa a riban Erezman sispann anvan nou jwenn isit la 686 00:43:44,440 --> 00:43:49,040 paske mwen m 'lè l sèvi avèk strlèn a asire w ke mwen pa konte ki twò wo. 687 00:43:49,040 --> 00:43:50,810 Se konsa, ki twò se li. 688 00:43:50,810 --> 00:43:55,000 Yon fwa ankò, sa a se jis kòm si nou te fè yon semèn de sa. 689 00:43:55,000 --> 00:43:59,200 Kite m 'ekri l sou liy ki anba a menm si nou pa vle fè tou de. 690 00:43:59,200 --> 00:44:02,500 Sa a se idantik kounye a sa a. 691 00:44:02,500 --> 00:44:08,310 >> Se konsa, menm si yo se yon fisèl, menm jan nou ve yo te rele li pou de semèn, yo se reyèlman yon * Char. 692 00:44:08,310 --> 00:44:13,270 Se konsa, si nou vle yo super twou dèyè, li vrèman bon yo ekri pèsonaj la espesifik 693 00:44:13,270 --> 00:44:17,490 nan lokal kote on lè l sèvi avèk sa yo adrès nimerik ak sa a operatè etwal, 694 00:44:17,490 --> 00:44:20,470 men franchman, sa a se cleaner jis anpil. Se konsa, sa a se pa move. 695 00:44:20,470 --> 00:44:26,720 Pa gen rezon ki fè yo sispann fè liy 27 isit la, men 26 se woulant menm bagay la tou, 696 00:44:26,720 --> 00:44:31,570 epi li fonksyonèl menm bagay la pou egzakteman rezon sa yo ke nou ve yo te diskite sou konsa byen lwen. 697 00:44:31,570 --> 00:44:33,650 Epi anfen, 29 se pratik jis bon. 698 00:44:33,650 --> 00:44:38,420 Rele gratis nan s vle di ke kounye a ou ap bay tounen memwa nan ki GetString te ban nou 699 00:44:38,420 --> 00:44:41,630 paske ankò, kòm mwen mansyone Lendi, GetString pou semèn 700 00:44:41,630 --> 00:44:44,180 ki te entwodwi yon ensèk nan kòd ou a. 701 00:44:44,180 --> 00:44:46,490 Te kòd ou a pou semèn te gen fwit memwa 702 00:44:46,490 --> 00:44:49,970 kote ou ve yo te mande GetString pou memwa, men ou pa janm ve yo te bay li tounen. 703 00:44:49,970 --> 00:44:53,410 Ak sa ki te fè espre chwazi pa nou pedagojik 704 00:44:53,410 --> 00:44:55,880 paske li nan jis twòp bezwen panse osijè de bonè nan. 705 00:44:55,880 --> 00:44:57,710 Men koulye a, nou bezwen plis simetri. 706 00:44:57,710 --> 00:45:00,830 Si ou mande òdinatè a pou memwa, kòm se ka a pou GetString, 707 00:45:00,830 --> 00:45:02,820 kòm se ka a aparamman pou malok, 708 00:45:02,820 --> 00:45:07,970 ou fèt pou ou kounye a pou pset pati 4 tou gratis nenpòt memwa sa yo. 709 00:45:07,970 --> 00:45:11,650 Avi sa a se diferan de li di n int. 710 00:45:11,650 --> 00:45:15,040 Ou pa bezwen libere sa a paske ou pa t 'rele GetString 711 00:45:15,040 --> 00:45:16,890 epi ou pa t 'rele malok. 712 00:45:16,890 --> 00:45:20,610 >> Ak menm si ou rele GetInt kòm n ap pètèt wè la a, 713 00:45:20,610 --> 00:45:25,520 GetInt pa asiyen memwa pou ou paske ou ka aktyèlman pase alantou nonm antye relatif 714 00:45:25,520 --> 00:45:29,430 ak cha ak charaktèr jis fason an nou te toujou ap fè pou semèn. 715 00:45:29,430 --> 00:45:33,960 Kòd, menm si, se espesyal paske vrèman yo ap seri a nan charaktèr miltip. 716 00:45:33,960 --> 00:45:37,450 Se konsa, yo ap jis diferan de charaktèr ak cha ak antye ak renmen an. 717 00:45:37,450 --> 00:45:39,980 Men, nou pral tounen vin jwenn ke lontan anvan. 718 00:45:39,980 --> 00:45:44,920 Nenpòt kesyon Lè sa a, sa a sou kòmansman nan pwent? Yeah. 719 00:45:44,920 --> 00:45:49,690 [Fèbl kesyon elèv] 720 00:45:49,690 --> 00:45:51,440 Ah, trè bon kesyon. 721 00:45:51,440 --> 00:45:55,790 Youn nan bagay ki kèk C aktyèlman fè pou ou, ki se pratik, 722 00:45:55,790 --> 00:46:00,110 se li figire pou ou sa ki gwosè a se nan kalite la done 723 00:46:00,110 --> 00:46:03,060 ak Lè sa a, fè yo ki kalite miltiplikasyon pou ou. 724 00:46:03,060 --> 00:46:06,610 Sa a se petinan nan ka a nan charaktèr paske prèske toujou yon Char se 1 multiple, 725 00:46:06,610 --> 00:46:08,150 kidonk sa a jis travay. 726 00:46:08,150 --> 00:46:11,220 Men, poutèt a nan diskisyon, si ou te aktyèlman enprime nonm antye relatif 727 00:46:11,220 --> 00:46:15,500 epi ou t ap eseye enprime soti kèk nan valè ki te lonje dwèt nan yon nonb antye relatif, 728 00:46:15,500 --> 00:46:20,720 ou menm pa ta bezwen fè + 4 * mwen jis paske yon int se 4 bytes. 729 00:46:20,720 --> 00:46:25,780 Aritmetik pwente vle di ke C ak du a fè tout sa ki matematik pou ou. 730 00:46:25,780 --> 00:46:29,190 Tout sa ou dwe pran swen sou se konte a nan sòt de sans imen an. Yeah. 731 00:46:29,190 --> 00:46:35,200 [Elèv] Si ou deklare yon fisèl andedan yon pou riban, ou gen libere li pita? 732 00:46:35,200 --> 00:46:36,760 Bon kesyon. 733 00:46:36,760 --> 00:46:41,390 >> Si ou deklare yon andedan fil de la pou riban, ou bezwen libere li pita? 734 00:46:41,390 --> 00:46:47,520 Ou sèlman bezwen memwa gratis ke w asiyen ak GetString oswa avèk malok. 735 00:46:47,520 --> 00:46:53,110 Se konsa, si ou jis di yon bagay tankou - kite m 'mete aparèy òtopedik Curly kounye a pou se tout kòd la ki gen rapò. 736 00:46:53,110 --> 00:46:58,580 Si ou te fè yon bagay, byen buggily, tankou sa a, Char * t = a, 737 00:46:58,580 --> 00:47:03,450 ou pa bezwen t gratis paske t pa te enplike nenpòt mansyone nan malok oswa GetString. 738 00:47:03,450 --> 00:47:08,960 Si pa kontras ou te fè sa a, GetString, lè sa a se wi, ou ta bezwen t gratis. 739 00:47:08,960 --> 00:47:14,350 Ak an reyalite, chans sèlman ou a fè sa se kounye a andedan sa a riban, pou pwoblèm nan menm nan dimansyon 740 00:47:14,350 --> 00:47:16,060 ke nou te diskite nan tan lontan an. 741 00:47:16,060 --> 00:47:18,830 Sinon ou ta ka allocation memwa, allocation memwa, allocation memwa, 742 00:47:18,830 --> 00:47:21,230 ak nan fen pwogram lan paske ou se deyò de sa a riban, 743 00:47:21,230 --> 00:47:24,240 t pa egziste, men ou pa janm te di sistèm nan fonksyone 744 00:47:24,240 --> 00:47:26,750 ke ou pa t 'bezwen ki memwa ankò. 745 00:47:26,750 --> 00:47:30,430 Epi anvan lontan, pou pset 4 oswa 5 n ap ekipe ou yon pwogram ki rele Valgrind, 746 00:47:30,430 --> 00:47:34,160 ki se menm jan an nan lespri gdb nan ke li nan te resevwa yon ti jan nan yon entèfas Esoteric, 747 00:47:34,160 --> 00:47:35,750 men objektif li yo nan lavi ki gen ede ou. 748 00:47:35,750 --> 00:47:39,380 Ak Valgrind se yon pwogram ki pral nan lavni an rechèch pwogram ou an 749 00:47:39,380 --> 00:47:42,550 kap chèche fwit memwa, si soti nan GetString oswa malok, 750 00:47:42,550 --> 00:47:47,800 ki n ap kòmanse lè l sèvi avèk tout plis an kòm nou sispann lè l sèvi avèk bibliyotèk la CS50 kòm anpil. 751 00:47:47,800 --> 00:47:53,030 Nou kounye a gen finalman sòt de vokabilè a ak sòt la nan modèl mantal nan teyori 752 00:47:53,030 --> 00:47:55,170 ak ki rezoud pwogram sa a kase. 753 00:47:55,170 --> 00:47:59,410 >> Se konsa, nan pwogram sa a kase, swap travay andedan nan swap, 754 00:47:59,410 --> 00:48:05,280 men li pa janm aktyèlman te travay nan prensipal paske prensipal ki te pase nan x ak y, sonje, 755 00:48:05,280 --> 00:48:07,260 ak moun ki te pase nan pa valè, se konsa pale. 756 00:48:07,260 --> 00:48:09,330 Kopi yo te bay boukante. 757 00:48:09,330 --> 00:48:12,520 Nan fen swap, A ak B te tout bon yo te echanje, 758 00:48:12,520 --> 00:48:16,120 Men, nan kou x ak y, jan nou diskite nan Lendi, pa t '. 759 00:48:16,120 --> 00:48:19,940 Se konsa, mwen pwopoze nan vèt isit la ke sa a se aktyèlman solisyon an isit la. 760 00:48:19,940 --> 00:48:22,640 Ak aktyèlman, kite m 'deplase zetwal mwen jis yo dwe konsistan 761 00:48:22,640 --> 00:48:24,440 menm si, ankò, woulant sa a pa gen pwoblèm. 762 00:48:24,440 --> 00:48:28,730 Nan semenn yo nan lavni nou pral eksplike ki lè ak poukisa li fè matyè. 763 00:48:28,730 --> 00:48:30,600 Se konsa, nan vèt kounye a se yon solisyon. 764 00:48:30,600 --> 00:48:33,700 Franchman, li sanble yon lot antye messier paske mwen gen tout sa yo zetwal yo. 765 00:48:33,700 --> 00:48:35,380 Kite m 'pwen soti yon sèl bagay. 766 00:48:35,380 --> 00:48:40,040 Liy nan tèt isit la kote li di Int * yon ak int * b 767 00:48:40,040 --> 00:48:42,820 se fondamantalman fè menm bagay la kòm li toujou gen. 768 00:48:42,820 --> 00:48:47,070 Li se deklare 2 agiman oswa paramèt boukante, 769 00:48:47,070 --> 00:48:49,940 premye a nan ki se yon konsèy int yo te rele yon, 770 00:48:49,940 --> 00:48:53,100 dezyèm lan nan ki se yon konsèy int rele b. 771 00:48:53,100 --> 00:48:55,770 Bagay la sèlman ki ki nouvo nan pwen sa a se lefèt ke gen nan yon etwal la. 772 00:48:55,770 --> 00:48:59,340 >> Kisa sa vle di? Yon se pa yon int, b se pa yon int. 773 00:48:59,340 --> 00:49:04,100 A se adrès ki nan yon int ak b se adrès la nan yon int diferan. 774 00:49:04,100 --> 00:49:06,980 Desann isit la, sa a se kote mwen admèt C vin konfizyon. 775 00:49:06,980 --> 00:49:09,790 Koulye a, nou ap itilize yon etwal, men li gen siyifikasyon diferan nan kontèks sa a. 776 00:49:09,790 --> 00:49:13,150 Paske nou pa ap deklare endikasyon kòm nou yo moute isit la, 777 00:49:13,150 --> 00:49:15,500 isit la nou yo dereferencing bagay sa yo. 778 00:49:15,500 --> 00:49:21,520 Se konsa, teknikman, zetwal la nan kontèks sa a nan liy nan andedan nan swap premye, dezyèm, ak twazyèm 779 00:49:21,520 --> 00:49:24,560 se operatè a dèreferans, ki jis vle di ale la. 780 00:49:24,560 --> 00:49:27,400 Se konsa, jis kòm dwèt mwen swiv flèch la h, 781 00:49:27,400 --> 00:49:31,100 * Yon mwayen ale nan ki adrès ak jwenn mwen int la ki nan la. 782 00:49:31,100 --> 00:49:34,250 * Vle di b ale nan adrès la epi yo pase m 'sa ki nan la. 783 00:49:34,250 --> 00:49:40,730 Se konsa, kite a rdesine foto a soti nan Lendi kounye a lè l sèvi avèk yon pil nan ankadreman li yo, 784 00:49:40,730 --> 00:49:43,130 yon sèl anba a nan yo ki a pwal prensipal yo, 785 00:49:43,130 --> 00:49:47,600 yon sèl a anwo nan ki a pwal swap, 786 00:49:47,600 --> 00:49:50,880 pou ke mond nou an sanble, jis tankou Lendi, tankou sa a. 787 00:49:50,880 --> 00:49:53,620 Isit la se yon ti moso nan memwa ki prensipal ki pral itilize. 788 00:49:53,620 --> 00:49:56,520 >> Sonje soti nan Lendi a ke pwogram nan jis te gen 2 varyab, 789 00:49:56,520 --> 00:50:01,930 yon sèl rele x ak yon sèl rele y, epi mwen te mete nimewo yo 1 ak 2 a. 790 00:50:01,930 --> 00:50:06,580 Koulye a, lè m 'rele swap tankou m' te fè nan Lendi, 791 00:50:06,580 --> 00:50:11,000 ki te deja lè mwen itilize vèsyon an wouj nan pwogram sa a, ki sanble tankou sa a, 792 00:50:11,000 --> 00:50:17,470 Mwen te resevwa 2 paramèt, yon b ak, ak nou sa nou te ekri isit la ak isit la? 793 00:50:17,470 --> 00:50:21,160 Jis 1 ak 2, literalman fotokopi x ak y. 794 00:50:21,160 --> 00:50:23,070 Jodi a nou chanje sa. 795 00:50:23,070 --> 00:50:28,510 Jodi a olye pou yo pase nan antye a ak b nou pral pase nan 2 adrès. 796 00:50:28,510 --> 00:50:34,290 Moun sa yo ki adrès rive lonje dwèt sou antye, men moun ki adrès yo pa antye tèt yo. 797 00:50:34,290 --> 00:50:37,330 Yo se adrès. Se tankou yon adrès lapòs olye. 798 00:50:37,330 --> 00:50:40,580 Se konsa, kounye a nou bezwen jis bay tèt mwen yon ti kras plis detay sou ekran an. 799 00:50:40,580 --> 00:50:43,250 Sa a se memwa òdinatè mwen an kòm li te gen tout jou. 800 00:50:43,250 --> 00:50:45,120 Koulye a, nou bezwen kèk abitrè numerotasyon pwojè. 801 00:50:45,120 --> 00:50:50,580 Se konsa, kite yo jis di, jis pa chans, ke sa a se adrès memwa 123, 124. 802 00:50:50,580 --> 00:50:55,660 Kite yo jis di sa a se 125, sa a se 126, ak pou fè, men sa a totalman abitrè. 803 00:50:55,660 --> 00:50:58,590 Nou jis bezwen kèk konplo Genyen nan memwa mwen. 804 00:50:58,590 --> 00:51:04,030 Se konsa, kounye a lè mwen aktyèlman pase nan x ak y, mwen pa pwal yo pase nan x ak y; 805 00:51:04,030 --> 00:51:08,400 Mwen pral pase nan adrès lapòs la, se konsa pale, nan x ak y 806 00:51:08,400 --> 00:51:11,870 pou ke sa ki vin isit la ak ki estoke isit la se pa 1 ak 2, 807 00:51:11,870 --> 00:51:16,030 Men, si ou kapab wè tèks ti m 'yo, sa ki vin pase nan isit la ak isit la? 808 00:51:16,030 --> 00:51:23,340 [Fèbl repons elèv] >> Egzakteman. 123 vin mete isit la ak 124 vin mete isit la. 809 00:51:23,340 --> 00:51:28,910 >> Koulye a, paske mwen te itilize zetwal la nan fason sa a liy moute isit la trè premye nan tèt, 810 00:51:28,910 --> 00:51:34,340 pwogram mwen jis konnen ke 123 ak 124, menm si yo ap evidamman nonm antye relatif 811 00:51:34,340 --> 00:51:40,160 ke nenpòt moun te ka remake, yo ta dwe kapab entèprete kòm adrès, adrès nimerik. 812 00:51:40,160 --> 00:51:43,250 Yo pa nan ak nan tèt yo antye, yo ap adrès, 813 00:51:43,250 --> 00:51:46,120 ak sa a, se paske mwen te fòmèlman mete zetwal yo a. 814 00:51:46,120 --> 00:51:51,360 Se konsa, kounye a nan liy premye, dezyèm, ak twazyèm mwen nan kòd aktyèl kisa k ap rive isit la? 815 00:51:51,360 --> 00:51:53,380 Se pou nou trase rès imaj la. 816 00:51:53,380 --> 00:51:56,980 Tan se jis tankou li te nan Lendi. Pa gen anyen espesyal sou tan. 817 00:51:56,980 --> 00:52:03,060 Li se jis yon lokal 32 Bits varyab, ak andedan nan ke mwen aparamman estoke valè a * yon. 818 00:52:03,060 --> 00:52:08,580 Koulye a, si mwen jis di tan = yon, sa ki ta mwen mete isit la? >> [Elèv] 123. 819 00:52:08,580 --> 00:52:10,370 123. Men se pa sèlman sa m ap fè a. 820 00:52:10,370 --> 00:52:13,670 M ap di tan = * yon. Vle di Star ale la. 821 00:52:13,670 --> 00:52:19,370 Se konsa, isit la se yon, 123. Kouman pou mwen ale a? Pran pòz tankou gen nan yon flèch. 822 00:52:19,370 --> 00:52:24,460 Oke, la li ye, 1. Se konsa, sa vin ki estoke nan tan, aparamman? Jis 1. 823 00:52:24,460 --> 00:52:29,620 Se konsa, nan lòt mo, tan se * yon, * yon mwayen ale nan adrès la ki se kounye a nan yon, 824 00:52:29,620 --> 00:52:31,320 ki se aparamman 123. 825 00:52:31,320 --> 00:52:33,910 >> Oke, isit la nou nan kote 123, mwen wè nimewo a 1, 826 00:52:33,910 --> 00:52:35,670 se konsa mwen pral mete nimewo a 1 a. 827 00:52:35,670 --> 00:52:39,020 Kounye a ki sa m 'fè nan liy 2, * yon * = b? 828 00:52:39,020 --> 00:52:44,570 Sa a se yon sèl yon ti kras plis patisipe paske koulye a sa ki se yon? Li nan 123. 829 00:52:44,570 --> 00:52:50,220 Se konsa, * yon se ki kote? Dwa kote mwen te la anvan. Se konsa, ale la. Oke. 830 00:52:50,220 --> 00:52:53,420 Koulye a,, alafen, ak Lè sa a, finalman sa a yo pral kòmanse fè sans, èspere ke, 831 00:52:53,420 --> 00:53:00,280 * B vle di sa ki nan b? 124. Se konsa, mwen bezwen ale a, ki se 2. 832 00:53:00,280 --> 00:53:03,430 Se konsa, sa mwen mete ki kote? 833 00:53:03,430 --> 00:53:10,100 2 ale nan isit la paske * b ale nan * yon. Se konsa, mwen pral fè sa. 834 00:53:10,100 --> 00:53:13,120 Epi ou ka deja wè, petèt, ke nou se tèlman pi pre 835 00:53:13,120 --> 00:53:17,710 rezoud sa a estipid, senp pwoblèm kòrèkteman la pou premye fwa 836 00:53:17,710 --> 00:53:20,920 paske kounye a nou toujou gen yon rekoleksyon de sa ki x te ye a, 837 00:53:20,920 --> 00:53:23,230 nou gen 2 kopi, Byensir, nan y, 838 00:53:23,230 --> 00:53:25,850 men liy 3 kounye a di * b. 839 00:53:25,850 --> 00:53:31,080 Se konsa, isit la nan b. * Vle di b ale la. Se konsa, kote se kote 124? 840 00:53:31,080 --> 00:53:35,560 Li nan aparamman isit la. Se konsa, sa mwen mete isit la? Li evidan, tan. 841 00:53:35,560 --> 00:53:39,600 Se konsa, koulye a, mwen fè sa. Se konsa, mwen gen 1 isit la ak 2 isit la. 842 00:53:39,600 --> 00:53:43,560 Epi, koulye a sa ki sou tout bagay sa yo, 123 a, 124 a, ak 1 a? 843 00:53:43,560 --> 00:53:47,910 Le pli vit ke retounen swap, sa a memwa se kòm bon jan pèdi 844 00:53:47,910 --> 00:53:51,070 paske le pli vit ke retounen swap, sistèm nan fonksyone 845 00:53:51,070 --> 00:53:54,190 se lib yo itilize ki memwa ankò nan lavni. 846 00:53:54,190 --> 00:53:58,870 Se sèlman memwa prensipal la nan fon an nan sa a chemine sa yo rele kole alantou. 847 00:53:58,870 --> 00:54:01,470 >> Se konsa, nou finalman gen kounye a yon vèsyon ap travay. 848 00:54:01,470 --> 00:54:06,310 Kite m 'ale nan swap.c, ak avi sa ki annapre yo. 849 00:54:06,310 --> 00:54:11,280 Nan tèt yo nan pwogram nan mwen te chanje pwototip m 'yo dwe int * yon ak int * b. 850 00:54:11,280 --> 00:54:15,000 Se konsa, bagay la sèlman mwen chanje a ale nan wouj, ki te move, yo vèt, ki se bon, 851 00:54:15,000 --> 00:54:17,350 se mwen te ajoute sa yo zetwal jodi a. 852 00:54:17,350 --> 00:54:21,520 Men, Lè sa a, desann isit la nan boukante tèt li mwen te gen a kapab bay kopi, keratin ki sa ki te jis sou glise la. 853 00:54:21,520 --> 00:54:24,140 Mwen gen yon etwal isit la, zetwal isit la - ki matche ak pwototip la - 854 00:54:24,140 --> 00:54:27,930 ak Lè sa a, tout bagay sa yo kounye a gen zetwal eksepte pou tan 855 00:54:27,930 --> 00:54:30,680 paske yo sèvi ak yon varyab tanporè, pa gen anyen nouvo la. 856 00:54:30,680 --> 00:54:33,040 Mwen te jis bezwen tanporè depo pou yon int. 857 00:54:33,040 --> 00:54:34,820 Se konsa, nou pa bezwen yon etwal la. 858 00:54:34,820 --> 00:54:39,310 Nou jis bezwen zetwal la pou nou ka travèse sa a sòt de fwontyè abitrè 859 00:54:39,310 --> 00:54:42,900 ant 2 sa yo ankadreman nan memwa òdinatè mwen an. 860 00:54:42,900 --> 00:54:45,630 Men, yon sèl bagay dènye gen chanje, epi ou ka gen antrevwar li deja. 861 00:54:45,630 --> 00:54:48,810 Ki lòt liy se evidamman diferan kounye a? >> [Elèv] & x. 862 00:54:48,810 --> 00:54:53,270 >> Yeah, se konsa 25 se liy ki sot pase a nan kòd mwen bezwen chanje pou sa a nan travay. 863 00:54:53,270 --> 00:54:58,360 Yon semèn Anons sa pibliye depi e menm nan Lendi liy 25 gade tankou sa a, boukante x ak y, 864 00:54:58,360 --> 00:55:02,020 ak sa a te jis kase paske si w di swap (x, y) 865 00:55:02,020 --> 00:55:05,660 ou bay kopi x ak y boukante, lè sa a li nan fè bagay li yo, 866 00:55:05,660 --> 00:55:09,080 men ou pa janm ap aktyèlman chanje x ak y tèt li. 867 00:55:09,080 --> 00:55:12,880 Se konsa, menm si ou pa janm te wè sa a karaktè anvan ak Comercial a nan kòd, 868 00:55:12,880 --> 00:55:15,860 jis pran yon devine. Ki sa ki comercial a fè sa, aparamman? 869 00:55:15,860 --> 00:55:17,890 [Elèv] Takes adrès la. >> Takes adrès la. 870 00:55:17,890 --> 00:55:21,160 Se konsa, comercial a ap di, ban m 'adrès ki nan x. 871 00:55:21,160 --> 00:55:25,590 Ki moun ki konnen kote li ye? Li k ap pase yo 123. Mwen pa pran swen. Jis ba m 'adrès ki nan x. 872 00:55:25,590 --> 00:55:28,340 & Y vle di, ban m 'adrès ki nan y. 873 00:55:28,340 --> 00:55:34,450 Ak nan pwen sa a istwa a se parfe ki konsistan avèk foto a nou te yon ti moman de sa. 874 00:55:34,450 --> 00:55:38,310 >> Se konsa, mwen pral admèt endikasyon, sètènman pou m 'lè mwen te kòmanse premye aprann sa a, 875 00:55:38,310 --> 00:55:40,570 yo te definitivman youn nan bagay ki pi di vlope lide m 'alantou. 876 00:55:40,570 --> 00:55:43,760 Men mwen reyalize, espesyalman lè nou kenbe jwe ak sa yo kalite bagay sa yo, 877 00:55:43,760 --> 00:55:48,030 si ou kraze li desann nan sa yo sòt Super senp nan entelektyèlman entérésan pwoblèm 878 00:55:48,030 --> 00:55:52,270 nan jis deplase nimewo alantou li, repons lan nan yon anpil nan konfizyon ak endikasyon 879 00:55:52,270 --> 00:55:56,590 vrèman kapab ap sòti de sa yo mekanik anpil debaz. 880 00:55:56,590 --> 00:55:59,070 Isit la nan yon adrès. Ale la ansanm ak etwal la. 881 00:55:59,070 --> 00:56:03,830 Oswa Kontrèman, isit la nan yon comercial. Figi konnen ki sa ki adrès la aktyèlman se. 882 00:56:03,830 --> 00:56:06,270 Tout dwa. 883 00:56:06,270 --> 00:56:09,000 Se konsa, ki kote tout bagay sa yo memwa vini soti nan? 884 00:56:09,000 --> 00:56:12,360 Nou te trase foto sa a yon koup de fwa, e mwen kenbe prometteur nou pral tounen vin jwenn li, 885 00:56:12,360 --> 00:56:14,920 men isit la se reprezantasyon an nan memwa òdinatè w lan an 886 00:56:14,920 --> 00:56:17,420 sa a, se yon ti kras plis make pase tablo nou an isit la se. 887 00:56:17,420 --> 00:56:21,590 Segman nan tèks nan tèt reprezante sa ki gen rapò ak pwogram ou an? 888 00:56:21,590 --> 00:56:26,090 [Fèbl repons elèv] >> Padon? Repete nou sa ankò. 889 00:56:26,090 --> 00:56:28,660 [Elèv] Pwogram nan vrè. >> Pwogram aktyèl la. 890 00:56:28,660 --> 00:56:32,430 >> Se konsa, rezone nan 0s ak 1S ke ou te konpile apre ekri C kòd ak Lè sa a, kouri 891 00:56:32,430 --> 00:56:35,910 ak génération fini 0s ak 1S moute ap resevwa rantre gen nan memwa 892 00:56:35,910 --> 00:56:38,570 paske lè ou klike sou doub yon icon sou Mac ou a oswa PC 893 00:56:38,570 --> 00:56:43,010 oswa kouri nan yon lòd tankou Mario nan èd memwa ou a, 0s ou ak 1S soti nan ki gen kapasite 894 00:56:43,010 --> 00:56:45,700 jwenn chaje nan memwa pou ke òdinatè a ka manipile yo 895 00:56:45,700 --> 00:56:47,540 ak pann yo pi vit. 896 00:56:47,540 --> 00:56:50,880 Se konsa, inisyalizèd done ak done uninitialized, nou pa pral pale anpil sou sa yo, 897 00:56:50,880 --> 00:56:52,420 Men, moun yo se jis varyab mondyal. 898 00:56:52,420 --> 00:56:54,710 Inisyalizèd vle di varyab mondyal ke ou te bay valè; 899 00:56:54,710 --> 00:56:59,300 uninitialized vle di varyab mondyal ke ou pa t 'ankò bay valè yo. 900 00:56:59,300 --> 00:57:01,900 Lè sa a, gen nan sa yo varyab anviwònman ki m ap konplètman balanse men m 'nan, 901 00:57:01,900 --> 00:57:04,860 men yo la ak ki magazen bagay sa yo tankou non itilizatè ou an 902 00:57:04,860 --> 00:57:08,090 ak lòt sòt de pi ba detay nivo. 903 00:57:08,090 --> 00:57:12,880 Men, moso vyann yo juiciest nan layout memwa ou a se bagay sa yo rele pil la ak pil wòch la. 904 00:57:12,880 --> 00:57:17,470 Chemine a ankò, yo dwe klè, se memwa a ki nan itilize nenpòt lè fonksyon yo rele yo, 905 00:57:17,470 --> 00:57:19,710 chak fwa gen varyab lokal 906 00:57:19,710 --> 00:57:22,120 ak nenpòt lè gen yo paramèt ke yo te pase alantou. 907 00:57:22,120 --> 00:57:24,490 Nan tout sa k ap pase nan chemine a. 908 00:57:24,490 --> 00:57:29,570 Pil wòch la nou pa te pale sou yo, men pran yon devine ki itilize pil wòch la. 909 00:57:31,120 --> 00:57:32,690 Jis yon moso diferan nan memwa. 910 00:57:32,690 --> 00:57:36,620 Li k ap pase nan yo dwe desine isit la nan tèt la, men sa a yon konvansyon abitrè imaje. 911 00:57:36,620 --> 00:57:41,670 Ki moun ki la aparamman te lè l sèvi avèk memwa soti nan pil wòch la pou semèn? 912 00:57:41,670 --> 00:57:44,830 Li nan teknikman ou men endirèkteman. >> [Elèv] GetString. 913 00:57:44,830 --> 00:57:47,950 GetString ak malok. Se konsa, isit la nan diferans lan fondalnatal. 914 00:57:47,950 --> 00:57:51,300 >> Ou konnen pou semèn ki sot pase yo kèk ki si ou bezwen memwa, jis deklare yon varyab. 915 00:57:51,300 --> 00:57:54,560 Si ou bezwen anpil bagay nan memwa, deklare yon etalaj dwa andedan nan fonksyon ou an. 916 00:57:54,560 --> 00:57:59,620 Men, pwoblèm lan nou te kenbe fè fas a se si ou deklare varyab lokalman andedan nan fonksyon yo, 917 00:57:59,620 --> 00:58:05,340 le pli vit ke retounen yo fonksyon, ki sa ki k ap pase nan memwa a, ak moun ki varyab? 918 00:58:05,340 --> 00:58:09,620 Jis sòt de li a pa pou ou, dwa? Li jis disparèt sòt de teori. 919 00:58:09,620 --> 00:58:13,950 Li nan toujou fizikman la, evidamman, men li la pa dwat ou sèvi avèk yo. 920 00:58:13,950 --> 00:58:17,160 Sa a se evidamman pwoblèm si ou vle ekri fonksyon nan lavi 921 00:58:17,160 --> 00:58:20,440 ki aktyèlman asiyen memwa ak pa bay li tounen touswit. 922 00:58:20,440 --> 00:58:24,180 Ka nan pwen: Bi GetString a nan lavi se pa gen okenn lide nan avanse 923 00:58:24,180 --> 00:58:26,390 ki jan gwo nan yon fisèl mwen pral tape nan klavye a, 924 00:58:26,390 --> 00:58:30,390 Men, li la te resevwa pou kapab asiyen memwa yo kenbe David oswa alo 925 00:58:30,390 --> 00:58:32,860 oswa yon redaksyon antye ki ta ka itilizatè a te tape pous 926 00:58:32,860 --> 00:58:35,280 Se konsa, GetString ki te lè l sèvi avèk malok. 927 00:58:35,280 --> 00:58:38,910 Malok Se poutèt sa yo dwe lè l sèvi avèk pa chemine a; 928 00:58:38,910 --> 00:58:40,770 olye li a lè l sèvi avèk bagay sa yo rele pil wòch la. 929 00:58:40,770 --> 00:58:44,430 Pa gen anyen diferan sou memwa a. Li pa pi vit oswa pi dousman oswa yon bagay tankou sa. 930 00:58:44,430 --> 00:58:46,570 Se jis fizikman nan yon kote diferan. 931 00:58:46,570 --> 00:58:50,120 >> Men, règ la se ke memwa a ki nan resevwa lajan sou pil wòch la 932 00:58:50,120 --> 00:58:56,180 pa janm yo pral wete nan men ou jiskaske ou rele - pran yon devine - gratis. 933 00:58:56,180 --> 00:59:00,510 Nan kontras, nenpòt memwa ou mande pou ou sou chemine a pa jis deklare yon etalaj 934 00:59:00,510 --> 00:59:03,320 oswa deklare yon varyab tankou nou te toujou ap fè pou de semèn, 935 00:59:03,320 --> 00:59:05,640 ki pa default fini moute sou pil la. 936 00:59:05,640 --> 00:59:09,550 Ak ki travay gwo 90% de tan an, men sou sa yo okazyon rar 937 00:59:09,550 --> 00:59:12,470 kote ou vle asiyen memwa epi kenbe l 'otou, 938 00:59:12,470 --> 00:59:14,730 Lè sa a, ou bezwen sèvi ak yon fonksyon tankou malok. 939 00:59:14,730 --> 00:59:19,370 Oubyen èske nou te itilize yon fonksyon tankou GetString, ki an vire itilize malok. 940 00:59:19,370 --> 00:59:23,300 Ann gade pou wè ki kote sa a ta ka dekonpoze ak Lè sa a, pran yon gade vit nan Binky. 941 00:59:23,300 --> 00:59:25,820 Nou ap tounen ak sa yo ki nan tan kap vini an. 942 00:59:25,820 --> 00:59:29,270 Isit la se yon pwogram super senp ki nan 2 liy ki premye fè sa? 943 00:59:29,270 --> 00:59:33,460 Nan lang angle, ki sa ki sa yo premye 2 liy nan kòd fè andedan nan prensipal yo? 944 00:59:33,460 --> 00:59:35,600 [Fèbl repons elèv] 945 00:59:35,600 --> 00:59:37,880 Atansyon. Li pa ban m 'adrès ki nan x oswa y. 946 00:59:37,880 --> 00:59:41,840 [Elèv] Bay pwent antye. >> Bon. Ban m '2 pwent nonm antye relatif. 947 00:59:41,840 --> 00:59:45,130 Nan lòt mo, ban m '2 sègman nan memwa ke mwen kenbe desen jodi a, 948 00:59:45,130 --> 00:59:46,950 menm si mwen efase li kounye a, menm jan kare. 949 00:59:46,950 --> 00:59:50,000 Ban m '2 sègman nan memwa, yon sèl rele x, yon sèl rele y - 950 00:59:50,000 --> 00:59:54,320 pi bonè mwen te rele yo a epi t - ak sa ki ki kalite ki ti moso nan memwa? 951 00:59:54,320 --> 00:59:57,160 Li pral nan magazen yon adrès. 952 00:59:57,160 --> 00:59:59,110 Li nan nan * int kalite. 953 00:59:59,110 --> 01:00:01,630 >> Se konsa, adrès la nan yon int pral evantyèlman ap viv nan x, 954 01:00:01,630 --> 01:00:03,860 adrès ki nan yon int pral evantyèlman ap viv nan y, 955 01:00:03,860 --> 01:00:08,460 men okòmansman, Ki sa ki andedan nan x ak y? Ki moun ki konnen? Fatra valè. 956 01:00:08,460 --> 01:00:10,180 Li te gen anyen fè avèk endikasyon. 957 01:00:10,180 --> 01:00:12,720 Si nou pa te mete yon bagay la, moun ki konnen sa ki nan aktyèlman genyen? 958 01:00:12,720 --> 01:00:18,950 Koulye a, x. Kisa k ap pase isit la? Sa a se legi kounye a paske x ki se yon konsèy. Se yon * int. 959 01:00:18,950 --> 01:00:21,870 Se konsa, sa vle di mwen ka mete nan x adrès la nan kèk ti moso nan memwa. 960 01:00:21,870 --> 01:00:25,120 Ki sa ki malok retounen? Pafè, li retounen adrès, 961 01:00:25,120 --> 01:00:28,510 adrès ki nan multiple nan premye nan yon moso antye nan memwa. 962 01:00:28,510 --> 01:00:31,140 Konbyen bytes sa a se aparamman allocation, pou egzanp, nan aparèy la? 963 01:00:31,140 --> 01:00:33,510 Ki sa ki nan gwosè a nan yon int? 4. 964 01:00:33,510 --> 01:00:36,600 Si ou panse tounen nan semèn 1 an, li pa super enpòtan nan toujou sonje ke, 965 01:00:36,600 --> 01:00:38,870 men nan ka sa a li nan itil yo konnen, 4 bytes. 966 01:00:38,870 --> 01:00:41,770 Se konsa, sa a se allocation sou 4 bytes yo pil wòch 967 01:00:41,770 --> 01:00:46,110 epi li retounen adrès la nan yon sèl nan premye m 'abitrèman. 968 01:00:46,110 --> 01:00:47,700 Koulye a, ki sa ki x ap fè? 969 01:00:47,700 --> 01:00:52,200 A * x = 42 ap fè ki sa? 970 01:00:52,200 --> 01:00:57,150 Si nan pwen sa a nan istwa a nou gen x, ki sanble sa a ak kèk valè fatra, 971 01:00:57,150 --> 01:01:04,120 sa a se kounye a y ak kèk valè fatra, kounye a nan liyn 3 Mwen te afekte 4 bytes. 972 01:01:04,120 --> 01:01:06,950 Pòtre sa a esansyèlman sanble tankou sa a. 973 01:01:06,950 --> 01:01:12,010 Oswa plis espesyalman, si sa a se adrès abitrè 123, sa a se ki sa istwa nou an kounye a sanble. 974 01:01:12,010 --> 01:01:23,940 * X = 42 kounye a vle di ki sa? Sa vle di ale nan 123 nan adrès ak mete nimewo a 42 la. 975 01:01:23,940 --> 01:01:26,220 Mwen pa bezwen trase liy sa yo paske nou pa ap fè strings. 976 01:01:26,220 --> 01:01:29,480 >> Mwen te dwe fè jis ekri li tankou sa a, ak jis pou dedomajman pou demonstrasyon an, 977 01:01:29,480 --> 01:01:33,240 42 kòm yon kalite int nan pran moute yon anpil nan espas, 4 bytes. 978 01:01:33,240 --> 01:01:35,960 Se konsa, se sa ki te pase a la, men gen yon pwoblèm kounye a. 979 01:01:35,960 --> 01:01:40,580 * Y = 13. Kisa ki pral rive isit la? 980 01:01:40,580 --> 01:01:46,470 Pwoblèm lan se * y nan mond senplifye nou jis vle di ale nan adrès ki nan y. 981 01:01:46,470 --> 01:01:48,590 Ki sa ki nan nan y? Li nan kèk valè fatra. 982 01:01:48,590 --> 01:01:53,150 Se konsa, kite a sipoze ke ke valè fatra se 5551212, yon bagay fou tankou sa. 983 01:01:53,150 --> 01:01:56,750 * Vle di y ale nan adrese 5551212. 984 01:01:56,750 --> 01:02:00,450 Sa se renmen sou isit la. Li pa egziste, pou egzanp. 985 01:02:00,450 --> 01:02:05,310 Se konsa, * y ap vin 13 vle di mwen ap eseye trase 13 isit la. Li pa egziste. 986 01:02:05,310 --> 01:02:08,790 Mwen te depase segman an nan tablo a. Ki sa mwen ka resevwa? 987 01:02:08,790 --> 01:02:14,930 Sa skre segmentation mesaj fòt paske mwen m 'ap eseye mete nan memwa 988 01:02:14,930 --> 01:02:19,470 yon valè tankou 13 nan yon kote ki pa egziste. 989 01:02:19,470 --> 01:02:23,900 Rès la nan pwogram nan ta ka travay oke, men yo jiska pwen sa a li pa garanti. 990 01:02:23,900 --> 01:02:25,350 Se konsa, kite a eseye di istwa sa a. 991 01:02:25,350 --> 01:02:27,830 Nou pral tounen vin jwenn ke yon fwa nou te pale sou Egzagòn. 992 01:02:27,830 --> 01:02:30,290 Se pou nou tounen nan sa a ak sa a fini avèk bagay sa yo rele Binky, 993 01:02:30,290 --> 01:02:33,710 ki rantre se yon pwofesè Stanford chita nan kay jwe ak Claymation, 994 01:02:33,710 --> 01:02:36,380 di istwa a nan egzakteman pwogram ki menm. 995 01:02:36,380 --> 01:02:40,580 Li nan jis sou 3 minit nan longè. Isit la nou gen Binky. 996 01:02:40,580 --> 01:02:45,030 [Gason oratè sou videyo] Hey Binky, reveye. Li lè pou plezi konsèy. 997 01:02:45,030 --> 01:02:50,080 [Binky] Ki sa ki nan sa? Aprann sou pwent? Oh, chokola! 998 01:02:50,080 --> 01:02:53,700 [Gason oratè] Bon, jwenn te kòmanse, mwen devine nou pral bezwen yon endikasyon koup. 999 01:02:53,700 --> 01:02:57,890 >> [Binky] Okay. Kòd sa a repati 2 endikasyon ki ka pwente sou nonm antye relatif. 1000 01:02:57,890 --> 01:03:02,220 [Gason oratè] Okay. Oke, mwen wè pwent yo 2 yo, men yo pa sanble yo dwe montre anyen. 1001 01:03:02,220 --> 01:03:05,550 [Binky] Sa a dwat. Okòmansman, endikasyon pa lonje dwèt sou anyen. 1002 01:03:05,550 --> 01:03:09,270 Bagay yo te lonje dwèt sou yo rele pointees, ak mete yo moute se yon etap ki apa a. 1003 01:03:09,270 --> 01:03:12,330 [Gason oratè] Oh, dwa, dwa. Mwen te konnen ke. Pointees yo se separe. 1004 01:03:12,330 --> 01:03:15,630 Er, Se konsa, kouman ou asiyen yon pointee? 1005 01:03:15,630 --> 01:03:21,510 [Binky] Okay. Kòd sa a repati yon pointee nouvo nonb antye relatif, ak nan pati sa a kouche x nan pwen li. 1006 01:03:21,510 --> 01:03:23,500 [Gason oratè] Hey, ki sanble pi bon. 1007 01:03:23,500 --> 01:03:26,030 Se konsa, fè li fè yon bagay. >> [Binky] Okay. 1008 01:03:26,030 --> 01:03:30,300 M'a dèreferans x la konsèy nan magazen nimewo a 42 nan pointee li yo. 1009 01:03:30,300 --> 01:03:34,410 Pou sa jwe fent mwen pral bezwen ralonj majik m 'lan nan dereferencing. 1010 01:03:34,410 --> 01:03:38,610 [Gason oratè] ralonj majik ou nan dereferencing? Sa a se gwo. 1011 01:03:38,610 --> 01:03:44,230 [Binky] Sa a se sa kòd la sanble. Mwen pral jis mete kanpe nimewo a ak ... [Eklate son] 1012 01:03:44,230 --> 01:03:46,100 [Gason oratè] Hey gade, gen li ale. 1013 01:03:46,100 --> 01:03:50,990 Se konsa, fè yon dèreferans sou x swiv flèch la gen aksè a pointee li yo, 1014 01:03:50,990 --> 01:03:53,230 nan ka sa a nan magazen 42 an la. 1015 01:03:53,230 --> 01:03:57,630 Hey, eseye lè l sèvi avèk li nan magazen nimewo a 13 a konsèy nan lòt, y. 1016 01:03:57,630 --> 01:04:03,250 [Binky] Okay. Mwen pral jis ale sou isit la yo y epi pou yo jwenn nimewo a 13 mete kanpe 1017 01:04:03,250 --> 01:04:08,360 ak Lè sa a, pran bagèt a nan dereferencing ak jis ... [Buz son] ola! 1018 01:04:08,360 --> 01:04:10,980 [Gason oratè] Oh hey, ki pa t 'travay. 1019 01:04:10,980 --> 01:04:14,870 >> Di, Binky, mwen pa kwè dereferencing y se yon bon lide 1020 01:04:14,870 --> 01:04:17,880 paske mete kanpe pointee la se yon etap separe 1021 01:04:17,880 --> 01:04:19,850 e mwen pa panse ke nou tout tan te fè li. 1022 01:04:19,850 --> 01:04:21,770 [Binky] O o, bon pwen. 1023 01:04:21,770 --> 01:04:26,640 [Gason oratè] Yeah. Nou resevwa lajan y la konsèy men nou pa janm mete l 'nan pwen nan yon pointee. 1024 01:04:26,640 --> 01:04:28,780 [Binky] O o, trè vijilan. 1025 01:04:28,780 --> 01:04:30,690 [Gason oratè] Hey, w ap chèche bon la, Binky. 1026 01:04:30,690 --> 01:04:34,160 Èske ou ka fikse li pou ke pwen y pointee a menm jan ak x? >> [Binky] Sure. 1027 01:04:34,160 --> 01:04:37,100 Mwen pral sèvi ak ralonj majik m 'lan nan plasman konsèy. 1028 01:04:37,100 --> 01:04:39,070 [Gason oratè] se ke pral gen yon pwoblèm tankou ye anvan an? 1029 01:04:39,070 --> 01:04:40,840 [Binky] Non, sa a pa manyen pointees yo. 1030 01:04:40,840 --> 01:04:44,780 Li jis chanje yon sèl konsèy nan pwen menm bagay la kòm yon lòt. [Eklate son] 1031 01:04:44,780 --> 01:04:48,570 [Gason oratè] Oh, mwen wè. Koulye a, y pwen nan plas la menm jan ak x. 1032 01:04:48,570 --> 01:04:51,140 Se konsa, rete tann. Koulye a, y ap fiks yo. Li te gen yon pointee. 1033 01:04:51,140 --> 01:04:54,520 Se konsa, ou ka eseye ralonj la nan dereferencing ankò nan voye sou la 13. 1034 01:04:54,520 --> 01:04:58,130 [Binky] en, oke. Isit la ale. [Eklate son] 1035 01:04:58,130 --> 01:05:01,250 [Gason oratè] Hey, gade nan sa. Koulye a, dereferencing travay sou y. 1036 01:05:01,250 --> 01:05:05,200 Epi paske endikasyon yo ap pataje yon sèl pointee yo, yo tou de wè 13 la. 1037 01:05:05,200 --> 01:05:06,910 [Binky] Yeah, pataje. Kèlkeswa. 1038 01:05:06,910 --> 01:05:08,880 >> Se konsa, nou pral chanje kote kounye a? 1039 01:05:08,880 --> 01:05:11,420 [Gason oratè] Oh gade, nou ap soti nan tan. >> [Binky] Men, - 1040 01:05:11,420 --> 01:05:13,880 [Gason oratè] Senpleman sonje règleman yo konsèy 3. 1041 01:05:13,880 --> 01:05:18,630 Nimewo 1, estrikti debaz la se ke ou gen yon konsèy epi li lonje dwèt sou nan yon pointee. 1042 01:05:18,630 --> 01:05:23,120 Men, konsèy la ak pointee yo apa, ak erè kòmen an se yo mete kanpe yon konsèy 1043 01:05:23,120 --> 01:05:25,680 men bliye bay li yon pointee. 1044 01:05:25,680 --> 01:05:29,580 Nimewo 2, konsèy dereferencing kòmanse nan konsèy la ak swiv flèch li yo sou 1045 01:05:29,580 --> 01:05:31,060 gen aksè a pointee li yo. 1046 01:05:31,060 --> 01:05:34,340 Kòm nou tout konnen, sa a travay sèlman si gen yon pointee, 1047 01:05:34,340 --> 01:05:36,460 ki kalite vin tounen nan kòmande sou nimewo 1. 1048 01:05:36,460 --> 01:05:39,870 Nimewo 3, plasman nan konsèy pran youn konsèy ak chanje li 1049 01:05:39,870 --> 01:05:42,390 nan pwen pointee a menm jan ak yon lòt konsèy. 1050 01:05:42,390 --> 01:05:45,890 Se konsa, apre yo ba yo a, pwent yo 2 yo ap lonje dwèt sou pointee a menm. 1051 01:05:45,890 --> 01:05:47,800 Pafwa ki yo rele pataje. 1052 01:05:47,800 --> 01:05:50,910 >> Epi sa a, tout gen nan li vrèman. Bay-bay kounye a. 1053 01:05:50,910 --> 01:05:55,840 Sa a se Binky. Sa a se CS50. Nou pral wè ou an semèn pwochèn. [Aplodisman] 1054 01:05:55,840 --> 01:05:59,000 >> [CS50.TV]