1 00:00:00,000 --> 00:00:06,030 >> [Musika jotzen] 2 00:00:06,030 --> 00:00:08,390 >> DOUG LLOYD: erakusleak, hemen gaude. 3 00:00:08,390 --> 00:00:11,080 Hau, seguru aski joan izan zailena gaia 4 00:00:11,080 --> 00:00:12,840 CS50 buruz hitz egin dugu. 5 00:00:12,840 --> 00:00:15,060 Eta zuk irakurri bada erakusleak buruz ezer 6 00:00:15,060 --> 00:00:19,080 pixka bat izan baino lehen, agian beldurra bideo honetan sartu. 7 00:00:19,080 --> 00:00:21,260 Egia da erakusleak ez gaitasuna baimendu behar dituzu 8 00:00:21,260 --> 00:00:23,740 to agian hondatzeko nahiko gaizki zaudenean 9 00:00:23,740 --> 00:00:27,450 aldagaiak, eta datuekin lan, eta eragiten zure programa huts. 10 00:00:27,450 --> 00:00:30,490 Baina benetan erabilgarria benetan ari dira eta gurekin modu benetan handia ematen dute 11 00:00:30,490 --> 00:00:33,340 Datu atzera pasatzeko eta dagozkio funtzioen artean, 12 00:00:33,340 --> 00:00:35,490 bestela ezin da egin garela. 13 00:00:35,490 --> 00:00:37,750 >> Eta orain zer dugu benetan hemen egin nahi trena da 14 00:00:37,750 --> 00:00:41,060 erakuslea diziplina ona izan behar duzu, eta, beraz, Hori erakusleak eraginkorrean erabili ahal izango dituzu 15 00:00:41,060 --> 00:00:43,850 Zure programak askoz hobeto egiteko. 16 00:00:43,850 --> 00:00:48,220 Esan dudan bezala erakusleak ezberdinak ematen dizkigute funtzioen artean datuak pasatzeko modu. 17 00:00:48,220 --> 00:00:50,270 Orain gogoratzen duzu batetik bada lehenago bideo bat, betiere 18 00:00:50,270 --> 00:00:53,720 buruz hitz egin genuen esparrua aldagai, aipatu dut 19 00:00:53,720 --> 00:01:00,610 duten artean igaroko ditugun datu guztiak C funtzioak balioa gainditu. 20 00:01:00,610 --> 00:01:03,070 Eta ez dut erabiltzen dute epe, zer ez, esan nahi dut 21 00:01:03,070 --> 00:01:07,170 zela datuen kopiak pasatzen ari gara. 22 00:01:07,170 --> 00:01:12,252 Noiz aldagai bat gainditu dugu funtzio bat, ez gara benetan aldakorra pasatuz 23 00:01:12,252 --> 00:01:13,210 funtzioa, ezta? 24 00:01:13,210 --> 00:01:17,670 Kopia bat pasatzen ari gara funtzioaren lan datu horiek. 25 00:01:17,670 --> 00:01:20,760 Funtzio hauek nahi duena egiten eta balio batzuk kalkulatzen du, 26 00:01:20,760 --> 00:01:23,180 eta, agian, balio hori erabiltzen dugu denean, ematen du atzera. 27 00:01:23,180 --> 00:01:26,700 >> Ez zen salbuespen bat balio pasatuz arau hau, 28 00:01:26,700 --> 00:01:31,210 eta egingo da itzuli dugu zer dela da geroago pixka bat bideo honetan. 29 00:01:31,210 --> 00:01:34,880 Erakusleak erabiltzen dugun ordez aldagai erabiliz, 30 00:01:34,880 --> 00:01:38,180 edo aldagai erabiliz ordez beraiek edo aldagai kopiak, 31 00:01:38,180 --> 00:01:43,790 orain dugu aldagai inguruan pasa daiteke beste modu batean funtzioen artean. 32 00:01:43,790 --> 00:01:46,550 Horrek esan nahi du egiten badugu funtzio bat aldatuz gero, 33 00:01:46,550 --> 00:01:49,827 Aldaketa hori benetan hartuko beste funtzio bat ere eragingo. 34 00:01:49,827 --> 00:01:52,160 Berriz ere, zerbait dela ezin izan dugu aldez aurretik, 35 00:01:52,160 --> 00:01:56,979 eta inoiz ez duzu aldatu egin baduzu funtzio bat bi aldagai balioa, 36 00:01:56,979 --> 00:01:59,270 Arazo hau nabaritu duzun herrestan moduko, ezta? 37 00:01:59,270 --> 00:02:04,340 >> X eta Y, eta guk trukatu nahi badugu horiek gainditu swap izeneko funtzio bat, 38 00:02:04,340 --> 00:02:08,680 funtzioaren barruan trukatu du aldagai truke balioak egin. 39 00:02:08,680 --> 00:02:12,600 One bi bihurtzen da, bi bihurtzen bat, baina ez dugu benetan 40 00:02:12,600 --> 00:02:16,890 ezer aldatu original batean funtzioa, deitzailearen ere. 41 00:02:16,890 --> 00:02:19,550 Ezin duelako ditugu, ez gara bakarrik horien kopiak batera lanean. 42 00:02:19,550 --> 00:02:24,760 Erakusleak, nahiz eta, ahal dugun benetan pasatzen X eta Y funtzio bat da. 43 00:02:24,760 --> 00:02:26,960 Funtzio hori egin ahal izango Haiekin zerbait. 44 00:02:26,960 --> 00:02:29,250 Eta aldagai balio horiek benetan alda daiteke. 45 00:02:29,250 --> 00:02:33,710 Beraz, hori ere aldaketa bat nahiko da datuekin lan egiteko dugun gaitasuna. 46 00:02:33,710 --> 00:02:36,100 >> Aurretik murgiltze sartu dugu erakusleak, uste dut merezi 47 00:02:36,100 --> 00:02:38,580 minutu gutxi batzuk hartzen go oinarriak itzuli hona. 48 00:02:38,580 --> 00:02:41,000 Eta nola begirada bat izan ordenagailuaren memoria lanak 49 00:02:41,000 --> 00:02:45,340 Bi irakasgai horiek joan delako Nahiko elkarrekin lotuta benetan. 50 00:02:45,340 --> 00:02:48,480 Seguruenik ezagutzen duzun bezala, zure sistemari buruzko 51 00:02:48,480 --> 00:02:51,310 disko gogor bat behar duzu, edo agian sendo bat egoera drive, 52 00:02:51,310 --> 00:02:54,430 fitxategiak gordetzeko kokapena nolabaiteko. 53 00:02:54,430 --> 00:02:57,950 Izan ohi da nonbait ere 250 gigabyteko auzoan 54 00:02:57,950 --> 00:02:59,810 Agian Terabyte pare bat orain. 55 00:02:59,810 --> 00:03:02,270 Eta non da zure guztia fitxategiak, azken finean, bizi, 56 00:03:02,270 --> 00:03:04,870 nahiz eta ordenagailua ixtean off, atzera aktiba dezakezu 57 00:03:04,870 --> 00:03:09,190 eta aurkituko dituzu zure fitxategiak daude berriro zure sistema berrabiarazi behar dituzu. 58 00:03:09,190 --> 00:03:14,820 Baina disko-unitateak, disko bat bezala, HDD bat, edo solidoa egoera drive, SSD bat, 59 00:03:14,820 --> 00:03:16,050 biltegiratze leku besterik ez dira. 60 00:03:16,050 --> 00:03:20,400 >> Ezin benetan egiten dugu ezer datu hori diskoan dago, 61 00:03:20,400 --> 00:03:22,080 edo solidoa egoera unitatean. 62 00:03:22,080 --> 00:03:24,950 Benetan aldatu datuak edo mugitzeko inguruan, 63 00:03:24,950 --> 00:03:28,800 mugitu behar dugu RAM, ausazko sarbidea memoria. 64 00:03:28,800 --> 00:03:31,170 Orain RAM, asko duzu Ordenagailuaren gutxiago. 65 00:03:31,170 --> 00:03:34,185 Nonbait izan dezakezu 512 megabyte auzoan 66 00:03:34,185 --> 00:03:38,850 ordenagailu zaharrago bat izanez gero, agian, bi, lau, zortzi, 16, 67 00:03:38,850 --> 00:03:41,820 ziurrenik ere apur bat gehiago, RAM gigabyte. 68 00:03:41,820 --> 00:03:46,390 Beraz, hori askoz ere txikiagoa da, baina hori da non datuak lurrunkorren guztia existitzen. 69 00:03:46,390 --> 00:03:48,270 Hori da, non gauzak aldatzeko aukera izango dugu. 70 00:03:48,270 --> 00:03:53,350 Baina gure ordenagailua itzaltzeko dugu, RAM datu guztiak suntsitu. 71 00:03:53,350 --> 00:03:57,150 >> Beraz, horregatik disko gogorra izan behar dugu Da kokapena iraunkorrenak egiteko, 72 00:03:57,150 --> 00:03:59,720 Horrela, exists- litzateke izan benetan txarra bada, aldi bakoitzean dugu 73 00:03:59,720 --> 00:04:03,310 Gure ordenagailua itzali, behin gure sistema fitxategia ezabatzen da. 74 00:04:03,310 --> 00:04:05,600 Beraz RAM barruan lan egiten dugu. 75 00:04:05,600 --> 00:04:09,210 Eta aldi bakoitzean buruz hitz egiten ari gara memoria, nahiko askoz, CS50, 76 00:04:09,210 --> 00:04:15,080 dugu RAM, ez disko gogor ari gara hitz egiten. 77 00:04:15,080 --> 00:04:18,657 >> Beraz, gauzak mugitzen gara memorian, hartzen du espazio kopuru jakin bat. 78 00:04:18,657 --> 00:04:20,740 Datu mota guztiek izan dugu lan batekin 79 00:04:20,740 --> 00:04:23,480 hartu eman ezberdinak RAM lekua zenbatekoak. 80 00:04:23,480 --> 00:04:27,600 Beraz, aldi bakoitzean, zenbaki oso bat sortzen duzunean aldakorra, lau byteko memoria 81 00:04:27,600 --> 00:04:30,750 albo batera ari RAM duzun orain osokoa dela lan. 82 00:04:30,750 --> 00:04:34,260 Osokoa aldarrikatu dezakezu, aldatu da, esleitu 83 00:04:34,260 --> 00:04:36,700 10 balio bat handitzen den banan, beraz, eta abar. 84 00:04:36,700 --> 00:04:39,440 Guztiak gertatuko RAM, eta lau byte lortuko duzu 85 00:04:39,440 --> 00:04:42,550 berarekin lan bakoitzean Sortzen dituzun zenbaki oso. 86 00:04:42,550 --> 00:04:45,410 >> Pertsonaia bakoitzak dituzu sortu byte bat lortzen. 87 00:04:45,410 --> 00:04:48,160 Hori espazio besterik zenbat da pertsonaia bat gorde behar. 88 00:04:48,160 --> 00:04:51,310 Karroza guztietan, benetako bat kopurua, lau byte lortzen 89 00:04:51,310 --> 00:04:53,390 bikoitza ezean doitasun puntu mugikorreko 90 00:04:53,390 --> 00:04:56,510 zenbakia, horri esker, digituak zehatzagoak edo gehiago dute 91 00:04:56,510 --> 00:04:59,300 du dezimal ondoren doitasun galdu gabe, 92 00:04:59,300 --> 00:05:01,820 bertan hartu zortzi memoria byte. 93 00:05:01,820 --> 00:05:06,730 Long Longs, osokoak benetan handia, ere hartu zortzi memoria byte. 94 00:05:06,730 --> 00:05:09,000 Zenbat byteko memoria Zer hartu kateak sortu? 95 00:05:09,000 --> 00:05:12,990 Beno dezagun jarri pin bat galdera horretan oraingoz, baina etorri egingo da itzuli dugu. 96 00:05:12,990 --> 00:05:17,350 >> Beraz, memoria ideia hau bezala itzuli byte tamainako zelula multzo handi bat. 97 00:05:17,350 --> 00:05:20,871 Hori da benetan egiten da, da, besterik zelula-multzo handi bat, 98 00:05:20,871 --> 00:05:23,370 beste edozein array bezala Oraindik ezagutzen eta ikusi, 99 00:05:23,370 --> 00:05:26,430 elementu guztietan izan ezik byte bat zabal. 100 00:05:26,430 --> 00:05:30,030 Eta besterik array bat bezala, elementu guztietan helbide bat dauka. 101 00:05:30,030 --> 00:05:32,120 Array baten elementu guztietan indize bat, eta guk ditu 102 00:05:32,120 --> 00:05:36,302 Indize hori erabili ahal deiturikoak egin Array ausazko sarbidea. 103 00:05:36,302 --> 00:05:38,510 Guk ez dugu izan nahi hasiko array hasieran, 104 00:05:38,510 --> 00:05:40,569 guztietan zehar batetik bestera joateko elementu bakar haietan, 105 00:05:40,569 --> 00:05:41,860 zer bilatzen ari gara aurkitzeko. 106 00:05:41,860 --> 00:05:45,790 Besterik esan dezakegu, behar iritsi nahi dut Elementu 15a edo 100 elementua. 107 00:05:45,790 --> 00:05:49,930 Eta besterik dezakezu zenbaki hori gainditu eta balio bilatzen ari zaren lortuko. 108 00:05:49,930 --> 00:05:54,460 >> Antzera kokapena guztietan memorian helbide bat dauka. 109 00:05:54,460 --> 00:05:57,320 Beraz, zure memoria lukeen honelako itxura. 110 00:05:57,320 --> 00:06:01,420 Hona hemen zati oso txiki bat memoria, hau 20 memoria byte da. 111 00:06:01,420 --> 00:06:04,060 Lehenengo 20 byte delako nire helbideak ez behealdean 112 00:06:04,060 --> 00:06:08,890 0, 1, 2, 3, eta beraz, 19 gehienez modu guztietan. 113 00:06:08,890 --> 00:06:13,190 Eta noiz aldagaiak deklaratzen dut eta denean, haiekin lan egiten hasten naiz, 114 00:06:13,190 --> 00:06:15,470 sisteman dago ezarrita joan Alde batera niretzat espazio batzuk 115 00:06:15,470 --> 00:06:17,595 Memoria honetan lan egiteko Nire aldagai batzuekin. 116 00:06:17,595 --> 00:06:21,610 Hau honela, esan nuen, char c berdinen capital H. Eta zer gertatuko? 117 00:06:21,610 --> 00:06:23,880 Beno sistema da joan albo batera me byte da. 118 00:06:23,880 --> 00:06:27,870 Kasu honetan byte kopurua peskizan lau, helbide lauretan byte, 119 00:06:27,870 --> 00:06:31,310 eta nik gordetzeko joan letra kapital H han niretzat. 120 00:06:31,310 --> 00:06:34,350 Orduan diot int abiadura badu muga berdinen 65, da 121 00:06:34,350 --> 00:06:36,806 lau albo batera joan memoria byte niretzat. 122 00:06:36,806 --> 00:06:39,180 Eta nik horiek tratatzeko joan lau byte unitate bakar gisa 123 00:06:39,180 --> 00:06:41,305 zer garen lanean ari delako batez zenbaki oso bat dago hemen. 124 00:06:41,305 --> 00:06:44,350 Eta nik 65 gordetzeko han doa. 125 00:06:44,350 --> 00:06:47,000 >> Orain Mota jada nago diozu gezur bat pixka bat, 126 00:06:47,000 --> 00:06:50,150 eskubidea, badakigu delako ordenagailuak bitarrean lan. 127 00:06:50,150 --> 00:06:53,100 Ez dute ulertzen nahitaez kapital H a zer da 128 00:06:53,100 --> 00:06:57,110 edo zer 65 a da, ez bakarrik binary, zeroen eta ulertu. 129 00:06:57,110 --> 00:06:59,000 Eta, beraz, benetan zer ari gara ez gordetzeko 130 00:06:59,000 --> 00:07:03,450 Ez da letra H eta 65 zenbakia, baizik eta irudikapen bitarraren 131 00:07:03,450 --> 00:07:06,980 kontratuan, zein itxura bat txiki honen antzeko zerbait. 132 00:07:06,980 --> 00:07:10,360 Eta, batez ere Osoko aldagai maila aztertu, 133 00:07:10,360 --> 00:07:13,559 ez da besterik txu sartu, Ez da, lau bat bezala tratatzeko joan 134 00:07:13,559 --> 00:07:15,350 byte zatia nahitaez, orain benetan joan 135 00:07:15,350 --> 00:07:19,570 lau bat byte zatiak bezala tratatzen, honen antzeko zerbait begiratu dezake. 136 00:07:19,570 --> 00:07:22,424 Eta hori ez da Egia osoki, 137 00:07:22,424 --> 00:07:24,840 izeneko zerbait delako endianness bat, horrek ez gara 138 00:07:24,840 --> 00:07:26,965 orain sartuko, baina Oraindik buruzko bitxia bada, 139 00:07:26,965 --> 00:07:29,030 irakurri ireki dezakezu txikian eta endianness big. 140 00:07:29,030 --> 00:07:31,640 Baina argudio honen mesedetan, Bideo honetan mesedetan, 141 00:07:31,640 --> 00:07:34,860 Demagun besterik ez dela, in Izan ere, nola zenbakia 65 litzateke 142 00:07:34,860 --> 00:07:36,970 egon ordezkatuta memoria sistema guztietan, 143 00:07:36,970 --> 00:07:38,850 ez da erabat egia bada ere. 144 00:07:38,850 --> 00:07:41,700 >> Baina dezagun benetan besterik lortu binary guztiak kentzeko osorik, 145 00:07:41,700 --> 00:07:44,460 eta besterik H bezala pentsatzen eta 65, da asko errazago 146 00:07:44,460 --> 00:07:47,900 pentsatu bezala gizaki gisa duten. 147 00:07:47,900 --> 00:07:51,420 Ondo da, beraz, badirudi ere, agian bat ausazko I've- nire sistema hori gutxi 148 00:07:51,420 --> 00:07:55,130 ez zuen ematen dit byte 5, 6, 7, eta 8 osokoa gordetzeko. 149 00:07:55,130 --> 00:07:58,580 Ez dago arrazoi bat da, gehiegi, eta horrek Ez dugu, oraintxe sartu, baina nahikoa 150 00:07:58,580 --> 00:08:00,496 esatea zer egin ordenagailua hemen egiten da 151 00:08:00,496 --> 00:08:02,810 da seguruenik bere aldetik mugimendu ona. 152 00:08:02,810 --> 00:08:06,020 Ez eman dit hori da memoria nahitaez atzera itzuli. 153 00:08:06,020 --> 00:08:10,490 Nahiz eta orain egiten ari kate beste lortu nahi badut, 154 00:08:10,490 --> 00:08:13,080 abizenak deitzen, eta nahi dut Lloyd jarri hor. 155 00:08:13,080 --> 00:08:18,360 Bat egokitzeko behar noa pertsonaia, horren letra bakoitza da 156 00:08:18,360 --> 00:08:21,330 bat eskatzeko pertsonaia, memoria byte. 157 00:08:21,330 --> 00:08:26,230 Beraz, bada Lloyd jarri izan dut nire array sartu Hau atsegin nahiko ongi joan, eskubidea dut? 158 00:08:26,230 --> 00:08:28,870 Zer falta da? 159 00:08:28,870 --> 00:08:31,840 >> Gogoratu kate bakoitzak egiten dugun lan C backslash zero batekin amaitzen batera, 160 00:08:31,840 --> 00:08:33,339 eta ezin dugu aipatu gabe utzi nahi dela hemen, bai. 161 00:08:33,339 --> 00:08:36,090 Byte bat alde batera utzi behar ditugu oroimenaren orain ditugun eduki 162 00:08:36,090 --> 00:08:39,130 Badakizu, gure katea da amaitu. 163 00:08:39,130 --> 00:08:41,049 Moldaketa hau, beraz, berriro Bide gauzetako 164 00:08:41,049 --> 00:08:42,799 memoria kemen agertzen apur bat ausazko izan, 165 00:08:42,799 --> 00:08:44,870 baina, egia da, nola Sistema gehienetan diseinatuta daude. 166 00:08:44,870 --> 00:08:48,330 Lerro gehienez multiploak on lau, arrazoiak direla eta berriro 167 00:08:48,330 --> 00:08:50,080 ez dugun behar den oraintxe sartu. 168 00:08:50,080 --> 00:08:53,060 Baina hau, beraz, nahikoa da hori esaten Hiru kode lerro hauen ondoren, 169 00:08:53,060 --> 00:08:54,810 hau da like zer memoria begiratu dezake. 170 00:08:54,810 --> 00:08:58,930 Memoria kokapenak behar dut bada 4, 8, 12 eta nire datuak eduki, 171 00:08:58,930 --> 00:09:01,100 hau da like zer nire memoria begiratu dezake. 172 00:09:01,100 --> 00:09:04,062 >> Eta besterik ez da izan bereziki pedantekeriazko hemen, denean 173 00:09:04,062 --> 00:09:06,020 dugu memoria buruz hitz egiten ari helbideak ohi dugu 174 00:09:06,020 --> 00:09:08,390 hacerlo notations hamaseitar erabiliz. 175 00:09:08,390 --> 00:09:12,030 Beraz, zergatik ez horiek guztiak bihurtu dugu idazkera hamaseitarra hamartar bertatik 176 00:09:12,030 --> 00:09:15,010 Hori besterik ez da, oro har, delako nola Memoria nahi dugu. 177 00:09:15,010 --> 00:09:17,880 Beraz, 0 izatearen bitartez 19, zer dugu zero da 178 00:09:17,880 --> 00:09:20,340 x zero zero x1 hiru bidez. 179 00:09:20,340 --> 00:09:23,790 Horiek dira 20 memoria byte garela Izan edo ari irudi honetan ikusten ari garen 180 00:09:23,790 --> 00:09:25,540 hementxe. 181 00:09:25,540 --> 00:09:29,310 >> Beraz, esan zuen hori guztia, dezagun urratsa kanpoan oroimenetik bigarren bat 182 00:09:29,310 --> 00:09:30,490 eta erakusleak itzuli. 183 00:09:30,490 --> 00:09:32,420 Hemen da garrantzitsuena Gauza bat gogoratu 184 00:09:32,420 --> 00:09:34,070 erakusleak Hasteko dugu. 185 00:09:34,070 --> 00:09:36,314 Erakuslea ezer ez da helbide bat baino gehiagotan. 186 00:09:36,314 --> 00:09:38,230 Da berriro esaten dut Garrantzitsua hori da, 187 00:09:38,230 --> 00:09:42,730 erakuslea ezer ez da helbide bat baino gehiagotan. 188 00:09:42,730 --> 00:09:47,760 Erakusleak helbideak kokapenak dira memorian aldagaiak non bizi. 189 00:09:47,760 --> 00:09:52,590 Zorionez bihurtzen dela jakiteak Pixka errazagoa haiekin lan egiteko. 190 00:09:52,590 --> 00:09:54,550 Gustatzen Beste gauza egin da sort dute 191 00:09:54,550 --> 00:09:58,510 ren ikusmen diagramak zer da ordezkari Kode lerro ezberdinetan gertatzen ari da. 192 00:09:58,510 --> 00:10:00,660 Eta hau pare bat egingo dugu, erakusleak aldiz, 193 00:10:00,660 --> 00:10:03,354 Noiz eta dinamikoa buruz hitz egiten dugu memoria esleipena baita. 194 00:10:03,354 --> 00:10:06,020 Uste dut diagrama horiek duten delako bereziki lagungarria izan daiteke. 195 00:10:06,020 --> 00:10:09,540 >> Adibidez esaten dut, hala bada, int k nire kodea, zer gertatzen ari da? 196 00:10:09,540 --> 00:10:12,524 Beno, zer ari den gertatzen ari dena, funtsean, Naiz memoria albo batera niretzat lortzean dut, 197 00:10:12,524 --> 00:10:14,690 baina ez dut ere gustatzen dela pentsatzen duten bezala, I 198 00:10:14,690 --> 00:10:16,300 pentsatu kutxa bat bezalakoa gustatzen. 199 00:10:16,300 --> 00:10:20,090 Kutxa bat daukat, eta hori da koloreko berdea dudalako 200 00:10:20,090 --> 00:10:21,750 Osoko zenbaki jarri ahal kutxak berde batean. 201 00:10:21,750 --> 00:10:23,666 Pertsonaia dut bat izan zen bada Koadro urdin bat izan liteke. 202 00:10:23,666 --> 00:10:27,290 Baina beti esaten dut, sortzen ari naiz, bada Hori integers eutsi ahal kutxa bat 203 00:10:27,290 --> 00:10:28,950 koadro hori koloreko da berdea. 204 00:10:28,950 --> 00:10:33,020 Eta markatzaile iraunkor bat hartzen dut eta haren alde on k idatzi dut. 205 00:10:33,020 --> 00:10:37,590 Beraz k izeneko koadro bat daukat, I bertan sartu integers jarri daiteke. 206 00:10:37,590 --> 00:10:41,070 Beraz, int k esan nuen, hori da nire buruan zer gertatzen den. 207 00:10:41,070 --> 00:10:43,140 K berdin bost esaten badut, zer egiten ari naiz? 208 00:10:43,140 --> 00:10:45,110 Beno, naiz jarriz bost koadroan, eskubidea. 209 00:10:45,110 --> 00:10:48,670 Hau da, nahiko erraza da, bada Esan int k, sortu k izeneko koadro bat. 210 00:10:48,670 --> 00:10:52,040 K berdin 5 esaten badut, jarri bost kutxan. 211 00:10:52,040 --> 00:10:53,865 Zorionez, ez da hori gehiegi jauzi bat askoz. 212 00:10:53,865 --> 00:10:55,990 Hemen da non puntu bat gutxi interesgarri arren. 213 00:10:55,990 --> 00:11:02,590 Int * PK esaten badut, ondo ez badut, are Badakizu zer esan nahi du honek nahitaez, 214 00:11:02,590 --> 00:11:06,150 eta argi eta garbi lortu zerbait zenbaki oso bat egin. 215 00:11:06,150 --> 00:11:08,211 Beraz, nik margotu dut Kutxa hau berde-ish, 216 00:11:08,211 --> 00:11:10,210 Badakit zerbait lortu da zenbaki oso bat egin, 217 00:11:10,210 --> 00:11:13,400 baina ez da zenbaki oso bat, berez, int izar bat delako. 218 00:11:13,400 --> 00:11:15,390 Ez dago zerbait zertxobait Horri buruz ezberdinetan. 219 00:11:15,390 --> 00:11:17,620 Beraz, zenbaki oso baten parte hartzen duten, baina bestela da 220 00:11:17,620 --> 00:11:19,830 ez oso ezberdina zertaz ari garen. 221 00:11:19,830 --> 00:11:24,240 Kutxa bat da, bere got etiketa bat, etiketa PK eramateagatik da, 222 00:11:24,240 --> 00:11:27,280 eta eskuratzeko gai da int izarrak, zernahi dira horiek. 223 00:11:27,280 --> 00:11:29,894 Zerbait egin behar dute Osoko zenbaki batera, argi eta garbi. 224 00:11:29,894 --> 00:11:31,060 Hemen azken lerroan arren. 225 00:11:31,060 --> 00:11:37,650 Esan badut PK = & k, Tira, besterik zer gertatu zen, ezta? 226 00:11:37,650 --> 00:11:41,820 Beraz ausazko zenbaki hau, itxuraz ausazko zenbakia, lortzen kutxan bota han. 227 00:11:41,820 --> 00:11:44,930 Guztiak, hau da, PK da k helbide lortzen. 228 00:11:44,930 --> 00:11:52,867 Beraz, ez dut non k memoria bizi da itsastea dut, bere helbidea, bere byte helbidea. 229 00:11:52,867 --> 00:11:55,200 Guztiak egiten ari naiz da esaten dut balio horixe da Noa 230 00:11:55,200 --> 00:11:59,430 nire PK izeneko koadroan barruan jarri. 231 00:11:59,430 --> 00:12:02,080 Eta gauza horiek dira erakusleak, eta ari delako 232 00:12:02,080 --> 00:12:04,955 zero x bezalako kate batean Zortzi zero c zazpi lau zortzi 233 00:12:04,955 --> 00:12:07,790 Bi zero da seguruenik ez oso esanguratsuak. 234 00:12:07,790 --> 00:12:12,390 Denean, oro har, ikusteko dugu erakusleak, Egia esan, beraz, ez dugu erakusle gisa. 235 00:12:12,390 --> 00:12:17,000 Pk informazioa ematen digu k aurkitu memorian behar dugu. 236 00:12:17,000 --> 00:12:19,120 Beraz, funtsean PK da, gezi bat dauka. 237 00:12:19,120 --> 00:12:21,670 Eta luzera bagabiltza gezi hori, pentsa 238 00:12:21,670 --> 00:12:25,280 Zerbait oinez dezakezu on da, bagenu Gezia luzera zehar oinez, 239 00:12:25,280 --> 00:12:29,490 gezi hori oso puntan, dugu memorian kokapena aurkituko 240 00:12:29,490 --> 00:12:31,390 non k bizi da. 241 00:12:31,390 --> 00:12:34,360 Eta hori oso garrantzitsua da behin jakin dugu non k bizi delako, 242 00:12:34,360 --> 00:12:37,870 to datuekin lan egiten hasteko aukera izango dugu Memoriaren barruan. 243 00:12:37,870 --> 00:12:40,780 Nahiz eta ez gabiltza teeny bat lortzeko aurretik geure buruari hozkatu oraingoz. 244 00:12:40,780 --> 00:12:42,240 >> Beraz, zer erakuslea da? 245 00:12:42,240 --> 00:12:45,590 Erakuslea datu bat, zeinen da balio memoria-helbide bat da. 246 00:12:45,590 --> 00:12:49,740 Hori izan zen zero x zortzi zero gauza dela joan, memoria-helbide bat izan zen. 247 00:12:49,740 --> 00:12:52,060 Hori memoria kokapena zegoen. 248 00:12:52,060 --> 00:12:55,080 Eta erakuslea motaren mota deskribatzen 249 00:12:55,080 --> 00:12:56,930 Datuen at aurkituko memoria helbide hori. 250 00:12:56,930 --> 00:12:58,810 Beraz, ez da int izar parte eskubidea da. 251 00:12:58,810 --> 00:13:03,690 Gezi hori jarraitu nuen bada, da me eramango kokapena bat egingo da. 252 00:13:03,690 --> 00:13:06,980 Eta kokapen hori, zer I Han topatuko nire adibide, 253 00:13:06,980 --> 00:13:08,240 berde koloreko kutxa bat da. 254 00:13:08,240 --> 00:13:12,650 Zenbaki oso bat da, hori da dut joan nintzen helbide horretara bada topatuko. 255 00:13:12,650 --> 00:13:14,830 Datu bat mota erakuslea deskribatzen zer 256 00:13:14,830 --> 00:13:17,936 egingo memoria helbide hartan aurkituko dituzu. 257 00:13:17,936 --> 00:13:19,560 Beraz, hemen benetan cool gauza izan arren. 258 00:13:19,560 --> 00:13:25,090 Erakusleak pasatzeko aukera ematen digu funtzioen artean aldagaiak. 259 00:13:25,090 --> 00:13:28,520 Eta benetan pasatzen aldagai eta ez horien kopiak gainditu. 260 00:13:28,520 --> 00:13:32,879 Baldin badakigu delako zehazki non memoria aldakorreko bat aurkitzeko, 261 00:13:32,879 --> 00:13:35,670 ez dugu behar beste kopia bat egin nahi du da, bakarrik joan ahal kokaleku horren 262 00:13:35,670 --> 00:13:37,844 eta aldakorra horrekin lan egiteko. 263 00:13:37,844 --> 00:13:40,260 Beraz esentzia erakusleak ere ordenatu egiteko ordenagailua ingurune batean 264 00:13:40,260 --> 00:13:42,360 Mundu errealean bezala, askoz gehiago da, ezta. 265 00:13:42,360 --> 00:13:44,640 >> Hortaz, hona hemen analogia bat da. 266 00:13:44,640 --> 00:13:48,080 Demagun koaderno bat behar dut, eskubidea, eta ohar betea da. 267 00:13:48,080 --> 00:13:50,230 Eta nahi nuke eguneratzeko duzu. 268 00:13:50,230 --> 00:13:53,960 Funtzio bat zarela eguneratzeak notak, eskubidea. 269 00:13:53,960 --> 00:13:56,390 Modu batean izan gara orain arte lanean, zer 270 00:13:56,390 --> 00:14:02,370 gertatzen da nire koaderno hartu ahal izango duzu, kopia dendan joan beharko duzu, 271 00:14:02,370 --> 00:14:06,410 Xerox kopia bat egin ahal izango duzu koadernoaren orrialde bakoitzean. 272 00:14:06,410 --> 00:14:09,790 Nire koaderno back zaizu Nire mahai gainean amaitzen duzunean, 273 00:14:09,790 --> 00:14:14,600 joan eta gauzak zeharkatuko egindako dituzu nire koaderno hori data edo oker daude, 274 00:14:14,600 --> 00:14:19,280 eta, ondoren, atzera pasa behar dituzu me Xerox-orriak pila 275 00:14:19,280 --> 00:14:22,850 nire koaderno erreplika bat da Hori da nik egindako aldaketak. 276 00:14:22,850 --> 00:14:27,040 Eta une horretan, ez da niri eman bezala zenbakira deituz funtzioa, deitzailearen bezala, 277 00:14:27,040 --> 00:14:30,582 zure oharrak hartu erabakitzeko eta horiek integratzeko atzera nire koadernoan sartu. 278 00:14:30,582 --> 00:14:32,540 Beraz, ez dago urrats asko da Hemen sartuta, eskubidea. 279 00:14:32,540 --> 00:14:34,850 Like ez litzateke hobea izango da I esaten ez bada, beno, ahal duzun 280 00:14:34,850 --> 00:14:38,370 nire koaderno eguneratu Niri, entregatu nire koaderno, 281 00:14:38,370 --> 00:14:40,440 eta gauzak hartu eta literalki zeharkatuko itzazu 282 00:14:40,440 --> 00:14:42,810 eta nire ohar eguneratu nire koadernoan. 283 00:14:42,810 --> 00:14:45,140 Eta gero eman dit nire koaderno atzera. 284 00:14:45,140 --> 00:14:47,320 Hori da, zer nolako erakusleak egiten uzten digu, 285 00:14:47,320 --> 00:14:51,320 ingurune honek asko egin dute nola jarduten dugun errealitatean bezala gehiago. 286 00:14:51,320 --> 00:14:54,640 >> Beraz Ondo da zer erakuslea da, hitz egin dezagun 287 00:14:54,640 --> 00:14:58,040 erakusleak nola C egiten dute lan, eta buruz nola haiekin lan egiten hasteko aukera izango dugu. 288 00:14:58,040 --> 00:15:02,550 Beraz, ez da erakuslea oso erraza da C in the null erakuslea izeneko. 289 00:15:02,550 --> 00:15:04,830 Ezer null erakuslea puntu. 290 00:15:04,830 --> 00:15:08,310 Hau ziurrenik badirudi bezala Egia esan, ez da gauza oso erabilgarria, 291 00:15:08,310 --> 00:15:10,500 baina ez dugu ikusiko gisa gutxi geroago, hain zuzen, 292 00:15:10,500 --> 00:15:15,410 null erakuslea hau badela benetan erabilgarri etorriko. 293 00:15:15,410 --> 00:15:19,090 Eta, betiere, erakuslea bat sortu duzu, eta Ez duzu bere balioa immediately- ezarri 294 00:15:19,090 --> 00:15:21,060 ezartzeko adibide bat bere balioa berehala 295 00:15:21,060 --> 00:15:25,401 Bikote diapositibak bat izango da atzera non PK berdinen & k esan dut, 296 00:15:25,401 --> 00:15:28,740 PK k helbide lortzen, gisa zer esan nahi duen ikusiko dugu, 297 00:15:28,740 --> 00:15:32,990 hori nola kode ikusiko dugu shortly- ez badugu bere zerbait balio ezarri 298 00:15:32,990 --> 00:15:35,380 esanguratsu berehala, beti behar duzu 299 00:15:35,380 --> 00:15:37,480 ezarri erakuslea null seinalatu. 300 00:15:37,480 --> 00:15:40,260 Ezer ez seinalatu ezarri beharko zenuke. 301 00:15:40,260 --> 00:15:43,614 >> Hori da, baino oso desberdina besterik balio utzita dagoen moduan 302 00:15:43,614 --> 00:15:45,530 eta, ondoren, bat deklaratzen erakuslea eta besterik suposatuz 303 00:15:45,530 --> 00:15:48,042 nulua da hori gutxitan egia delako. 304 00:15:48,042 --> 00:15:50,000 Beraz ezarri behar duzu beti erakuslea balioa 305 00:15:50,000 --> 00:15:55,690 null ez baduzu, bere balioa ezarri zerbait esanguratsua berehala. 306 00:15:55,690 --> 00:15:59,090 Egiaztatu ahal izango duzu erakuslea balioa ala null berdintasuna operadorea erabiliz 307 00:15:59,090 --> 00:16:05,450 (==), Bezala edozein zenbaki konparatzea balioak edo pertsonaia balioak erabiliz (==) 308 00:16:05,450 --> 00:16:06,320 baita. 309 00:16:06,320 --> 00:16:10,994 Konstante moduko berezi bat da Hori probatzeko erabili ahal izango duzu balio. 310 00:16:10,994 --> 00:16:13,160 Beraz, hori izan zen, oso erraza da erakuslea, null erakuslea. 311 00:16:13,160 --> 00:16:15,320 Sortuko beste modu bat erakuslea da ateratzeko 312 00:16:15,320 --> 00:16:18,240 aldagai baten helbidea Dagoeneko sortutako, 313 00:16:18,240 --> 00:16:22,330 eta hau erabiliz egiten duzu & operadorea helbide erauzketa. 314 00:16:22,330 --> 00:16:26,720 Zein Jadanik Aurretik ikusi ditugu lehen-diagrama adibidea erakutsi dut. 315 00:16:26,720 --> 00:16:31,450 Beraz, x aldagai bat dugu bada Dagoeneko mota osokoa sortu, 316 00:16:31,450 --> 00:16:35,110 Orduz & x zenbaki oso bat erakuslea da. 317 00:16:35,110 --> 00:16:39,810 & X da- gogoratu, eta hau da ateratzeko joan eskubideari buruzko gauza helbidea. 318 00:16:39,810 --> 00:16:45,350 Eta erakuslea geroztik besterik helbide bat da, baino & x zenbaki oso bat erakuslea da 319 00:16:45,350 --> 00:16:48,560 bere balioa non in memoria x bizitza da. 320 00:16:48,560 --> 00:16:50,460 Da x helbidea. 321 00:16:50,460 --> 00:16:53,296 Beraz & x x helbidea da. 322 00:16:53,296 --> 00:16:55,670 Ikus dezagun urrats bat gero eta zerbait konektatzeko 323 00:16:55,670 --> 00:16:58,380 Aipatu aurretik, bideo bat egin nahi nuen. 324 00:16:58,380 --> 00:17:06,730 ARR bikoitzak array bat bada, orduan & ARR kortxetea i erakuslea da 325 00:17:06,730 --> 00:17:08,109 bikoitzarekin. 326 00:17:08,109 --> 00:17:08,970 ONDO DA. 327 00:17:08,970 --> 00:17:12,160 ARR kortxetea i, bada ARR bikoitzak multzo bat da, 328 00:17:12,160 --> 00:17:19,069 ondoren, ARR kortxetea i da i-garren array duten elementua, 329 00:17:19,069 --> 00:17:29,270 eta & ARR kortxetea i da, non ere memoria i-garren ARR elementua existitzen. 330 00:17:29,270 --> 00:17:31,790 >> Beraz, zer inplikazio hemen? 331 00:17:31,790 --> 00:17:34,570 Arrayak izen bat, inplikazioa Gauza oso honen, 332 00:17:34,570 --> 00:17:39,290 da array baten izena dela Egia esan, bera erakuslea. 333 00:17:39,290 --> 00:17:41,170 Zuk dira lanean erakusleak guztiak batera 334 00:17:41,170 --> 00:17:45,290 matrize erabili duzun aldi bakoitzean. 335 00:17:45,290 --> 00:17:49,090 Adibidez batetik gogoratu esparrua aldagai on, 336 00:17:49,090 --> 00:17:53,420 bideoa aurkeztuko dut amaiera gertu Adibide bat non funtzio bat dela 337 00:17:53,420 --> 00:17:56,890 Multzo int eta bat izeneko Multzo array izeneko funtzioa. 338 00:17:56,890 --> 00:18:00,490 Eta zehazteko erronka ala ez, edo zer egin 339 00:18:00,490 --> 00:18:03,220 balioak, inprimatutako dugu funtzioaren amaieran, 340 00:18:03,220 --> 00:18:05,960 Programa nagusia amaieran. 341 00:18:05,960 --> 00:18:08,740 >> Gogoratzen baduzu Adibide horretatik aurrera edo duzun bideoa Ikusi izan bada, 342 00:18:08,740 --> 00:18:13,080 noiz deia duzu- badakizu Multzo int eraginkortasunez ez du ezer egiten. 343 00:18:13,080 --> 00:18:16,390 Baina array ditu betetzen deia egiteko. 344 00:18:16,390 --> 00:18:19,280 Eta nintzaion zergatik glossed garai hartan kasua izan zen. 345 00:18:19,280 --> 00:18:22,363 Esan dut, bai nik array bat, da, bereziak, badakizu, ez dago arrazoi bat. 346 00:18:22,363 --> 00:18:25,020 Arrazoia da array en izen da benetan erakuslea besterik ez, 347 00:18:25,020 --> 00:18:28,740 eta ez da berezi honetan kortxetea sintaxia 348 00:18:28,740 --> 00:18:30,510 Gauza asko ikusgarriago lan egiteko. 349 00:18:30,510 --> 00:18:34,410 Eta baten ideia egiten dute erakuslea asko gutxiago beldurra, 350 00:18:34,410 --> 00:18:36,800 eta horregatik moduko ari dira modu horretan aurkezten. 351 00:18:36,800 --> 00:18:38,600 Baina benetan multzo besterik ez dira erakusleak. 352 00:18:38,600 --> 00:18:41,580 Zergatik eta hori dugu array aldaketa bat egin, 353 00:18:41,580 --> 00:18:44,880 array bat gainditu dugu, parametro gisa funtzio bat edo argumentu bezala 354 00:18:44,880 --> 00:18:50,110 funtzio bat, array-aren edukia benetan callee biak ere aldatu 355 00:18:50,110 --> 00:18:51,160 deitzen duen ere. 356 00:18:51,160 --> 00:18:55,846 Beste mota guztietan bertan aldakorreko ikusi genuen, ez zen horrelakorik egin. 357 00:18:55,846 --> 00:18:58,970 Beraz, zerbait mantendu behar da axola duzunean erakusleak lan egiten ari zaren, 358 00:18:58,970 --> 00:19:01,610 dela baten izena benetan array erakuslea 359 00:19:01,610 --> 00:19:04,750 Array horretan lehenengo elementua da. 360 00:19:04,750 --> 00:19:08,930 >> Ados beraz, gaur egun hauetan denok hechos, gorde dezagun, ezta. 361 00:19:08,930 --> 00:19:11,370 Zergatik ez dugu zaindu buruz non zerbait bizi da. 362 00:19:11,370 --> 00:19:14,120 Esan dudan bezala, ondo, nahiko da erabilgarria non zerbait bizi ezagutu 363 00:19:14,120 --> 00:19:17,240 beraz, ez joan ahal izango duzu eta aldatzeko. 364 00:19:17,240 --> 00:19:19,390 Berarekin lan eta benetan gauza egin behar duzula 365 00:19:19,390 --> 00:19:23,710 to take aldakorra efektu hori egin nahi, eta ez du ondoriorik izango da kopia batzuk. 366 00:19:23,710 --> 00:19:26,150 Hau dereferencing deitzen da. 367 00:19:26,150 --> 00:19:28,690 Go erreferentzia dugu eta balioa aldatzen ditugu han. 368 00:19:28,690 --> 00:19:32,660 Beraz, erakuslea izan dugu, eta bada deitzen PC, eta puntu pertsonaia bat da, 369 00:19:32,660 --> 00:19:40,610 orduan esan dezakegu * pc eta * pc da zer aurkituko dugu bazoaz izena 370 00:19:40,610 --> 00:19:42,910 helbide ordenagailuari. 371 00:19:42,910 --> 00:19:47,860 Zer han aurkituko dugu da pertsonaia bat eta * Pc da erreferentzia-datuen dugu artan 372 00:19:47,860 --> 00:19:48,880 kokapena. 373 00:19:48,880 --> 00:19:54,150 Beraz, antzeko zerbait esan genezake * Pc = D edo horrelako zerbait, 374 00:19:54,150 --> 00:19:59,280 eta hori esan nahi du edozein dela memoria helbide pc zen, 375 00:19:59,280 --> 00:20:07,040 edozein dela pertsonaia zen, aldez aurretik Han, gaur egun, D, dugu esan * bada pc = D. 376 00:20:07,040 --> 00:20:10,090 >> Beraz, hemen ere joaten gara elkarrekin Zenbait bitxi C stuff, eskubidea. 377 00:20:10,090 --> 00:20:14,560 Beraz, ikusi dugu * Aurretik izateaz nolabait datu-mota zati, 378 00:20:14,560 --> 00:20:17,160 eta orain dela erabiltzen ari pixka bat eta beste testuinguru batean 379 00:20:17,160 --> 00:20:19,605 kokaleku batera, datuak sartzeko. 380 00:20:19,605 --> 00:20:22,480 Ezagutzen dut pixka bat nahasgarria da eta hori da benetan osotasun horren zati 381 00:20:22,480 --> 00:20:25,740 bezala, zergatik erakusle mitologia honetan Horien inguruan, beraz, konplexua izateaz gain, 382 00:20:25,740 --> 00:20:28,250 sintaxia arazo baten antzeko zerbait da, egia esanda. 383 00:20:28,250 --> 00:20:31,810 Baina * bai testuinguru batzuetan erabiltzen da, bi motako izena parte bezala, 384 00:20:31,810 --> 00:20:34,100 eta ikusiko dugu, apur bat geroago beste zerbait ere bai. 385 00:20:34,100 --> 00:20:36,490 Eta oraintxe da dereference operadorea. 386 00:20:36,490 --> 00:20:38,760 Beraz doa erreferentzia da, Datu sartzen da 387 00:20:38,760 --> 00:20:43,000 erakuslea kokalekua, aldi berean, manipulatu borondate aukera ematen du. 388 00:20:43,000 --> 00:20:45,900 >> Orain hori oso antzekoa da Zure bizilaguna bisitatuz, eskubidea. 389 00:20:45,900 --> 00:20:48,710 Badakizu zer zure bizilaguna bizi, zaren 390 00:20:48,710 --> 00:20:50,730 Ez zintzilik zure bizilaguna. 391 00:20:50,730 --> 00:20:53,510 Gertatuko den zaren jakin Badakizu non bizi dira, 392 00:20:53,510 --> 00:20:56,870 baina horrek ez du esan nahi ezagutza hori izatearen bertutea 393 00:20:56,870 --> 00:20:59,170 haiekin elkarreraginean ari zara. 394 00:20:59,170 --> 00:21:01,920 Horiek elkarreragin nahi baduzu, beren etxera joan behar duzu, 395 00:21:01,920 --> 00:21:03,760 non bizi dira joan behar duzu. 396 00:21:03,760 --> 00:21:07,440 Eta behin hori egin duzu, ondoren, elkarreragin dezakezu 397 00:21:07,440 --> 00:21:09,420 haiekin besterik nahi duzu litzaidake nahi. 398 00:21:09,420 --> 00:21:12,730 Eta, era berean, aldagai, beren helbidera joan behar duzu 399 00:21:12,730 --> 00:21:15,320 horiek elkarreragin nahi baduzu, Ezin duzu besterik ez badakizu helbidea. 400 00:21:15,320 --> 00:21:21,495 Eta bide batez, joan helbide duzu da *, dereference operadorea erabili. 401 00:21:21,495 --> 00:21:23,620 Zure ustez, zer gertatzen saiatzen gara eta erreferentzia kenduta bada 402 00:21:23,620 --> 00:21:25,260 erakuslea zeinaren balioa nulua? 403 00:21:25,260 --> 00:21:28,470 Gogoratzen nulua dela erakuslea nothing puntu. 404 00:21:28,470 --> 00:21:34,110 Saiatu behar duzu eta hala bada erreferentzia kenduta nothing edo helbide nothing batera doaz, 405 00:21:34,110 --> 00:21:36,800 zer uste duzu gertatzen da? 406 00:21:36,800 --> 00:21:39,630 Beno igarri baduzu segmentazio hutsegite, eskubidea izango litzaidake. 407 00:21:39,630 --> 00:21:41,390 Saiatu eta erreferentzia kenduta baduzu null erakuslea, 408 00:21:41,390 --> 00:21:43,140 segmentazio bat jasaten baduzu hutsegite. Baina itxaron, 409 00:21:43,140 --> 00:21:45,820 ez duzu esango dut, hori ez bazoaz 410 00:21:45,820 --> 00:21:49,220 Zure balioa ezarri zure zerbait esanguratsua erakuslea, 411 00:21:49,220 --> 00:21:51,000 null ezarri behar duzu? 412 00:21:51,000 --> 00:21:55,290 Egin nuen, eta, egia esan, segmentazioa errua portaera ona mota da. 413 00:21:55,290 --> 00:21:58,680 >> Dute inoiz aldagai bat deklaratu eta Ez esleitzen bere balioa berehala? 414 00:21:58,680 --> 00:22:02,680 Beraz, besterik gabe esan duzun int x; Egin ez benetan esleitu ezer 415 00:22:02,680 --> 00:22:05,340 eta gero zure kodea an, x balioa inprimatu behar dituzu, 416 00:22:05,340 --> 00:22:07,650 oraindik ez izatea esleitzen da ezer. 417 00:22:07,650 --> 00:22:10,370 Maiz jasoko duzu zero, baina batzuetan 418 00:22:10,370 --> 00:22:15,000 ausazko zenbaki batzuk eskuratu daitezke, eta Auskalo non zetorren duzu. 419 00:22:15,000 --> 00:22:16,750 Era berean, ahal gauzak erakusleak gertatuko. 420 00:22:16,750 --> 00:22:20,110 When erakuslea deklaratzeko int * adibidez PK, 421 00:22:20,110 --> 00:22:23,490 eta ez baduzu, esleitu balio bat, lau byte memoria lortu nahi duzun. 422 00:22:23,490 --> 00:22:25,950 Ren Whatever lau byte memoria-sistemak 423 00:22:25,950 --> 00:22:28,970 Hori esanguratsua balio batzuk aurkitu. 424 00:22:28,970 --> 00:22:31,760 Eta han izan liteke Zerbait dagoeneko ez dagoela 425 00:22:31,760 --> 00:22:34,190 dagoeneko ez da beharrezkoa beste batek funtzioa, besterik ez duzu, beraz, 426 00:22:34,190 --> 00:22:35,900 edozein dela ere, datu zen han. 427 00:22:35,900 --> 00:22:40,570 >> Zer dereference egiten saiatu ezkero Han izan ziren don't- duzun helbide batzuk 428 00:22:40,570 --> 00:22:43,410 Dagoeneko byte eta informazioaren ez, hori da orain zure erakuslea. 429 00:22:43,410 --> 00:22:47,470 Saiatu baduzu eta erakuslea erreferentzia kenduta, zuk be memoria batzuk aldatzeari liteke 430 00:22:47,470 --> 00:22:49,390 ez duzula asmoa dena nahastea. 431 00:22:49,390 --> 00:22:51,639 Eta, hain zuzen ere egin ahal izango duzu Zerbait benetan suntsitzaileak, 432 00:22:51,639 --> 00:22:54,880 bezalako beste programa bat hautsi, edo funtzio bat apurtu, 433 00:22:54,880 --> 00:22:58,289 edo zerbait maltzur hark egin ez duzu nahi batere egin. 434 00:22:58,289 --> 00:23:00,080 Eta beraz, horregatik da Egia esan, ideia ona da 435 00:23:00,080 --> 00:23:04,030 Zure erakusleak ezartzeko baduzu null Ez ezarri horiek zerbait esanguratsua da. 436 00:23:04,030 --> 00:23:06,760 Da ziurrenik hobeto Zure programa egunaren amaieran 437 00:23:06,760 --> 00:23:09,840 gero, huts egiteko egin da Zerbait hori torlojuak eman 438 00:23:09,840 --> 00:23:12,400 beste programa edo funtzio beste. 439 00:23:12,400 --> 00:23:15,207 Portaera hori da, ziurrenik, nahiz eta besterik behera gelditzen baino ideal gutxiago. 440 00:23:15,207 --> 00:23:17,040 Eta beraz, horregatik da Egia esan, ohitura onak 441 00:23:17,040 --> 00:23:20,920 Zure erakusleak ezarri iritsi sartu nahi null ez dituzun horiek ezarri bada 442 00:23:20,920 --> 00:23:24,540 balio esanguratsua Berehala, badakiela balio bat 443 00:23:24,540 --> 00:23:27,260 eta segurtasunez ahal duzula dereference. 444 00:23:27,260 --> 00:23:32,240 >> Hargatik itzuli orain eta begirada bat Egoeraren sintaxia orokorra. 445 00:23:32,240 --> 00:23:37,400 Esan int * p bada ;, zer egin dut? 446 00:23:37,400 --> 00:23:38,530 Zer egin dut hau. 447 00:23:38,530 --> 00:23:43,290 Badakit p balioa helbidea da erakusleak guztiak besterik ez direlako 448 00:23:43,290 --> 00:23:44,660 helbideak. 449 00:23:44,660 --> 00:23:47,750 Ahal dudan erreferentzia kenduta p * operadorea erabiliz. 450 00:23:47,750 --> 00:23:51,250 Testuinguru honetan, hemen, oso at goi Gogoratu * motako zati da. 451 00:23:51,250 --> 00:23:53,510 Int * datu-mota da. 452 00:23:53,510 --> 00:23:56,150 Baina erreferentzia kenduta ahal dut p * operadorea erabiliz, 453 00:23:56,150 --> 00:24:01,897 eta, beraz, ez dut bada, joan nintzen helbide horretara bada, zer egingo dut aurkitu helbide hartan? 454 00:24:01,897 --> 00:24:02,855 Zenbaki oso bat aurkituko dut. 455 00:24:02,855 --> 00:24:05,910 Beraz, int * p da, funtsean, esanez, p helbidea da. 456 00:24:05,910 --> 00:24:09,500 Ahal dudan p dereference eta bada Nik bai, zenbaki oso bat aurkituko dut 457 00:24:09,500 --> 00:24:11,920 memoria kokaleku horretan. 458 00:24:11,920 --> 00:24:14,260 >> Ez zen beste OK beraz, esan nuen izarrez gauza gogaikarriak 459 00:24:14,260 --> 00:24:17,060 eta hemen, non duten izarrez gauza gogaikarriak. 460 00:24:17,060 --> 00:24:21,640 Probatu duzu inoiz deklaratzeko Mota bereko aldagai bat baino gehiago 461 00:24:21,640 --> 00:24:24,409 Kode-lerro berean? 462 00:24:24,409 --> 00:24:27,700 Beraz, bigarren bat, itxurak lerro hori, kodea benetan daukat han berdean 463 00:24:27,700 --> 00:24:29,366 Ez dago, eta besterik ez dio int x, y, z ;. 464 00:24:29,366 --> 00:24:31,634 465 00:24:31,634 --> 00:24:34,550 Zer egin nahi da, benetan sortu Hiru zenbaki oso zuretzat aldagaiak, 466 00:24:34,550 --> 00:24:36,930 x izeneko bat, inork deitzen y, eta inork deitzen z. 467 00:24:36,930 --> 00:24:41,510 Egin gabe modu bat da Hiru lerro kalera zatitu izatea. 468 00:24:41,510 --> 00:24:43,890 >> Hemen da non izarrak lortzeko gogaikarriak berriro, nahiz eta, 469 00:24:43,890 --> 00:24:49,200 * benetan parte delako bai eredu horrekin, eta parte-ren 470 00:24:49,200 --> 00:24:50,320 aldagai izen baten. 471 00:24:50,320 --> 00:24:56,430 Eta horrela esan badut int * px, py, Pz, zer I benetan lortu osoko bat erakuslea da 472 00:24:56,430 --> 00:25:01,650 px eta bi zenbaki oso, py eta Pz deitzen. 473 00:25:01,650 --> 00:25:04,950 Eta hori da, ziurrenik, ez zer , nahi dugun hori ez da ona. 474 00:25:04,950 --> 00:25:09,290 >> Beraz anitz erakusleak sortu nahi dut lerro berean, mota bereko, 475 00:25:09,290 --> 00:25:12,140 eta izarrak, benetan zer behar dut egin da int * pa esan, * pb, * pc. 476 00:25:12,140 --> 00:25:17,330 477 00:25:17,330 --> 00:25:20,300 Orain izatea besterik ez dela esan zuen eta orain hau kontatzeko, 478 00:25:20,300 --> 00:25:22,170 Ziurrenik inoiz egin. 479 00:25:22,170 --> 00:25:25,170 Eta seguruenik, gauza ona da, egia esanda, oharkabean agian delako 480 00:25:25,170 --> 00:25:26,544 izar bat da, horrelako zerbait aipatu gabe utzi nahi. 481 00:25:26,544 --> 00:25:29,290 Onena da seguru asko, agian deklaratzeko lerro banakako erakusleak, 482 00:25:29,290 --> 00:25:31,373 baina besterik beste bat da gogaikarriak sintaxia horietako 483 00:25:31,373 --> 00:25:35,310 osatzen duten izarrez gauzak erakusleak, beraz, zaila da lan egiteko. 484 00:25:35,310 --> 00:25:39,480 Sintaktiko hau besterik ez delako nahaspila bidez lan egin behar duzu. 485 00:25:39,480 --> 00:25:41,600 Praktikarekin egiten du Bigarren izaera benetan bihurtu. 486 00:25:41,600 --> 00:25:45,410 Oraindik ere huts egiten dut berarekin oraindik 10 urtez programazio ondoren, 487 00:25:45,410 --> 00:25:49,630 beraz, ez da egoera zerbait gertatzen bada duzu, nahiko ohikoa da, egia esanda. 488 00:25:49,630 --> 00:25:52,850 Benetan da mota horretako sintaxia akats bat. 489 00:25:52,850 --> 00:25:54,900 >> Ados, beraz, mota horretako agindu dut hori berrirakurtzeko genuke 490 00:25:54,900 --> 00:25:59,370 nola handi kontzeptua katea da. 491 00:25:59,370 --> 00:26:02,750 Beno zuk esan dut hori bada katea, benetan dugu motatako 492 00:26:02,750 --> 00:26:04,140 denbora guztian gezurretan duzu. 493 00:26:04,140 --> 00:26:06,181 There izeneko datu-mota ez katea, eta, hain zuzen ere I 494 00:26:06,181 --> 00:26:09,730 aipatu batean gure Datu mota on goiztiarrena bideoak, 495 00:26:09,730 --> 00:26:13,820 kate hori datu-mota bat izan zela zuretzat sortu zen cs50.h. ere 496 00:26:13,820 --> 00:26:17,050 # Include duzu Ordena erabili ere cs50.h. 497 00:26:17,050 --> 00:26:19,250 >> Beno esaldia benetan Zerbait aliasa 498 00:26:19,250 --> 00:26:23,600 char * izeneko, a pertsonaia baten erakuslea. 499 00:26:23,600 --> 00:26:26,010 Beno erakusleak, oroitzapen, besterik ez dira helbideak. 500 00:26:26,010 --> 00:26:28,780 Beraz, zer tamaina da Kate bat byte? 501 00:26:28,780 --> 00:26:29,796 Beno, lau edo zortzi da. 502 00:26:29,796 --> 00:26:32,170 Eta arrazoia esan nuen lau edo Zortzi delako benetan 503 00:26:32,170 --> 00:26:36,730 sistema araberakoa, badarabilzu CS50 ide, char * char bat tamaina da 504 00:26:36,730 --> 00:26:39,340 * Zortzi da, 64-bit sistema bat da. 505 00:26:39,340 --> 00:26:43,850 Memoria helbide guztiekin da 64 bit luze. 506 00:26:43,850 --> 00:26:48,270 CS50 Appliance erabiltzen ari bada edo edozein 32-bit makina erabiliz, 507 00:26:48,270 --> 00:26:51,640 eta entzun dituzu epe hori 32-bit makina, zer 32-bit makina bat da? 508 00:26:51,640 --> 00:26:56,090 Beno, esan besterik bakoitza memorian helbidea da 32 bit luze. 509 00:26:56,090 --> 00:26:59,140 Eta beraz, 32 bit lau byte da. 510 00:26:59,140 --> 00:27:02,710 Beraz char * bat, lau edo zortzi Zure sistemaren arabera byte. 511 00:27:02,710 --> 00:27:06,100 Eta hain zuzen ere, datu-motak identifikatzeko, eta edozein datu erakuslea 512 00:27:06,100 --> 00:27:12,030 idazten, erakusleak guztiak bidezkoak dira geroztik helbideak, lau edo zortzi byte. 513 00:27:12,030 --> 00:27:14,030 Hargatik berrirakurtzeko honetan diagrama eta dezagun bukatzeko 514 00:27:14,030 --> 00:27:18,130 Bideo honetan ariketa apur bat hemen. 515 00:27:18,130 --> 00:27:21,600 Hortaz, hona hemen Diagraman utzi dugun ekin Oso bideoaren hasieran. 516 00:27:21,600 --> 00:27:23,110 Beraz, zer gertatzen da orain esaten dut * PK = 35 bada? 517 00:27:23,110 --> 00:27:26,370 518 00:27:26,370 --> 00:27:30,530 Beraz, zer ez diodanean, esan nahi da, * PK = 35? 519 00:27:30,530 --> 00:27:32,420 Hartu segundo bat. 520 00:27:32,420 --> 00:27:34,990 * PK. 521 00:27:34,990 --> 00:27:39,890 Testuinguru hemen, * da dereference operadorea. 522 00:27:39,890 --> 00:27:42,110 Beraz, noiz dereference operadorea erabiltzen da, 523 00:27:42,110 --> 00:27:48,520 to helbidea adierazi joan gara PK arabera, eta zer aurkituko dugu aldatuko dugu. 524 00:27:48,520 --> 00:27:55,270 Beraz * PK = 35 eraginkorrean Hau ez irudian. 525 00:27:55,270 --> 00:27:58,110 Beraz, funtsean, sintaktikoki ren denaren berdina esanik k = 35. 526 00:27:58,110 --> 00:28:00,740 527 00:28:00,740 --> 00:28:01,930 >> Bat gehiago. 528 00:28:01,930 --> 00:28:05,510 Int m esaten badut, nik ere sortu m izeneko aldagai berri bat. 529 00:28:05,510 --> 00:28:08,260 Koadro bat, izan ere, kutxa berde da Honez zenbaki oso bat eduki behar, 530 00:28:08,260 --> 00:28:09,840 eta m da etiketatu. 531 00:28:09,840 --> 00:28:14,960 M = 4 esaten badut, jarri dut zenbaki oso kutxa horretan. 532 00:28:14,960 --> 00:28:20,290 Say PK = & m, nola ez bada diagram aldaketa hori? 533 00:28:20,290 --> 00:28:28,760 PK = & m, zer gogoratzen duzu & Operadorea du edo deitzen da? 534 00:28:28,760 --> 00:28:34,430 Gogoan izan eta aldagai izen batzuk name aldagai baten helbidea da. 535 00:28:34,430 --> 00:28:38,740 Beraz, zer esaten ari gara da PK m helbide lortzen. 536 00:28:38,740 --> 00:28:42,010 Eta beraz, modu eraginkorrean zer gertatzen diagram dela PK puntu jada ez 537 00:28:42,010 --> 00:28:46,420 , baina m puntuak K-ra. 538 00:28:46,420 --> 00:28:48,470 >> Berriz erakusleak oso dira delikatua batera lan 539 00:28:48,470 --> 00:28:50,620 eta asko hartuko dute Praktikan, baina delako 540 00:28:50,620 --> 00:28:54,150 uzten gaitasuna funtzioen artean datuak pasatzeko 541 00:28:54,150 --> 00:28:56,945 eta benetan dute horiek Aldaketak, 542 00:28:56,945 --> 00:28:58,820 Inguruan zure burua lortzean da benetan garrantzitsua. 543 00:28:58,820 --> 00:29:02,590 Ziurrenik da zailena Gai CS50 eztabaidatzeko dugu, 544 00:29:02,590 --> 00:29:05,910 baina balio duzula erakusleak erabiliz lortu 545 00:29:05,910 --> 00:29:09,200 Urrun konplikazioak outweighs duten horiek ikasteko datoz. 546 00:29:09,200 --> 00:29:12,690 Beraz, onena nahi dut zorte erakusleak buruz ikasteko. 547 00:29:12,690 --> 00:29:15,760 Naiz Doug Lloyd, hau CS50 da. 548 00:29:15,760 --> 00:29:17,447