1 00:00:00,000 --> 00:00:11,320 2 00:00:11,320 --> 00:00:13,260 >> DAVID MALAN: Hello, eta ongietorria itzuli CS50. 3 00:00:13,260 --> 00:00:14,860 Beraz, aste honetan lau amaiera da. 4 00:00:14,860 --> 00:00:16,680 Bakar lehenengo iragarkia. 5 00:00:16,680 --> 00:00:19,600 Deiturikoak bosgarren Astelehena, beraz, ez da datozen datozen astelehen honetan. 6 00:00:19,600 --> 00:00:22,800 Aukera hau aldatu da SAT / UNSAT kalifikazioa eskutitz bat, edo 7 00:00:22,800 --> 00:00:24,130 gutun kalifikazioa SAT / UNSAT. 8 00:00:24,130 --> 00:00:27,130 Annoyingly, prozesua ez duela eskatzen sinadura, izan ere, bete behar duzu 9 00:00:27,130 --> 00:00:28,770 horiek Gehitu / jaitsiera pink forma bat da. 10 00:00:28,770 --> 00:00:31,680 >> Teknikoki, SAT du / UNSAT delako bertsioa eta gutun kalifikazioa bertsioa 11 00:00:31,680 --> 00:00:33,320 izan desberdin katalogoa zenbakiak. 12 00:00:33,320 --> 00:00:34,240 Baina big deal ez. 13 00:00:34,240 --> 00:00:36,620 Just etorri nirekin edo Rob edo edozein puntutan Lauren. 14 00:00:36,620 --> 00:00:39,550 Edo posta elektronikoz gurekin ez baduzu, eduki mota tramiteak, gaur egun behar duzu, eta guk 15 00:00:39,550 --> 00:00:43,410 duzula hartzen laguntzeko izango da duten zainketa astelehena baino lehen. 16 00:00:43,410 --> 00:00:45,780 >> Ondo da, beraz, gaur - 17 00:00:45,780 --> 00:00:47,630 egia esan, ez dago oihartzuna apur bat. 18 00:00:47,630 --> 00:00:51,070 Ahal dugun tonu me down pixka bat? 19 00:00:51,070 --> 00:00:51,730 Ados. 20 00:00:51,730 --> 00:00:54,850 Beraz, gaur egun, gai bat aurkezten dugu erakusle gisa ezagutzen da. 21 00:00:54,850 --> 00:00:57,770 Aitortu eta hori da bat dut konplexuagoak egiteko gai garela joera 22 00:00:57,770 --> 00:01:00,960 klase honetan estaltzeko, edo benetan edozein sarrera ikastaroa erabiltzen duen C. 23 00:01:00,960 --> 00:01:05,510 >> Baina nire hitza da, bereziki, zure burua pixka bat gehiago tolestuta sentitzen bada 24 00:01:05,510 --> 00:01:07,100 gaur egun eta asteetan etorri. 25 00:01:07,100 --> 00:01:10,340 Ez da duzun ordezkaria honetan okerrago esan nahi du, besterik gabe, edozein dela 26 00:01:10,340 --> 00:01:13,360 bereziki sofistikatua gai bat da agintzen dudala, aste batzuk 27 00:01:13,360 --> 00:01:17,610 Hori dela eta, guztiak ere harrigarria badirudi egingo atzera begirako erraza. 28 00:01:17,610 --> 00:01:18,720 >> Gaur egun, oraindik ere gogoratzen dut. 29 00:01:18,720 --> 00:01:22,190 Elliott jantokia nintzen eserita, hurrengo nire TF Nishat Mehta eserita, 30 00:01:22,190 --> 00:01:24,070 izan zen Elliott etxe bizi. 31 00:01:24,070 --> 00:01:26,340 Eta arrazoi batzuk, honetan Gaia besterik klik egiten duenean. 32 00:01:26,340 --> 00:01:29,430 Zein da ere borrokatu dut esan nahi zenbat denbora pixka bat da, baina ez dut 33 00:01:29,430 --> 00:01:33,610 nire onena egingo ekiditeko, hala nola, edozein laguntzeko Gai bat, azken finean, hori da borroka 34 00:01:33,610 --> 00:01:34,580 oso indartsua da. 35 00:01:34,580 --> 00:01:37,350 >> Izan ere, gai bat eztabaidatu dugu asteak etorri da hori 36 00:01:37,350 --> 00:01:41,130 segurtasun-, eta, nola ez duzu ustiatzeko makinak modutan 37 00:01:41,130 --> 00:01:42,320 ez ziren nahi du. 38 00:01:42,320 --> 00:01:45,850 Eta ustiategi horiek dira normalean bugs, akats baten emaitza dugu 39 00:01:45,850 --> 00:01:49,740 pertsona batzuk ez ulertzeko arabera egin azpiko ezarpen 40 00:01:49,740 --> 00:01:52,250 xehetasun programen bidez egiten dira. 41 00:01:52,250 --> 00:01:55,410 >> Azken hau egiteko gehiago, erabiltzaileak guztiak badirudi errespetatzen, 10 jokatu nuela pentsatu nuen 42 00:01:55,410 --> 00:01:59,680 apur bat claymation aurrerapena bigarren Kopuru Binky izendatu zuten ekarri 43 00:01:59,680 --> 00:02:03,020 gure lagun batek bizitzan Stanford at, irakasle Nick Parlante. 44 00:02:03,020 --> 00:02:06,753 Beraz, aukera ematen dizu ematen dit hau Binky du aurkezpenik hemen. 45 00:02:06,753 --> 00:02:09,520 >> [Bideo-erreprodukzioa] 46 00:02:09,520 --> 00:02:10,380 >> -Aizu, Binky. 47 00:02:10,380 --> 00:02:11,050 Esnatu. 48 00:02:11,050 --> 00:02:13,610 Erakuslea pasatzeko garaia da. 49 00:02:13,610 --> 00:02:14,741 >> -Zer da hori? 50 00:02:14,741 --> 00:02:16,440 Erakusleak buruz ikasi? 51 00:02:16,440 --> 00:02:17,928 Oh, goodie. 52 00:02:17,928 --> 00:02:18,920 >> [END bideo-erreprodukzioa] 53 00:02:18,920 --> 00:02:20,670 >> DAVID MALAN: Hau da Stanford informatika. 54 00:02:20,670 --> 00:02:23,194 Modu horretan etorri. 55 00:02:23,194 --> 00:02:24,930 >> [Txaloak] 56 00:02:24,930 --> 00:02:26,660 >> DAVID MALAN: Sentitzen dut, Nick. 57 00:02:26,660 --> 00:02:30,680 >> Beraz, gogora ekarri duen azken orduan amaitu dugu Benetan zirraragarria cliffhanger honetan 58 00:02:30,680 --> 00:02:32,960 Horren bidez, funtzio hau besterik ez zuen funtzionatzen. 59 00:02:32,960 --> 00:02:34,960 Gutxienez intuizioa, eta sentitu lan egin behar da, adibidez. 60 00:02:34,960 --> 00:02:37,600 Besterik gabe, balioak trukea bi zenbaki osoen. 61 00:02:37,600 --> 00:02:40,915 Baina gogoratzen noiz inprimatutako dugu hori urtean, nagusia eta balioak jatorrizko 62 00:02:40,915 --> 00:02:44,210 bi, oraindik ere zituzten eta bi, eta ez bi eta bat. 63 00:02:44,210 --> 00:02:46,070 >> Hargatik aldatzeko benetan me gehiagoko tresnari. 64 00:02:46,070 --> 00:02:50,180 Eta idatzi dut kodea hezur pixka batean aurrera hemen, non x dut aldarrikatzen duten 65 00:02:50,180 --> 00:02:52,500 1 izango da, eta 2 izango da. 66 00:02:52,500 --> 00:02:54,810 Inprimatu ondoren, dut, bai beren Honekin inprimatu f balioak. 67 00:02:54,810 --> 00:02:57,540 >> Erreklamatu ondoren, I behera hemen horiek aldatu behar dugu. 68 00:02:57,540 --> 00:03:00,800 Leku huts bat utzi dut hemen egiteko gaur egun bete besterik ez da une batean. 69 00:03:00,800 --> 00:03:03,380 Ondoren, erreklamatu noa dela bi aldagai dira trukatu. 70 00:03:03,380 --> 00:03:04,770 Ondoren, inprimatu dut itzazu berriro. 71 00:03:04,770 --> 00:03:07,090 Eta, beraz, espero dugu, 1 ikusi behar dut, 2. 72 00:03:07,090 --> 00:03:07,380 2, 1. 73 00:03:07,380 --> 00:03:09,830 Duten super simple da Helburua orain. 74 00:03:09,830 --> 00:03:12,430 >> Beraz, nola joaten gara trukea bi aldagai? 75 00:03:12,430 --> 00:03:17,220 Beno, bada, hemen proposatzen dut edalontziak horiek ordenagailu batean memoria irudikatzeko dezake. 76 00:03:17,220 --> 00:03:19,070 Batzuk ziztadak bat da, hau gutxi ziztadak bat da. 77 00:03:19,070 --> 00:03:23,260 Ezin izan boluntario dugu etorri eta nahastu gurekin trago batzuk, ezagutzen bada? 78 00:03:23,260 --> 00:03:23,920 Goazen gora. 79 00:03:23,920 --> 00:03:24,815 Zein da zure izena? 80 00:03:24,815 --> 00:03:25,260 >> Jess: Jess. 81 00:03:25,260 --> 00:03:25,690 >> DAVID MALAN: Jess? 82 00:03:25,690 --> 00:03:26,540 Gora etorri, Jess. 83 00:03:26,540 --> 00:03:29,180 Ez baduzu axola, jarri behar dugu Google duzun Glass beraz dugu 84 00:03:29,180 --> 00:03:30,430 betikotzeko honetan. 85 00:03:30,430 --> 00:03:32,800 86 00:03:32,800 --> 00:03:34,670 Ados, beira. 87 00:03:34,670 --> 00:03:37,250 Bideo bat grabatu. 88 00:03:37,250 --> 00:03:43,103 Eta OK, onak gara Jess joan hemen. 89 00:03:43,103 --> 00:03:43,810 Guztiak eskubidea. 90 00:03:43,810 --> 00:03:45,120 Niza zu ezagutzeaz. 91 00:03:45,120 --> 00:03:47,720 >> Beraz, zer egin dut, zer egin? - Ahal baduzu, bada, nahiko azkar - 92 00:03:47,720 --> 00:03:51,040 besterik ez pours gurekin laranja edalontzi erdi bat zukua eta esne edalontzi erdi bat, 93 00:03:51,040 --> 00:03:55,710 eraginkortasunez zenbakiak ordezkari 1 bat Kopako 2 eta beste kopa batean. 94 00:03:55,710 --> 00:04:01,380 95 00:04:01,380 --> 00:04:02,630 >> Hori ona metrajea izango. 96 00:04:02,630 --> 00:04:04,910 97 00:04:04,910 --> 00:04:05,860 >> Jess: Barkatu. 98 00:04:05,860 --> 00:04:06,330 >> DAVID MALAN: Ez, ez. 99 00:04:06,330 --> 00:04:08,703 Ados da. 100 00:04:08,703 --> 00:04:10,120 Niza. 101 00:04:10,120 --> 00:04:12,950 Ondo da, beraz, lau byte dugu laranja zukua merezi. 102 00:04:12,950 --> 00:04:14,460 Deitzen dugu bertan balioa 1. 103 00:04:14,460 --> 00:04:16,579 Orain, beste lau byte esne merezi. 104 00:04:16,579 --> 00:04:18,519 2 baloratzen deitu dira. 105 00:04:18,519 --> 00:04:20,440 X eta y, beraz, hurrenez hurren. 106 00:04:20,440 --> 00:04:23,450 >> Eskubidea, eta, beraz, orain esku zeregin bada - zuretzat, Jess, guztien aurrean 107 00:04:23,450 --> 00:04:24,270 zure ikaskideen - 108 00:04:24,270 --> 00:04:28,510 x eta y, hala nola balioak elkartruka nahi dugu zukua laranja 109 00:04:28,510 --> 00:04:32,070 beste kopa eta kopa honetan esnea, nola dezakezu - benetan egin aurretik 110 00:04:32,070 --> 00:04:34,020 da - hau egiten joan? 111 00:04:34,020 --> 00:04:35,220 >> Ados, jakintsua erabakia. 112 00:04:35,220 --> 00:04:36,340 Beraz, pixka bat memoria gehiago behar duzu. 113 00:04:36,340 --> 00:04:38,190 Hargatik esleitu aldi baterako kopa, duzu bada. 114 00:04:38,190 --> 00:04:40,540 Eta orain, jarraitu x eta y swap. 115 00:04:40,540 --> 00:04:52,950 116 00:04:52,950 --> 00:04:53,530 >> Bikain. 117 00:04:53,530 --> 00:04:54,420 Beraz, oso ondo egina. 118 00:04:54,420 --> 00:04:55,670 Eskerrik asko, Jess. 119 00:04:55,670 --> 00:04:59,520 120 00:04:59,520 --> 00:05:00,020 Hemen daukazu. 121 00:05:00,020 --> 00:05:01,950 Oroigarri txiki bat. 122 00:05:01,950 --> 00:05:04,350 >> Ados, eta, beraz, jakina, super simple idea. 123 00:05:04,350 --> 00:05:07,500 Erabat intuitiboa behar dela pixka bat gehiago biltegiratze espazioa - Formulario honetan, 124 00:05:07,500 --> 00:05:09,750 kopa bat - benetan nahi izanez gero Trukatu bi aldagai horiek. 125 00:05:09,750 --> 00:05:11,110 Hargatik egin du hain zuzen ere. 126 00:05:11,110 --> 00:05:14,330 Hemen non nago aldarrikatzen dut artean izango egiten zenbait aldaketa egingo, dut 127 00:05:14,330 --> 00:05:15,720 aurrera eta temp deklaratzen. 128 00:05:15,720 --> 00:05:17,980 Eta berdintasuna, esateko, x it dut. 129 00:05:17,980 --> 00:05:21,110 >> Ondoren balioaren aldatu dut besterik Jess x bezala, hemen egin duen 130 00:05:21,110 --> 00:05:23,200 esnea eta laranja zukua y berdintasuna izateko. 131 00:05:23,200 --> 00:05:27,460 Eta y aldatzeko berdina izan dut ez x, orain izango litzateke, zeren 132 00:05:27,460 --> 00:05:29,530 zirkulu bat trabatuta, baizik eta tenporala. 133 00:05:29,530 --> 00:05:33,170 Non I aldi baterako -, edo non Jess aldi baterako, jarri laranja zukua 134 00:05:33,170 --> 00:05:35,460 duten clobbering aurretik esne duen kopa. 135 00:05:35,460 --> 00:05:37,250 >> Hargatik aurrera me orain, eta hau egiteko. 136 00:05:37,250 --> 00:05:39,210 Deitzen noswap.c. 137 00:05:39,210 --> 00:05:41,190 Eta orain, utzi swap no me exekutatu. 138 00:05:41,190 --> 00:05:43,910 Eta, hain zuzen ere, ikusten dut zabaltzeko galtzen dut leihoa pixka bat, 139 00:05:43,910 --> 00:05:45,160 x 1, y 2. 140 00:05:45,160 --> 00:05:47,230 Eta, ondoren, x 2, y 1 da. 141 00:05:47,230 --> 00:05:51,910 >> Baina gogoratzen astelehenean gauza egin dugu pixka bat ezberdinean zeinaren dut 142 00:05:51,910 --> 00:05:56,760 ordez inplementatu helper funtzio bat, duzu bada, hori izan zen benetan hutsunea. 143 00:05:56,760 --> 00:05:58,010 Da aldatu deitu nuen. 144 00:05:58,010 --> 00:06:01,600 Eman nituen bi parametroak, eta nik deitzen deitzen naiz eta haiek b. 145 00:06:01,600 --> 00:06:04,380 >> Egia, deitu x eta y nuen. 146 00:06:04,380 --> 00:06:06,040 Ez dago ezer gelditu da hori egiten from me. 147 00:06:06,040 --> 00:06:08,140 Baina, ondoren, argudiatzen da nuke pixka bat anbiguoa. 148 00:06:08,140 --> 00:06:11,910 Astelehena abisuaren delako dugun aldarrikatu parametro horiek izan ziren 149 00:06:11,910 --> 00:06:13,650 balioak kopiak gainditu sartu 150 00:06:13,650 --> 00:06:15,640 Beraz, zure zerbait messes kontuan, nire ustez, erabiltzen baduzu 151 00:06:15,640 --> 00:06:17,370 berdin aldagaiak. 152 00:06:17,370 --> 00:06:20,150 >> Beraz ordez dut deitu bat eta b, besterik gabe, argitasuna. 153 00:06:20,150 --> 00:06:21,840 Baina gehien deitu genezakeen ezer nahi dugu. 154 00:06:21,840 --> 00:06:26,280 Eta kopiatu eta itsatsi dut eraginkorrean ez gora kodea honetan 155 00:06:26,280 --> 00:06:27,170 Hemen sartzen behera. 156 00:06:27,170 --> 00:06:29,110 Besterik ez dut ikusi duelako lan egiten duela. 157 00:06:29,110 --> 00:06:30,790 Beraz, forma nahiko ona izan da. 158 00:06:30,790 --> 00:06:37,390 Eta nire x aldatu dut, nire x bat, nire eta nire b b y y. 159 00:06:37,390 --> 00:06:39,130 >> Beraz, beste era batera esanda, zehatza bera logika. 160 00:06:39,130 --> 00:06:40,850 Zehatza gauza bera Jess zuela. 161 00:06:40,850 --> 00:06:44,350 Eta, ondoren, gauza bat sortu egin behar dut Hemen, jakina, orain deitu honetan 162 00:06:44,350 --> 00:06:45,990 funtzioa, edo deitu funtzio hau. 163 00:06:45,990 --> 00:06:50,430 Beraz, funtzio hori deitu egingo dut bi sarrera, x eta y, eta sakatu Gorde. 164 00:06:50,430 --> 00:06:52,300 >> Eskubidea, eta, beraz, funtsean, gauza bera. 165 00:06:52,300 --> 00:06:55,570 Izan ere, ziurrenik Nik egin programa alferrik konplexua 166 00:06:55,570 --> 00:07:00,820 funtzio bat besterik hartzen idazten kode lerro batzuk sei dut berriz 167 00:07:00,820 --> 00:07:02,970 Aurretik inplementatu hori hiru. 168 00:07:02,970 --> 00:07:06,230 >> Hargatik aurrera me orain eta remake hau, egin swap ez. 169 00:07:06,230 --> 00:07:07,920 Guztiak eskubidea, dena izorratu nuen hemen. 170 00:07:07,920 --> 00:07:11,290 Hau akats bat izan behar duzu, hori gerta ikustea gero eta normalean zure gisa 171 00:07:11,290 --> 00:07:12,380 programak lortu konplexuagoak. 172 00:07:12,380 --> 00:07:13,470 Baina ez da erraza fix bat. 173 00:07:13,470 --> 00:07:15,650 Dezagun atzera korritu me up hemen. 174 00:07:15,650 --> 00:07:18,190 >> Eta zer gertatzen da lehen errorea ikusten dut hau? 175 00:07:18,190 --> 00:07:19,520 Inplizituki aitorpena. 176 00:07:19,520 --> 00:07:21,466 Zer esan nahi du normalean adierazteko? 177 00:07:21,466 --> 00:07:22,830 Oh, prototipoa ahaztu dut. 178 00:07:22,830 --> 00:07:26,900 Konpiladoreak irakasteko ahaztu dut swap duten existitzen da, nahiz eta joan zen 179 00:07:26,900 --> 00:07:28,920 ez du hasieratik at existitzen Programaren. 180 00:07:28,920 --> 00:07:35,780 Beraz, besterik ez naiz hutsunea, swap esanen, int, int b bat, puntu eta koma. 181 00:07:35,780 --> 00:07:37,280 >> Beraz, ez noa da reimplement joan. 182 00:07:37,280 --> 00:07:39,140 Baina orain zer da hemen behera datorrenean. 183 00:07:39,140 --> 00:07:42,530 Oharra eta, koma bat eza hemen, eta hori ez da beharrezkoa 184 00:07:42,530 --> 00:07:43,200 ezartzeko. 185 00:07:43,200 --> 00:07:46,010 >> Hargatik hau remake dit, egin swap ez. 186 00:07:46,010 --> 00:07:46,910 Askoz hobeto forma. 187 00:07:46,910 --> 00:07:48,130 Exekutatu swap ez. 188 00:07:48,130 --> 00:07:48,740 Eta madarikatua da. 189 00:07:48,740 --> 00:07:51,650 Orain gara berriro, non ziren astelehenean dugu, non gauza ez ziren aldatu. 190 00:07:51,650 --> 00:07:55,410 >> Eta zer intuiziozko azalpena da Horregatik, hori gertatzen da? 191 00:07:55,410 --> 00:07:56,380 Bai? 192 00:07:56,380 --> 00:07:57,630 >> Ikaslea: [INAUDIBLE]. 193 00:07:57,630 --> 00:08:04,140 194 00:08:04,140 --> 00:08:05,230 >> DAVID MALAN: Horixe. 195 00:08:05,230 --> 00:08:07,330 A eta B, beraz, x eta y kopiak dira. 196 00:08:07,330 --> 00:08:10,680 Eta, hain zuzen ere, edozein momentutan izan zara funtzio bat deituz, beraz, oso urrun dagoela 197 00:08:10,680 --> 00:08:12,540 igarotzen ints bezalako aldagai - 198 00:08:12,540 --> 00:08:14,470 bezala swap dago hemen zain - 199 00:08:14,470 --> 00:08:16,270 you guys dira ale igaroz. 200 00:08:16,270 --> 00:08:19,150 >> Orain dela esan nahi du pixka bat hartzen du denbora bat, split bigarren, alde 201 00:08:19,150 --> 00:08:23,270 ordenagailu bit kopiatzeko batetik beste zatiak sartu aldagaia. 202 00:08:23,270 --> 00:08:24,610 Baina hori ez da akordio handi bat, besteak beste. 203 00:08:24,610 --> 00:08:25,920 Baina, hala ere, Oraindik dute kopia bat. 204 00:08:25,920 --> 00:08:30,020 >> Eta, beraz, orain, swap testuinguruan, Izan ere am I arrakastaz 205 00:08:30,020 --> 00:08:31,180 eta b aldakor. 206 00:08:31,180 --> 00:08:33,000 Izan ere, utzi egin azkar bat behatu egiaztatu. 207 00:08:33,000 --> 00:08:36,830 Inprimatu f% i da, linea berria. 208 00:08:36,830 --> 00:08:38,770 Eta dezagun batean plug. 209 00:08:38,770 --> 00:08:41,830 Orain egin gauza bera b. 210 00:08:41,830 --> 00:08:43,640 Eta utzi egin gauza bera hemen. 211 00:08:43,640 --> 00:08:47,260 >> Eta orain, utzi ildo horiek kopia me berriro funtzioa behealdean 212 00:08:47,260 --> 00:08:51,250 nire hiru interesgarri ildo ondoren exekutatu izan da, eta 213 00:08:51,250 --> 00:08:53,270 inprimatu eta b berriro ere. 214 00:08:53,270 --> 00:08:56,030 Beraz, orain egin dezagun hau, egin swap ez. 215 00:08:56,030 --> 00:08:58,430 Utzi terminal-leiho bat egin zidan bit taller, ahal dugun ikus dezaten 216 00:08:58,430 --> 00:08:59,520 it gehiago aldi berean. 217 00:08:59,520 --> 00:09:00,860 >> Eta exekutatu swap ez. 218 00:09:00,860 --> 00:09:04,000 x 1, y 2. bat da, 1, b 2. 219 00:09:04,000 --> 00:09:06,070 Eta gero, bat da, 2, b 1 da. 220 00:09:06,070 --> 00:09:09,390 Beraz, lanean ari da, besterik gabe, Jess bezalako egin hemen barruan swap du. 221 00:09:09,390 --> 00:09:13,090 Baina, jakina, eragina ez da beharrik aldagai nagusia da. 222 00:09:13,090 --> 00:09:15,360 >> Beraz, trikimailu bat ikusi dugu, zeinaren dugu hau konpondu ahal izan da, ezta? 223 00:09:15,360 --> 00:09:19,560 Duzunean scoping honen aurrean alea, besterik gabe, ezin duzu punt eta x egin 224 00:09:19,560 --> 00:09:22,400 eta y aldagaiak zer nolako ordez? 225 00:09:22,400 --> 00:09:23,390 >> Egiteko horiek global asmoz. 226 00:09:23,390 --> 00:09:27,560 Jarri horiek oso fitxategia goian egin dugun bezala, nahiz eta 15 jokoan. 227 00:09:27,560 --> 00:09:28,890 Aldagai global bat erabiltzen dugu. 228 00:09:28,890 --> 00:09:32,420 Baina minutu bat 15 testuinguruan, arrazoizkoa da global bat izateko 229 00:09:32,420 --> 00:09:37,170 aldagaia taula ordezkari gisa, zeren 15.c osoa da 230 00:09:37,170 --> 00:09:38,650 joko hori gauzatzeko buruz. 231 00:09:38,650 --> 00:09:41,470 Hori da fitxategia eta egin. 232 00:09:41,470 --> 00:09:44,170 >> Baina kasu honetan hemen, naiz funtzioa swap bat deituz. 233 00:09:44,170 --> 00:09:45,380 Bi aldagai aldatu nahi dut. 234 00:09:45,380 --> 00:09:48,950 Eta hasi besterik ez da sloppy sentitzeko behar da Gure guztien soluzioa bada 235 00:09:48,950 --> 00:09:51,300 arazoak exekutatu esparrua dugu gai da, eta horregatik da globala. 236 00:09:51,300 --> 00:09:54,730 Oso azkar gure programa delako nahastea nahiko bihurtu da. 237 00:09:54,730 --> 00:09:57,760 Eta oso gutxi egin dugu 15.c. ondorioz; 238 00:09:57,760 --> 00:10:00,470 >> Baina ez da bat bihurtzen da hobeto elkarrekin. 239 00:10:00,470 --> 00:10:05,600 Utzi zidan benetan atzera eta ezabatu inprimatu f horrek, besterik gabe, kode hau errazteko. 240 00:10:05,600 --> 00:10:09,160 Eta utzi niri proposatzen honetan, hain zuzen ere, ez da txarra. 241 00:10:09,160 --> 00:10:15,990 Baina horren ordez izartxoak dut batzuetan galtzen gehitu ko, eta, horren ordez, ezin dut aktibatu 242 00:10:15,990 --> 00:10:18,670 bat sartu da, funtzio benetan dabil. 243 00:10:18,670 --> 00:10:25,020 >> Beraz, atzera me hemen eta onartzen esaten asterisko beti da zaila, 244 00:10:25,020 --> 00:10:26,170 ko, beraz, esan dut. 245 00:10:26,170 --> 00:10:27,660 Dut Fess igo dela. 246 00:10:27,660 --> 00:10:28,190 Guztiak eskubidea. 247 00:10:28,190 --> 00:10:30,190 Eta orain, zer dut Horren ordez, zer egin? 248 00:10:30,190 --> 00:10:34,130 >> Beraz, lehenik eta behin, zehaztu dut ordez int bat igaroz sartzen diren 249 00:10:34,130 --> 00:10:37,980 swap funtzioa beharrean nago int izar esanen du. 250 00:10:37,980 --> 00:10:39,170 Orain, zer izar adierazi du? 251 00:10:39,170 --> 00:10:41,970 Hau erakuslea duten kontzeptua dela Binky, claymation pertsonaia izan zen, 252 00:10:41,970 --> 00:10:43,465 une duela aipatuz. 253 00:10:43,465 --> 00:10:47,610 >> Beraz, bada, int star, esanahia esaten dugu orain, hau da, hori ez da izango 254 00:10:47,610 --> 00:10:49,110 bere balioa k gainditu. 255 00:10:49,110 --> 00:10:50,350 Ez da kopiatu beharreko sartu joan 256 00:10:50,350 --> 00:10:54,700 Baizik eta, baten helbidea da onartuko da, oraindik joan 257 00:10:54,700 --> 00:10:57,840 >> Beraz, gogora ekarri zure ordenagailuaren barruan memoria-sorta oso bat da, bestela 258 00:10:57,840 --> 00:10:58,760 RAM bezala ezagutzen. 259 00:10:58,760 --> 00:11:00,520 Eta ahari besterik ez da bat byte sorta osoa. 260 00:11:00,520 --> 00:11:03,320 Beraz, zure Mac edo PCak bi gigabyte, 2 daukazula 261 00:11:03,320 --> 00:11:05,760 milioi memoria byte. 262 00:11:05,760 --> 00:11:08,440 >> Orain, besterik gabe, besterik suposatzen duten mantentzeko gauza polita eta antolatuan, dugu 263 00:11:08,440 --> 00:11:09,450 helbide bat esleitu - 264 00:11:09,450 --> 00:11:10,170 zenbaki bat - 265 00:11:10,170 --> 00:11:12,270 behin RAM byte ordenagailuan. 266 00:11:12,270 --> 00:11:15,410 Horiek 2 byte oso lehen milioi zenbakia zero da. 267 00:11:15,410 --> 00:11:18,572 Hurrengo byte zenbaki bat, zenbakia bi, gora an modu dot dot guztiak 268 00:11:18,572 --> 00:11:20,530 dot, eta gutxi gorabehera 2 milioi. 269 00:11:20,530 --> 00:11:23,640 >> Beraz byte zenbakia dezakezu Ordenagailuaren memoria. 270 00:11:23,640 --> 00:11:26,460 Hargatik bere gain hartzen duten hori zer helbide bat esan nahi dugu. 271 00:11:26,460 --> 00:11:31,360 Beraz, int izar bat, zer ikusten dut joan swap sartu onartuz orain da 272 00:11:31,360 --> 00:11:32,830 baten helbidea. 273 00:11:32,830 --> 00:11:37,150 Ez da bere balioa, baina, edozein posta helbidea ez da, beraz, hitz egin - 274 00:11:37,150 --> 00:11:38,810 bere RAM duen kokapena. 275 00:11:38,810 --> 00:11:41,250 >> Eta, era berean, b, joan naiz gauza bera esan. 276 00:11:41,250 --> 00:11:42,720 Int, izarra, b. 277 00:11:42,720 --> 00:11:46,350 Bat alde batera, teknikoki izar gisa zitekeen beste lekutan joan. 278 00:11:46,350 --> 00:11:50,140 Baina izarra izaten dugu normalizatzeko eskubidea ondoan datu mota. 279 00:11:50,140 --> 00:11:54,080 >> Beraz aldatu sinadura orain esan nahi du, ematen dit du int baten helbidea, eta dei 280 00:11:54,080 --> 00:11:55,400 duen helbide bat. 281 00:11:55,400 --> 00:11:58,690 Eta ematen dit baten beste helbide INT eta helbidea b deitzen. 282 00:11:58,690 --> 00:12:01,120 >> Baina orain nire kodea hemen aldatzeko. 283 00:12:01,120 --> 00:12:03,470 Int temp deklaratzen dut galtzen duelako - 284 00:12:03,470 --> 00:12:05,580 hau da, oraindik ere, mota int - 285 00:12:05,580 --> 00:12:08,700 baina gordetzeko bat dut, zer balio du? 286 00:12:08,700 --> 00:12:12,870 Argi izan, naiz jarriz bat dut kode idatziaren gisa oraintxe? 287 00:12:12,870 --> 00:12:14,360 >> Kokalekua naiz jarriz batean. 288 00:12:14,360 --> 00:12:16,500 Baina ez dut proba kokapena, gaur egun, ezta? 289 00:12:16,500 --> 00:12:21,940 Temp besterik Jess 'hirugarren kopa existitzen zegoen, zertarako? 290 00:12:21,940 --> 00:12:23,090 Balio bat gordetzeko. 291 00:12:23,090 --> 00:12:24,830 Esnea edo laranja zukua. 292 00:12:24,830 --> 00:12:28,520 Ez benetan gorde helbide gauza horiek, edozein dela ere, eta horrek bat sentitzen 293 00:12:28,520 --> 00:12:31,200 gutxi real honetan zentzugabeko mundu mailan ere. 294 00:12:31,200 --> 00:12:34,990 >> Beraz, benetan, zer aldi baterako jarri nahi dut ez da baten helbidea, baina 295 00:12:34,990 --> 00:12:36,180 baten edukia. 296 00:12:36,180 --> 00:12:41,930 Beraz, 123 bezalako zenbaki bat bada, hau da, memoria byte 123RD hori bat besterik ez 297 00:12:41,930 --> 00:12:45,090 gertatzen okupatzailea izan da, balioa batean gertatzen okupatzailea izan. 298 00:12:45,090 --> 00:12:49,040 >> To helbide horretara joan nahi dut, bada, Izar bat esan behar dut. 299 00:12:49,040 --> 00:12:52,610 Era berean, banintz, zer aldatu behar helbide bat, aldatu dut 300 00:12:52,610 --> 00:12:53,570 hau hasteko. 301 00:12:53,570 --> 00:12:58,185 Nahi dut zer dagoen en gordetzeko bada kokapena zer kokaguneko-en 302 00:12:58,185 --> 00:13:02,180 b, b star star. 303 00:13:02,180 --> 00:13:05,340 >> Beraz, azken finean, nahiz eta hori ez da nahiko urtean hondoratu gabe - eta ez nuke espero 304 00:13:05,340 --> 00:13:06,560 hain azkar litzateke hori - 305 00:13:06,560 --> 00:13:11,100 guztiak konturatzen ari naiz, hori aurretik horiek nire aldagai ko, 306 00:13:11,100 --> 00:13:13,350 Esaera ez hartu balioak. 307 00:13:13,350 --> 00:13:14,520 Ez aldatu balioak. 308 00:13:14,520 --> 00:13:17,600 Baizik, eta horiek joan helbideak eta balioa. 309 00:13:17,600 --> 00:13:21,430 Helbide horretara joan eta aldaketa balioa ez dago. 310 00:13:21,430 --> 00:13:25,500 >> Beraz, orain utzi atzera korritu me up goian, besterik lerro hau konpontzeko hemen, 311 00:13:25,500 --> 00:13:27,690 aldatu prototipoa etor. 312 00:13:27,690 --> 00:13:30,280 Baina behar dut beste gauza bat egin. 313 00:13:30,280 --> 00:13:35,500 Intuizioa, ez dut aldatu motak Argumentu swap hori espero, 314 00:13:35,500 --> 00:13:37,245 Zer gehiago behar dut nire kodea aldatzeko? 315 00:13:37,245 --> 00:13:39,750 316 00:13:39,750 --> 00:13:40,840 >> Noiz swap deitzen dut. 317 00:13:40,840 --> 00:13:43,340 Oraintxe, zer delako am Pasa eta oraindik ere aldatu behar dut? 318 00:13:43,340 --> 00:13:47,450 Balioa x eta y-ren balioa, edo esnea eta laranja zukua. 319 00:13:47,450 --> 00:13:48,510 Baina ez dut nahi hori egin. 320 00:13:48,510 --> 00:13:51,060 Ordez nahi dut zer pasatzen? 321 00:13:51,060 --> 00:13:53,050 X eta kokapena y kokapena. 322 00:13:53,050 --> 00:13:55,300 Zeintzuk dira bere posta-helbideak, nolabait esateko. 323 00:13:55,300 --> 00:13:57,600 >> Beraz, hori egin, ez dago & ikurra da. 324 00:13:57,600 --> 00:13:59,260 AMPERSAND helbide bezalako soinuak mota. 325 00:13:59,260 --> 00:14:03,240 beraz, n, ampersand, helbidea x, y eta helbidea. 326 00:14:03,240 --> 00:14:06,790 Beraz, nahita da erabiltzen dugun ampersands denean funtzioa deituz, 327 00:14:06,790 --> 00:14:10,230 eta izarrak noiz eta deklaratzen denean funtzioa gauzatzeko. 328 00:14:10,230 --> 00:14:14,220 >> Eta besterik ampersand uste bezain operadore helbidea, eta izar gisa 329 00:14:14,220 --> 00:14:15,490 Hara joan operadorea - 330 00:14:15,490 --> 00:14:18,640 edo gehiago, ongi da, dereference operadorea. 331 00:14:18,640 --> 00:14:23,480 Beraz, hitz asko besterik ez da esan orain, zorionez, swap da joan 332 00:14:23,480 --> 00:14:24,440 zuzena izan behar du. 333 00:14:24,440 --> 00:14:26,550 >> Dezagun aurrera egitea eta me - 334 00:14:26,550 --> 00:14:30,940 dezagun benetan fitxategia izenez aldatu, lest Programa honetan oraindik ere deitzen swap ez. 335 00:14:30,940 --> 00:14:33,240 It swap.c dugun deituko orain aldarrikatzen dut. 336 00:14:33,240 --> 00:14:35,670 Beraz, aldatu. 337 00:14:35,670 --> 00:14:37,520 Puntu, barra, trukatzeko. 338 00:14:37,520 --> 00:14:40,210 >> Eta orain, hain zuzen ere, x 1, y 2. 339 00:14:40,210 --> 00:14:44,040 Eta, ondoren, x 2, y bat da. 340 00:14:44,040 --> 00:14:46,500 Beno, ikus dezagun ez badugu egin hau pixka bat ezberdinean zer gisa 341 00:14:46,500 --> 00:14:47,180 gertatzen da hemen. 342 00:14:47,180 --> 00:14:51,250 Lehenik eta behin, utzi gerturatzeko me gure pantailan marrazten hemen. 343 00:14:51,250 --> 00:14:54,160 Eta utzi proposatzen momentu bat - eta betiere, hemen marraztu dut islatu egingo da 344 00:14:54,160 --> 00:14:58,660 han orain - let me proposatzen hemen memoria-sorta oso bat da, edo 345 00:14:58,660 --> 00:15:00,540 RAM, nire ordenagailua barruan. 346 00:15:00,540 --> 00:15:04,140 >> Eta hau ziztadak kopurua izango da, esan dezagun, 1. 347 00:15:04,140 --> 00:15:05,720 Hau byte kopurua 2 izango da. 348 00:15:05,720 --> 00:15:08,220 Eta, oro har mordo bat egin dut, eta ondoren dot dot puntu sorta egiteko 349 00:15:08,220 --> 00:15:10,880 ez dagoela adierazi du, 2 milioi gauza horiek. 350 00:15:10,880 --> 00:15:13,520 4, 5, eta abar. 351 00:15:13,520 --> 00:15:17,055 >> Beraz, ez dira lehenengo bost byte nire ordenagailuaren memoria. 352 00:15:17,055 --> 00:15:17,560 Guztiak eskubidea? 353 00:15:17,560 --> 00:15:19,060 Oso 2 milioi out gutxi. 354 00:15:19,060 --> 00:15:21,120 Baina orain proposatzen dut honako hau. 355 00:15:21,120 --> 00:15:27,490 X hori joatea proposatzen dut gorde kopurua 1 eta y va 356 00:15:27,490 --> 00:15:29,690 kopurua 2 gordetzeko. 357 00:15:29,690 --> 00:15:35,000 Eta utzi aurrera me orain eta adierazten balio horiek honela. 358 00:15:35,000 --> 00:15:41,510 >> Egin dezagun honela. 359 00:15:41,510 --> 00:15:42,870 Ematen dit, besterik gabe, segundo bat. 360 00:15:42,870 --> 00:15:44,150 Bigarrena. 361 00:15:44,150 --> 00:15:45,680 Ados. 362 00:15:45,680 --> 00:15:47,560 Pixka bat egin nahi dut - 363 00:15:47,560 --> 00:15:50,440 egin dezagun berriro. 364 00:15:50,440 --> 00:15:53,250 Bestela, naiz eta joan erabiliz zenbaki bereko, nahi gabe, 365 00:15:53,250 --> 00:15:54,230 hainbat aldiz. 366 00:15:54,230 --> 00:15:57,320 >> Beraz, besterik ez, beraz, hainbat zenbakiak dugu hitz, dezagun deitzen byte honetan 367 00:15:57,320 --> 00:16:03,391 zenbakia 123, 124, 125, 126, eta dot dot dot. 368 00:16:03,391 --> 00:16:08,400 Eta utzi zidan, orain aldarrikatzen dut joan jarri balioa 1 hemen, eta balioa 2 369 00:16:08,400 --> 00:16:11,990 hemen, bestela, x eta y bezala ezagutzen. 370 00:16:11,990 --> 00:16:15,300 Beraz, beraz, besterik ez da gertatzen hau da, x, y hau da. 371 00:16:15,300 --> 00:16:18,180 >> Eta batzuk ausaz aukera bidez, ordenagailua, sistema eragilea, 372 00:16:18,180 --> 00:16:21,890 gertatu x jarri kokapenean zenbakia 123. 373 00:16:21,890 --> 00:16:25,590 Eta y azkenean kokapena 124 at - 374 00:16:25,590 --> 00:16:26,330 madarikatua da. 375 00:16:26,330 --> 00:16:28,700 Dute, konpondu behar dut hori. 376 00:16:28,700 --> 00:16:34,040 Oh man, zuk nahi dut hau egiteko? 377 00:16:34,040 --> 00:16:37,340 Bai, eta konpondu nahi dut b gaur egun honi buruz egokia. 378 00:16:37,340 --> 00:16:39,950 Barkatu, hau berria. 379 00:16:39,950 --> 00:16:45,020 >> 127, 131, eta nik ez zuen nahi izan da konplexua da, baina zergatik aldatu dut 380 00:16:45,020 --> 00:16:46,340 zenbakiak ez? 381 00:16:46,340 --> 00:16:48,360 Nahi dut ints nahi duelako Egia esan, lau byte izan. 382 00:16:48,360 --> 00:16:49,810 Beraz, izan gaitezen honi buruz anal super. 383 00:16:49,810 --> 00:16:53,800 Beraz, 1 bada gertatzen zaie 123, 2 da, helbide honetan izango da 384 00:16:53,800 --> 00:16:55,730 127 delako 4 baino byes kanpoan da. 385 00:16:55,730 --> 00:16:56,210 Hori da dena. 386 00:16:56,210 --> 00:16:58,640 Eta guztia dugu ahaztu munduko helbideak beste. 387 00:16:58,640 --> 00:17:03,320 >> Beraz, 123 x kokapena da, y kokapena 127 da. 388 00:17:03,320 --> 00:17:05,770 Eta orain, zer egin behar dut benetan egin nahi? 389 00:17:05,770 --> 00:17:10,099 Noiz swap deitu dut orain, zer benetan gertatzen ari da? 390 00:17:10,099 --> 00:17:14,920 Beno, noiz swap deitzen naiz, ari naiz pasatzen x eta y helbidea helbidea. 391 00:17:14,920 --> 00:17:18,540 Beraz, adibidez, bada, bi pieza horiek paper orain irudikatzeko bi 392 00:17:18,540 --> 00:17:23,510 argumentuak A eta B trukatzeko, zer naiz horiek lehenengo idazteko joan, 393 00:17:23,510 --> 00:17:27,720 azken horrek erreferentzia gisa deitu dut? 394 00:17:27,720 --> 00:17:30,610 >> Zehazki, 123. 395 00:17:30,610 --> 00:17:31,905 Dut, beraz, hau aldarrikatzen da. 396 00:17:31,905 --> 00:17:32,955 Honek parametro bat da. 397 00:17:32,955 --> 00:17:35,856 X helbidea naiz jarriz bertan. 398 00:17:35,856 --> 00:17:38,152 >> Zer da hori? 399 00:17:38,152 --> 00:17:40,890 >> Zer da hori? 400 00:17:40,890 --> 00:17:41,190 >> Ez, ez. 401 00:17:41,190 --> 00:17:41,720 Hori Ados. 402 00:17:41,720 --> 00:17:42,570 Oraindik ere ona, oraindik ere ona da. 403 00:17:42,570 --> 00:17:43,530 Beraz, hau da. 404 00:17:43,530 --> 00:17:46,240 Eta orain, bigarren paper pieza on, hau da, b izango da, eta zer naiz 405 00:17:46,240 --> 00:17:49,010 behar bezala idatziz joan paper hau? 406 00:17:49,010 --> 00:17:50,080 127. 407 00:17:50,080 --> 00:17:53,720 >> Gauza bakarra dela aldatu geroztik, beraz, gure istorioa kontatzeko aurreko da, 408 00:17:53,720 --> 00:17:58,590 baizik eta literalki baino 1 eta 2, naiz to 123 eta 127 igaroko dugu. 409 00:17:58,590 --> 00:18:02,130 Eta orain, naiz horien barruan jartzea joan kutxa honek guztiak, ezta? 410 00:18:02,130 --> 00:18:04,640 Beraz, kutxa beltza, orain dela adierazten swap funtzioa. 411 00:18:04,640 --> 00:18:07,230 >> Bien bitartean, goazen orain norbait ezartzeko swap funtzioa. 412 00:18:07,230 --> 00:18:09,090 Litzateke norbaitek hemen nahi boluntarioak? 413 00:18:09,090 --> 00:18:09,560 Goazen gora. 414 00:18:09,560 --> 00:18:11,080 Zein da zure izena? 415 00:18:11,080 --> 00:18:11,460 Charlie. 416 00:18:11,460 --> 00:18:12,080 Ondo da, Charlie. 417 00:18:12,080 --> 00:18:14,810 Goazen gora. 418 00:18:14,810 --> 00:18:17,310 >> Beraz, Charlie da jolasteko joan Gure kutxa beltzak rola. 419 00:18:17,310 --> 00:18:21,460 Eta Charlie, zer egin nahi nizuke orain swap ezartzea da, horrela, 420 00:18:21,460 --> 00:18:25,320 , emandako bi helbideak horiek, benetan ziren zoazen 421 00:18:25,320 --> 00:18:26,330 balioak aldatzeko. 422 00:18:26,330 --> 00:18:28,290 Eta zure belarrira xuxurlatzen dut nola telebista hemen exekutatu. 423 00:18:28,290 --> 00:18:29,930 >> Beraz, aurrera, eta kutxa beltza zara. 424 00:18:29,930 --> 00:18:30,920 Bertan iristeko. 425 00:18:30,920 --> 00:18:34,054 Zer balio bat ikusten zenuen, eta zer balio ikusten b duzu? 426 00:18:34,054 --> 00:18:36,740 >> Charlie: bat da, 123 eta 127 b da. 427 00:18:36,740 --> 00:18:37,530 >> DAVID MALAN: OK, zehazki. 428 00:18:37,530 --> 00:18:38,940 Orain gelditu besterik ez dago une bat. 429 00:18:38,940 --> 00:18:41,680 Lehenik eta behin, orain egin behar duzu, kodearen arabera - zein 430 00:18:41,680 --> 00:18:43,220 Orain dut tira sortu pantailan - 431 00:18:43,220 --> 00:18:46,750 da apur bat esleitu izango memoria pixka izeneko aldi baterako. 432 00:18:46,750 --> 00:18:48,850 Beraz, aurrera noa, eta emango dizu memoria hori. 433 00:18:48,850 --> 00:18:52,210 >> Beraz, hau da, hirugarren aldagai bat izango da duzula irisgarria 434 00:18:52,210 --> 00:18:54,080 temp deitzen duzu. 435 00:18:54,080 --> 00:18:57,120 Eta zer egingo duzu idatzi paper temp buruz? 436 00:18:57,120 --> 00:19:02,524 437 00:19:02,524 --> 00:19:03,470 >> Charlie: erakusleak, ezta? 438 00:19:03,470 --> 00:19:04,790 >> DAVID MALAN: OK, ondo ez erakusleak derrigorrez. 439 00:19:04,790 --> 00:19:07,230 Kode-lerro ditudan beraz eskuin hegalean nabarmenduta, 440 00:19:07,230 --> 00:19:07,900 dezagun hasteko dago. 441 00:19:07,900 --> 00:19:08,890 Izar bat esaten du. 442 00:19:08,890 --> 00:19:11,670 Beraz, gaur egun, gordetzeko kopurua 123. 443 00:19:11,670 --> 00:19:16,660 Eta besterik gabe, intuizioa, zer zuen izar 123 esan nahi du? 444 00:19:16,660 --> 00:19:21,630 >> Baina bereziki, bada 123, izar bat, zer esan nahi du? 445 00:19:21,630 --> 00:19:22,560 Baten balioa. 446 00:19:22,560 --> 00:19:24,580 Edo gehiago, kasualitatez, joaten. 447 00:19:24,580 --> 00:19:28,620 Beraz, hori proposatu zidan, eta eskuan en eskua, aurrera eta tratatzen duten 448 00:19:28,620 --> 00:19:29,430 balitz bezala mapa bat da. 449 00:19:29,430 --> 00:19:32,940 Oinez eta zure burua baino gehiago, informatika-en memoria, eta gauden, zer da 450 00:19:32,940 --> 00:19:36,520 kokapena 123 at. 451 00:19:36,520 --> 00:19:37,720 Zehazki. 452 00:19:37,720 --> 00:19:41,100 >> Beraz, ikusi kokapena 123 gara zer, argi dago? 453 00:19:41,100 --> 00:19:44,240 Ados, beraz, zer balio zaude orain aldi baterako jarri da? 454 00:19:44,240 --> 00:19:44,750 Zehazki. 455 00:19:44,750 --> 00:19:45,600 Beraz, aurrera eta hori egiteko. 456 00:19:45,600 --> 00:19:51,280 Eta idatzi kopurua 1 piezaren gainean paper hori gaur egun izeneko aldi baterako. 457 00:19:51,280 --> 00:19:53,540 >> Eta orain, hurrengo urratsa dela ezartzea duzu 458 00:19:53,540 --> 00:19:54,310 zer izango. 459 00:19:54,310 --> 00:19:57,820 Beno, eskuin hegalean kode-lerro hurrengo izar b da. b, la 460 00:19:57,820 --> 00:19:59,260 noski, helbide bat gordetzen du. 461 00:19:59,260 --> 00:20:02,270 Duten helbideak 127. 462 00:20:02,270 --> 00:20:06,620 Star b zer esan nahi du, kasualitatez, hitz egitea? 463 00:20:06,620 --> 00:20:08,700 >> Kokaleku horretan joan. 464 00:20:08,700 --> 00:20:14,988 Beraz, aurrera eta aurkitu zer kokapena 127 at. 465 00:20:14,988 --> 00:20:15,480 Ados. 466 00:20:15,480 --> 00:20:19,170 Jakina, kokapena 127 at, da, oraindik ere balio du 2. 467 00:20:19,170 --> 00:20:24,060 Beraz, zer egingo duzu dendan whatever batean kokaguneko da? 468 00:20:24,060 --> 00:20:26,860 Beraz, izar bide bat kokalekua joatea. 469 00:20:26,860 --> 00:20:29,770 Zer kokalekua bat? 470 00:20:29,770 --> 00:20:30,430 >> Zehazki. 471 00:20:30,430 --> 00:20:34,190 Beraz, orain, aldatu nahi izanez gero, zer kokapena hartan da - 472 00:20:34,190 --> 00:20:36,470 Aurrera egingo dut eta exekutatu borragoma dira hemen. 473 00:20:36,470 --> 00:20:37,760 Eta orain, berriro jarri eskuila da. 474 00:20:37,760 --> 00:20:42,190 Nora joango idatzi hori hutsik koadroan orain? 475 00:20:42,190 --> 00:20:42,850 >> Zehazki. 476 00:20:42,850 --> 00:20:46,470 Beraz, hau, kode lerro, argi - utzi zer Charlie horrek eten egiten nau eta 477 00:20:46,470 --> 00:20:51,730 Azpimarratu hemen, zer zen besterik egin da kutxa horretan idazteko kokapena 123 at 478 00:20:51,730 --> 00:20:55,150 balioa izan zela aurrez b. 479 00:20:55,150 --> 00:20:59,140 Eta beraz, gaur egun dugu, hain zuzen ere inplementatu kodea bigarren hau. 480 00:20:59,140 --> 00:21:01,920 >> Orain, baina, tamalez, ez da oraindik, lerro bat falta dira. 481 00:21:01,920 --> 00:21:04,900 Orain zer tenporala da, literalki? 482 00:21:04,900 --> 00:21:06,200 Jakina da zenbaki bat. 483 00:21:06,200 --> 00:21:07,020 Hori ez da helbide bat. 484 00:21:07,020 --> 00:21:09,380 Besterik ez da zenbaki bat, Ordena aste batetik aldagai bat. 485 00:21:09,380 --> 00:21:13,520 >> Eta orain, izar b denean, horrek esan nahi diozu b helbidera joan, eta hori 486 00:21:13,520 --> 00:21:15,090 ikastaroa hemen. 487 00:21:15,090 --> 00:21:16,020 Beraz, behin heldu duzu - 488 00:21:16,020 --> 00:21:18,320 Aurrera egingo dut, eta ezabatuko zer benetan han - eta zer egiten ari zaren 489 00:21:18,320 --> 00:21:20,820 Orain, idazteko kokapena 127 at joan? 490 00:21:20,820 --> 00:21:22,010 >> Charlie: Temp, hau da bat. 491 00:21:22,010 --> 00:21:23,430 >> DAVID MALAN: Temp, hau da bat. 492 00:21:23,430 --> 00:21:25,670 Eta zer gertatzen da aldi baterako azkenean? 493 00:21:25,670 --> 00:21:26,600 Beno, ez dugu benetan jakin. 494 00:21:26,600 --> 00:21:27,420 Ez dugu benetan axola. 495 00:21:27,420 --> 00:21:31,090 Edonoiz inplementatu dugu funtzio bat beraz, orain arte, aldagai lokalak edozein duzu 496 00:21:31,090 --> 00:21:31,890 dira, hain zuzen ere, tokian tokiko. 497 00:21:31,890 --> 00:21:33,060 Eta desagertu besterik ez dute. 498 00:21:33,060 --> 00:21:35,040 Direnean eragilearen arabera irabazitako sistema azkenean. 499 00:21:35,040 --> 00:21:39,800 >> Izan ere, aldi baterako jarraitzen du, beraz, balioa 1 da, funtsean, sort of 500 00:21:39,800 --> 00:21:41,150 gurekin izanarren. 501 00:21:41,150 --> 00:21:43,100 Guztiak eskubidea, beraz, txalo Kopako bat Charlie eman izan dugu gero. 502 00:21:43,100 --> 00:21:46,400 Oso ondo egin. 503 00:21:46,400 --> 00:21:51,520 >> Guztiak eskubidea, beraz, zer gehiago egiten du hau esan dezakegu? 504 00:21:51,520 --> 00:21:54,400 Beraz bihurtzen da dugun izan gutxi batzuk zuria gezurrak kontatzea 505 00:21:54,400 --> 00:21:55,540 denbora luzez. 506 00:21:55,540 --> 00:21:59,990 Izan ere, bihurtzen da kate bat dela, denbora hori guztia, ez da benetan 507 00:21:59,990 --> 00:22:02,190 per se karaktere-sekuentzia. 508 00:22:02,190 --> 00:22:03,980 Da mota intuizioa da hori. 509 00:22:03,980 --> 00:22:08,270 >> Baina teknikoki har, kate bat datu-mota barruan dugun deklaratu 510 00:22:08,270 --> 00:22:12,170 du CS50 liburutegia mundu errazteko Klase lehen asteetan ere. 511 00:22:12,170 --> 00:22:20,130 Zer kate bat benetan da helbidea da pertsonaia bat, nonbait RAM ere. 512 00:22:20,130 --> 00:22:25,530 Kate bat da eta benetan zenbaki bat, 123 bezalako edo 127, hori gertatzen demarcate 513 00:22:25,530 --> 00:22:28,420 non kate bat hasten da ordenagailuaren memoria. 514 00:22:28,420 --> 00:22:31,870 >> Baina ez du adierazten katea, berez, berez. 515 00:22:31,870 --> 00:22:33,460 Ikusi eta hau honela esan daiteke. 516 00:22:33,460 --> 00:22:35,980 Let me aurrera eta ireki kode batzuk, hori da, besteak beste 517 00:22:35,980 --> 00:22:38,340 Gaur egungo iturburu kodea adibide. 518 00:22:38,340 --> 00:22:42,225 Eta aurrera joan eta ireki dut sortu, esan dezagun, konparazio-0.c. 519 00:22:42,225 --> 00:22:44,830 520 00:22:44,830 --> 00:22:48,790 Hau buggy programa hori joan da honela ezartzen. 521 00:22:48,790 --> 00:22:49,040 >> Lehenengoa. 522 00:22:49,040 --> 00:22:50,420 Zerbait esan nahi dut. 523 00:22:50,420 --> 00:22:52,660 Ondoren, aurrera noa, eta lortu katea erabiltzailearen 524 00:22:52,660 --> 00:22:53,750 hurrengo lerroan. 525 00:22:53,750 --> 00:22:55,370 Ondoren, berriro ere esan dut. 526 00:22:55,370 --> 00:22:57,540 Ondoren, beste bat eskuratu dut Erabiltzaile kate. 527 00:22:57,540 --> 00:23:00,390 >> Eta aldez aurretik abisatu bat naiz erakusten s izeneko aldagai bat, kateak, eta 528 00:23:00,390 --> 00:23:03,040 kate horiek beste izeneko t aldagai batean. 529 00:23:03,040 --> 00:23:07,480 Eta orain, erreklamatzeko oso noa arrazoiz, s bada berdin dela berdin t, 530 00:23:07,480 --> 00:23:08,940 kate berdinak dira. 531 00:23:08,940 --> 00:23:09,970 Gauza bera idazten duzunean. 532 00:23:09,970 --> 00:23:11,830 Bestela, kateak dira ez da gauza bera. 533 00:23:11,830 --> 00:23:15,440 >> Azken finean, bi ints, bi sarrera badugu karaktereak, bi karroza, bi bikoitzak, edozein 534 00:23:15,440 --> 00:23:18,400 datu-mota hitz egin dugu buruz beraz, orain arte horiek konparatzea da - 535 00:23:18,400 --> 00:23:22,070 gogoratzen, oso argi dugu, berriz, duela ez duzula egin, ez delako 536 00:23:22,070 --> 00:23:25,840 bakar berdin ikurra da, noski esleitzeko operadorea. 537 00:23:25,840 --> 00:23:26,820 Beraz, hori akats bat izango litzateke. 538 00:23:26,820 --> 00:23:29,260 >> Berdin berdin ikurra erabiliko dugu, horrek, hain zuzen ere konparatzen 539 00:23:29,260 --> 00:23:31,050 berdintasunerako benetako gauza. 540 00:23:31,050 --> 00:23:32,275 Baina hori buggy aldarrikatzen dut. 541 00:23:32,275 --> 00:23:37,400 Joaten naiz, aurrera egiteko bada, eta alderatu zero, eta, ondoren, ez dot barra alderatu zero. 542 00:23:37,400 --> 00:23:39,700 Eta, idatzi nuen esan dezagun, kaixo. 543 00:23:39,700 --> 00:23:41,590 Eta gero, esan dezagun kaixo berriro. 544 00:23:41,590 --> 00:23:46,040 Literalki gauza bera, ordenagailua erreklamazioak hainbat gauza ondo idatzi dut. 545 00:23:46,040 --> 00:23:47,640 >> Orain, agian gaizki idatzi nuen zerbait. 546 00:23:47,640 --> 00:23:49,910 Nire izena idatzi dut une honetan. 547 00:23:49,910 --> 00:23:52,580 Esan nahi dut, kaixo. 548 00:23:52,580 --> 00:23:54,770 Hello. 549 00:23:54,770 --> 00:23:57,360 Desberdina da bakar batera. 550 00:23:57,360 --> 00:23:58,430 >> Beno, zergatik da hori? 551 00:23:58,430 --> 00:24:00,140 Zer da benetan gertatzen kanpaia azpian? 552 00:24:00,140 --> 00:24:03,270 Beno, benetan zer gertatzen ari azpian kanpaia katea da, ondoren, 553 00:24:03,270 --> 00:24:07,410 Idatzitako adibidez, lehenengo aldiz horretan dut kaixo hitza da, noski. 554 00:24:07,410 --> 00:24:11,660 Baina adierazten dugu hori izanez gero azpian kanpaia, gogorarazten duen 555 00:24:11,660 --> 00:24:13,470 kate array bat da. 556 00:24:13,470 --> 00:24:15,040 Eta esan dugun bezala, askoz ere iraganean. 557 00:24:15,040 --> 00:24:20,200 >> Beraz, hori bada array marraztu dut hau bezala, nago zerbait adierazten nahiko joan 558 00:24:20,200 --> 00:24:23,030 zer ago une bat egin dugu antzekoa. 559 00:24:23,030 --> 00:24:25,390 Eta egia esan, ez da zerbait berezia hemen ere. 560 00:24:25,390 --> 00:24:28,090 Zer egin zen zehaztu dugu kate bakoitzaren amaieran? 561 00:24:28,090 --> 00:24:30,760 Bai, backslash zero honetan, hau da, besterik ordezkari bidea, 562 00:24:30,760 --> 00:24:33,610 literalki, 00000000. 563 00:24:33,610 --> 00:24:35,680 Zortzi 0 errenkadan bit. 564 00:24:35,680 --> 00:24:37,610 >> Ez dakit, sinceramente, hori zer da ondoren. 565 00:24:37,610 --> 00:24:40,090 Hori besterik mordo bat gehiago RAM nire ordenagailuan barruan. 566 00:24:40,090 --> 00:24:40,970 Baina hau array bat da. 567 00:24:40,970 --> 00:24:42,260 Array buruz hitz egin dugu aurretik. 568 00:24:42,260 --> 00:24:45,010 Eta array buruz hitz egin dugu, normalean kokapena zero izateaz gain, 569 00:24:45,010 --> 00:24:46,580 ondoren, eta, ondoren, bi. 570 00:24:46,580 --> 00:24:47,950 Baina, besterik erosotasunerako da. 571 00:24:47,950 --> 00:24:49,380 Eta hori da, oso-osorik erlatiboa. 572 00:24:49,380 --> 00:24:53,010 >> Denean benetan ari zaren memoria lortzean ordenagailua, da ikastaroaren edozein da 573 00:24:53,010 --> 00:24:55,450 2 milioi bakoitiak byte batzuk, seguru. 574 00:24:55,450 --> 00:24:59,100 Beraz, benetan kanpaia azpian, Denbora honetan guztian, bai. 575 00:24:59,100 --> 00:25:01,670 Hori oso ondo tarte zero izango da. 576 00:25:01,670 --> 00:25:04,780 Baina dig duzu ere sakonago azpian bada kanpaia, hori benetan 577 00:25:04,780 --> 00:25:07,000 aurre-zenbakia 123. 578 00:25:07,000 --> 00:25:09,150 Helbide honetan 124 da. 579 00:25:09,150 --> 00:25:11,040 Helbide honetan 125 da. 580 00:25:11,040 --> 00:25:12,540 >> Eta ez dut torlojua denbora honetan. 581 00:25:12,540 --> 00:25:15,840 Hauek dira gaur egun ko byte gain arrazoirik? 582 00:25:15,840 --> 00:25:17,930 Zein handia da karaktere bat? 583 00:25:17,930 --> 00:25:19,170 Karaktere bat byte bat besterik ez da. 584 00:25:19,170 --> 00:25:20,570 Int bat da, normalean lau byte. 585 00:25:20,570 --> 00:25:24,850 Horregatik da 123 egin dut, 127, 131, eta abar. 586 00:25:24,850 --> 00:25:27,560 Orain mantentzeko math errazagoa dezaket eta besterik egin gehi 1. 587 00:25:27,560 --> 00:25:30,510 Eta hau, gaur egun, zer da benetan joan kanpaia azpian an. 588 00:25:30,510 --> 00:25:37,760 >> Beraz, honen antzeko zerbait deklaratzen duzu, katea, hau da, benetan - 589 00:25:37,760 --> 00:25:39,170 bihurtzen da - 590 00:25:39,170 --> 00:25:41,190 char izarra. 591 00:25:41,190 --> 00:25:44,640 Star, jakina, esan nahi du helbidea, aka erakuslea. 592 00:25:44,640 --> 00:25:46,200 Beraz, zerbait helbidea da. 593 00:25:46,200 --> 00:25:47,510 Zer da helbidea da? 594 00:25:47,510 --> 00:25:47,760 >> Beno - 595 00:25:47,760 --> 00:25:51,680 Duen bakarra oso ikusi ahal izango naiz Garrantzitsuena, ari naiz egiten, edo uste 596 00:25:51,680 --> 00:25:52,560 Egiten ari naiz. 597 00:25:52,560 --> 00:25:55,270 Beraz, kate - 598 00:25:55,270 --> 00:25:57,180 tristea zera da, monitore bat dut bertan, non I 599 00:25:57,180 --> 00:25:58,100 ikusi ahal izan da. 600 00:25:58,100 --> 00:26:00,990 >> Ondo da, beraz, kate s da zer Aurretik deklaratu nuen. 601 00:26:00,990 --> 00:26:04,600 Baina bihurtzen da, apur bat eskerrak CS50 liburutegian magia, hori guztia 602 00:26:04,600 --> 00:26:08,780 denbora kate ditu, hitzez hitz char izarra izan da. 603 00:26:08,780 --> 00:26:11,310 Izar berriro esan nahi erakuslea edo helbidea. 604 00:26:11,310 --> 00:26:14,180 Izan ere, hori da flanking char hitza esan nahi da 605 00:26:14,180 --> 00:26:15,970 pertsonaia baten helbidea. 606 00:26:15,970 --> 00:26:23,100 >> Beraz, gero katea deitzen da, eta nik idatzi H-E-L-L O-ere, orain zer proposatzen du lortu 607 00:26:23,100 --> 00:26:27,330 literalki dira kate guztiak itzuli Garai honetan, nahiz eta beharrean dugu 608 00:26:27,330 --> 00:26:29,980 oversimplified mundua? 609 00:26:29,980 --> 00:26:33,310 Zer katea benetan lortu du itzultzeko balio gisa itzultzeko? 610 00:26:33,310 --> 00:26:35,830 611 00:26:35,830 --> 00:26:38,720 >> Kasu honetan, 123, esate baterako. 612 00:26:38,720 --> 00:26:42,630 Aurretik esan dugu lortu duten kate besterik gabe, kate bat itzultzen du, sekuentzia baten 613 00:26:42,630 --> 00:26:43,300 karaktereak. 614 00:26:43,300 --> 00:26:44,790 Baina zuri bat gezur apur bat. 615 00:26:44,790 --> 00:26:48,010 Modu lortu katea benetan lan egiten kanpaia azpian da bat lortzen 616 00:26:48,010 --> 00:26:48,930 Erabiltzaile kate. 617 00:26:48,930 --> 00:26:51,530 Pertsonaiak duten plops da berak memoria-motak. 618 00:26:51,530 --> 00:26:54,680 Backslash zero bat jarri amaieran karaktere-sekuentzia horien. 619 00:26:54,680 --> 00:26:57,310 >> Baina orduan, zer kate lortu du hitzez hitz itzultzeko? 620 00:26:57,310 --> 00:27:02,710 Literalki itzultzen duen helbidea Oso lehen RAM byte duten 621 00:27:02,710 --> 00:27:04,130 erabiltzen duten indarra da. 622 00:27:04,130 --> 00:27:07,500 Eta bihurtzen da hori bakarrik itzuli helbide bakarra 623 00:27:07,500 --> 00:27:12,120 katean pertsonaia lehen, hau da, osotasunean duen aurkitzeko nahikoa 624 00:27:12,120 --> 00:27:12,630 katea. 625 00:27:12,630 --> 00:27:16,930 >> Beste era batera esanda, lortu katea ez du 123 eta 124 eta 125 itzultzeko. 626 00:27:16,930 --> 00:27:19,950 Ez du me emateko luzea byte duten guztien zerrenda 627 00:27:19,950 --> 00:27:20,740 nire katea erabiliz. 628 00:27:20,740 --> 00:27:22,670 Bat delako, guztiak atzera itzuli dira. 629 00:27:22,670 --> 00:27:28,160 Eta bi, lehenengo helbide oinarritzen da, I irudikatu ahal non katea amaitu da. 630 00:27:28,160 --> 00:27:29,910 Nola? 631 00:27:29,910 --> 00:27:33,490 >> Berezia null pertsonaia da, backslash zero amaieran. 632 00:27:33,490 --> 00:27:35,430 Beraz, beste era batera esanda, bada inguruan pasatzen duzu - 633 00:27:35,430 --> 00:27:36,530 aldagai barruan - 634 00:27:36,530 --> 00:27:41,300 duen karaktere baten helbidea, eta bere gain hartzen edozein kate amaieran, edozein 635 00:27:41,300 --> 00:27:45,040 gara gizakiak karaktere-sekuentzia kateak pentsatzea, bere gain hartzen baduzu 636 00:27:45,040 --> 00:27:48,600 kate inolako dago amaieran backslash zero bat, urrezko zara. 637 00:27:48,600 --> 00:27:52,430 Ahal duzu beti delako aurkitu kate baten amaieran. 638 00:27:52,430 --> 00:27:54,870 >> Orain zer ari da benetan, ondoren, joan programa honetan? 639 00:27:54,870 --> 00:27:59,990 Zergatik programa hau da, konparazio-0.c, buggy? 640 00:27:59,990 --> 00:28:01,690 Zer da benetan ari aldean? 641 00:28:01,690 --> 00:28:02,420 Bai? 642 00:28:02,420 --> 00:28:05,000 >> Ikaslea: [INAUDIBLE]. 643 00:28:05,000 --> 00:28:05,730 >> DAVID MALAN: Horixe. 644 00:28:05,730 --> 00:28:08,350 Kokapenak da alderatuz kateak ere. 645 00:28:08,350 --> 00:28:12,420 Hala bada, erabiltzaileak idatzitako en kaixo behin, egin dudan bezala, memoria azkenean baliteke 646 00:28:12,420 --> 00:28:13,430 hau atsegin bila. 647 00:28:13,430 --> 00:28:18,210 Erabiltzaileari, ondoren, kaixo motak berriro, baina katea berriro deituz, c da 648 00:28:18,210 --> 00:28:21,800 ez da bereziki azkarra irakatsi ez baduzu izan kodea idatziz argia da. 649 00:28:21,800 --> 00:28:22,430 >> C - 650 00:28:22,430 --> 00:28:23,860 ordenagailuak, eta, oro har - 651 00:28:23,860 --> 00:28:27,370 hitza idazten baduzu kaixo berriro ere, zer lortu duzu ezagutzen duzu. 652 00:28:27,370 --> 00:28:31,480 Ari zaren bigarren array bat iritsi memoria, hori bai, gertatzen dena izango da 653 00:28:31,480 --> 00:28:35,510 H-E-L-L-O gordetzeko, eta abar. 654 00:28:35,510 --> 00:28:38,240 >> Bera begiratu behar da joan Gurekin gizakiak, baina helbide honetan 655 00:28:38,240 --> 00:28:39,460 agian ez da 123 izan. 656 00:28:39,460 --> 00:28:42,470 Besterik ez da, beraz, baliteke gertatuko dela sistema eragileak eskuragarri batzuk 657 00:28:42,470 --> 00:28:45,430 Adibidez, espazio kokapena at - 658 00:28:45,430 --> 00:28:49,820 esan dezagun zerbait arbitrarioa, atsegin dute hau kokapena 200 da. 659 00:28:49,820 --> 00:28:51,620 Eta hau kokapena 201 da. 660 00:28:51,620 --> 00:28:53,060 Eta hau kokapena 202 da. 661 00:28:53,060 --> 00:28:55,730 Ideia ez dago non hori daukagu memoria egongo. 662 00:28:55,730 --> 00:28:59,110 >> Baina, zer esan nahi du, hau da, zer dela gordetzeko, azken finean, s da? 663 00:28:59,110 --> 00:29:00,750 Kopurua 123. 664 00:29:00,750 --> 00:29:04,860 Zer t gordetzeko joan, hau arbitrarioa adibide? 665 00:29:04,860 --> 00:29:06,300 Kopurua 200. 666 00:29:06,300 --> 00:29:11,410 Guztiak, eta horrek esan nahi du, orduan, jakina, 123 ez da berdina 200. 667 00:29:11,410 --> 00:29:14,940 Eta, beraz, hau baldintza bada inoiz Egia ebaluatzen. 668 00:29:14,940 --> 00:29:18,430 Get kate desberdinak erabiliz memoria zatiak aldi bakoitzean. 669 00:29:18,430 --> 00:29:20,360 >> Orain ikusiko dugu berriro beste adibide bat da. 670 00:29:20,360 --> 00:29:23,764 Let me aurrera eta ireki kopia-0.c. 671 00:29:23,764 --> 00:29:28,770 Adibide honetan, hori gertatzen da aldarrikatzen dut saiatu - baina huts egiten - bi kateak kopiatzeko 672 00:29:28,770 --> 00:29:29,910 honela. 673 00:29:29,910 --> 00:29:31,730 >> Zerbait esan nahi dut erabiltzaileari. 674 00:29:31,730 --> 00:29:34,490 Ondoren, naiz bat iritsi katea eta deitu s. 675 00:29:34,490 --> 00:29:36,400 Eta orain, egiaztapen hau egiten ari naiz hemen. 676 00:29:36,400 --> 00:29:37,990 Hau, berriz, atzera aipatu dugu. 677 00:29:37,990 --> 00:29:42,490 Baina katea bueltan null lor dezake, beste izaera berezia, edo bereziak 678 00:29:42,490 --> 00:29:45,050 sinboloa, esan dezagun. 679 00:29:45,050 --> 00:29:45,900 Da, bada, memoria. 680 00:29:45,900 --> 00:29:48,970 >> Esate baterako, erabiltzaileak da benetan zaila da, eta mota atrocious izateaz 681 00:29:48,970 --> 00:29:51,220 karaktere kopurua at teklatua eta hits Sartu. 682 00:29:51,220 --> 00:29:54,580 Karaktere kopurua besterik ezin badu RAM sartzen edozein dela crazy for 683 00:29:54,580 --> 00:29:57,820 arrazoia, bai eta lortu katea agian Oso ondo itzultzeko null. 684 00:29:57,820 --> 00:30:01,080 >> Edo zure programa bera asko egiten ari bada beste gauza, eta ez besterik 685 00:30:01,080 --> 00:30:03,790 katea ez get memoria nahikoa arrakasta, agian amaituko da 686 00:30:03,790 --> 00:30:05,240 null itzuli du. 687 00:30:05,240 --> 00:30:07,160 Baina izan gaitezen zehatzago zer da hori ere. 688 00:30:07,160 --> 00:30:10,280 Zer s datu mota bat da, benetan? 689 00:30:10,280 --> 00:30:11,610 Char izarra. 690 00:30:11,610 --> 00:30:14,560 >> Beraz bihurtzen da orain zuritu dezakegu kopiak null geruza. 691 00:30:14,560 --> 00:30:17,500 Bihurtzen da, nulua da - Bai, jakina, bereziak sinboloa. 692 00:30:17,500 --> 00:30:19,190 Baina zer gertatzen da benetan? 693 00:30:19,190 --> 00:30:25,220 Benetan, null sinbolo bat besterik ez da, guk gizakiak erabili zero adierazten baita. 694 00:30:25,220 --> 00:30:29,010 >> C egileek, eta, beraz, ordenagailu oro har, erabaki zuen duela urte 695 00:30:29,010 --> 00:30:30,010 duten, zer jakin behar duzu. 696 00:30:30,010 --> 00:30:34,850 Zergatik ez dugu bermatuko ez duen erabiltzailea datu da, inoiz, inoiz, inoiz 697 00:30:34,850 --> 00:30:36,730 bye zero gordetzen? 698 00:30:36,730 --> 00:30:39,610 Izan ere, nahiz eta nire Adibidez arbitrarioak en aurretik, ez nuen hasi numerazioa 699 00:30:39,610 --> 00:30:40,390 zero at byte. 700 00:30:40,390 --> 00:30:41,540 Batean hasi nintzen. 701 00:30:41,540 --> 00:30:44,950 Banekien jende hori delako munduko erabaki zero erreserbatu 702 00:30:44,950 --> 00:30:47,970 inoren RAM gisa byte zerbait berezia. 703 00:30:47,970 --> 00:30:52,020 >> Arrazoia izanik, edonoiz nahi duzun seinalerik zerbait gaizki joan da 704 00:30:52,020 --> 00:30:55,960 helbideen aldean, zuk itzuli nulua - Besterik zero gisa ezaguna - 705 00:30:55,960 --> 00:30:59,410 eta badakizu ez dagoela da, ez baitago egiaztatzeko datuak helbide zero da, argi eta garbi 706 00:30:59,410 --> 00:31:00,400 Akats bat gertatu dela esan nahi du. 707 00:31:00,400 --> 00:31:04,080 Eta horregatik konbentzio arabera, dugu, begiratu nulua eta bueltan zerbait 708 00:31:04,080 --> 00:31:06,260 Kasu horietan, bat bezala. 709 00:31:06,260 --> 00:31:09,300 >> Beraz, bada, beherantz korritzen dugu orain, hau da, besterik gabe, ondoren, zenbait error egiaztapena, besterik gabe, kasu 710 00:31:09,300 --> 00:31:10,610 zerbait gaizki joan [batekin? fidantza?] 711 00:31:10,610 --> 00:31:13,470 guztiz eta irten programatik goiz itzuli. 712 00:31:13,470 --> 00:31:19,030 Lerro honek orain berridatzi litezke honen ondorioz, eta horrek esan nahi du, eta zer? 713 00:31:19,030 --> 00:31:23,155 Ezkerreko aldean, ematen dit beste pertsonaia bat, eta deitu t erakuslea. 714 00:31:23,155 --> 00:31:26,935 Zer naiz, t barruko I gordetzeko oinarritutako kode-lerro bat honetan? 715 00:31:26,935 --> 00:31:30,950 716 00:31:30,950 --> 00:31:32,170 >> Kokapena naiz gordetzeko. 717 00:31:32,170 --> 00:31:34,742 Zehazki kokalekua Hori izan zen. 718 00:31:34,742 --> 00:31:39,000 Hala bada, erabiltzaileak kaixo idatzitako, eta lehen kaixo gertatzen sortu amaitzeko 719 00:31:39,000 --> 00:31:42,567 Hemen, ondoren, zenbakia 123 da itzultzea lortu tik joan 720 00:31:42,567 --> 00:31:43,810 katea eta gordeko - 721 00:31:43,810 --> 00:31:44,780 esan dugun bezala - 722 00:31:44,780 --> 00:31:45,440 s. 723 00:31:45,440 --> 00:31:50,560 >> Noiz deklaratzen dut erakuslea beste Karaktereen eta deitu t bat, zer da zenbakia 724 00:31:50,560 --> 00:31:53,940 literalki sortu Amaierara joan Istorioa arabera t? 725 00:31:53,940 --> 00:31:55,420 Beraz, 123. 726 00:31:55,420 --> 00:32:00,310 >> Beraz, orain bai, teknikoki eta s t dira zehatza seinalatuz 727 00:32:00,310 --> 00:32:02,410 memoria zatiak berean. 728 00:32:02,410 --> 00:32:06,140 Beraz, orain konturatzen zer egin behar dut frogatzeko programa hau da, akatsak. 729 00:32:06,140 --> 00:32:08,820 >> Lehen erreklamatu dut, eta inprimatu f, capitalizing 730 00:32:08,820 --> 00:32:10,080 katea kopia. 731 00:32:10,080 --> 00:32:11,660 Orduan, pixka bat egiten dut ERROREA egiaztatzen. 732 00:32:11,660 --> 00:32:12,160 Ziurtatu dut. 733 00:32:12,160 --> 00:32:16,710 Dezagun ziurtatu kate t hori da Gutxienez luzera zero baino handiagoa da, 734 00:32:16,710 --> 00:32:19,190 beraz, ez dago karaktere batzuk ez benetan larriz. 735 00:32:19,190 --> 00:32:22,840 >> Eta, ondoren, hau gogoratzen baliteke Aurreko adibide. 736 00:32:22,840 --> 00:32:25,630 Goiko 2 - Zein da ctype.h fitxategia. 737 00:32:25,630 --> 00:32:30,800 T-tarte zero ematen dit zero katea t izaera. 738 00:32:30,800 --> 00:32:34,360 Eta 2 bereko goiko balioa, eta noski, maiuskulaz bihurtzen da. 739 00:32:34,360 --> 00:32:38,230 >> Beraz, intuizioa, hau nabarmendu line kodea da lehen capitalizing 740 00:32:38,230 --> 00:32:40,250 t letra. 741 00:32:40,250 --> 00:32:44,485 Baina ez da, capitalizing intuizioa, s gutun lehen. 742 00:32:44,485 --> 00:32:48,130 Baina aurretik ari zaren pentsatzen bada, zer naiz Programa hau exekutatu dut ikusteko 743 00:32:48,130 --> 00:32:54,220 eta inprimatu bai jatorrizko s, eta deiturikoak kopia, t? 744 00:32:54,220 --> 00:32:55,350 >> Benetan ari dira berdinak izango. 745 00:32:55,350 --> 00:32:56,600 Eta zergatik dira joan bera izan behar dute? 746 00:32:56,600 --> 00:32:58,970 747 00:32:58,970 --> 00:33:01,020 Biak ari dira to seinalatuz zehazki gauza bera. 748 00:33:01,020 --> 00:33:01,610 Beraz, egin dezagun. 749 00:33:01,610 --> 00:33:03,160 >> Egin kopia zero. 750 00:33:03,160 --> 00:33:04,070 Ados biltzen ditu. 751 00:33:04,070 --> 00:33:06,500 Let kopia zero exekutatu me. 752 00:33:06,500 --> 00:33:10,110 Let kaixo antzeko zerbait idatzi dit minuskulaz guztiak eta ondoren sakatu Sartu. 753 00:33:10,110 --> 00:33:16,520 Eta hori aldarrikatu jatorrizko s bai dela eta kopia berdin-berdinak dira, hain zuzen ere. 754 00:33:16,520 --> 00:33:17,920 >> Beraz, benetan zer gertatu da hemen? 755 00:33:17,920 --> 00:33:20,100 Demagun irudi hau marraztu dit baten istorioa kontatu nahi 756 00:33:20,100 --> 00:33:21,340 apur bat modu ezberdin. 757 00:33:21,340 --> 00:33:26,060 Zer da benetan gertatzen azpian kanpaia zerbait deklaratzen dut atsegin 758 00:33:26,060 --> 00:33:30,410 char Irteeran s, edo kate s, Erakuslea nago lortzean - 759 00:33:30,410 --> 00:33:33,090 gertatzen den lau byte izateko CS50 tresnan 760 00:33:33,090 --> 00:33:34,410 eta ordenagailu askotan. 761 00:33:34,410 --> 00:33:36,008 Eta hau deitzera noa. 762 00:33:36,008 --> 00:33:39,810 Eta hau, gaur egun balio ezezagun batzuk. 763 00:33:39,810 --> 00:33:43,900 >> Noiz aldagai bat deklaratzeko duzu, ez baduzu balio bat jarri zeure burua ez dago, nor 764 00:33:43,900 --> 00:33:44,570 badaki zer ez. 765 00:33:44,570 --> 00:33:48,110 Batzuk ausazko sekuentzia izan liteke tik aurreko exekuzio-bit. 766 00:33:48,110 --> 00:33:52,490 Beraz, nire kode-lerro batean, lortu egin dut katea, eta, ondoren, gorde bueltan 767 00:33:52,490 --> 00:33:54,800 s balioa kate nolabait - 768 00:33:54,800 --> 00:33:58,520 eta, azkenean, atzeko azala, nola lortuko dugu kate lanak, nolabait bideratzen bat 769 00:33:58,520 --> 00:34:00,480 array ziurrenik itxura hau atsegin apur bat. 770 00:34:00,480 --> 00:34:05,390 H-E-L-L-O, backslash zero. 771 00:34:05,390 --> 00:34:09,510 >> Dezagun hori dela helbide 123 besterik lehenengo koherentzia. 772 00:34:09,510 --> 00:34:13,000 Beraz, katea itzultzen, en nabarmendutako lerroa dago, itzultzen du 773 00:34:13,000 --> 00:34:15,000 zenbakia, esan 123. 774 00:34:15,000 --> 00:34:17,420 Beraz, benetan zer s barruan doa hemen? 775 00:34:17,420 --> 00:34:26,590 >> Beno, benetan zer doa s barruan 123 da. 776 00:34:26,590 --> 00:34:29,250 Baina sinceramente, apur bat dut lortzean Helbide hauek guztiek nahastu, 777 00:34:29,250 --> 00:34:30,320 hauek arbitrarioak, zenbaki guztiak. 778 00:34:30,320 --> 00:34:32,290 123, 124, 127. 779 00:34:32,290 --> 00:34:34,570 Hargatik, benetan errazteko mundu pixka bat. 780 00:34:34,570 --> 00:34:38,800 >> Noiz erakusleak buruz hitz egin dugu, sinceramente, nahi Gurekin gizakiak, nor demontre axola non 781 00:34:38,800 --> 00:34:39,870 gauzak memorian dira? 782 00:34:39,870 --> 00:34:41,080 Hori erabat arbitrarioak. 783 00:34:41,080 --> 00:34:43,370 Nola mendekoak dira da joan askoz ahari erabiltzaileak. 784 00:34:43,370 --> 00:34:46,590 Mendekoak dira, noiz egunean da joan programa exekutatu beharko duzu, beharbada, eta 785 00:34:46,590 --> 00:34:48,250 zer sarrera erabiltzaileari ematen dizu. 786 00:34:48,250 --> 00:34:50,060 Xehetasunak garrantzirik on etxebizitza gara. 787 00:34:50,060 --> 00:34:54,230 >> Hargatik abstraktu kanpoan eta esan, denean, kode-lerro bat exekutatzen baduzu hau atsegin, 788 00:34:54,230 --> 00:34:57,320 char izar s bueltan lortzen katea get balioa. 789 00:34:57,320 --> 00:35:02,720 Zergatik ez dugu besterik ordez marraztuko duguna mantentzeko erakuslea deituz nahiz bezala da 790 00:35:02,720 --> 00:35:04,140 zerbait seinalatuz? 791 00:35:04,140 --> 00:35:07,000 Beraz, orain aldarrikatzen dut hori sortu ez da erakusle bat da - 792 00:35:07,000 --> 00:35:08,480 kanpaia azpian helbide bat da. 793 00:35:08,480 --> 00:35:11,330 Baina besterik ez da, seinalatuz en byte lehen 794 00:35:11,330 --> 00:35:12,780 katea izan da itzuli. 795 00:35:12,780 --> 00:35:16,710 >> Orain naiz kodearen bada itzuli hona, zer gertatzen den lerro? 796 00:35:16,710 --> 00:35:20,020 Beno, lerro hau nabarmendu, gaur egun ere, Itxuraz, beste bat naiz geratuko 797 00:35:20,020 --> 00:35:21,070 aldagai izeneko t. 798 00:35:21,070 --> 00:35:25,700 Baina, aldi berean da erakuslea, beraz, joan naiz marrazteko bezala, teoria, zehatza 799 00:35:25,700 --> 00:35:26,710 tamaina bera kutxa. 800 00:35:26,710 --> 00:35:28,160 Eta hori t deitzera noa. 801 00:35:28,160 --> 00:35:33,500 >> Eta orain joan gara itzuliz gero kodearen berriro, denean s gordetzeko I barruan t, 802 00:35:33,500 --> 00:35:36,920 zer naiz, teknikoki t barruan jarriz? 803 00:35:36,920 --> 00:35:39,350 Beno, teknikoki, hau kopurua 123 izan zen. 804 00:35:39,350 --> 00:35:42,270 Beraz, benetan idazten egon beharko nuke zenbakian dago, 123. 805 00:35:42,270 --> 00:35:43,900 Baina dezagun da goi maila. 806 00:35:43,900 --> 00:35:48,090 t da, besterik ez bada erakuslea, intuizioa, besterik ez da hori. 807 00:35:48,090 --> 00:35:49,800 Hori da, hori da dena izateaz han gordetzen. 808 00:35:49,800 --> 00:35:54,970 >> Beraz, interesgarria azken lerroetan kodea, eta noiz joan benetan dut 809 00:35:54,970 --> 00:36:00,680 zero pertsonaia capitalizing t, zer gertatzen da? 810 00:36:00,680 --> 00:36:06,310 Beno, t tarte zero orain apuntatzen zer pertsonaia, ustez? 811 00:36:06,310 --> 00:36:07,460 >> To h da seinalatuz. 812 00:36:07,460 --> 00:36:08,870 T tarte zero delako - 813 00:36:08,870 --> 00:36:12,490 gogoratzen, hau zaharra da sintaxia. t-tarte zero besterik esan t kate bat bada, t 814 00:36:12,490 --> 00:36:15,590 parentesi zero esan zero lortzean indarra duen pertsonaia. 815 00:36:15,590 --> 00:36:18,650 Beraz, zer esan nahi du benetan dago, array honek joan - 816 00:36:18,650 --> 00:36:21,520 eta bai, hau 123 izan daiteke, honetan 124 izan daiteke. 817 00:36:21,520 --> 00:36:22,790 Baina hori guztia da erlatiboa, gogoratu. 818 00:36:22,790 --> 00:36:25,640 Bakoitzean array bati buruz hitz egiten ari gara buruz hitz egiten ari abantaila 819 00:36:25,640 --> 00:36:27,000 erlatiboa indizeak. 820 00:36:27,000 --> 00:36:31,120 >> Eta, beraz, orain ezin dugu suposatuko hori t tarte zero h da. 821 00:36:31,120 --> 00:36:35,090 Beraz, bada, goiko 2 deitzen dut, eta zer dela benetan egiten capitalizing 822 00:36:35,090 --> 00:36:38,290 letra maiuskulaz H. h minuskulaz du Baina, jakina, zer da? 823 00:36:38,290 --> 00:36:41,010 Berean darn katea da seinalatuz. 824 00:36:41,010 --> 00:36:44,200 >> Beraz, hau da, hori gertatzen ari dira kode hau, beraz, oso urrun. 825 00:36:44,200 --> 00:36:45,960 Beraz, zer da, orduan inplikazioa? 826 00:36:45,960 --> 00:36:48,300 Nola bi arazo horiek konpondu dugu? 827 00:36:48,300 --> 00:36:50,870 Nola konparatu benetako kateak dugu? 828 00:36:50,870 --> 00:36:53,720 >> Beno intuizioa, nola litzateke bi alderatuz buruz 829 00:36:53,720 --> 00:36:55,090 berdintasunerako benetako kateak? 830 00:36:55,090 --> 00:36:58,920 831 00:36:58,920 --> 00:37:00,750 >> Zer esan nahi du bi galtzen kateak berdinak dira? 832 00:37:00,750 --> 00:37:04,330 Argi eta garbi, haien helbideak ez dira memorian, berdin, hori gutxi delako 833 00:37:04,330 --> 00:37:06,590 maila ezartzeko xehetasun. 834 00:37:06,590 --> 00:37:08,360 Karaktere guztiak ez dira berdinak. 835 00:37:08,360 --> 00:37:12,810 Hargatik proposatu zidan, eta utzi niri aurkezteko bertsio bat compare.c de 836 00:37:12,810 --> 00:37:14,970 Hemen, beraz, konparazio-1.c. 837 00:37:14,970 --> 00:37:19,590 >> Orain proposatzen dugun oraindik lortu erakuslea izeneko s, eta bertan denda 838 00:37:19,590 --> 00:37:20,610 itzultzeko kate get balioa. 839 00:37:20,610 --> 00:37:21,750 Egin dezagun gauza bera t. 840 00:37:21,750 --> 00:37:23,230 Beraz, kode bat ere ez da ezberdina. 841 00:37:23,230 --> 00:37:25,420 Pixka bat gehitu nahi dut gehiago error orain egiaztapena. 842 00:37:25,420 --> 00:37:29,390 Beraz, orain ari gara atzera peeling moduko zer kate baten CS50 geruza honetan 843 00:37:29,390 --> 00:37:33,520 benetan, gehiago anal izan behar dugu ziur nola egin, ez dugu gehiegi 844 00:37:33,520 --> 00:37:35,330 bezalako null balioak baliogabeak dira. 845 00:37:35,330 --> 00:37:36,440 >> Beraz, besterik ez naiz egiaztatu du. 846 00:37:36,440 --> 00:37:41,490 Egiten ez bada eta berdintasunaren null t ez du berdinak null, horrek esan nahi du Ados gaude. 847 00:37:41,490 --> 00:37:44,460 Parte kateak ez hondatzeko sortu lortzean bai kate horien. 848 00:37:44,460 --> 00:37:51,270 Eta, agian, ezin duzu asmatzeko, orain, zer ez CMP STR zentzuzkoa egin? 849 00:37:51,270 --> 00:37:52,000 Katea alderatu. 850 00:37:52,000 --> 00:37:55,470 >> Hala bada java programa duzun aurretik, hau da, metodo berdin bezalakoa da 851 00:37:55,470 --> 00:37:56,490 katea klasea. 852 00:37:56,490 --> 00:37:57,890 Baina duzun dutenek ez programatu aurretik, 853 00:37:57,890 --> 00:37:59,320 hau da, besterik gabe, c funtzio bat. 854 00:37:59,320 --> 00:38:02,180 Bat etorriko gertatzen da izeneko fitxategi string.h. 855 00:38:02,180 --> 00:38:03,830 Hori da, non oso izendatu zuten. 856 00:38:03,830 --> 00:38:05,110 >> Eta konparatzeko katea - 857 00:38:05,110 --> 00:38:07,530 Ahaztu dut bere erabilera, baina inoiz ez duela axola. 858 00:38:07,530 --> 00:38:10,470 Gogora ekarri ahal izango dugu? man, irabiatu alderatu. 859 00:38:10,470 --> 00:38:12,590 Eta hori aterako joan Linux programatzaileak eskuliburua. 860 00:38:12,590 --> 00:38:14,060 Eta, ez da sinceramente, apur bat críptica. 861 00:38:14,060 --> 00:38:15,270 Baina hemen ikusten dut, hori bai. 862 00:38:15,270 --> 00:38:17,570 String.h sartu behar izan dut. 863 00:38:17,570 --> 00:38:20,590 >> Eta hemen dio deskribapena azpian, "The katea cmp konparatzen 864 00:38:20,590 --> 00:38:24,560 bi kateak S1 eta S2. "Eta S1 eta S2 itxuraz bi 865 00:38:24,560 --> 00:38:26,120 argumentuak pasatu sartu 866 00:38:26,120 --> 00:38:28,650 Ez dut gogoratzen zer eraikiak da, baina orain konturatu - 867 00:38:28,650 --> 00:38:31,480 eta ikusi ahal izango duzu hau dagoeneko denean man orriak erabiltzen dituzun baduzu 868 00:38:31,480 --> 00:38:32,390 dute guztiak - 869 00:38:32,390 --> 00:38:36,220 char izar besterik ez da sinonimo kate batekin. 870 00:38:36,220 --> 00:38:40,440 >> Beraz, bi kateak, S1 alderatzen ditu eta S2, eta zenbaki oso bat itzultzen du gutxiago 871 00:38:40,440 --> 00:38:44,930 baino handiagoa edo berdina edo zero baino handiagoa S1 aurkitzen badu, hurrenez hurren, izan 872 00:38:44,930 --> 00:38:47,450 baino gutxiago edo berdina, edo izan S2 baino handiagoa da. 873 00:38:47,450 --> 00:38:51,220 Hori besterik esaten modu oso konplexua duten konparatzeko katea itzultzen 874 00:38:51,220 --> 00:38:55,760 zero bi kateak dira intuizioa bada berdin-berdina, pertsonaia egiteko 875 00:38:55,760 --> 00:38:57,120 pertsonaia for pertsonaia. 876 00:38:57,120 --> 00:38:59,970 >> Negatiboa bada kopurua itzultzen du s, alfabetikoki, suposatzen da 877 00:38:59,970 --> 00:39:01,010 t aurretik etorri. 878 00:39:01,010 --> 00:39:05,300 Edo zenbaki positiboa bada itzultzen s ustezko t ondoren etorriko 879 00:39:05,300 --> 00:39:06,170 alfabetikoki. 880 00:39:06,170 --> 00:39:08,360 Beraz, erraz hau funtzioa, ezin Adibidez, duzu, ordenatzeko bat 881 00:39:08,360 --> 00:39:09,770 hitz-sorta osoa? 882 00:39:09,770 --> 00:39:13,984 >> Beraz, honen bertsio berria da, joan naiz Aurrera joan eta compare1 egiteko. 883 00:39:13,984 --> 00:39:15,750 Dot barra konparazio bat. 884 00:39:15,750 --> 00:39:18,030 Kaixo en dizut idatzi xeheak ere. 885 00:39:18,030 --> 00:39:20,300 To kaixo idatzi dut minuskulaz guztiak berriro. 886 00:39:20,300 --> 00:39:23,340 Eta, zorionez, gaur egun, konturatuko Gauza bera ondo idatzi dut. 887 00:39:23,340 --> 00:39:27,520 >> Bien bitartean, kaixo en badut idatzi txikiagoa Kasu eta maiuskulaz Kaixo eta 888 00:39:27,520 --> 00:39:29,710 alderatu ditu, ondo idatzi dut gauza desberdinak. 889 00:39:29,710 --> 00:39:32,530 Ez soilik dira helbideak desberdinak dira, baina alderatzen ari gara 890 00:39:32,530 --> 00:39:35,350 pertsonaiak behin eta berriro. 891 00:39:35,350 --> 00:39:37,320 >> Beno, goazen eta konpondu bat beste arazo orain. 892 00:39:37,320 --> 00:39:41,590 Let me ireki bertsio bat kopia, orain helbideak 893 00:39:41,590 --> 00:39:42,900 Arazo hau honela. 894 00:39:42,900 --> 00:39:45,650 Eta hau bat bila joan apur bat konplexuagoa da. 895 00:39:45,650 --> 00:39:49,320 Baina, zer arazo buruz pentsatzen badugu konpondu behar da, espero dugu hau izango da: 896 00:39:49,320 --> 00:39:51,870 besterik gabe, une batean Garbitu orain. 897 00:39:51,870 --> 00:39:57,280 >> Beraz, lehen lerroan, karaktere Irteeran t, en layman en termino lezake norbaitek proposatu 898 00:39:57,280 --> 00:39:59,450 zer lerro hau hemen esan nahi du? 899 00:39:59,450 --> 00:40:01,050 Char izar t, zer da hori egiten? 900 00:40:01,050 --> 00:40:06,660 901 00:40:06,660 --> 00:40:07,210 >> Good. 902 00:40:07,210 --> 00:40:09,500 Sortu erakuslea batzuk memorian lekua. 903 00:40:09,500 --> 00:40:10,930 Eta utzi pixka bat findu me. 904 00:40:10,930 --> 00:40:17,180 Deklaratzeko aldagai hori gordeko char batzuk helbide memorian, besterik 905 00:40:17,180 --> 00:40:18,480 apur bat gehiago egokia izan behar du. 906 00:40:18,480 --> 00:40:21,210 >> Ados, beraz, orain eskuinaldetik, dut inoiz ikusi ez funtzio horietako bat 907 00:40:21,210 --> 00:40:22,660 aurretik, malloc. 908 00:40:22,660 --> 00:40:26,980 Baina, zer esan nahi du? 909 00:40:26,980 --> 00:40:28,050 Memoria esleipena. 910 00:40:28,050 --> 00:40:29,410 Memoria esleipena. 911 00:40:29,410 --> 00:40:33,050 >> Beraz bihurtzen da, orain arte, ez dugu ez dute benetan indartsua izan zuen modu 912 00:40:33,050 --> 00:40:36,210 sistema eragilea galdetuz, ematen dit memoria batzuk. 913 00:40:36,210 --> 00:40:39,980 Baizik eta, gaur egun dugun funtzioa izeneko malloc horrela, ez da zehazki hori. 914 00:40:39,980 --> 00:40:42,960 Nahiz eta hau pixka bat da distrazio oraintxe, nabarituko dela 915 00:40:42,960 --> 00:40:46,200 bi parentesi artekoa da zenbaki bat besterik ez da izango. 916 00:40:46,200 --> 00:40:48,510 Non galdera Nik idatzitako marka zenbaki bat izan daiteke. 917 00:40:48,510 --> 00:40:51,020 >> Eta zenbaki hori esan nahi du, ematen dit 10 byte. 918 00:40:51,020 --> 00:40:52,320 Give me 20 byte. 919 00:40:52,320 --> 00:40:53,820 Give me 100 byte. 920 00:40:53,820 --> 00:40:56,500 Malloc eta bere onena egingo to galdetu sistema eragilea - 921 00:40:56,500 --> 00:40:57,630 Linux, kasu honetan - 922 00:40:57,630 --> 00:40:59,630 hey, beren 100 byte RAM eskuragarri dauden? 923 00:40:59,630 --> 00:41:04,320 Hala bada, itzultzeko byte horiek niri horietatik helbide itzuli 924 00:41:04,320 --> 00:41:06,610 byte horiek, agian? 925 00:41:06,610 --> 00:41:07,610 Oso lehen bat. 926 00:41:07,610 --> 00:41:10,460 >> Beraz, hemen ere - eta hori da nagusi C, edonoiz eres en 927 00:41:10,460 --> 00:41:11,680 helbideak aurre? 928 00:41:11,680 --> 00:41:15,830 Ia beti ari zaren aurre lehen, hala nola, helbidea, ez du axola nola handi 929 00:41:15,830 --> 00:41:19,490 bat memoria zatia izateaz ari zaren entregatu atzera, nolabait esateko. 930 00:41:19,490 --> 00:41:20,880 >> Hargatik hemen murgiltzeko. 931 00:41:20,880 --> 00:41:23,940 Nola esleitu saiatzen ari naiz asko byte, zehazki? 932 00:41:23,940 --> 00:41:24,080 Beno. 933 00:41:24,080 --> 00:41:26,090 Katea s luzera - dezagun egiteko adibide bat. 934 00:41:26,090 --> 00:41:30,700 S kaixo bada, H-E-L-L-O, zer da katea s luzera, noski? 935 00:41:30,700 --> 00:41:32,010 Beraz, bost da. 936 00:41:32,010 --> 00:41:34,590 Baina 1 plus bat egiten ari naiz hori, zergatik? 937 00:41:34,590 --> 00:41:37,700 Zergatik sei byte nahi dut ordez bost? 938 00:41:37,700 --> 00:41:38,790 Null pertsonaia. 939 00:41:38,790 --> 00:41:41,210 >> Ez dut nahi off utzi behar honetan bereziak null pertsonaia. 940 00:41:41,210 --> 00:41:45,160 Egin dut Kaixo kopia bat bada, eta delako besterik egin H-E-L-L-O, baina nik ez dut jarri 941 00:41:45,160 --> 00:41:50,160 duten izaera berezia, ordenagailua agian ez izan, aukera, barra batek 942 00:41:50,160 --> 00:41:51,730 zeron ez niretzat. 943 00:41:51,730 --> 00:41:55,570 Eta, beraz, dut irudikatu nahi saiatzean kopia luzera, uste dut 944 00:41:55,570 --> 00:41:59,360 20 karakterekoa da, edo milioi bat karaktere besterik ez dut inoiz gertatuko 945 00:41:59,360 --> 00:42:01,050 backslash zero bat hit. 946 00:42:01,050 --> 00:42:05,780 >> Beraz, sei byte gorde behar dugu H-E-L-L-O, backslash zero. 947 00:42:05,780 --> 00:42:07,870 Eta, ondoren, hau da, besterik gabe, super anal izan. 948 00:42:07,870 --> 00:42:10,700 Demagun ahaztu dut char baten tamaina da. 949 00:42:10,700 --> 00:42:12,020 Bere ko byte esaten mantendu dugu. 950 00:42:12,020 --> 00:42:12,860 Da normalean. 951 00:42:12,860 --> 00:42:15,425 Teorian, zerbait izan zitekeen ezberdinak, Mac bat edo bat 952 00:42:15,425 --> 00:42:16,250 desberdinetan PC. 953 00:42:16,250 --> 00:42:19,650 >> Beraz, operadore hau bihurtzen da izeneko sizeof pasatzen duzu dut bada 954 00:42:19,650 --> 00:42:22,680 datu-mota baten izena - bezala char edo int, float edo - 955 00:42:22,680 --> 00:42:26,930 esango du, dinamikoki, zenbat byte karaktere bat hartzen du, honen 956 00:42:26,930 --> 00:42:28,090 bereziki ordenagailuan. 957 00:42:28,090 --> 00:42:31,360 >> Beraz, hau da, besterik gabe, modu eraginkorrean aldiz 1 edo esaten duena bezalakoa 958 00:42:31,360 --> 00:42:32,440 aldiz ez du ezer egiten. 959 00:42:32,440 --> 00:42:36,340 Baina egiten ari naiz, besterik gabe, super anal izan nahi du, badaezpada karaktere bat desberdina 960 00:42:36,340 --> 00:42:40,610 Zure ordenagailuan versus nirea, modu honetan matematika da beti begiratu behar. 961 00:42:40,610 --> 00:42:43,720 >> Azkenik, behera begiratu hemen null dut, beti praktika onak - berriro, 962 00:42:43,720 --> 00:42:44,920 edonoiz erakusleak ari gara aurre. 963 00:42:44,920 --> 00:42:47,520 Malloc ez bada gai eman byes sei me - hau da, 964 00:42:47,520 --> 00:42:49,210 zaila da, baina, kasu - 965 00:42:49,210 --> 00:42:50,730 itzultzeko bat berehala. 966 00:42:50,730 --> 00:42:53,290 Eta orain, aurrera eta kopiatu katea honela. 967 00:42:53,290 --> 00:42:57,240 Eta hau ezaguna da, sintaxia, rol ezberdin bat bada ere. 968 00:42:57,240 --> 00:43:01,210 >> Aurrera joan eta katea lortu dut s luzera eta gorde n. 969 00:43:01,210 --> 00:43:06,620 Ondoren, naiz berdin i batetik bestera joateko joan zeron sortu eta n, besteak beste, 970 00:43:06,620 --> 00:43:08,410 baino handiagoa edo berdina. 971 00:43:08,410 --> 00:43:13,540 Beraz, iterazio bakoitzean, jarri dut Ith s pertsonaia Ith en 972 00:43:13,540 --> 00:43:15,380 t izaera. 973 00:43:15,380 --> 00:43:18,190 >> Beraz, zer da benetan azpian gertatzen kanpaia hemen? 974 00:43:18,190 --> 00:43:22,140 Beno, bada, adibidez, s - 975 00:43:22,140 --> 00:43:26,400 eta hitza H-E-L-L-O dut ondo idatzi eta han backslash zero da. 976 00:43:26,400 --> 00:43:29,020 Eta berriro ere, hau seinalatuz hemen s da. 977 00:43:29,020 --> 00:43:30,830 Hemen eta orain, t. 978 00:43:30,830 --> 00:43:34,860 >> Eta hau da, orain joanda memoria kopia bat, ezta? 979 00:43:34,860 --> 00:43:37,340 Malloc eman dit, oro har, memoria zatia. 980 00:43:37,340 --> 00:43:41,440 Ez dakit, hasiera batean, zer kokaleku horietan guztietan. 981 00:43:41,440 --> 00:43:44,340 Beraz, hauek bezala, uste dut galdera ikurrak sorta oso bat. 982 00:43:44,340 --> 00:43:50,190 >> Baina laster hasiko naiz zerotik begizta s, t luzera bidez gora 983 00:43:50,190 --> 00:43:52,790 parentesi zero eta t tarte 1 - 984 00:43:52,790 --> 00:43:55,080 eta hau jarri dut orain goiburu on - 985 00:43:55,080 --> 00:44:04,190 t tarte zero eta s tarte zero esan dut izango kopiatzeko joan 986 00:44:04,190 --> 00:44:09,875 iteratively hemen h, E-L-L-O. Plus, egin nuen plus duelako 987 00:44:09,875 --> 00:44:12,370 1, backslash zero. 988 00:44:12,370 --> 00:44:19,060 >> Beraz, orain konparazio-1.c kasuan, azkenean, inprimatu dut bada 989 00:44:19,060 --> 00:44:24,760 t kapitalizazioa, behar dugu ikusten da hori ez da aldatzen. 990 00:44:24,760 --> 00:44:26,090 Dezagun aurrera me orain, eta hori egin. 991 00:44:26,090 --> 00:44:28,630 Beraz, copy1. 992 00:44:28,630 --> 00:44:30,860 Dot barra copy1. 993 00:44:30,860 --> 00:44:33,670 To kaixo, Sartu idatzi dut. 994 00:44:33,670 --> 00:44:37,430 Eta orain, nabarituko, kopia bakarra kapitalizatzen da. 995 00:44:37,430 --> 00:44:40,890 Benetan daukat, zeren bi memoria zatiak. 996 00:44:40,890 --> 00:44:44,390 >> Zoritxarrez, polit batzuk egin ahal izango duzu txarra eta nahiko arriskutsua gauzak hemen. 997 00:44:44,390 --> 00:44:49,290 Let me tira sortu adibide bat hemen, orain, ematen dizkigun gutxi baten adibidea 998 00:44:49,290 --> 00:44:51,540 lerro desberdinetan. 999 00:44:51,540 --> 00:44:56,040 Beraz, intuizioa hemen, lehen lerroan kode, izar int x, geratuko da 1000 00:44:56,040 --> 00:44:57,340 izeneko x aldagai bat. 1001 00:44:57,340 --> 00:44:58,810 Eta zer datu mota da aldagai hori? 1002 00:44:58,810 --> 00:45:01,820 1003 00:45:01,820 --> 00:45:04,290 Zer aldagaia datu mota da? 1004 00:45:04,290 --> 00:45:06,980 Ez zela cliffhanger du. 1005 00:45:06,980 --> 00:45:08,350 >> Datu mota int izarra da. 1006 00:45:08,350 --> 00:45:12,600 Beraz, zer esan nahi du? x izango da gorde int baten helbidea. 1007 00:45:12,600 --> 00:45:13,520 Hori bezain erraza da. 1008 00:45:13,520 --> 00:45:16,220 Y da gordetzeko joan int baten helbidea. 1009 00:45:16,220 --> 00:45:18,390 Zer hirugarren lerroa kodea du hor? 1010 00:45:18,390 --> 00:45:21,850 Esleitzean da zenbat byte, seguru asko? 1011 00:45:21,850 --> 00:45:22,350 Lau. 1012 00:45:22,350 --> 00:45:25,460 Delako int baten tamaina da Oro har, lau, lau malloc ematen 1013 00:45:25,460 --> 00:45:29,950 zatia baten helbidea atzera me memoria, zeinen byte lehena 1014 00:45:29,950 --> 00:45:32,110 gordetzen dira, gaur egun, x. 1015 00:45:32,110 --> 00:45:34,410 >> Orain pixka bat mugitzen ari gara, azkar. 1016 00:45:34,410 --> 00:45:35,760 Star x zer esan nahi du? 1017 00:45:35,760 --> 00:45:38,480 1018 00:45:38,480 --> 00:45:42,590 Helbide horretara joan nahi da, eta zenbakia jarri zer dago? 1019 00:45:42,590 --> 00:45:43,870 Jarri kopurua 42 ez. 1020 00:45:43,870 --> 00:45:47,590 Star y esan zer y at da joan jarri eta 13 zenbakia ez. 1021 00:45:47,590 --> 00:45:48,600 >> Baina itxaron minutu bat. 1022 00:45:48,600 --> 00:45:51,640 Zer da eta une honetan? 1023 00:45:51,640 --> 00:45:54,950 Zer da helbide y gordetzeko? 1024 00:45:54,950 --> 00:45:55,770 Ez dakigu, ezta? 1025 00:45:55,770 --> 00:45:59,230 Ez dugu inoiz ere behin erabili zereginaren operadore y inplikatuz. 1026 00:45:59,230 --> 00:46:03,370 Beraz, y como line bigarren an deklaratu kode batzuk zabor balio handi bat da 1027 00:46:03,370 --> 00:46:04,760 galdera-marka nolabait esateko. 1028 00:46:04,760 --> 00:46:07,230 Seinalatu izan daiteke ausaz memoria ezer, eta horrek 1029 00:46:07,230 --> 00:46:08,340 Oro har, ez da txarra. 1030 00:46:08,340 --> 00:46:13,540 >> Beraz, laster hit dugu lerro bezala, star y funtzioak 13 itzultzen du, zerbait gaizki, 1031 00:46:13,540 --> 00:46:17,220 zerbait oso txarra da to Binky gertatuko. 1032 00:46:17,220 --> 00:46:25,810 Beraz, zer azkenean joan en ikusi Hemen Binky minutu hau gertatzen 1033 00:46:25,810 --> 00:46:26,200 edo, beraz begiratu. 1034 00:46:26,200 --> 00:46:26,490 >> [Bideo-erreprodukzioa] 1035 00:46:26,490 --> 00:46:26,745 >> -Aizu, Binky. 1036 00:46:26,745 --> 00:46:27,000 Esnatu. 1037 00:46:27,000 --> 00:46:29,296 Erakuslea pasatzeko garaia da. 1038 00:46:29,296 --> 00:46:30,680 >> -Zer da hori? 1039 00:46:30,680 --> 00:46:31,980 Erakusleak buruz ikasi? 1040 00:46:31,980 --> 00:46:34,010 Oh, goodie. 1041 00:46:34,010 --> 00:46:37,220 >> -Beno, hasteko, gara asmatzen dut erakusleak pare bat behar du. 1042 00:46:37,220 --> 00:46:37,930 >> -Ados. 1043 00:46:37,930 --> 00:46:41,650 Kode hau bideratzen bi erakusleak ezin diren osoko zenbakiak seinalatu. 1044 00:46:41,650 --> 00:46:43,760 >> -Ados, bai, bi erakusleak ikusten dut. 1045 00:46:43,760 --> 00:46:45,850 Baina ez dirudi izango ezer seinalatuz. 1046 00:46:45,850 --> 00:46:46,490 >> -Hori da. 1047 00:46:46,490 --> 00:46:48,630 Hasieran, erakusleak ez ezer seinalatu. 1048 00:46:48,630 --> 00:46:51,700 Gauzak seinalatu behar dira, deitu pointees, eta horiek ezartzeko sortu da 1049 00:46:51,700 --> 00:46:52,850 aparteko urratsa. 1050 00:46:52,850 --> 00:46:53,740 >> -Oh, eskuinera, eskuinetik. 1051 00:46:53,740 --> 00:46:54,500 Hori banekien. 1052 00:46:54,500 --> 00:46:56,270 Pointees dira bereizita. 1053 00:46:56,270 --> 00:46:58,553 Beraz, nola ez pointee bat esleitu duzu? 1054 00:46:58,553 --> 00:46:59,480 >> -Ados. 1055 00:46:59,480 --> 00:47:03,707 Beno, kode hau bideratzen berria zenbaki oso bat pointee, eta zati honetan ezartzen x 1056 00:47:03,707 --> 00:47:05,520 nahi du seinalatu. 1057 00:47:05,520 --> 00:47:06,760 >> -Aizu, itxura hobea. 1058 00:47:06,760 --> 00:47:08,520 Beraz, zerbait egin da. 1059 00:47:08,520 --> 00:47:09,530 >> -Ados. 1060 00:47:09,530 --> 00:47:14,110 Dereference dut erakuslea x gordetzeko kopurua 42 bere pointee sartu. 1061 00:47:14,110 --> 00:47:17,660 Trikimailu hau, nire magia behar dut dereferencing du makila. 1062 00:47:17,660 --> 00:47:20,695 >> -Zure dereferencing du makila magikoa? 1063 00:47:20,695 --> 00:47:22,632 Uh, hori handia. 1064 00:47:22,632 --> 00:47:24,620 >> -Horixe kodea itxura. 1065 00:47:24,620 --> 00:47:27,526 Dut sortu kopurua, eta - 1066 00:47:27,526 --> 00:47:28,250 >> -Aizu, begira. 1067 00:47:28,250 --> 00:47:29,680 Hor doa. 1068 00:47:29,680 --> 00:47:34,520 Beraz, x honela dereference on bat egiten gezi bere pointee sartzeko. 1069 00:47:34,520 --> 00:47:36,690 Kasu honetan, 42 gordetzeko han. 1070 00:47:36,690 --> 00:47:40,890 Hey, saiatu erabiltzen zenbakia gordetzeko Beste erakuslea bitartez 13, y. 1071 00:47:40,890 --> 00:47:42,125 >> -Ados. 1072 00:47:42,125 --> 00:47:46,810 Dut joan Hemen y eta get 13 zenbakia sortu. 1073 00:47:46,810 --> 00:47:50,890 Eta gero, makila hartu du eta dereferencing bakarrik - 1074 00:47:50,890 --> 00:47:52,430 Tira! 1075 00:47:52,430 --> 00:47:53,030 >> -Oh, aupa. 1076 00:47:53,030 --> 00:47:54,610 Ez zuen lan. 1077 00:47:54,610 --> 00:47:58,200 Esan, Binky, ez dut uste y dereferencing ideia ona da, 1078 00:47:58,200 --> 00:48:01,370 konfiguratzeko pointee duelako aparteko urratsa da. 1079 00:48:01,370 --> 00:48:03,460 Eta ez dut uste inoiz egin dugu. 1080 00:48:03,460 --> 00:48:03,810 >> -Hmm. 1081 00:48:03,810 --> 00:48:05,160 Puntu ona. 1082 00:48:05,160 --> 00:48:07,410 >> -Bai, erakuslea y bideratu dugu. 1083 00:48:07,410 --> 00:48:10,045 Baina ez dugu inoiz ezarri da to pointee bat seinalatu. 1084 00:48:10,045 --> 00:48:10,490 >> -Hmm. 1085 00:48:10,490 --> 00:48:12,170 Oso observant. 1086 00:48:12,170 --> 00:48:13,790 >> -Aizu, bila ari zaren ona dago, Binky. 1087 00:48:13,790 --> 00:48:16,920 Konpondu ahal izango duzu, beraz, eta puntu x gisa pointee bera? 1088 00:48:16,920 --> 00:48:17,810 >> -Bai. 1089 00:48:17,810 --> 00:48:20,300 Nire makila magikoa erabili dut erakuslea esleitzeko. 1090 00:48:20,300 --> 00:48:22,240 >> -Hau da, joan izan nahi du lehen bezala, arazoa? 1091 00:48:22,240 --> 00:48:22,665 >> -Ez. 1092 00:48:22,665 --> 00:48:24,300 Horrek ez du ukitu pointees du. 1093 00:48:24,300 --> 00:48:27,880 Aldatzen da, besterik gabe, bat erakuslea seinalatzen bestera gauza bera. 1094 00:48:27,880 --> 00:48:28,970 >> -Oh, ikusten dut. 1095 00:48:28,970 --> 00:48:31,730 Orain y x toki berean puntu. 1096 00:48:31,730 --> 00:48:32,450 Beraz, itxaron. 1097 00:48:32,450 --> 00:48:33,490 Orain y finkoa da. 1098 00:48:33,490 --> 00:48:34,630 Pointee ditu. 1099 00:48:34,630 --> 00:48:36,520 Beraz, makila dastatu ahal izango dituzu berriro dereferencing du 1100 00:48:36,520 --> 00:48:39,200 13 baino gehiago bidaltzeko. 1101 00:48:39,200 --> 00:48:39,840 >> -Ados. 1102 00:48:39,840 --> 00:48:41,570 Hemen doa. 1103 00:48:41,570 --> 00:48:42,870 >> -Aizu, hori begiratu. 1104 00:48:42,870 --> 00:48:44,320 Orain y lanak dereferencing. 1105 00:48:44,320 --> 00:48:47,020 Eta erakusleak dira partekatzen delako ko pointee hori dute, 1106 00:48:47,020 --> 00:48:48,585 bai ikus 13. 1107 00:48:48,585 --> 00:48:49,040 >> -Bai. 1108 00:48:49,040 --> 00:48:49,670 Partekatuz. 1109 00:48:49,670 --> 00:48:50,380 Whatever. 1110 00:48:50,380 --> 00:48:52,290 Beraz, joan switch lekuak dugu orain? 1111 00:48:52,290 --> 00:48:52,970 >> -Oh, begira. 1112 00:48:52,970 --> 00:48:54,150 Ari gara denbora. 1113 00:48:54,150 --> 00:48:55,200 >> -Baina - 1114 00:48:55,200 --> 00:48:57,060 >> -Just gogoratu hiru erakuslea arauak. 1115 00:48:57,060 --> 00:49:00,100 Zenbaki bat, oinarrizko egitura da duzula erakuslea. 1116 00:49:00,100 --> 00:49:02,170 Eta puntu baino gehiagoko da pointee bat. 1117 00:49:02,170 --> 00:49:04,160 Baina erakuslea eta pointee bereziak dira. 1118 00:49:04,160 --> 00:49:06,460 Eta komun error da sortu erakuslea da, baina 1119 00:49:06,460 --> 00:49:08,540 ahaztu emandako pointee bat. 1120 00:49:08,540 --> 00:49:12,460 >> Zenbakia bi, erakuslea dereferencing hasten erakuslea, eta honela, bere 1121 00:49:12,460 --> 00:49:14,570 gezi baino gehiago bere pointee sartzeko. 1122 00:49:14,570 --> 00:49:18,640 Guztiak ezagutzen dugun bezala, horrek bakarrik lan egiten ez bada pointee bat, eta hori lortzen itzuli da 1123 00:49:18,640 --> 00:49:19,790 araua zenbaki bat da. 1124 00:49:19,790 --> 00:49:23,670 >> Kopurua hiru, erakusle esleipena hartzen ko erakuslea eta aldaketak egiteko puntu 1125 00:49:23,670 --> 00:49:25,850 erakuslea beste gisa pointee berdinak. 1126 00:49:25,850 --> 00:49:27,840 Beraz, esleipena egin ondoren, bi erakusleak borondatea 1127 00:49:27,840 --> 00:49:29,430 berean pointee seinalatu. 1128 00:49:29,430 --> 00:49:31,600 Batzuetan izeneko partekatzea. 1129 00:49:31,600 --> 00:49:33,430 Eta hori guztia ez da egin behar da, benetan. 1130 00:49:33,430 --> 00:49:33,840 Bye bye orain. 1131 00:49:33,840 --> 00:49:34,300 >> [END bideo-erreprodukzioa] 1132 00:49:34,300 --> 00:49:36,940 >> DAVID MALAN: Beraz erakusleak on gehiago, hurrengo Binky aste on gehiago. 1133 00:49:36,940 --> 00:49:38,190 Ikusiko dugu astelehenean. 1134 00:49:38,190 --> 00:49:42,187