1 00:00:00,000 --> 00:00:02,742 2 00:00:02,742 --> 00:00:05,680 >> HIZLARIA: 1 Kaixo guztioi. 3 00:00:05,680 --> 00:00:07,530 Hasteko goaz. 4 00:00:07,530 --> 00:00:09,330 Jendeak oraindik uste dut iragazteko izan. 5 00:00:09,330 --> 00:00:12,840 Baina denbora interesa ere, ahal dugu, beraz, Lortuko duzu guys hemendik denbora, 6 00:00:12,840 --> 00:00:14,110 hasteko goaz. 7 00:00:14,110 --> 00:00:18,780 Beraz CS50 Quiz 0 berrikuspena ongi etorria. 8 00:00:18,780 --> 00:00:23,020 Ez dute konturatu duzuenontzat For hala ere, asteazkenean galdera bat duzu. 9 00:00:23,020 --> 00:00:25,700 Woo-Hoo. 10 00:00:25,700 --> 00:00:29,780 >> Ez baduzu hasi bada oraindik ikasten edo ez dute konturatu hau existitzen dela oraindik, 11 00:00:29,780 --> 00:00:34,070 Iraganean ariketak eta informazio guztia Galdetegi cs50.net/quizzes daude. 12 00:00:34,070 --> 00:00:38,090 Badira gauzak nahiko onak izan ez on, azkena 10etik iragan galdetegiak 13 00:00:38,090 --> 00:00:43,760 urte baita informazioa galdetegi eta gai honi buruz 14 00:00:43,760 --> 00:00:46,250 hori estali egingo da. 15 00:00:46,250 --> 00:00:48,980 Beraz, dezagun Hasteko. 16 00:00:48,980 --> 00:00:54,240 >> Beraz duzu guys gogoratu agian, lehena class David eguna lanparak horiek izan ditu. 17 00:00:54,240 --> 00:00:59,650 Beraz, funtsean, dena doa pean ordenagailu baten kanpaia da on 18 00:00:59,650 --> 00:01:00,860 binary egin. 19 00:01:00,860 --> 00:01:04,080 Binary esan zer soinuak bezala, 0 eta 1-en. 20 00:01:04,080 --> 00:01:09,290 Bi balio ditu duten irudikatzen daiteke. 21 00:01:09,290 --> 00:01:14,675 >> Beraz, besterik atalean lehen egunean bezala David argi bat piztuta 22 00:01:14,675 --> 00:01:21,990 bonbilla on irudikatzeko, edo 1, gure ordenagailuan ulertzen 0-ren gisa bitarra eta 23 00:01:21,990 --> 00:01:24,110 1-en, on edo off. 24 00:01:24,110 --> 00:01:25,360 Binary Oinarriak. 25 00:01:25,360 --> 00:01:29,440 26 00:01:29,440 --> 00:01:32,470 Leku bakoitzak irudikatzen da bi basean. 27 00:01:32,470 --> 00:01:36,260 Beraz gehitzen duzunean 2 0 to izateko 1 2 way up guztiei. 28 00:01:36,260 --> 00:01:41,970 >> Zein da zure bitarra da kalkulatzeko hamartar, jarraitu besterik ez duzu ekuazio hau 29 00:01:41,970 --> 00:01:42,840 mota gauza. 30 00:01:42,840 --> 00:01:49,510 Daukazula 1 bazara lekuetan edozeinetan, , biderkatu by dena delakoa 31 00:01:49,510 --> 00:01:53,820 oinarritzeko da, gehitu zuen, eta, digituak hamartarra lortuko duzu. 32 00:01:53,820 --> 00:01:57,930 Beraz, hau da, nola zenbatu dituzu bitarretan 5. 33 00:01:57,930 --> 00:02:01,400 Just zer egiten genuen bezala azken diapositiba, hau da, nola egiten duzun bezala 34 00:02:01,400 --> 00:02:02,650 ordezkatzen 1 5 bidez. 35 00:02:02,650 --> 00:02:05,320 36 00:02:05,320 --> 00:02:09,660 >> Era berean, besterik ez gustatzen gehitu dezakezu eta hamartarrean kendu edo 10 oinarritzeko, edo 37 00:02:09,660 --> 00:02:13,040 benetan inolako oinarri an ahal gehitu eta bitar kenketa. 38 00:02:13,040 --> 00:02:18,400 Zehazki zer espero duzun duzunean gehitu bi sortu, orduan eta handiagoa berdin bada 39 00:02:18,400 --> 00:02:24,220 1 baino, 1 a, egin da 0 bat eramanez gero, eta horrela egin gain, besterik 40 00:02:24,220 --> 00:02:29,910 erregularra bezala eta espero duzun hamartar edo beste edozein oinarri. 41 00:02:29,910 --> 00:02:30,970 Cool. 42 00:02:30,970 --> 00:02:35,140 >> Beraz, esan bezala, dena aurretik duten doa gure ordenagailuaren kanpaia azpian 43 00:02:35,140 --> 00:02:37,560 0 eta 1-en, edo bitar egin. 44 00:02:37,560 --> 00:02:43,470 Beraz, nola ez adierazi nahi dugu, adibidez, letrak edo zenbakiak edo karaktereak? 45 00:02:43,470 --> 00:02:45,560 Eta horri erantzuna ASCII da. 46 00:02:45,560 --> 00:02:49,380 >> ASCII karaktere arteko mapping bat da dugu normalean zela ikusten 47 00:02:49,380 --> 00:02:53,360 A, B-ren bezalako ingelera, C-ren, azpimarra, marrak, eta 48 00:02:53,360 --> 00:02:54,910 horrelako ezer. 49 00:02:54,910 --> 00:02:57,260 Eta mapak egiten duten ASCII balioa bat. 50 00:02:57,260 --> 00:03:03,080 ASCII balioa An zenbaki bat besterik ez da, zure ordenagailuan arabera uler daiteke. 51 00:03:03,080 --> 00:03:07,430 Eta besterik ez bezalakoa Horrez egin dezakezu eta zenbakiekin kenketak, egin dezakezu 52 00:03:07,430 --> 00:03:10,890 ASCII balioak dituzten horiek. 53 00:03:10,890 --> 00:03:14,050 >> Adibide honetan, beraz, zer hau inprimatu egingo? 54 00:03:14,050 --> 00:03:26,790 55 00:03:26,790 --> 00:03:35,480 Bai, beraz, besterik gabe, B espazioa espazio C espazio bat D. Nora joan nire sagua? 56 00:03:35,480 --> 00:03:39,200 57 00:03:39,200 --> 00:03:43,380 Iragarki int bat defini dezakezu 65 at. 58 00:03:43,380 --> 00:03:47,080 Eta noiz erabiltzen duten inprimatu duzu ehuneko C, gisa interpretatu egingo da 59 00:03:47,080 --> 00:03:49,330 pertsonaia eta A. inprimatu egingo 60 00:03:49,330 --> 00:03:52,800 >> Era berean, adierazi dezakezu char bat bezala. 61 00:03:52,800 --> 00:03:56,860 Eta noiz inprimatu duzu ehuneko erabiliz C, interpretatu egingo duten bezala 62 00:03:56,860 --> 00:04:05,240 ehuneko D. Eta besterik ez bezalako bat gehitu dezakezu zenbakia, gehitu ahal izango pertsonaiak zara 63 00:04:05,240 --> 00:04:06,878 ASCII balioak, kasu honetan. 64 00:04:06,878 --> 00:04:11,370 65 00:04:11,370 --> 00:04:16,130 >> Beraz, denontzat erakuslea apur bat. 66 00:04:16,130 --> 00:04:19,610 5, kate gisa, ez du benetan berdinak 5. 67 00:04:19,610 --> 00:04:26,610 Beraz, nola liteke bihurtu dugu katea 5 osokoa 5? 68 00:04:26,610 --> 00:04:28,930 Ideia bat? 69 00:04:28,930 --> 00:04:31,630 Bai. 70 00:04:31,630 --> 00:04:36,720 >> Beraz, 5 dugun kate bat balitz bezala, 0 kendu ahal izango dugu. 71 00:04:36,720 --> 00:04:37,820 Eta hori eman egingo 5. 72 00:04:37,820 --> 00:04:41,670 Eta, era berean, 5 dugun bezala, bada osokoa, gehitu katea 0. 73 00:04:41,670 --> 00:04:43,112 Eta katea 5 ematen digu. 74 00:04:43,112 --> 00:04:46,350 75 00:04:46,350 --> 00:04:48,350 Cool. 76 00:04:48,350 --> 00:04:52,940 >> Orain, gogoratzen back bat non hitzaldia Hitz egin algoritmoak gara. 77 00:04:52,940 --> 00:04:57,260 Beraz, nola ez, egia esan, ordenagailu bat nahi dugu gauza interesgarriak egin? 78 00:04:57,260 --> 00:05:00,460 Badakizu besterik gehituz eta kenduz Zenbaki eta inprimatzeko gauzak ez dela 79 00:05:00,460 --> 00:05:01,730 zirraragarria. 80 00:05:01,730 --> 00:05:04,620 Normalean, gure ordenagailua nahi dugun algoritmo-mota batzuk egiteko. 81 00:05:04,620 --> 00:05:07,820 Zerbait apur bat konplexuagoa besterik aritmetiko sinplea baino. 82 00:05:07,820 --> 00:05:11,930 >> Algoritmo bat, urrats multzo urrats bat da nola egiteko argibideak 83 00:05:11,930 --> 00:05:14,640 task-- jakin bat 84 00:05:14,640 --> 00:05:15,660 besterik ez gustatzen errezeta bat. 85 00:05:15,660 --> 00:05:19,990 Baliteke lehen eguna gogoratzen duzu class non David zuen gela bat zenbatu gurekin 86 00:05:19,990 --> 00:05:22,550 pertsonen eta zenbat pertsona aretoan ziren. 87 00:05:22,550 --> 00:05:24,480 Erabil liteke kontatuta banan-banan. 88 00:05:24,480 --> 00:05:25,860 1, 2, 3, 4. 89 00:05:25,860 --> 00:05:28,010 Kasu horretan, denbora lineala algoritmoa. 90 00:05:28,010 --> 00:05:31,710 >> Baina David algoritmo bat sartu Gelan pertsona zenbatu dituzu 91 00:05:31,710 --> 00:05:37,340 non denek nabarmentzen sortu, zure esan duzu beste pertsona bati zenbakia, gehitzen duten 92 00:05:37,340 --> 00:05:39,200 zenbakia sortu, eta pertsona bat eseri behera. 93 00:05:39,200 --> 00:05:40,410 Eta hori errepikatzeko. 94 00:05:40,410 --> 00:05:42,910 Hori algoritmo-mota bat da. 95 00:05:42,910 --> 00:05:47,520 Bat nola eraginkorra aztertu ahal izango dugu Algoritmo on nik denbora exekutatu oinarritzen da. 96 00:05:47,520 --> 00:05:49,680 Baina hitz egingo dugu pixka bat hori geroago buruz. 97 00:05:49,680 --> 00:05:52,740 98 00:05:52,740 --> 00:05:57,090 >> Beraz, algoritmo guztiak, gainera, ahal egon pseudocode idatzita. 99 00:05:57,090 --> 00:06:01,120 Pseudocode besterik ez da atsegin ingeleseko irudikatzeko erabilitako sintaxia 100 00:06:01,120 --> 00:06:02,420 programazio hizkuntza bat. 101 00:06:02,420 --> 00:06:06,070 Adibidez, erabiltzaile batek eskatu nahi izanez gero nire zenbaki gogokoena asmatzen, dugu 102 00:06:06,070 --> 00:06:08,390 pseudocode hala nola izan dezake. 103 00:06:08,390 --> 00:06:09,850 >> Eskuratu erabiltzaile bat asmatzen. 104 00:06:09,850 --> 00:06:13,570 Etxebizitza zuzena bada, esaiozu zuzena ari dira, beste kontatu 105 00:06:13,570 --> 00:06:15,560 Oraindik ez dira zuzenak. 106 00:06:15,560 --> 00:06:22,530 Eta pseudocode erraz egiteko modu bat da Ideia bat edo algoritmo bat ordezkari. 107 00:06:22,530 --> 00:06:26,910 Beraz, orain dugu agian benetan idatzi nahi honek hizkuntzan ordenagailua duten 108 00:06:26,910 --> 00:06:27,980 agian ulertzeko. 109 00:06:27,980 --> 00:06:35,660 Beraz, gure pseudocode idatzi izan dugu eta interpretatzen duen iturburu-kodea sartu. 110 00:06:35,660 --> 00:06:41,320 >> Orain arte, iturri kodea behar bazaio sintaxia jakin bat 111 00:06:41,320 --> 00:06:42,490 programazio hizkuntza bat. 112 00:06:42,490 --> 00:06:45,430 Eta orain arte, CS50, dugu dira, batez ere, c erabiliz. 113 00:06:45,430 --> 00:06:48,320 Beraz, hau iturri c kodea izan daiteke. 114 00:06:48,320 --> 00:06:51,440 Geroago ikastaroan, gaueko zatoz beste programazio harremanetan jartzen 115 00:06:51,440 --> 00:06:52,480 PHP bezalako hizkuntza. 116 00:06:52,480 --> 00:06:57,540 Edo are beste klaseak hartzen bada, zuk Java, Python, edo are OCML egin liteke. 117 00:06:57,540 --> 00:07:01,570 Baina gure c programa hizkuntzan, hau da, iturburu-kodea, nola idatzi dugu agian 118 00:07:01,570 --> 00:07:04,760 pseudocode algoritmoa Besterik lehenago deskribatu dut. 119 00:07:04,760 --> 00:07:08,630 120 00:07:08,630 --> 00:07:11,430 >> Beraz, nola zure ordenagailua benetan Ulertzen? 121 00:07:11,430 --> 00:07:14,490 , Aurretik esan nuen bezala bakarrik benetan zero eta ulertzen du. 122 00:07:14,490 --> 00:07:17,880 Beraz, nola ez iturritik da Zerbait kodea duen ahal izan 123 00:07:17,880 --> 00:07:18,960 ulertu? 124 00:07:18,960 --> 00:07:22,920 Beno, zerbait egin behar dugu Konpiladore izeneko. 125 00:07:22,920 --> 00:07:28,450 >> Gogoratzen al duzu atzera bada gehienetan zure psets, programa-mota batzuk izan dituzu 126 00:07:28,450 --> 00:07:30,370 dot c fitxategi batean idatzita. 127 00:07:30,370 --> 00:07:32,550 Eta gero make hau idatzi behar duzu. 128 00:07:32,550 --> 00:07:35,970 Beraz, zer da egin egiten? 129 00:07:35,970 --> 00:07:39,970 >> Make idatz dezakezu konpilatu zure programa delako someone-- 130 00:07:39,970 --> 00:07:42,730 duenak idatzi zure p set; ziurrenik David-- 131 00:07:42,730 --> 00:07:44,190 marka fitxategi bat sortu. 132 00:07:44,190 --> 00:07:51,320 Eta hori kontatzen egiteko exekutatu jakin zure konpiladorea, Clang deitu, borondate horren 133 00:07:51,320 --> 00:07:55,560 ondoren, konpilatu zure iturburu-kodea oposiziorako kodea; zeroen eta bai da 134 00:07:55,560 --> 00:07:57,720 Zure ordenagailuan ulertzen duela. 135 00:07:57,720 --> 00:08:01,610 Baina, pixka bat geroago, utziko dugu gehiago Konpilatzaileak buruz sakontasunez. 136 00:08:01,610 --> 00:08:05,640 137 00:08:05,640 --> 00:08:10,800 >> Beraz, gogora ekarri pset 0, where-- bai, galdera bat duzu? 138 00:08:10,800 --> 00:08:11,620 >> IKUSLEEN: [INAUDIBLE]? 139 00:08:11,620 --> 00:08:12,490 >> HIZLARIA: 1 Bai. 140 00:08:12,490 --> 00:08:14,960 Nik uste dut benetan konektatuta egon behar du. 141 00:08:14,960 --> 00:08:15,120 Bai. 142 00:08:15,120 --> 00:08:16,572 >> IKUSLEEN: Da [INAUDIBLE] bezala? 143 00:08:16,572 --> 00:08:19,476 144 00:08:19,476 --> 00:08:20,830 >> HIZLARIA: 1 Ez da. 145 00:08:20,830 --> 00:08:25,810 The cs50.net/quizzes daude. 146 00:08:25,810 --> 00:08:32,900 >> IKUSLEEN: barra galdetegiak, barra 2013, barra 0, eta egin klik bitartez 147 00:08:32,900 --> 00:08:35,956 galdetegiak 2013 eta quiz 0, ikuskatzea atalean diapositibak. 148 00:08:35,956 --> 00:08:40,380 >> HIZLARIA: 1 Yeah, beraz, you guys nahi izanez zabaltzen da eta begiratu behar diozu 149 00:08:40,380 --> 00:08:42,740 egin ordenagailuan, isuna ere. 150 00:08:42,740 --> 00:08:43,130 Esan berriro. 151 00:08:43,130 --> 00:08:44,546 >> IKUSLEEN: [INAUDIBLE]. 152 00:08:44,546 --> 00:08:48,780 >> HIZLARIA 1: Bai, [INAUDIBLE] gezurrezko aldakorra da. 153 00:08:48,780 --> 00:08:49,644 Oh, bai? 154 00:08:49,644 --> 00:08:51,372 >> IKUSLEEN: [INAUDIBLE]? 155 00:08:51,372 --> 00:08:54,300 >> HIZLARIA: 1 Ez, grebak Ez daude azterketa. 156 00:08:54,300 --> 00:08:55,950 Barkatu, bere galdera izan zen, izan zen azterketa grebak. 157 00:08:55,950 --> 00:08:59,530 Eta ez da. 158 00:08:59,530 --> 00:09:05,780 Beraz pset 0, you guys guztiak izan beharko Zerbait inplementatu scratch erabiliz. 159 00:09:05,780 --> 00:09:13,100 Eta oinarrizko programazio batzuetan ikasi dugu Eraikitzeko bloke scratch erabiliz. 160 00:09:13,100 --> 00:09:15,590 >> Beraz, dezagun batzuk begirada bat adreilu 161 00:09:15,590 --> 00:09:18,170 osatzen duten programa bat. 162 00:09:18,170 --> 00:09:20,570 Lehen adierazpen boolear da. 163 00:09:20,570 --> 00:09:24,540 Adierazpen boolearrak dira eta 0 edo ezer ez duela 164 00:09:24,540 --> 00:09:25,700 Bi balio izan ditzake. 165 00:09:25,700 --> 00:09:30,320 Kasu honetan, egia edo gezurra, edo itzaltzeko, eta bai edo ez. 166 00:09:30,320 --> 00:09:35,390 Soil bat, oso sinplea adibide bat, Boolean bat erabiltzen duen programa 167 00:09:35,390 --> 00:09:39,140 espresioa sortu hemen. 168 00:09:39,140 --> 00:09:43,220 >> Beraz, adierazpen boolearrak egiteko ordena izan erabilgarria, operadore boolearrak dugu. 169 00:09:43,220 --> 00:09:48,920 Hauek dira erabil daitezkeen operadoreak dira zenbait balio alderatzeko. 170 00:09:48,920 --> 00:09:52,820 Beraz, eta nahiz eta ez berdina, gutxiago baino handiagoa edo berdina, edo handiagoa 171 00:09:52,820 --> 00:09:55,130 berdina, eta baino gutxiago edo baino handiagoa. 172 00:09:55,130 --> 00:09:59,060 Baina operadore horiek ez dira oso erabilgarriak dugu horiek konbinatu ahal bada behintzat sartu 173 00:09:59,060 --> 00:10:00,320 baldintza. 174 00:10:00,320 --> 00:10:04,370 >> Beraz duzu guys agian hutsetik gogoratu eta p-tik ezartzen dugun 175 00:10:04,370 --> 00:10:05,400 baldintza izan. 176 00:10:05,400 --> 00:10:09,710 Honako hauek dira, funtsean, Sardexka bezala zure programa logika duen 177 00:10:09,710 --> 00:10:12,670 ala ez arabera exekutatzen baldintza bat bete. 178 00:10:12,670 --> 00:10:18,150 Beraz, baldintza hori izan dugu askotan erabili ikastaro honetan da 179 00:10:18,150 --> 00:10:21,470 , bada, bestela, gero eta kondizio beste. 180 00:10:21,470 --> 00:10:24,060 >> Here nola adibide bat hori erabili dezakezu. 181 00:10:24,060 --> 00:10:28,430 Norbaitek arteko aldea ezagutzen besterik adierazpenak guztiak galtzen erabiliz 182 00:10:28,430 --> 00:10:32,530 bertso bada, bestela behera bidean, bada, eta, bestela, konbinatu? 183 00:10:32,530 --> 00:10:33,013 Bai? 184 00:10:33,013 --> 00:10:34,263 >> IKUSLEEN: [INAUDIBLE]. 185 00:10:34,263 --> 00:10:40,741 186 00:10:40,741 --> 00:10:42,160 >> HIZLARIA: 1 Zehazki. 187 00:10:42,160 --> 00:10:50,210 Beraz banu bada hau behera modu guztiak modu, baldintza hori itzultzen bada ere 188 00:10:50,210 --> 00:10:52,800 egia da, oraindik ere izango da jarraituko Hurrengo bi probatzen. 189 00:10:52,800 --> 00:11:00,120 Berriz, bat, bestela-bada, beste batekin adierazpena, bat itzultzen du egia bada, 190 00:11:00,120 --> 00:11:02,640 beste batzuk ez dira probatu. 191 00:11:02,640 --> 00:11:05,955 Horri buruzko edozein galdera? 192 00:11:05,955 --> 00:11:06,890 Cool. 193 00:11:06,890 --> 00:11:12,240 >> Beraz, erabiltzen duzun beste bat bada-beste bat adierazpena ezagutu behar dela bakarrik 194 00:11:12,240 --> 00:11:14,470 Kasu horietako bat izan. 195 00:11:14,470 --> 00:11:21,550 Beraz, badakigu x 0 baino txikiagoa bada, ez da betiko ez doa 196 00:11:21,550 --> 00:11:22,890 0 baino handiagoa. 197 00:11:22,890 --> 00:11:26,940 198 00:11:26,940 --> 00:11:31,480 >> Ondoren, eraikina beste bloke ikasi dugu begiztak dira. 199 00:11:31,480 --> 00:11:33,310 Hiru loops mota ditugu. 200 00:11:33,310 --> 00:11:35,830 Loops, loops bitartean, eta loops bitartean. 201 00:11:35,830 --> 00:11:38,730 Eta, oro har, eseri arte zerbait idatzi, erabaki behar duzu 202 00:11:38,730 --> 00:11:40,060 Erabili nahi duzun hiruretan bertan. 203 00:11:40,060 --> 00:11:41,900 Beraz, nola egin erabakiko dugu zein den? 204 00:11:41,900 --> 00:11:44,920 205 00:11:44,920 --> 00:11:48,790 >> Oro har, erabiltzen ditugu loop baldin badakigu zenbat aldiz batetik bestera joateko nahi dugu 206 00:11:48,790 --> 00:11:53,650 Zerbait bidez edo zenbat aldiz zeregin bat egiteko nahi dugu. 207 00:11:53,650 --> 00:11:58,830 Erabili loops bitartean dugu batzuk behar badugu Baldintza egia exekutatzen mantentzeko izan. 208 00:11:58,830 --> 00:12:03,730 Eta egiten duguna oso antzekoak berriz erabili bitartean, baina exekutatu gure kodea nahi dugun 209 00:12:03,730 --> 00:12:04,880 behintzat garai batean. 210 00:12:04,880 --> 00:12:09,410 >> Beraz, egiten ari den bitartean, edozein dela do dago borondate beti denbora bat behintzat exekutatu. 211 00:12:09,410 --> 00:12:13,120 Berriz, berriz ere, bertan, Agian ez da ibiliko bada 212 00:12:13,120 --> 00:12:15,490 baldintza ez da bete. 213 00:12:15,490 --> 00:12:16,740 Horrekin edozein galdera? 214 00:12:16,740 --> 00:12:20,480 215 00:12:20,480 --> 00:12:22,860 >> Beraz baten egitura begizta. 216 00:12:22,860 --> 00:12:23,620 Zaudete guztiak ikusi. 217 00:12:23,620 --> 00:12:25,320 Abiarazi duzu. 218 00:12:25,320 --> 00:12:26,600 Egoera-mota batzuk behar duzu. 219 00:12:26,600 --> 00:12:32,340 Beraz, adibidez, agian abiarazi dugu berdin i 0 bezala. 220 00:12:32,340 --> 00:12:34,040 i 10 baino gutxiago. 221 00:12:34,040 --> 00:12:35,442 Eta i ++. 222 00:12:35,442 --> 00:12:39,010 Bat oso erraza egin ditudan. 223 00:12:39,010 --> 00:12:42,210 >> Berriz, begizta bat, era berean, behar duzu urratsak mota batzuk izatea, 224 00:12:42,210 --> 00:12:44,980 egoera-mota batzuk, eta update-mota batzuk. 225 00:12:44,980 --> 00:12:51,990 Beraz, gure Ere egin dezakegun begizta hau, berriz, begizta bat bezala erabiliz. 226 00:12:51,990 --> 00:12:56,000 Eta, era berean do loop bitartean, Baliteke initialization batzuk ditugu, 227 00:12:56,000 --> 00:12:58,640 zerbait exekutatu, eguneratzeko, eta eta egiaztatu baldintza du. 228 00:12:58,640 --> 00:13:03,500 229 00:13:03,500 --> 00:13:05,140 >> Beraz, orain funtzioak. 230 00:13:05,140 --> 00:13:06,460 Guztia jarri dugu elkarrekin. 231 00:13:06,460 --> 00:13:10,140 Baliteke batzuk idatzi nahi dugu funtzio-mota. 232 00:13:10,140 --> 00:13:12,790 Funtzio Ohiko duzula agian ikusi dute dagoeneko nagusia. 233 00:13:12,790 --> 00:13:13,770 Main funtzio bat da. 234 00:13:13,770 --> 00:13:16,160 Baten bueltan mota, int ditu. 235 00:13:16,160 --> 00:13:18,470 Funtzioaren izena, nagusi ditu. 236 00:13:18,470 --> 00:13:20,810 Eta argumentuak, argc eta argv ditu. 237 00:13:20,810 --> 00:13:24,040 Beraz nagusia funtzio bat besterik ez da. 238 00:13:24,040 --> 00:13:27,230 >> Beste funtzio duzu izan bide dira, printf printf funtzioa da 239 00:13:27,230 --> 00:13:29,330 GetInt, toupper. 240 00:13:29,330 --> 00:13:32,010 Baina horiek gertatuko izan dela Gurekin inplementatu arabera 241 00:13:32,010 --> 00:13:33,270 liburutegi-mota batzuk. 242 00:13:33,270 --> 00:13:37,400 You guys gogoratu bada barne CS50.h liburutegi hori edo 243 00:13:37,400 --> 00:13:38,510 I standard / O liburutegia. 244 00:13:38,510 --> 00:13:39,200 Bai, zalantzan? 245 00:13:39,200 --> 00:13:41,610 >> IKUSLEEN: besterik c berezko nagusia da? 246 00:13:41,610 --> 00:13:44,740 Du mota besterik ez [INAUDIBLE]? 247 00:13:44,740 --> 00:13:47,370 >> HIZLARIA: 1 Galdera da c berezkoa da nagusia bada. 248 00:13:47,370 --> 00:13:51,460 Eta bai, funtzio guztiak funtzio nagusia dute. 249 00:13:51,460 --> 00:13:55,290 Mota It ordenagailua beharrezko non hasi jakitea 250 00:13:55,290 --> 00:13:55,993 Kodea martxan. 251 00:13:55,993 --> 00:13:58,108 >> IKUSLEEN: Beraz, ez zenuke [INAUDIBLE]? 252 00:13:58,108 --> 00:13:59,480 >> HIZLARIA: 1 º 253 00:13:59,480 --> 00:14:00,760 Beste edozein galdera? 254 00:14:00,760 --> 00:14:03,430 255 00:14:03,430 --> 00:14:04,770 Cool. 256 00:14:04,770 --> 00:14:08,050 Beraz, besterik ez bezalako funtzio bat erabil dezakezu hori zuk idatzitako dezakezu, gainera 257 00:14:08,050 --> 00:14:10,380 Zeure funtzioa idatzi. 258 00:14:10,380 --> 00:14:17,050 Hau funtzio bat da, norbaitek agian bolumena kalkulatzeko idatzi dute 259 00:14:17,050 --> 00:14:18,395 q bat, adibidez. 260 00:14:18,395 --> 00:14:21,300 261 00:14:21,300 --> 00:14:29,500 Ez dago itzulera mota bat da hemen, kasu honetan, int, gure funtzioa izen q eta gure 262 00:14:29,500 --> 00:14:31,360 parametroen zerrenda. 263 00:14:31,360 --> 00:14:34,550 >> Eta kontuan izan datu hauek idatzi behar duzula parametroa nahi duzun mota 264 00:14:34,550 --> 00:14:38,660 erabili edo, bestela, funtzio honek ez du zer nolako jakin 265 00:14:38,660 --> 00:14:41,650 Parametro onartu behar izango dut. 266 00:14:41,650 --> 00:14:48,110 Beraz, kasu honetan, nahi dugun zenbaki oso bat gure sarrera gisa. 267 00:14:48,110 --> 00:14:50,390 Beraz, zergatik funtzioak erabili nahi dugu? 268 00:14:50,390 --> 00:14:52,800 >> Lehenik eta behin, antolakuntza handia. 269 00:14:52,800 --> 00:14:56,350 Apurtu sortu zure kodea sartu laguntzen dute gehiago zatitan antolatu eta egiteko 270 00:14:56,350 --> 00:14:57,960 errazago irakurtzen da. 271 00:14:57,960 --> 00:14:59,760 Sinplifikazioa. 272 00:14:59,760 --> 00:15:01,740 Horrek diseinu ona. 273 00:15:01,740 --> 00:15:04,570 Noiz Kode zati bat irakurtzen ari zaren eta funtzio nagusia da, benetan, 274 00:15:04,570 --> 00:15:07,750 benetan luze, gogorragoa izango da agian zer ari den gertatzen buruz arrazoirik. 275 00:15:07,750 --> 00:15:11,710 Beraz, hautsi baduzu funtzio sartu, irakurtzeko errazagoa izango da agian. 276 00:15:11,710 --> 00:15:12,750 Eta berrerabiltzea-gaitasuna. 277 00:15:12,750 --> 00:15:16,940 Zatia kode bat baduzu, hori izanik deitu edo hainbat aldiz exekutatu, 278 00:15:16,940 --> 00:15:20,690 ordez kodea duten berridazketa 10 aldiz zure eginkizun nagusia, baliteke 279 00:15:20,690 --> 00:15:21,440 berrerabiltzea nahi. 280 00:15:21,440 --> 00:15:25,740 Eta gero, hori erabili behar duen bakoitzean Kode zati, deitu funtzioa. 281 00:15:25,740 --> 00:15:30,550 282 00:15:30,550 --> 00:15:35,380 >> Beraz, gaur scratch itzuli gogoratzen badugu, kontzeptu batzuk buruz ere hitz egin dugu, 283 00:15:35,380 --> 00:15:37,680 horietako bat hari da. 284 00:15:37,680 --> 00:15:41,120 Thread anitzen kontzeptua da kodea sekuentziak 285 00:15:41,120 --> 00:15:43,040 aldi berean exekutatzea. 286 00:15:43,040 --> 00:15:47,490 Beraz, uste back egun bat non David izan behar you guys zenbatu kopuruan off 287 00:15:47,490 --> 00:15:48,440 gela dute. 288 00:15:48,440 --> 00:15:50,550 >> Funtsean, zer zen joan da on you guys ziren guztiak 289 00:15:50,550 --> 00:15:52,370 hariak bereizi martxan. 290 00:15:52,370 --> 00:15:55,540 Eta hari horiek ziren elkarrekin datozen Galdera-mota batzuk lortzeko. 291 00:15:55,540 --> 00:15:58,890 Era berean, Scratch, denean behar duzu anitz sprites, baliteke 292 00:15:58,890 --> 00:16:01,070 katu bat eta txakur bat. 293 00:16:01,070 --> 00:16:08,770 Eta, aldi berean izango lukete beren scripts martxan. 294 00:16:08,770 --> 00:16:10,020 Hori hariztaketa adibide bat da. 295 00:16:10,020 --> 00:16:12,860 296 00:16:12,860 --> 00:16:18,000 >> Eta beste kontzeptu hori izan zen scratch sartutako gertaerei zen. 297 00:16:18,000 --> 00:16:22,550 Eta gertakari zati bat baino gehiago daude Zure kodea elkarrekin komunikatzeko. 298 00:16:22,550 --> 00:16:26,840 Scratch, hau izan da, erabiltzen dituzun difusio kontrola eta When I 299 00:16:26,840 --> 00:16:29,500 Blokeak jasotzen. 300 00:16:29,500 --> 00:16:35,170 >> Eta, gainera, Arazoa Ezarri 4, ikusi genuen Ekitaldi pixka bat, baita. 301 00:16:35,170 --> 00:16:38,250 Zaudete izan bide Gevent liburutegian. 302 00:16:38,250 --> 00:16:42,450 Eta ez dago funtzio bat izan zen waitForClick bertan zain zinen 303 00:16:42,450 --> 00:16:44,300 Erabiltzaileak klik egin. 304 00:16:44,300 --> 00:16:47,870 Eta zure click, kasu honetan, izango litzateke gertaera eta itxaron click for your da 305 00:16:47,870 --> 00:16:49,120 gertaera kudeatzailea. 306 00:16:49,120 --> 00:16:53,690 307 00:16:53,690 --> 00:16:58,630 >> Eta, gainera, zure psets exekutatzen zehar eta zure psets lanean, duzu 308 00:16:58,630 --> 00:17:01,920 agian kontaktua sartuko Komando horietako batzuk. 309 00:17:01,920 --> 00:17:05,579 Hau da, zer idatzitako sartu dituzu zure terminal-leiho edo dena leihoa 310 00:17:05,579 --> 00:17:12,119 erakusten dituen zure g to edit an, funtsean, nabigatu zure ordenagailuan. 311 00:17:12,119 --> 00:17:19,440 >> Beraz, adibidez, LS zerrendatzen dira direktorio baten edukia. 312 00:17:19,440 --> 00:17:22,510 Egin direktorioa karpeta berri bat sortzen du. 313 00:17:22,510 --> 00:17:24,819 CD, aldaketa direktorioa. 314 00:17:24,819 --> 00:17:28,400 RM, kendu, fitxategi bat ezabatzen edo direktorioa batzuk. 315 00:17:28,400 --> 00:17:31,050 Eta gero direktorioa kendu Direktorio bat kentzen. 316 00:17:31,050 --> 00:17:32,300 >> IKUSLEEN: [INAUDIBLE]? 317 00:17:32,300 --> 00:17:36,978 318 00:17:36,978 --> 00:17:38,370 >> HIZLARIA: 1 Bai, ziur. 319 00:17:38,370 --> 00:17:42,530 320 00:17:42,530 --> 00:17:46,040 Barkatu, galdera zen baduzu hau jarriz iradokitzen litzateke 321 00:17:46,040 --> 00:17:48,840 Cheat fitxa. 322 00:17:48,840 --> 00:17:49,440 Laguntza izan du. 323 00:17:49,440 --> 00:17:51,490 Gela badaukazu, jarri ahal izango duzu. 324 00:17:51,490 --> 00:17:56,170 Gainera, oro har nahikoa ona gogoratzeko noiz erabili duzulako 325 00:17:56,170 --> 00:17:59,060 duzu agian nahi besterik horri buruz ikasi behar. 326 00:17:59,060 --> 00:18:02,750 Hori egingo zure bizitza errazagoa. 327 00:18:02,750 --> 00:18:04,000 Ba zure galderari erantzun dut? 328 00:18:04,000 --> 00:18:10,528 329 00:18:10,528 --> 00:18:14,290 >> Beraz, orain, pixka bat hitz egin dugu liburutegiak buruz laburki. 330 00:18:14,290 --> 00:18:18,570 Baina bi horien artean dagoela izan gara beraz, jakina, urrun daude erabiliz 331 00:18:18,570 --> 00:18:20,860 I / O eta cs50 estandarra. 332 00:18:20,860 --> 00:18:25,410 Zer nolako gauzak daude barne I / O liburutegi estandarrak ere? 333 00:18:25,410 --> 00:18:28,410 >> Bai, orain arte printf erabili dugu. 334 00:18:28,410 --> 00:18:31,150 CS50, erabili dugu GetInt eta GetString. 335 00:18:31,150 --> 00:18:37,200 Eta datu-mota katea ere gertatzen CS50 liburutegi horretako deklaratu. 336 00:18:37,200 --> 00:18:40,250 Pixka bat gehiago hitz egingo dugu sakonki buruz nola liburutegietan lan eta nola 337 00:18:40,250 --> 00:18:41,870 Zure kodea gainerako elkarreragin. 338 00:18:41,870 --> 00:18:46,220 Baina horiek dira, bi horien artean dugun dute ukitzea hain urrun batera 339 00:18:46,220 --> 00:18:48,430 ikastaroa. 340 00:18:48,430 --> 00:18:50,050 >> Motak. 341 00:18:50,050 --> 00:18:58,120 Hauek onak gogoratzeko zenbat dira mota bakoitza edo nola irudikatzen 342 00:18:58,120 --> 00:19:02,840 byte asko mota bakoitzaren requires-- 343 00:19:02,840 --> 00:19:04,990 int 4 bytes; char, 1 byte. 344 00:19:04,990 --> 00:19:06,550 Karroza 4 bytes da. 345 00:19:06,550 --> 00:19:07,782 Zer da bikoitzean? 346 00:19:07,782 --> 00:19:09,032 >> IKUSLEEN: [INAUDIBLE]. 347 00:19:09,032 --> 00:19:11,398 348 00:19:11,398 --> 00:19:16,240 >> HIZLARIA: 1 Yeah, beraz, mugikor bat baina bikoiztu tamaina. 349 00:19:16,240 --> 00:19:17,150 Zer luze bati buruz? 350 00:19:17,150 --> 00:19:18,400 >> IKUSLEEN: [INAUDIBLE]. 351 00:19:18,400 --> 00:19:21,614 352 00:19:21,614 --> 00:19:24,680 >> HIZLARIA: 1 OK. 353 00:19:24,680 --> 00:19:25,410 Zer da luzean? 354 00:19:25,410 --> 00:19:26,660 >> IKUSLEEN: [INAUDIBLE]. 355 00:19:26,660 --> 00:19:29,400 356 00:19:29,400 --> 00:19:31,450 >> HIZLARIA: 1 Yeah, bikoiztu int. 357 00:19:31,450 --> 00:19:34,240 358 00:19:34,240 --> 00:19:34,705 Bai. 359 00:19:34,705 --> 00:19:36,100 >> IKUSLEEN: [INAUDIBLE]. 360 00:19:36,100 --> 00:19:38,030 >> HIZLARIA: 1 Long [INAUDIBLE]. 361 00:19:38,030 --> 00:19:41,860 Eta gero, luze bat bikoitza da. 362 00:19:41,860 --> 00:19:42,814 >> IKUSLEEN: Ez, ez. 363 00:19:42,814 --> 00:19:47,107 Luze int bat da. 364 00:19:47,107 --> 00:19:50,910 Araberakoa arkitektura It aurretik [INAUDIBLE] 365 00:19:50,910 --> 00:19:52,922 eta int tamaina bera izan. 366 00:19:52,922 --> 00:19:54,172 [INAUDIBLE]. 367 00:19:54,172 --> 00:19:58,841 368 00:19:58,841 --> 00:20:00,920 >> HIZLARIA: 1 Beraz, luzea eta Int bat bera dira. 369 00:20:00,920 --> 00:20:02,943 Eta gero, luze int bikoitza da. 370 00:20:02,943 --> 00:20:03,910 Cool. 371 00:20:03,910 --> 00:20:05,550 Eta gero, zer azken mota da? 372 00:20:05,550 --> 00:20:06,510 >> IKUSLEEN: erakuslea. 373 00:20:06,510 --> 00:20:10,350 >> HIZLARIA: 1 Yeah, beraz, ikasi dugu erakusleak buruz pixka bat. 374 00:20:10,350 --> 00:20:14,015 Eta erakuslea zer den kontuan hartu gabe egiten zaie apuntatzen char izar bat izan daiteke 375 00:20:14,015 --> 00:20:15,880 edo bat int star-- 376 00:20:15,880 --> 00:20:20,530 beti da, 4 byte erakuslea da. 377 00:20:20,530 --> 00:20:21,633 Horri buruzko galderak? 378 00:20:21,633 --> 00:20:22,116 Bai? 379 00:20:22,116 --> 00:20:24,531 >> IKUSLEEN: [INAUDIBLE]? 380 00:20:24,531 --> 00:20:29,530 >> HIZLARIA: 1 Beraz, luzea eta int bat dira CS50 tresna honetan bera. 381 00:20:29,530 --> 00:20:32,302 >> IKUSLEEN: Aparatua guztiz trukagarriak. 382 00:20:32,302 --> 00:20:33,510 >> HIZLARIA: 1 Yeah. 383 00:20:33,510 --> 00:20:36,610 Orduan luze bat int bat bikoitza da. 384 00:20:36,610 --> 00:20:39,250 >> IKUSLEEN: 32 bit da? 385 00:20:39,250 --> 00:20:40,620 >> HIZLARIA: 1 32 bit, bai. 386 00:20:40,620 --> 00:20:43,572 >> IKUSLEEN: [INAUDIBLE]? 387 00:20:43,572 --> 00:20:46,790 >> HIZLARIA 1: Bai, ala ez bada esplizituki esan, zuk 388 00:20:46,790 --> 00:20:47,870 32 bit bat suposatuko luke. 389 00:20:47,870 --> 00:20:50,040 >> IKUSLEEN: zerbait esatea litzateke bat suposatuz bezala 390 00:20:50,040 --> 00:20:51,498 aparatuaren antzeko arkitektura. 391 00:20:51,498 --> 00:20:58,800 392 00:20:58,800 --> 00:21:01,710 64 bit, gauza bakarra dela aldaketaren Longs eta erakusleak dira. 393 00:21:01,710 --> 00:21:05,614 Biek [INAUDIBLE]. 394 00:21:05,614 --> 00:21:06,590 >> HIZLARIA: 1 Bai? 395 00:21:06,590 --> 00:21:07,566 >> IKUSLEEN: Galdera. 396 00:21:07,566 --> 00:21:10,982 Beraz, praktikan galdetegiak baten gainean, unsigned int buruz galdetzen du. 397 00:21:10,982 --> 00:21:15,374 Beraz, nola zehaztu behar lukeen Int bat [INAUDIBLE] from? 398 00:21:15,374 --> 00:21:18,140 >> HIZLARIA: 1 unsigned An 4 byte da ere. 399 00:21:18,140 --> 00:21:21,172 Baina zer gertatzen da sinatu bati buruz ezberdinak int eta unsigned int bat? 400 00:21:21,172 --> 00:21:22,422 >> IKUSLEEN: [INAUDIBLE]. 401 00:21:22,422 --> 00:21:24,868 402 00:21:24,868 --> 00:21:25,630 >> HIZLARIA: 1 Eskuin. 403 00:21:25,630 --> 00:21:27,570 One balio negatiboak adierazten daiteke. 404 00:21:27,570 --> 00:21:28,580 Baina nola ez, egin du? 405 00:21:28,580 --> 00:21:30,536 >> IKUSLEEN: [INAUDIBLE]. 406 00:21:30,536 --> 00:21:36,370 >> HIZLARIA 1: Bai, aurrezten da 1 bit zeinua adierazteko. 407 00:21:36,370 --> 00:21:40,910 408 00:21:40,910 --> 00:21:45,040 Sinatu pixka bat duela zeinua adierazten du. 409 00:21:45,040 --> 00:21:48,886 Eta unsigned besterik positibo guztia. 410 00:21:48,886 --> 00:21:50,365 >> IKUSLEEN: OK. 411 00:21:50,365 --> 00:21:54,230 Beraz, esan duzun hori bikoitza da karroza baten tamaina bi aldiz? 412 00:21:54,230 --> 00:21:58,202 >> HIZLARIA: 1 bikoitza da bi aldiz bai, karroza baten tamaina. 413 00:21:58,202 --> 00:22:01,639 >> IKUSLEEN: nola erakuslea du bat luze luzea [INAUDIBLE]? 414 00:22:01,639 --> 00:22:06,058 415 00:22:06,058 --> 00:22:10,870 >> HIZLARIA: 1 Beraz, galdera da, nola ez, long-- luze baten erakuslea 416 00:22:10,870 --> 00:22:13,800 nola da hori byte bakarrik lau denean luze luze bat bere 8 byte. 417 00:22:13,800 --> 00:22:17,310 Beraz, gogoratu zer erakuslea da, funtsean, oso base balioan. 418 00:22:17,310 --> 00:22:19,046 >> IKUSLEEN: [INAUDIBLE]. 419 00:22:19,046 --> 00:22:22,670 >> HIZLARIA: 1 Yeah, beraz, erakuslea besterik memoriaren kokapena da. 420 00:22:22,670 --> 00:22:28,040 Beraz, ez du axola zenbat espazioa erakuslea dela seinalatuz. 421 00:22:28,040 --> 00:22:32,060 4 byte bakarrik behar da segimendua egiteko memoriaren kokaleku hori. 422 00:22:32,060 --> 00:22:34,760 423 00:22:34,760 --> 00:22:36,010 Beste edozein galdera? 424 00:22:36,010 --> 00:22:39,800 425 00:22:39,800 --> 00:22:41,050 Cool. 426 00:22:41,050 --> 00:22:42,920 427 00:22:42,920 --> 00:22:47,460 >> Beraz, azken gauza daukadan irteera estandarra da. 428 00:22:47,460 --> 00:22:51,020 Horiek maiz erabili behar zenuke nahikoa dela gogoratu dezakezu. 429 00:22:51,020 --> 00:22:54,800 Baina hau da, erabiltzen ditugu, printf, adibidez. 430 00:22:54,800 --> 00:22:59,260 Eta leku-markak hauek izan dugun ziren formatu kodeak izenekoa. 431 00:22:59,260 --> 00:23:03,910 >> Beraz ehuneko c char, ehuneko i int for, eta, gainera, ehuneko d erabili ahal izango dugu. 432 00:23:03,910 --> 00:23:05,130 Gauza bera gertatzen da. 433 00:23:05,130 --> 00:23:08,200 Baina, oro har, urtean CS50 dugu saiatu berea i erabiltzeko. 434 00:23:08,200 --> 00:23:09,860 Ehuneko karroza f. 435 00:23:09,860 --> 00:23:15,620 Ehuneko luze luze ld eta ehuneko s katea da. 436 00:23:15,620 --> 00:23:18,550 >> Era berean, Nik gutxi batzuk erabiliz ditugun Ihes-sekuentzia horiek. 437 00:23:18,550 --> 00:23:22,431 Adibidez, backslash n linea berrirako. 438 00:23:22,431 --> 00:23:26,910 Hau besterik ez denean formateatzen ari zaren zure inprimatu f kodea. 439 00:23:26,910 --> 00:23:27,260 Bai? 440 00:23:27,260 --> 00:23:28,906 >> IKUSLEEN: Zer da ehuneko d for? 441 00:23:28,906 --> 00:23:31,850 >> HIZLARIA: 1 Beraz, galdera da zer ehuneko d da? 442 00:23:31,850 --> 00:23:33,270 Ehuneko d ints da. 443 00:23:33,270 --> 00:23:37,392 Ehuneko d eta ehuneko i berdinak dira. 444 00:23:37,392 --> 00:23:41,130 >> IKUSLEEN: Zer da arteko aldea backslash n eta backslash r? 445 00:23:41,130 --> 00:23:45,300 >> HIZLARIA: 1 Beraz, galdera da, zer da arteko erreakzio n eta aldea 446 00:23:45,300 --> 00:23:48,615 erreakzio r? 447 00:23:48,615 --> 00:23:50,906 Uste dut backslash r is-- 448 00:23:50,906 --> 00:23:54,340 >> IKUSLEEN: backslash r besterik ez dakar lerroaren hasierara itzultzen du 449 00:23:54,340 --> 00:23:56,670 benetan linea berri bat joan gabe. 450 00:23:56,670 --> 00:24:01,000 Beraz backslash r inprimatu eta baduzu atzera jo lerroaren hasierara 451 00:24:01,000 --> 00:24:04,005 gero gauza gehiago inprimatzen baduzu, gainidatzi duzu stuff hori dagoeneko 452 00:24:04,005 --> 00:24:04,390 [INAUDIBLE]. 453 00:24:04,390 --> 00:24:06,725 Kontuan izanik, n benetan berrian doa line eta [INAUDIBLE] doa. 454 00:24:06,725 --> 00:24:10,525 455 00:24:10,525 --> 00:24:13,915 >> HIZLARIA: 1 Beno, beste edozein galdera? 456 00:24:13,915 --> 00:24:15,430 Guztiak eskubidea. 457 00:24:15,430 --> 00:24:18,617 Eskuz off noa Dan nor jarraitzeko. 458 00:24:18,617 --> 00:24:25,078 >> [Txaloak] 459 00:24:25,078 --> 00:25:08,814 460 00:25:08,814 --> 00:25:09,720 >> DAN: righty guztiak. 461 00:25:09,720 --> 00:25:18,590 Beraz, beste bat zabal buruz egingo dut hitz egingo class direla ideiak sorta 462 00:25:18,590 --> 00:25:23,220 gutxi gorabehera, astean bi ordezkari eta astean hiru hasieratik hasita off 463 00:25:23,220 --> 00:25:28,690 casting, besterik modu bat da gisa mota jakin bateko balio bat tratatzeko 464 00:25:28,690 --> 00:25:30,830 beste mota bateko balio bat. 465 00:25:30,830 --> 00:25:34,110 Beraz, hau egin ahal izango dugu karakteretan batera ints, ints karroza, eta 466 00:25:34,110 --> 00:25:35,360 Longs luze bikoiztu. 467 00:25:35,360 --> 00:25:38,170 468 00:25:38,170 --> 00:25:44,500 >> Gauza horiek guztiak modu gisa erabil daiteke zenbaki batzuk tratatzeko 469 00:25:44,500 --> 00:25:48,370 ken char beste batzuek bezala zenbakizko balioa. 470 00:25:48,370 --> 00:25:54,480 Beraz, gai batzuk daude, hau da, dituzten Jakina, horrek datorrenean bota duzu 471 00:25:54,480 --> 00:25:57,860 ints karroza bezalako gauzak. 472 00:25:57,860 --> 00:26:00,500 Beraz, hau da, pixka bat arraroa. 473 00:26:00,500 --> 00:26:03,170 Duten 1,31 da mugikor bat daukagu. 474 00:26:03,170 --> 00:26:05,220 Biderkatu dugu 10,000 arabera. 475 00:26:05,220 --> 00:26:08,380 Eta, ondoren, inprimatu dugu int gisa. 476 00:26:08,380 --> 00:26:09,630 Zer irteera honek? 477 00:26:09,630 --> 00:26:11,600 478 00:26:11,600 --> 00:26:14,020 10.000 aldiz 1,31. 479 00:26:14,020 --> 00:26:18,761 Beraz, 13.000, etxebizitza dela? 480 00:26:18,761 --> 00:26:20,685 >> IKUSLEEN: Uste dut, 10.000. 481 00:26:20,685 --> 00:26:24,234 >> DAN: Beraz, biderkatu egiten dit 10.000 by galdaketa dut aurretik. 482 00:26:24,234 --> 00:26:25,202 >> IKUSLEEN: Oh. 483 00:26:25,202 --> 00:26:27,622 Ez litzateke ez bat 9 izan eta 0 zenbaki batzuk? 484 00:26:27,622 --> 00:26:29,270 >> DAN: agian digituak bitxi erakusten ditu. 485 00:26:29,270 --> 00:26:32,410 486 00:26:32,410 --> 00:26:37,670 Beraz, oraintxe, 1,3 aldiz 10.000 da. 487 00:26:37,670 --> 00:26:40,040 Beraz, 13.000 da. 488 00:26:40,040 --> 00:26:41,313 Eta weird-- extra honetan 489 00:26:41,313 --> 00:26:42,160 >> Ikusleak: 13.100. 490 00:26:42,160 --> 00:26:42,650 >> DAN: 13.100. 491 00:26:42,650 --> 00:26:44,910 Eskerrik asko, Rob. 492 00:26:44,910 --> 00:26:46,610 Eta weirdness-- extra honetan 493 00:26:46,610 --> 00:26:48,060 hau 9,9-- 494 00:26:48,060 --> 00:26:53,860 besterik ez da casting hau delako zen azkenean behera non biribilketak 495 00:26:53,860 --> 00:26:55,394 Ez da izan behar. 496 00:26:55,394 --> 00:26:55,871 Bai. 497 00:26:55,871 --> 00:26:58,256 >> IKUSLEEN: casting gertatzen beste ezer egin ondoren? 498 00:26:58,256 --> 00:27:03,865 >> DAN: Beraz delako daukat hau inprimatu, berau biderketa hau egiten du aurretik 499 00:27:03,865 --> 00:27:05,230 casting hau egiten. 500 00:27:05,230 --> 00:27:06,140 >> IKUSLEEN: [INAUDIBLE]. 501 00:27:06,140 --> 00:27:11,350 >> DAN: Nik uste dut lehen bota litzateke, bai, horietatik 10.000 izango litzateke. 502 00:27:11,350 --> 00:27:12,610 Beste ezer? 503 00:27:12,610 --> 00:27:13,330 Cool. 504 00:27:13,330 --> 00:27:16,344 Beraz, hau 13.099 da. 505 00:27:16,344 --> 00:27:17,840 Zergatik gertatzen da hori? 506 00:27:17,840 --> 00:27:18,900 Imprecision. 507 00:27:18,900 --> 00:27:21,020 >> Pausoak ez da perfektua. 508 00:27:21,020 --> 00:27:27,550 Batera zenbakiak bakarrik dute ordezkatzen ahal zenbait datu adierazgarri kopurua. 509 00:27:27,550 --> 00:27:35,120 8 sig pikuak inprimatu Beraz badugu an karroza honetan, antzeko bat lortuko dugu 510 00:27:35,120 --> 00:27:36,800 bila zenbaki itsusia. 511 00:27:36,800 --> 00:27:45,580 Eta hori da 1,31 ezin zehatz-mehatz ez delako egon simple ordezkatzen duen 512 00:27:45,580 --> 00:27:49,000 bi eskumenak makinan. 513 00:27:49,000 --> 00:27:53,530 Beraz, eta ondorioz hurbilena hartu asmatzen, eta ondorioz sortu 514 00:27:53,530 --> 00:27:55,710 txiki txikia izanik. 515 00:27:55,710 --> 00:27:57,730 Zentzurik? 516 00:27:57,730 --> 00:27:59,110 Ados. 517 00:27:59,110 --> 00:28:05,840 >> Orain, piztuta ezberdinak modu bat dira conditional baieztapenak non guztia egiten 518 00:28:05,840 --> 00:28:09,900 zaintzen dugu aldagai bakar bat da buruz. 519 00:28:09,900 --> 00:28:16,570 Beraz, adibide zehatz honetan, ez gara erabiltzaileari zenbaki oso bat lortzeko. 520 00:28:16,570 --> 00:28:21,070 Eta gero ari gara begira osokoa dela zer den. 521 00:28:21,070 --> 00:28:23,500 Ustezko, zenbakia da bat eta lau artean. 522 00:28:23,500 --> 00:28:24,800 Horixe ari gara galdetzen. 523 00:28:24,800 --> 00:28:28,450 >> Beraz, etengailu bat egin nahi duzu aldagai-izena. 524 00:28:28,450 --> 00:28:34,290 Ondoren, posible den kasuetan konfiguratzerakoan baloratzen izan zitekeen. 525 00:28:34,290 --> 00:28:37,730 Beraz, kasu, esaten txikia da. 526 00:28:37,730 --> 00:28:41,080 Eta gero ateratzeko apurtu duzu switch baldintza hain 527 00:28:41,080 --> 00:28:43,270 Zuk ez mantendu egingo da. 528 00:28:43,270 --> 00:28:44,830 >> Hurrengo kasu In 529 00:28:44,830 --> 00:28:46,940 beraz, bi kasu eta kasu three-- 530 00:28:46,940 --> 00:28:51,920 Kasu bi bada tanta besterik ez zuen aldeko kodea lehen lerroan bezala ikusten du 531 00:28:51,920 --> 00:28:55,400 Hiru maiuskulak eta atseden bat ikusten arte. 532 00:28:55,400 --> 00:29:00,430 Beraz, arrazoia kasu bat eskuratu ahal izango duzu bakarrik inprimatu txikia da nuelako 533 00:29:00,430 --> 00:29:01,890 break hau dute hemen. 534 00:29:01,890 --> 00:29:05,360 Badut, esan, ikusi egiten zaie break-- honetan breakaway-- hau bota dut bada 535 00:29:05,360 --> 00:29:09,740 txikia inprimatu litzateke, eta orduan ez litzateke inprimatu erdian, eta, ondoren, break litzateke. 536 00:29:09,740 --> 00:29:12,200 >> Beraz, jauziak zati garrantzitsu bat dira of aldatzeko baldintzak eta 537 00:29:12,200 --> 00:29:14,340 hor egon behar dute. 538 00:29:14,340 --> 00:29:20,070 Ez diren esplizituki adierazi Edozein kasutan berez onartzen dituzte 539 00:29:20,070 --> 00:29:26,645 aldatzeko eta kasu bota behar dira. 540 00:29:26,645 --> 00:29:31,363 >> IKUSLEEN: Beraz, 1, 2, 3, eta 4 izango litzateke n? 541 00:29:31,363 --> 00:29:33,310 >> DAN: noiz n ahal izango Baloreak. 542 00:29:33,310 --> 00:29:34,654 Bai. 543 00:29:34,654 --> 00:29:35,146 Bai? 544 00:29:35,146 --> 00:29:37,606 >> IKUSLEEN: Beraz, egin behar duzu [INAUDIBLE]? 545 00:29:37,606 --> 00:29:44,002 546 00:29:44,002 --> 00:29:46,830 >> DAN: txikia inprimatu nahi duzun, eta, ondoren, Erdialdetik inprimatu litzateke, eta 547 00:29:46,830 --> 00:29:47,400 ondoren, break litzateke. 548 00:29:47,400 --> 00:29:50,244 >> IKUSLEEN: Zergatik inprimatu Erdialdetik bada [INAUDIBLE]? 549 00:29:50,244 --> 00:29:54,036 550 00:29:54,036 --> 00:30:00,550 >> DAN: Beraz, dena kasu baten azpian jauzi baten azpian erori baino lehen. 551 00:30:00,550 --> 00:30:09,390 Beraz, kasu inprimatu bat azpian kasua da bat bezala honako hau inprimatu da. 552 00:30:09,390 --> 00:30:09,890 Bai? 553 00:30:09,890 --> 00:30:11,140 >> IKUSLEEN: [INAUDIBLE]? 554 00:30:11,140 --> 00:30:15,890 555 00:30:15,890 --> 00:30:22,170 >> DAN: Beraz, kopuru hau besterik ez da jakin baten balioa duten aldagai hau 556 00:30:22,170 --> 00:30:23,420 hartu ahal izango da, ezta? 557 00:30:23,420 --> 00:30:26,740 558 00:30:26,740 --> 00:30:28,490 Ez duela zentzurik? 559 00:30:28,490 --> 00:30:28,990 Bai. 560 00:30:28,990 --> 00:30:31,490 >> IKUSLEEN: [INAUDIBLE]? 561 00:30:31,490 --> 00:30:34,130 >> DAN: Bai, kasu bi inprimatu litzateke erdi eta gero apurtu. 562 00:30:34,130 --> 00:30:35,380 >> IKUSLEEN: [INAUDIBLE]? 563 00:30:35,380 --> 00:30:37,954 564 00:30:37,954 --> 00:30:40,050 >> DAN: edozein uste dut? 565 00:30:40,050 --> 00:30:43,855 Zer beste datu-mota ahal baino gehiago piztu duzu? 566 00:30:43,855 --> 00:30:46,320 >> IKUSLEEN: piztu dezakezu Datu mota edozein baino gehiago. 567 00:30:46,320 --> 00:30:50,905 Baina chars gehiagoko ezer bakarra esan nahi du eta ints eta horrelako gauzak, zeren 568 00:30:50,905 --> 00:30:55,600 duzu erakuslea baino gehiago aldatu behar bada horrek ez du benetan zentzurik, 569 00:30:55,600 --> 00:30:59,555 zamak hor, nahiz eta utzi bada-en hori egin duzu, puntu mugikorreko delako 570 00:30:59,555 --> 00:31:02,840 doitasun ere, ez litzateke izango duzu benetan hala ere egin nahi. 571 00:31:02,840 --> 00:31:07,320 Beraz, nahiko askoz, ints besterik eta karakteretan eta horrelako gauzak. 572 00:31:07,320 --> 00:31:12,360 >> DAN: Bai, da noiz esplizitua duzu badakizu balioak, nire ustez, ezin izan 573 00:31:12,360 --> 00:31:14,250 switch bat benetan erabilgarria da. 574 00:31:14,250 --> 00:31:17,094 575 00:31:17,094 --> 00:31:18,990 Good? 576 00:31:18,990 --> 00:31:21,370 Ados. 577 00:31:21,370 --> 00:31:26,180 >> Scope dagoela deklaratu sorta da aldakorra hedatzen. 578 00:31:26,180 --> 00:31:32,190 Beraz zatia kode hau txikia daukat, akatsak beteta egongo litzateke. 579 00:31:32,190 --> 00:31:41,450 Eta arrazoia da int hau deklaratu dut i honen esparrutik begizta barruan. 580 00:31:41,450 --> 00:31:46,390 Eta, ondoren, erreferentzia ari naiz i begizta esparrua dela kanpo. 581 00:31:46,390 --> 00:31:50,330 >> Beraz, funtsean, esparrua pentsatzen dezakezu Ezer duzula deklaratzen duten bezala 582 00:31:50,330 --> 00:31:59,750 giltza kizkur multzo barruan bakarrik horiek kizkur giltza barruan badago. 583 00:31:59,750 --> 00:32:04,990 Eta saiatu bada, eta aldagai hori erabili horiek kizkur giltza kanpo, duzu 584 00:32:04,990 --> 00:32:08,356 konpiladoreak errore bat lortzeko. 585 00:32:08,356 --> 00:32:08,812 Bai? 586 00:32:08,812 --> 00:32:09,724 >> IKUSLEEN: Beraz, hau ez du funtzionatzen? 587 00:32:09,724 --> 00:32:11,790 >> DAN: Hau ez badabil, bai. 588 00:32:11,790 --> 00:32:17,190 589 00:32:17,190 --> 00:32:18,660 Strings. 590 00:32:18,660 --> 00:32:19,780 String char * bat. 591 00:32:19,780 --> 00:32:22,250 Berdin ari dira. 592 00:32:22,250 --> 00:32:25,540 Besterik karaktere erakusleak dira. 593 00:32:25,540 --> 00:32:33,000 Eta duzula inolako kateak amaitu behar backslash zero, besterik ez dituzten 594 00:32:33,000 --> 00:32:34,410 c hitzarmen bat. 595 00:32:34,410 --> 00:32:36,680 >> NULL amaierako deritzo. 596 00:32:36,680 --> 00:32:39,050 Eta NULL 597 00:32:39,050 --> 00:32:41,670 capital N, kapitala U, kapitala L, kapitala L-- 598 00:32:41,670 --> 00:32:44,290 Ez da berdina NULL amaierako. 599 00:32:44,290 --> 00:32:46,640 Horrek erakuslea da. 600 00:32:46,640 --> 00:32:48,280 Hau pertsonaia bat da. 601 00:32:48,280 --> 00:32:49,530 Oso ezberdin dira. 602 00:32:49,530 --> 00:32:50,200 Gogoratu du. 603 00:32:50,200 --> 00:32:52,320 Galdetegiaren izango da, seguruenik. 604 00:32:52,320 --> 00:32:54,040 Ez dut galdetegiaren ikusi. 605 00:32:54,040 --> 00:32:57,880 606 00:32:57,880 --> 00:32:58,840 Bai? 607 00:32:58,840 --> 00:33:01,232 >> IKUSLEEN: Beraz NULL da, adibidez, erakuslea? 608 00:33:01,232 --> 00:33:01,995 >> DAN: Bai. 609 00:33:01,995 --> 00:33:05,170 >> IKUSLEEN: Zer esan nahi du [INAUDIBLE]? 610 00:33:05,170 --> 00:33:10,050 >> DAN: bada, esan, malloc deritzo duzunean ez dute lortu Nahikoa memoria 611 00:33:10,050 --> 00:33:14,400 tamaina edozein dela ere galdetzen ari, malloc NULL itzultzeko. 612 00:33:14,400 --> 00:33:19,550 Da, funtsean, betiere, funtzio bat da erakuslea itzuli ustezko, you 613 00:33:19,550 --> 00:33:22,600 to NULL delako aurka egiaztatu behar NULL good-- polit bat da 614 00:33:22,600 --> 00:33:25,260 , Sort da, zabor-balioa. 615 00:33:25,260 --> 00:33:27,050 Zero bat da, orain arte bezala, erakusle gisa joan. 616 00:33:27,050 --> 00:33:29,630 617 00:33:29,630 --> 00:33:32,250 >> Bakoitzean funtzio bat deitu, duen erakuslea itzultzen. 618 00:33:32,250 --> 00:33:35,960 Izango begiratu nahi ari zara ziur erakuslea ez da NULL 619 00:33:35,960 --> 00:33:37,760 NULL oso ohikoa delako. 620 00:33:37,760 --> 00:33:40,160 Zabor itzulera moduko bat da. 621 00:33:40,160 --> 00:33:44,902 Beraz, zerbait egin ez bada, joan eskuinera, return NULL ordez. 622 00:33:44,902 --> 00:33:45,898 >> IKUSLEEN: [INAUDIBLE]? 623 00:33:45,898 --> 00:33:48,922 >> DAN: Bai, eta hori da hau. 624 00:33:48,922 --> 00:33:51,750 >> IKUSLEEN: [INAUDIBLE]? 625 00:33:51,750 --> 00:33:52,800 >> DAN: Zuzenketa da horixe. 626 00:33:52,800 --> 00:33:54,150 NULL amaierako da. 627 00:33:54,150 --> 00:33:56,560 Da minuskulaz N-U-L-L bada Ortografia zaren. 628 00:33:56,560 --> 00:33:59,860 >> IKUSLEEN: Eta besterik gabe joan nintzen atzera eta probatu da. 629 00:33:59,860 --> 00:34:03,010 Eta puntu mugikorreko bat jarri nahi baduzu, switch bat sartu balioa, Yell izango da 630 00:34:03,010 --> 00:34:05,916 esaten, adierazpen espresioa eskatzen integer motakoa. 631 00:34:05,916 --> 00:34:07,166 >> DAN: Bertan joan zaitezke. 632 00:34:07,166 --> 00:34:09,639 633 00:34:09,639 --> 00:34:12,246 Baina bai, zer berriro galdera izan zen? 634 00:34:12,246 --> 00:34:13,496 >> IKUSLEEN: [INAUDIBLE]? 635 00:34:13,496 --> 00:34:16,150 636 00:34:16,150 --> 00:34:23,679 >> DAN: Beraz, kapital-N, kapital-U, kapitala L, kapitala L benetako c gauza bat da. 637 00:34:23,679 --> 00:34:29,719 NULL erakuslea da, eta borondatea hala nola tratatu bakarra. 638 00:34:29,719 --> 00:34:33,530 Ez du inoiz saiatu eta ortografia dira NULL karaktere ikusi eta edozein 639 00:34:33,530 --> 00:34:35,630 hau ez den beste modu. 640 00:34:35,630 --> 00:34:36,610 Bai? 641 00:34:36,610 --> 00:34:42,490 >> IKUSLEEN: Beraz max char itzuli edo notak zerbait, litzateke 642 00:34:42,490 --> 00:34:43,960 funtzio bera embody [INAUDIBLE] bezala? 643 00:34:43,960 --> 00:34:50,655 644 00:34:50,655 --> 00:34:54,949 >> IKUSLEEN: Beraz, ari zaren aipatuz char max itzuli getchar hasita, edo 645 00:34:54,949 --> 00:34:55,444 edozein da? 646 00:34:55,444 --> 00:34:55,940 >> IKUSLEEN: Bai. 647 00:34:55,940 --> 00:34:58,620 >> IKUSLEEN: Bai, orokorrean, beraz, Gauza horiek guztiak epe 648 00:34:58,620 --> 00:34:59,920 Sentinel balioak dira. 649 00:34:59,920 --> 00:35:03,640 Beraz, int max itzuli GetInt bezala eta char max getchar hasita, hori 650 00:35:03,640 --> 00:35:06,010 ustezko bezala, eskubidea izango, bada Gauza horiek dira gurekin itzuli, 651 00:35:06,010 --> 00:35:07,210 zerbait gaizki joan da. 652 00:35:07,210 --> 00:35:09,950 >> Erakusleak baterako, gerta besterik ez dugu behar Sentinel balio hori guztiontzat 653 00:35:09,950 --> 00:35:10,750 ados gainean. 654 00:35:10,750 --> 00:35:13,210 Eta hori itzultzeko duzun gauza da gauzak okertuko. 655 00:35:13,210 --> 00:35:15,910 Beraz char max zer erabiltzen ari gara da zerbait adierazteko 656 00:35:15,910 --> 00:35:18,100 NULL edo getchar bezala. 657 00:35:18,100 --> 00:35:23,420 >> IKUSLEEN: Beraz, bada getchar probatzen ari zaren, ezin jarri besterik ez duzu NULL? 658 00:35:23,420 --> 00:35:23,910 Diferentzia bat egingo luke? 659 00:35:23,910 --> 00:35:25,400 >> DAN: ezin besterik ez duzu egiaztatu NULL. 660 00:35:25,400 --> 00:35:30,130 Char max delako egiaztatu nahi duzuna bueltan funtzioaren balioa da 661 00:35:30,130 --> 00:35:35,416 pertsonaia ez da erakuslea. 662 00:35:35,416 --> 00:35:35,888 Bai? 663 00:35:35,888 --> 00:35:38,248 >> IKUSLEEN: galdera hau galdetzen katea luzera da. 664 00:35:38,248 --> 00:35:40,136 Ba al da hori NULL karaktere, besteak? 665 00:35:40,136 --> 00:35:41,000 >> DAN: N º 666 00:35:41,000 --> 00:35:45,930 Eta hori da benetan katea nola luzera doa bidez delako gelditzeko daki 667 00:35:45,930 --> 00:35:49,070 Zure karaktere array arte NULL karaktere bat ikusten da. 668 00:35:49,070 --> 00:35:51,030 Eta orduan bezala, guztien eskuinera, egin dut. 669 00:35:51,030 --> 00:35:52,130 >> IKUSLEEN: [INAUDIBLE] bost? 670 00:35:52,130 --> 00:35:53,990 >> DAN: Kaixo bost izango litzateke. 671 00:35:53,990 --> 00:35:55,240 Yep. 672 00:35:55,240 --> 00:35:59,580 673 00:35:59,580 --> 00:36:02,880 Beraz, array jarraiak dira memoria bloke. 674 00:36:02,880 --> 00:36:08,480 Berehalako sarbidea dute esanez array izendatu eta gero, kizkur ere 675 00:36:08,480 --> 00:36:16,720 giltza, edozein dela indizea joan nahi duzun to, dira indexed zerotik bidez 676 00:36:16,720 --> 00:36:20,100 ken 1 array luzera du. 677 00:36:20,100 --> 00:36:23,070 >> Eta motaren arabera ari dira deklaratu Gauza duzula gordetzeko ari 678 00:36:23,070 --> 00:36:29,750 array, array baten izena, eta, ondoren, edozein dela ere tamaina array horren da. 679 00:36:29,750 --> 00:36:36,660 Beraz, hau char luzera sorta bat da Sei izan balio hauek ditu. 680 00:36:36,660 --> 00:36:42,050 681 00:36:42,050 --> 00:36:42,700 Bai? 682 00:36:42,700 --> 00:36:43,950 >> IKUSLEEN: [INAUDIBLE]? 683 00:36:43,950 --> 00:36:47,980 684 00:36:47,980 --> 00:36:48,460 >> DAN: Bai. 685 00:36:48,460 --> 00:36:51,340 >> IKUSLEEN: [INAUDIBLE]? 686 00:36:51,340 --> 00:36:56,700 >> DAN: zer ari den gertatzen badaukazu array sartu dagoeneko egin. 687 00:36:56,700 --> 00:37:02,260 Beraz, horren ordez hau zehaztu ahal izan duzun bezala, adibidez, char, edozein dela izena, 688 00:37:02,260 --> 00:37:12,200 array da, parentesi hutsak berdin kizkur giltza H koma E koma L koma L koma 689 00:37:12,200 --> 00:37:16,290 O koma NULL karaktere eta kizkur giltza. 690 00:37:16,290 --> 00:37:18,180 Hori izango litzateke, halaber, adierazpen bat bezala funtzionatzen. 691 00:37:18,180 --> 00:37:20,886 >> IKUSLEEN: [INAUDIBLE]? 692 00:37:20,886 --> 00:37:23,110 >> DAN: Ondoren izan behar duzu tamaina dagoeneko egin. 693 00:37:23,110 --> 00:37:23,896 >> IKUSLEEN: [INAUDIBLE]? 694 00:37:23,896 --> 00:37:25,146 >> DAN: Bai. 695 00:37:25,146 --> 00:37:30,114 696 00:37:30,114 --> 00:37:32,420 Righty guztiak. 697 00:37:32,420 --> 00:37:36,430 Komando lerroko argumentuak modu bat dira Erabiltzaile bezala sarrera eskuratzerakoan 698 00:37:36,430 --> 00:37:39,380 nagusiak argumentuak. 699 00:37:39,380 --> 00:37:40,600 Bi argumentu hartzen nagusian. 700 00:37:40,600 --> 00:37:47,680 Argumentu kopurua hori izanik Komando-lerroan eta bat gainditu batera 701 00:37:47,680 --> 00:37:55,340 bektore katea edo kate array bat Argumentu guztien. 702 00:37:55,340 --> 00:38:07,840 >> Beraz, I, esateko, funtzio bat deitzen bada, esate baterako, dot a 1 espazio, 2 espazio hiruk, 703 00:38:07,840 --> 00:38:10,110 argc 4 izango litzateke. 704 00:38:10,110 --> 00:38:17,370 Eta argv 0 dot bat izango litzateke. 705 00:38:17,370 --> 00:38:19,130 Argv1 1 izango litzateke. 706 00:38:19,130 --> 00:38:23,030 argv2 izango litzateke 2. argv3 izango litzateke 3, kasu jakin horretan. 707 00:38:23,030 --> 00:38:23,310 Bai? 708 00:38:23,310 --> 00:38:25,400 >> IKUSLEEN: [INAUDIBLE]? 709 00:38:25,400 --> 00:38:34,010 >> DAN: array azken elementua array luzera argc delako plus 710 00:38:34,010 --> 00:38:41,050 argb bat, azken elementua NULL erakuslea da. 711 00:38:41,050 --> 00:38:42,580 Argc gehi 1 da. 712 00:38:42,580 --> 00:38:46,210 713 00:38:46,210 --> 00:38:52,150 Beraz, kasu hori esan dut, bertan argv beharko litzateke, 0 puntu bat atera da. 714 00:38:52,150 --> 00:38:56,330 argv 1 da 1. argv2 2 argv 3 3 da. 715 00:38:56,330 --> 00:39:03,490 argv 4, hau da, inork handiagoa argc baino NULL izango litzateke. 716 00:39:03,490 --> 00:39:04,870 >> Eta hori NULL erakuslea da. 717 00:39:04,870 --> 00:39:06,590 Bai. 718 00:39:06,590 --> 00:39:11,250 Eta hori da katea delako char izar bat erakuslea da. 719 00:39:11,250 --> 00:39:14,102 Beraz, mota bera izan behar du. 720 00:39:14,102 --> 00:39:14,595 Bai? 721 00:39:14,595 --> 00:39:16,074 >> IKUSLEEN: Bi galdera. 722 00:39:16,074 --> 00:39:21,004 Bat, beraz, zer da arteko aldea mota bat baino beste GetString hau eta 723 00:39:21,004 --> 00:39:22,483 Erabiltzaile motorreanerabilitakoak? 724 00:39:22,483 --> 00:39:25,934 Eta bi, da barruan gordetzen da Zure azken memoria? 725 00:39:25,934 --> 00:39:28,399 Horrela, GetString litzateke izan [INAUDIBLE]? 726 00:39:28,399 --> 00:39:31,357 727 00:39:31,357 --> 00:39:33,650 >> DAN: Non gordetzen da? 728 00:39:33,650 --> 00:39:34,905 Ez dakit non gordetzen da. 729 00:39:34,905 --> 00:39:40,000 >> IKUSLEEN: Beraz, egia esan, badakizu nola edozein deitzen duzunean, argumentuak da funtziona 730 00:39:40,000 --> 00:39:42,170 dira pila gordetzen? 731 00:39:42,170 --> 00:39:46,610 Beraz argc eta argv argumentuak dira nagusira eta pila dira, edo benetan 732 00:39:46,610 --> 00:39:49,131 besterik zer uste duzu gainetik pila hasieran. 733 00:39:49,131 --> 00:39:53,490 Zein zen beste zati galdera? 734 00:39:53,490 --> 00:39:56,821 >> IKUSLEEN: Beraz, zer da [INAUDIBLE]? 735 00:39:56,821 --> 00:40:00,990 >> DAN: Bai, beste modu bat besterik ez da sarrera eskuratzerakoan erabiltzaileari. 736 00:40:00,990 --> 00:40:06,030 Hau apur bat eraginkorragoak eta scripten handier da duzulako 737 00:40:06,030 --> 00:40:10,070 besterik gabe gainditu ahal argumentuak zure nagusira funtzioa baizik eta itxaron behar izatea baino 738 00:40:10,070 --> 00:40:13,400 erabiltzaileei ez baduzu erabiltzailerik. 739 00:40:13,400 --> 00:40:16,280 >> IKUSLEEN: Eta bai, lortu kateak izango litzateke [INAUDIBLE]. 740 00:40:16,280 --> 00:40:17,922 Gauzak behar duzun gordetzeko litzateke. 741 00:40:17,922 --> 00:40:18,834 >> DAN: Bai? 742 00:40:18,834 --> 00:40:21,114 >> IKUSLEEN: [INAUDIBLE]? 743 00:40:21,114 --> 00:40:27,545 >> DAN: Bai, argv 0 beti barne hartzen du dot funtzioa deialdiaren barra. 744 00:40:27,545 --> 00:40:28,042 Bai? 745 00:40:28,042 --> 00:40:29,292 >> IKUSLEEN: [INAUDIBLE]? 746 00:40:29,292 --> 00:40:33,509 747 00:40:33,509 --> 00:40:37,310 >> DAN: Bai, argumentuak bakoitzari dira NULL karaktere amaitu dutelako 748 00:40:37,310 --> 00:40:38,310 kateak dira. 749 00:40:38,310 --> 00:40:40,892 >> IKUSLEEN: [INAUDIBLE]? 750 00:40:40,892 --> 00:40:44,116 >> DAN: Bai, argv argc NULL erakuslea da. 751 00:40:44,116 --> 00:40:45,112 >> IKUSLEEN: [INAUDIBLE]? 752 00:40:45,112 --> 00:40:47,104 >> DAN: Oh yeah. 753 00:40:47,104 --> 00:40:48,100 Bai, barkatu. 754 00:40:48,100 --> 00:40:49,594 >> IKUSLEEN: [INAUDIBLE]? 755 00:40:49,594 --> 00:41:08,518 756 00:41:08,518 --> 00:41:16,340 >> DAN: Beraz, galdera da, izan baduzu Komando-lerroan dot dot a barra out 1, 2, 757 00:41:16,340 --> 00:41:20,410 litzateke komando lerro-kopurua argumentuak bi izan edo litzateke hiru izango da? 758 00:41:20,410 --> 00:41:24,420 759 00:41:24,420 --> 00:41:28,240 >> IKUSLEEN: ez du uste dut benetan axola. 760 00:41:28,240 --> 00:41:31,370 Esan ohi dut, oh, ez duzu pasatzen edozein komando lerroko argumentuak denean, 761 00:41:31,370 --> 00:41:32,730 jakina, funtzioa deitzen duzu. 762 00:41:32,730 --> 00:41:37,950 Beraz dutena ahoz baztertzeko joera dut Komando-lerrotik funtzioa 763 00:41:37,950 --> 00:41:40,350 Argumentu horri nahiz argv sartuta. 764 00:41:40,350 --> 00:41:42,600 >> DAN: Baina zen test-- on bada 765 00:41:42,600 --> 00:41:46,550 yeah-- eta ere zerbait esan baduzu argc berdin antzera 3, 766 00:41:46,550 --> 00:41:48,512 Oraindik zutik segurua duzu. 767 00:41:48,512 --> 00:41:49,416 Bai? 768 00:41:49,416 --> 00:41:50,666 >> IKUSLEEN: [INAUDIBLE]? 769 00:41:50,666 --> 00:42:00,990 770 00:42:00,990 --> 00:42:09,510 >> DAN: uste ordez bada hau deitzen dut argc eta katea argv parentesi artean 771 00:42:09,510 --> 00:42:14,350 baina mota bera mantendu eta besterik ez deitu baten antzeko zerbait desberdin horiek 772 00:42:14,350 --> 00:42:16,640 eta b, oraindik ere lan litzateke? 773 00:42:16,640 --> 00:42:18,790 Eta, hala ere, lan litzateke, besterik ez litzateke duzu 774 00:42:18,790 --> 00:42:21,520 ordez argc-- erabiliz a eta b erabili nahi duzuna. 775 00:42:21,520 --> 00:42:24,436 776 00:42:24,436 --> 00:42:25,408 Bai? 777 00:42:25,408 --> 00:42:26,658 >> IKUSLEEN: [INAUDIBLE]? 778 00:42:26,658 --> 00:42:34,642 779 00:42:34,642 --> 00:42:38,850 >> DAN: Beraz, galdera da GetString da memoria gordetzeko zeure joan 780 00:42:38,850 --> 00:42:42,280 GetString char dagoelako *. 781 00:42:42,280 --> 00:42:47,530 Memorian gordetzen delako zeure deiak orain malloc benetako barruan 782 00:42:47,530 --> 00:42:49,258 GetString ezartzeko. 783 00:42:49,258 --> 00:42:53,210 784 00:42:53,210 --> 00:42:55,090 Ados, mugitzea. 785 00:42:55,090 --> 00:42:55,950 >> Segurtasuna. 786 00:42:55,950 --> 00:43:01,090 Beraz, benetan segurua izan dadin, aintzat hartu behar ez dituzten bat eta bat edozein sarbidea ez baimendu duzu 787 00:43:01,090 --> 00:43:04,540 Zure informazio, zein da zergatik guztiontzat eraikitzen beren makina, 788 00:43:04,540 --> 00:43:09,580 beren sistema eragileak, guztiak beren Hutsetik programak, eta jakina, 789 00:43:09,580 --> 00:43:13,410 ez beste edozein makinak konektatzeko Internet bidez. 790 00:43:13,410 --> 00:43:17,350 Beraz, ordenagailuak insecure dira. 791 00:43:17,350 --> 00:43:19,200 Benetan dira. 792 00:43:19,200 --> 00:43:20,940 Beste pertsona batzuekin fidatu behar dugu. 793 00:43:20,940 --> 00:43:26,500 >> Eta segurtasun ideia da zarela kopurua mugatu nahian 794 00:43:26,500 --> 00:43:27,540 Konfiantza behar duzula. 795 00:43:27,540 --> 00:43:32,080 Eta bide bat egiten duzula kriptografia bidez. 796 00:43:32,080 --> 00:43:34,950 Kriptografia da, funtsean, sekretuak dugu. 797 00:43:34,950 --> 00:43:38,880 >> Batzuetan gure sekretuak gainditu behar dugu zehar bidez, adibidez, Interneten edo 798 00:43:38,880 --> 00:43:39,980 beste gauza batzuk. 799 00:43:39,980 --> 00:43:43,180 Eta ez dugu jendeak nahi horien sekretuak ezagutzeko. 800 00:43:43,180 --> 00:43:50,100 Gure sekretuak Beraz enkriptatzen ditugu modu batean ea inork ez irudikatu daiteke. 801 00:43:50,100 --> 00:43:51,600 >> Beraz used-- dugu 802 00:43:51,600 --> 00:43:54,340 class-- hau ikastaroaren bidez 803 00:43:54,340 --> 00:44:00,750 Zesarrek zifratze bezalako gauzak eta [INAUDIBLE] dira, biak oso-oso 804 00:44:00,750 --> 00:44:03,200 Gauza hauek enkriptatu moduak ziurra. 805 00:44:03,200 --> 00:44:07,930 Erraza Oraindik dute irudikatu nahi dutena diren eta zer zure sekretuak dira. 806 00:44:07,930 --> 00:44:12,130 Mundu erreala askoz gehiago erabiltzen du konplikatuak enkriptatze eskemak. 807 00:44:12,130 --> 00:44:13,880 Eta ez dugu sartu Hori baino askoz gehiago da. 808 00:44:13,880 --> 00:44:18,280 809 00:44:18,280 --> 00:44:19,430 >> Arazketa. 810 00:44:19,430 --> 00:44:20,785 GDB onena da. 811 00:44:20,785 --> 00:44:24,014 812 00:44:24,014 --> 00:44:25,810 Honetan ere, azpimarratu nahi dut. 813 00:44:25,810 --> 00:44:30,920 Erabili GDB aldi bakoitzean guztia denbora arazo bat duzu. 814 00:44:30,920 --> 00:44:36,030 Baliagarriak diren GDB komandoak dira hautsi, eta horrek bai, lerro bat gainditu duzu 815 00:44:36,030 --> 00:44:41,330 zenbakia, funtzioaren izena, funtsean non zure kodea gelditu nahi duzu, 816 00:44:41,330 --> 00:44:45,600 eta izan kontrola hartu ahal izango. 817 00:44:45,600 --> 00:44:54,140 >> Print aldagai bat hartzen du eta bistaratzen du edozein dela ere, aldagai hori da 818 00:44:54,140 --> 00:44:55,990 exekuzio puntu. 819 00:44:55,990 --> 00:45:00,130 Hurrengo exekuzio mugitzen urrats bat ere. 820 00:45:00,130 --> 00:45:05,050 Eta funtzio baten barruan urrats urratsa Zure exekuzioa. 821 00:45:05,050 --> 00:45:10,480 >> Beste gauza exekutatu dira, hau da, nola benetan zure kodea exekutatzen duzun. 822 00:45:10,480 --> 00:45:16,630 Jarraitu behar diren urrats guztiak hartzen den hurrengo break puntu lortu. 823 00:45:16,630 --> 00:45:18,300 Eta badira beste hainbat eta hainbat dira. 824 00:45:18,300 --> 00:45:19,040 Begira haien. 825 00:45:19,040 --> 00:45:19,901 Handia dute. 826 00:45:19,901 --> 00:45:20,863 Bai? 827 00:45:20,863 --> 00:45:22,113 >> IKUSLEEN: [INAUDIBLE]? 828 00:45:22,113 --> 00:45:26,635 829 00:45:26,635 --> 00:45:28,200 >> DAN: Bai, horrek araztaile bat da. 830 00:45:28,200 --> 00:45:34,230 Beraz araztaile bat programa bat da, Zure programa arazteko aukera ematen. 831 00:45:34,230 --> 00:45:39,931 Ez bugs topatzen dituen programa bat da duzu, nahiz eta horrek ere handia izango litzateke. 832 00:45:39,931 --> 00:45:43,020 833 00:45:43,020 --> 00:45:46,040 >> Eta niretzat azken bilaketa da. 834 00:45:46,040 --> 00:45:51,470 Beraz, bilaketa mota horrek hitz egin dugu Klase honi buruz dira bilaketa lineala, 835 00:45:51,470 --> 00:45:55,960 hau da, besterik gabe, begiratu duzula bakoitzean zehar bilaketa espazioaren elementu, bata 836 00:45:55,960 --> 00:46:00,410 aldi berean elementu, zer aurkitu arte zuretzat edo heldu arte bila ari 837 00:46:00,410 --> 00:46:03,350 zure bilaketa espazioa amaieran zein seinalatu izan ez duzula aurkitu esan duzu 838 00:46:03,350 --> 00:46:06,360 duzula bilatzen ari elementua. 839 00:46:06,360 --> 00:46:13,450 Eta hau onenean etengabeko denbora hartzen du, horietatik 1 0 da eta txarrena lineala at 840 00:46:13,450 --> 00:46:16,070 denbora, eta horietatik n 0 da. 841 00:46:16,070 --> 00:46:19,250 >> Bilaketa bitarra, horrek behar du sordid elementu. 842 00:46:19,250 --> 00:46:24,230 Joan zure elementu erdian duzu, ikusten baduzu, bilatzen ari zaren elementua 843 00:46:24,230 --> 00:46:30,120 da elementu baino handiagoa edo txikiagoa ari zaren erdian. 844 00:46:30,120 --> 00:46:36,510 It handiagoa da, esan beheko duzula zure bilaketa espazioa zure dago 845 00:46:36,510 --> 00:46:41,550 uneko kokapena, erdian, eta prozesua berrabiarazi. 846 00:46:41,550 --> 00:46:46,150 Txikiagoa bada, esan begiratuz duten the-- bai, zer gertatzen da? 847 00:46:46,150 --> 00:46:47,400 >> IKUSLEEN: [INAUDIBLE]? 848 00:46:47,400 --> 00:46:51,000 849 00:46:51,000 --> 00:46:54,260 >> DAN: Bai. 850 00:46:54,260 --> 00:46:58,360 Edozein izan da irakasten moduko moduko class arrazoizko proba jokoa da. 851 00:46:58,360 --> 00:47:01,504 852 00:47:01,504 --> 00:47:04,920 >> [Barreak] 853 00:47:04,920 --> 00:47:10,260 >> DAN: Izan ere, ez duzula izan egin behar den arazo multzo bat, bidezko da 854 00:47:10,260 --> 00:47:12,420 proba jokoa. 855 00:47:12,420 --> 00:47:15,186 >> IKUSLEEN: Pasatuko gara nola zaie 856 00:47:15,186 --> 00:47:17,052 >> DAN: It desagertu egingo dira. 857 00:47:17,052 --> 00:47:20,496 >> SPEAKER 2: benetako kodea The [INAUDIBLE] study.cs50.net dago. 858 00:47:20,496 --> 00:47:25,910 859 00:47:25,910 --> 00:47:32,680 Beraz, bada praktikan arazoa at merge sort orrian 860 00:47:32,680 --> 00:47:35,880 study.cs50.net, ez dago kodea gauzatzeko batu sort da. 861 00:47:35,880 --> 00:47:38,550 Beraz, ez duzu ezartzea it yourself gaur gauean. 862 00:47:38,550 --> 00:47:42,090 Baina ziurtatu ulertzen duzun baizik baino besterik ez da buruz ikasi. 863 00:47:42,090 --> 00:47:45,035 >> IKUSLEEN: [INAUDIBLE]? 864 00:47:45,035 --> 00:47:49,720 >> SPEAKER 2: merge sort-orrian study.cs50.net, han ohitura da 865 00:47:49,720 --> 00:47:53,570 duten, bidez klik egiten baduzu, arazo Arazoa, oso amaieran ez da bat 866 00:47:53,570 --> 00:47:56,280 irtenbidea, horrek merge da sort ezartzeko. 867 00:47:56,280 --> 00:47:58,510 Baina ziurtatu ulertzen duzu baizik eta besterik ez da buruz ikasi baino 868 00:47:58,510 --> 00:47:59,760 edo kopiatzeko behera. 869 00:47:59,760 --> 00:48:02,870 870 00:48:02,870 --> 00:48:06,340 >> IKUSLEEN: Eta primeran baliozko azterketa arazo izango litzateke 871 00:48:06,340 --> 00:48:07,990 Hemen antzeko zerbait zerrenda bat da. 872 00:48:07,990 --> 00:48:12,100 Zer zerrenda honetan begiratzen du ondoren bezala selections Ordena urrats bat edo 873 00:48:12,100 --> 00:48:13,330 txertatzeko sort edo dena. 874 00:48:13,330 --> 00:48:14,940 Zerrendako iterazio bat osoa. 875 00:48:14,940 --> 00:48:18,530 Ez baduzu, beraz, nahiz eta azkenean beharrik it kodea, hura ulertu behar duzu 876 00:48:18,530 --> 00:48:20,440 nahikoa nola joan jakin nahi array hau aldatzea da. 877 00:48:20,440 --> 00:48:24,144 878 00:48:24,144 --> 00:48:25,394 >> DAN: Hori da niretzat. 879 00:48:25,394 --> 00:48:30,604 880 00:48:30,604 --> 00:48:32,588 >> [Txaloak] 881 00:48:32,588 --> 00:49:06,316 882 00:49:06,316 --> 00:49:07,410 >> LUCAS: Hey guztiontzat. 883 00:49:07,410 --> 00:49:08,390 Nire izena Lucas da. 884 00:49:08,390 --> 00:49:16,840 Naiz guztiei errekurtsio buruz hitz egingo, dela ikasi dugu ordenatzen du, eta bat 885 00:49:16,840 --> 00:49:18,050 erakusleak guztiak pixka. 886 00:49:18,050 --> 00:49:18,740 OK? 887 00:49:18,740 --> 00:49:20,340 Beraz, lehenik eta behin, errekurtsio. 888 00:49:20,340 --> 00:49:22,951 Zer du horrek esan nahi du funtzioa da recursive? 889 00:49:22,951 --> 00:49:24,675 >> IKUSLEEN: Deiak berez. 890 00:49:24,675 --> 00:49:26,500 >> LUCAS: OK, deiak bera, bai. 891 00:49:26,500 --> 00:49:27,700 Beraz, argazki hau, adibidez. 892 00:49:27,700 --> 00:49:30,280 Da irudian bezala da barruan beraz, irudi bat eta. 893 00:49:30,280 --> 00:49:35,740 Beraz, adibidez, Dan bezala have-- dezakezu bilaketa bitarra buruz hitz egiten. 894 00:49:35,740 --> 00:49:41,840 One modu horretan, bilaketa bitarra da recursive Izan ere, zuk ari da 895 00:49:41,840 --> 00:49:43,130 Zenbaki bat aurkitu nahian. 896 00:49:43,130 --> 00:49:44,250 Beraz, joan erdialdera duzu. 897 00:49:44,250 --> 00:49:47,130 Eta gero, egiaztatu zenbakiak ez baduzu ezkerreko eta eskuineko. 898 00:49:47,130 --> 00:49:49,650 >> Eta gero jakiteko zenbakia da agertzen nahi duzun izango da, bera da 899 00:49:49,650 --> 00:49:53,340 Gauza bilaketa berriro egiten baina besterik zerrendaren ezker. 900 00:49:53,340 --> 00:49:57,350 Beraz, nola soinuak bezalako errekurtsiboa da. 901 00:49:57,350 --> 00:50:01,870 Beraz, horregatik zuk guys dute recursive merge sort irtenbiderik. 902 00:50:01,870 --> 00:50:04,270 >> Ados, beraz, hona hemen adibide bat. 903 00:50:04,270 --> 00:50:07,280 Beraz, demagun aukeratu nahi dut 1etik n zenbaki guztiak. 904 00:50:07,280 --> 00:50:13,790 Daiteke konturatzen naiz horren n batuketa kopurua da n plus n ken 1 1 gehienez. 905 00:50:13,790 --> 00:50:17,810 Baina gero, begiratu dut at n ken 1 bada plus n ken 2 plus 1, hori bera da 906 00:50:17,810 --> 00:50:20,680 Gauza summing zenbakiak n ken 1 gehienez. 907 00:50:20,680 --> 00:50:25,890 Beraz batura berdinketarik batuketa esan dezaket n plus n ken 1 batuketa. 908 00:50:25,890 --> 00:50:28,010 Ez duela zentzurik? 909 00:50:28,010 --> 00:50:32,630 >> Eta, gainera, beste zerbait izan nahi dut oinarri kasuan deitzen zaio, hau da, 910 00:50:32,630 --> 00:50:37,440 Zenbakiak batuketa sortu zero zero izango litzateke. 911 00:50:37,440 --> 00:50:42,770 Beraz, ahalik eta lasterren lortu zenbakira dut zero, kontatuta gelditu nintzen. 912 00:50:42,770 --> 00:50:45,330 Ez duela zentzurik? 913 00:50:45,330 --> 00:50:48,120 >> Hortaz, hona hemen nola adibide bat Dut hori ezartzeko dezakezu. 914 00:50:48,120 --> 00:50:49,860 Beraz, batzuetan funtzio hori daukat. 915 00:50:49,860 --> 00:50:51,700 Osoko n agertu du. 916 00:50:51,700 --> 00:50:56,300 Hortaz, hona hemen lehen begiratu dut n bada txikiagoa edo zero berdin. 917 00:50:56,300 --> 00:51:00,310 Beraz gutxiago edo zero da, badut itzultzeko zero, horrek gure kasuan da. 918 00:51:00,310 --> 00:51:05,690 Bestela, besterik gabe itzuli ahal izango dut n plus Zenbakiak batuketa eginez 919 00:51:05,690 --> 00:51:07,190 n ken bat irudikatuko da. 920 00:51:07,190 --> 00:51:09,360 Zentzurik? 921 00:51:09,360 --> 00:51:10,100 Ados. 922 00:51:10,100 --> 00:51:11,610 >> Hortaz, hona hemen zer itxura. 923 00:51:11,610 --> 00:51:15,260 2 berdinen batura daukazu 2 gehi 1 batuketa. 924 00:51:15,260 --> 00:51:18,930 Eta 1 batzuk 1 plus 0 batuketa, zein da 0. 925 00:51:18,930 --> 00:51:20,216 Zentzurik? 926 00:51:20,216 --> 00:51:25,342 Beraz begiratzen dugu pila at bada zure programa, hau da, zer itxura. 927 00:51:25,342 --> 00:51:26,820 >> Lehenik eta behin, funtzio nagusia dugu. 928 00:51:26,820 --> 00:51:30,320 Eta ondoren, funtzio nagusia batuketa 2 izenekoa. 929 00:51:30,320 --> 00:51:36,690 Eta gero batuketa 2, esateko oi va, batuketa 2 berdin 2 plus bat batuketa. 930 00:51:36,690 --> 00:51:39,460 Beraz, gehitu I 1 batura pila. 931 00:51:39,460 --> 00:51:43,860 Eta 1 batuketa da batura deitu noa 0, eta hori ere gehitu egingo da 932 00:51:43,860 --> 00:51:44,630 pila. 933 00:51:44,630 --> 00:51:49,240 Eta gero direnak hauek dira bakoitzaren bestearen gainean itzuliko dute 934 00:51:49,240 --> 00:51:52,020 aurretik beste batzuk jarraitzea daiteke. 935 00:51:52,020 --> 00:51:56,240 >> Beraz, adibidez, hemen, 0 batuketa, lehen, hau da, 0 itzuli du. 936 00:51:56,240 --> 00:51:58,320 Eta, ondoren, aukeratu 1 batura. 937 00:51:58,320 --> 00:52:00,850 Gero 1 batuketa da joan itzultzeko 1 guztira 2 laburbildu. 938 00:52:00,850 --> 00:52:03,900 Eta, azkenik, 2 batura va 3 itzultzeko nagusira. 939 00:52:03,900 --> 00:52:05,320 Ez duela zentzurik? 940 00:52:05,320 --> 00:52:09,496 >> Benetan garrantzitsua da ulertzeko nola pila lanean ari da, eta saiatu 941 00:52:09,496 --> 00:52:11,980 ikusi zentzuzkoa bada. 942 00:52:11,980 --> 00:52:13,260 Ados, beraz ordenatzeko. 943 00:52:13,260 --> 00:52:16,170 Beraz, zergatik da garrantzitsua ordenatzeko, lehenik eta behin? 944 00:52:16,170 --> 00:52:18,260 Zergatik dugu arduratu behar? 945 00:52:18,260 --> 00:52:20,310 Edonork? 946 00:52:20,310 --> 00:52:20,695 Eman adibideren bat? 947 00:52:20,695 --> 00:52:21,040 Bai? 948 00:52:21,040 --> 00:52:22,968 >> IKUSLEEN: [INAUDIBLE]. 949 00:52:22,968 --> 00:52:24,700 >> LUCAS: Bai, OK. 950 00:52:24,700 --> 00:52:26,090 Beraz, gehiago eraginkortasunez dezakezu bilaketa. 951 00:52:26,090 --> 00:52:28,580 Hori modu ona da. 952 00:52:28,580 --> 00:52:32,462 Beraz, adibidez, asko daukagu gauzak, egia esan, gure bizitzak, 953 00:52:32,462 --> 00:52:32,920 ordenatuko dira. 954 00:52:32,920 --> 00:52:34,830 Adibidez, hiztegiak. 955 00:52:34,830 --> 00:52:39,210 >> Oso garrantzitsua da guztiak izatea Ordena nolabaiteko hitz egiten dugula 956 00:52:39,210 --> 00:52:41,970 erraz eskura dezaten. 957 00:52:41,970 --> 00:52:43,280 Beraz, zer zen esaten zuen. 958 00:52:43,280 --> 00:52:45,530 Ere modu eraginkorrean bila ditzakezu. 959 00:52:45,530 --> 00:52:48,740 Nola gogor bat izatea izango litzateke pentsatzea hiztegi zein hitz dauden 960 00:52:48,740 --> 00:52:49,500 ausaz. 961 00:52:49,500 --> 00:52:53,120 Izan dituzu begiratzen, nahiko askoz, Hitz bakoitza aurkitu arte 962 00:52:53,120 --> 00:52:54,720 Hitz hori bilatzen ari zaren. 963 00:52:54,720 --> 00:52:58,710 >> You Facebook ere erabiltzen ari bazara, orduan zure lagunak ikusten ari zara, Oraindik 964 00:52:58,710 --> 00:53:03,540 Facebook jarri ikusteko joan zure Lagun hurbilago daudenak, gainean da 965 00:53:03,540 --> 00:53:05,470 ez duzula horretan hitz askoz. 966 00:53:05,470 --> 00:53:08,080 Modu guztiak joan behar bada hondoan Lagun zerrendan, zu ikusten zoazen 967 00:53:08,080 --> 00:53:11,250 duten Ziurrenik ez duzu, nahiz eta ez pertsona gogoratu zarela lagunekin. 968 00:53:11,250 --> 00:53:14,590 Eta hori delako Facebook era Zure oinarritutako nola an 969 00:53:14,590 --> 00:53:16,472 itxi dira zenieke. 970 00:53:16,472 --> 00:53:17,930 >> Beraz, datuak antolatzeko. 971 00:53:17,930 --> 00:53:18,450 Era berean Pokemon. 972 00:53:18,450 --> 00:53:21,400 Beraz, ikusi Pokemons guztiak duzula zenbakiak dituzte. 973 00:53:21,400 --> 00:53:27,210 Eta hori erraz bat bezalakoa da datuetan sartzeko bidea. 974 00:53:27,210 --> 00:53:29,050 >> IKUSLEEN: Pokemon sartzea. 975 00:53:29,050 --> 00:53:29,890 >> LUCAS: Bai. 976 00:53:29,890 --> 00:53:32,395 >> IKUSLEEN: [INAUDIBLE]. 977 00:53:32,395 --> 00:53:33,460 >> LUCAS: Yep. 978 00:53:33,460 --> 00:53:35,140 Ados, beraz, aukeraketa sort. 979 00:53:35,140 --> 00:53:41,610 Aukeraketa sort da hautatzeko joan txikiena Unsorted zerrenda bat balio bakoitzeko 980 00:53:41,610 --> 00:53:43,300 iterazio bakoitzerako denbora. 981 00:53:43,300 --> 00:53:46,800 Mota moduko duzula egiten bezalakoa da zure burua denean saiatzen ari zaren 982 00:53:46,800 --> 00:53:48,430 alde batetik zerrenda ordenatzeko. 983 00:53:48,430 --> 00:53:51,990 >> Funtsean, egiten duzun guztia begiratu kopuru txikiena da. 984 00:53:51,990 --> 00:53:54,280 Jarri duzu ordenatuko zerrendan. 985 00:53:54,280 --> 00:53:56,230 Eta gero, bilatzen hurrengo zenbakia txikiena. 986 00:53:56,230 --> 00:54:00,080 Eta gero egiten jarraituko duzu duten eta abar. 987 00:54:00,080 --> 00:54:04,600 >> Beraz, aukeraketa sort da, funtsean, zuk hautatu txikiena den bakoitzean 988 00:54:04,600 --> 00:54:05,750 Unsorted balioa. 989 00:54:05,750 --> 00:54:10,840 Ordenatuko amaieran jarri zerrendan parte. 990 00:54:10,840 --> 00:54:12,370 Eta gorde egiten. 991 00:54:12,370 --> 00:54:15,890 Hargatik ikusi azkar horrek zer itxura hau. 992 00:54:15,890 --> 00:54:19,340 Hortaz, hona hemen ordenatuko eta Unsorted zerrenda. 993 00:54:19,340 --> 00:54:23,350 >> Beraz, zerrendaren ordenatuko da, Hasieran hutsik da. 994 00:54:23,350 --> 00:54:26,760 Eta gero noa hautatzeko joan txikiena zenbaki hemen, hau da, 2. 995 00:54:26,760 --> 00:54:30,650 Beraz, 2 zenbakia lortu nuen eta nik jarri zerrendaren aurrean. 996 00:54:30,650 --> 00:54:34,910 Eta gero, begiratu hurrengo txikiena dut elementu, hau da 3. 997 00:54:34,910 --> 00:54:37,050 Beraz, jarri dut amaieran zerrenda ordenatuaren. 998 00:54:37,050 --> 00:54:38,140 Eta gero mantentzen dut hori egiten. 999 00:54:38,140 --> 00:54:40,040 4 iruditzen zait eta jarri amaieran. 1000 00:54:40,040 --> 00:54:41,360 Aurkitu 5 eta jarri amaieran. 1001 00:54:41,360 --> 00:54:44,830 >> Eta garai hartan, nola guztia itxura At amaiera da ipini esaten dut, 1002 00:54:44,830 --> 00:54:46,850 funtsean, bi balioen aldaketa. 1003 00:54:46,850 --> 00:54:48,100 OK? 1004 00:54:48,100 --> 00:54:50,140 1005 00:54:50,140 --> 00:54:52,825 Eta gero, azkena, besterik ez duzu elementu bat gehiago dute. 1006 00:54:52,825 --> 00:54:55,870 Hain dagoeneko ordenatuko da. 1007 00:54:55,870 --> 00:54:57,800 >> Ados, beraz, txertatzeko sort. 1008 00:54:57,800 --> 00:55:03,180 Txertatzeko sort zu ere izan da joan haber bat ordenatuko gauza dela eta 1009 00:55:03,180 --> 00:55:04,690 Unsorted zerrenda bat. 1010 00:55:04,690 --> 00:55:14,540 Gauza bakarra da, aldi bakoitzean duten elementu bat gehitzen ari zaren antolatuko den 1011 00:55:14,540 --> 00:55:18,170 zerrenda, hartu besterik ez duzu elementu hori Unsorted zerrenda aurrean da. 1012 00:55:18,170 --> 00:55:20,880 Eta gero zu zer aurkituko joan posizio ordenatuko ere izan beharko luke 1013 00:55:20,880 --> 00:55:22,300 zerrendan parte. 1014 00:55:22,300 --> 00:55:25,840 >> Ea hau zer da, beraz, dezagun hori zentzuzkoa. 1015 00:55:25,840 --> 00:55:29,360 Beraz, hasiera batean, adibidez, saiatzen ari naiz Hiru zenbakia txertatzeko dauden 1016 00:55:29,360 --> 00:55:30,680 zerrendako zati ordenatuko. 1017 00:55:30,680 --> 00:55:31,800 Beraz, zerrenda ez da ezer izan. 1018 00:55:31,800 --> 00:55:34,160 Beraz, besterik gabe, jarri ahal izango dut 3 zenbakia. 1019 00:55:34,160 --> 00:55:37,480 >> Orain, 5 zenbakia gehitu nahi dut zerrendako zati ordenatuko du. 1020 00:55:37,480 --> 00:55:38,900 Beraz, itxura kopurua 5 dut. 1021 00:55:38,900 --> 00:55:40,450 Nabarituko dut 3 baino handiagoa dela. 1022 00:55:40,450 --> 00:55:41,980 Beraz, 3 ondoren izan du ez duela ezagutzen dut. 1023 00:55:41,980 --> 00:55:44,100 Beraz, 3 eta 5 jarri dut. 1024 00:55:44,100 --> 00:55:45,940 >> Ondoren, 2 zenbakia sartu nahi dut. 1025 00:55:45,940 --> 00:55:51,630 Konturatu nintzen 2 zenbakia dela benetan iraungo orduan bai 3 eta 5. 1026 00:55:51,630 --> 00:55:54,580 Beraz, benetan izan dut jartzea guztia egiten du zerrendaren hasieran modu. 1027 00:55:54,580 --> 00:55:59,030 Beraz, mota, filmea guztiak daukat ordenatuko zerrenda beraz, ezin dut elementu 1028 00:55:59,030 --> 00:56:01,970 gela egin 2 zenbakia da. 1029 00:56:01,970 --> 00:56:03,160 >> Ondoren, 6 zenbakia ikusten dut. 1030 00:56:03,160 --> 00:56:05,450 Eskaintza 5 ondoren izan beharko litzateke ikusten dut. 1031 00:56:05,450 --> 00:56:06,240 Beraz, ez dut jarri. 1032 00:56:06,240 --> 00:56:07,965 Eta, azkenik, itxura kopurua 4 at dut. 1033 00:56:07,965 --> 00:56:11,030 Eta konturatu nintzen behar lukeen 3 eta 5 artekoa izan. 1034 00:56:11,030 --> 00:56:14,870 Eta gero han jarri nintzen, eta shift beste elementu guztiak. 1035 00:56:14,870 --> 00:56:16,120 Zentzurik? 1036 00:56:16,120 --> 00:56:17,880 1037 00:56:17,880 --> 00:56:19,150 >> Bubble Sort. 1038 00:56:19,150 --> 00:56:25,730 Beraz burbuila sort da, funtsean, zer ari zaren gertatzen da burbuila deitzen dugun do-- to 1039 00:56:25,730 --> 00:56:30,113 list-- bidez joan moduko duzulako hobe da benetan I erakutsi besterik ez bada 1040 00:56:30,113 --> 00:56:32,300 hau bezalako duzu 1041 00:56:32,300 --> 00:56:35,030 eta ari alderatu zoazen ondoko zenbakiak. 1042 00:56:35,030 --> 00:56:38,410 Eta ari trukatzeko zoazen beren Oraindik ez badute posizioak 1043 00:56:38,410 --> 00:56:39,190 ordena egokian. 1044 00:56:39,190 --> 00:56:42,570 >> Beraz, funtsean, zer ari den gertatzen gertatuko da hemen, adibidez, 1045 00:56:42,570 --> 00:56:44,160 daukazula 8 eta 6. 1046 00:56:44,160 --> 00:56:47,270 Badakizu ordenatuko ordena horretan izango benetan izan 6 eta 5, ezta? 1047 00:56:47,270 --> 00:56:49,540 Beraz, ari aginduak trukatzeko zoazen. 1048 00:56:49,540 --> 00:56:51,370 Orduan ikusi nuen 8 eta 4 hemen. 1049 00:56:51,370 --> 00:56:52,250 Eta gauza bera egin dut. 1050 00:56:52,250 --> 00:56:53,400 Berriro aldatu dut. 1051 00:56:53,400 --> 00:56:55,070 Eta, azkenik, 2 eta 8. 1052 00:56:55,070 --> 00:56:56,670 Gainera, trukatu ditut. 1053 00:56:56,670 --> 00:57:01,690 >> Honez Bubble delako Sort ondoren izeneko iterazio horietako bakoitzean, benetan, 1054 00:57:01,690 --> 00:57:05,910 Zerrendako kopuru handiena lortzen zerrendaren bukaeran bidean. 1055 00:57:05,910 --> 00:57:06,940 Ez duela zentzurik? 1056 00:57:06,940 --> 00:57:11,880 Da aldaketa mantentzen delako eta mugitzen du eskuinera. 1057 00:57:11,880 --> 00:57:14,440 >> Ados, beraz, hau, bigarren iterazio da. 1058 00:57:14,440 --> 00:57:17,200 Gauza bera izango litzateke. 1059 00:57:17,200 --> 00:57:20,190 Swap bat egin dut eta ondoren, azkena. 1060 00:57:20,190 --> 00:57:23,290 Ez nuen diren trukeak ez eta zerrenda ordenatuko da. 1061 00:57:23,290 --> 00:57:27,460 Beraz Bubble Sort, funtsean mantendu dugu zerrendan zehar joan eta aldaketa 1062 00:57:27,460 --> 00:57:32,310 gauzak ez nituela egin konturatu nintzen arte iterazio egiten edozein trukeak, eta horrek 1063 00:57:32,310 --> 00:57:34,270 esan nahi du zerrendan dagoeneko ordenatuko da. 1064 00:57:34,270 --> 00:57:35,520 Zentzurik? 1065 00:57:35,520 --> 00:57:38,400 1066 00:57:38,400 --> 00:57:40,870 >> Dezagun pixka bat Let denbora exekutatzen buruz. 1067 00:57:40,870 --> 00:57:45,165 Beraz, gogoratzen duzu guys Big O, Omega, eta Theta? 1068 00:57:45,165 --> 00:57:49,290 1069 00:57:49,290 --> 00:57:50,990 Bai? 1070 00:57:50,990 --> 00:57:53,070 Ados, zer Big O da, lehenik eta behin? 1071 00:57:53,070 --> 00:57:54,315 >> IKUSLEEN: [INAUDIBLE]. 1072 00:57:54,315 --> 00:57:59,070 >> LUCAS: Bai, kasu horretan, txarrena bat deitu du exekuzio, besterik gabe esan nahi da dela 1073 00:57:59,070 --> 00:58:03,470 zenbat programa espero duzu exekutatu hartzeko. 1074 00:58:03,470 --> 00:58:04,910 Bezala, termino horretako 1075 00:58:04,910 --> 00:58:06,660 kasu n honetan. 1076 00:58:06,660 --> 00:58:09,150 Elementu-kopurua kasurik okerrenean ere zerrendan. 1077 00:58:09,150 --> 00:58:12,520 Atsegin dut, ahalik eta kasu txarrenean. 1078 00:58:12,520 --> 00:58:17,100 >> Beraz Bubble Sort, adibidez, Big n karratu O dugu. 1079 00:58:17,100 --> 00:58:20,580 Zergatik dugun? 1080 00:58:20,580 --> 00:58:24,716 Zergatik Bubble da Sort Big O n karratu? 1081 00:58:24,716 --> 00:58:27,614 >> IKUSLEEN: [INAUDIBLE]. 1082 00:58:27,614 --> 00:58:35,670 >> LUCAS: Bai, beraz, kasu horretan, txarrena izango da n iterazioak egin behar dut. 1083 00:58:35,670 --> 00:58:39,260 Beraz iterazio bakoitza joan elementu handiena ekarri amaieran 1084 00:58:39,260 --> 00:58:40,290 zerrendaren. 1085 00:58:40,290 --> 00:58:44,230 Beraz, kasu txarrena da tengo que Gauza n aldiz ez da egin behar. 1086 00:58:44,230 --> 00:58:48,550 Eta garai horietan bakoitzean, izan dut Egin n trukeak alderatu ditudalako 1087 00:58:48,550 --> 00:58:49,870 Bi elementu bakoitza. 1088 00:58:49,870 --> 00:58:53,730 Beraz, horregatik eta karratu n da n aldiz n. delako 1089 00:58:53,730 --> 00:59:00,120 >> Ondoren, aukeraketa sort da, gainera, n karratu delako, iterazio bakoitzerako, izan dut 1090 00:59:00,120 --> 00:59:02,650 elementu bakar behin begiratu zerrendan. 1091 00:59:02,650 --> 00:59:04,980 Eta gero, txikiena aurkitu, horrek esan nahi du, I izan 1092 00:59:04,980 --> 00:59:06,130 n elementuen bidez bilatzeko. 1093 00:59:06,130 --> 00:59:11,750 Eta n aldiz bat pentsatu behar izan dut N elementu guztiak aukeratu behar dut. 1094 00:59:11,750 --> 00:59:18,273 >> Txertatzeko moduko bat ere n karratu Kasu txarrena eszenatoki izango delako 1095 00:59:18,273 --> 00:59:20,950 izan, bat, sartu behar dut n zenbakiak, ezta? 1096 00:59:20,950 --> 00:59:22,765 Beraz, dagoeneko badakit noa n iterazioak izatea. 1097 00:59:22,765 --> 00:59:25,466 1098 00:59:25,466 --> 00:59:29,840 Baina izan dut zenbaki horiek bakoitzerako, bada zenbakiak guztietan begiratu 1099 00:59:29,840 --> 00:59:34,380 ordenatzen du zerrenda, eta modu guztiak ipini aurrean, duten n karratu izango 1100 00:59:34,380 --> 00:59:36,230 delako n aldiz n berriro izango da. 1101 00:59:36,230 --> 00:59:38,280 Zentzurik? 1102 00:59:38,280 --> 00:59:41,512 Zer omega buruz? 1103 00:59:41,512 --> 00:59:42,886 >> IKUSLEEN: [INAUDIBLE]. 1104 00:59:42,886 --> 00:59:44,620 >> LUCAS: kasu onena agertokia da. 1105 00:59:44,620 --> 00:59:48,810 Beraz bezalakoa da, asko aldiz egiteko , ordenatzeko kasu onena agertokia da 1106 00:59:48,810 --> 00:59:50,660 zerrendan dagoeneko ordenatuko da. 1107 00:59:50,660 --> 00:59:52,670 Beraz, ez duzu benetan ezer egin. 1108 00:59:52,670 --> 00:59:56,290 Bubble Sort ditu onenak Kasu n eszenatoki. 1109 00:59:56,290 --> 00:59:58,820 Ez duzu guys dakizu zergatik? 1110 00:59:58,820 --> 01:00:00,620 >> IKUSLEEN: [INAUDIBLE]. 1111 01:00:00,620 --> 01:00:05,640 >> LUCAS: Bai, segimendua baduzu Datu anoa trukeak edozein izan ala 1112 01:00:05,640 --> 01:00:10,533 Ez, zerbait bada, ez duzu behar bezala ezarri Egia ez iterazio bat izan bada ere, bada 1113 01:00:10,533 --> 01:00:15,140 Zerrenda dagoeneko ordenatuko da, funtsean, zer gertatuko da noa 1114 01:00:15,140 --> 01:00:17,890 saiatu bi bakoitzak trukatu ondoko elementuak. 1115 01:00:17,890 --> 01:00:19,920 Duten ikusi nahi dut daude trukeak ez. 1116 01:00:19,920 --> 01:00:21,230 Eta itzultzeko besterik ez dut berehala. 1117 01:00:21,230 --> 01:00:24,240 >> Beraz, I besterik ez dela egin behar izan dela esan nahi du the list denbora bat pasatzen. 1118 01:00:24,240 --> 01:00:28,990 Beraz, n egiten dut begiratu delako n elementu at. 1119 01:00:28,990 --> 01:00:30,930 Zergatik aukeraketa sort n plazan? 1120 01:00:30,930 --> 01:00:35,150 1121 01:00:35,150 --> 01:00:45,520 >> Bai, zerrendan ordenatuko bada ere, alde aukeraketa sort iterazio bakoitzean, I 1122 01:00:45,520 --> 01:00:47,590 gutxieneko elementu hautatu behar. 1123 01:00:47,590 --> 01:00:49,980 Beraz, horrek esan out daukat begiratzen duten Unsorted elementu guztietan 1124 01:00:49,980 --> 01:00:53,350 zerrendatu eta minimoa aurkitu iterazio bakoitzerako. 1125 01:00:53,350 --> 01:00:54,600 Ez duela zentzurik? 1126 01:00:54,600 --> 01:00:56,880 1127 01:00:56,880 --> 01:01:04,690 >> Eta txertatzeko ezpata delako n agertzen duten txertatzeko ari naiz kasu 1128 01:01:04,690 --> 01:01:09,320 zenbakiak eta zenbakiak guztiak, denean dut saiatu horiek txertatzeko, ikusten dute dudala 1129 01:01:09,320 --> 01:01:10,510 eskuineko posizioa dira. 1130 01:01:10,510 --> 01:01:15,120 Nik ez dut joan den egiaztatzeko beste guztia Unsorted zerrendan zenbakiak. 1131 01:01:15,120 --> 01:01:17,170 Beraz, horregatik n izango da. 1132 01:01:17,170 --> 01:01:19,480 Zentzurik? 1133 01:01:19,480 --> 01:01:21,035 Eta zer da, theta? 1134 01:01:21,035 --> 01:01:23,410 >> IKUSLEEN: [INAUDIBLE]. 1135 01:01:23,410 --> 01:01:24,380 >> LUCAS: Zer, barkatu? 1136 01:01:24,380 --> 01:01:24,960 Esan berriro. 1137 01:01:24,960 --> 01:01:25,666 >> IKUSLEEN: [INAUDIBLE]. 1138 01:01:25,666 --> 01:01:26,490 >> LUCAS: Zehazki. 1139 01:01:26,490 --> 01:01:31,280 Beraz, aukeraketa hori bakarrik ikusi ahal izango duzu Batu gordetzen moduko dute thetas. 1140 01:01:31,280 --> 01:01:39,920 Eta hori da zuk bakarrik izan theta delako bai Big O eta Omega bera baldin badira. 1141 01:01:39,920 --> 01:01:41,520 Ados. 1142 01:01:41,520 --> 01:01:44,210 Eta, azkenik, batu, ordenatu, hau da in log n. 1143 01:01:44,210 --> 01:01:48,910 >> Eta gero, Dan zen esaten gisa, Batu sort motatako modu berean bezalakoa dela 1144 01:01:48,910 --> 01:01:50,320 bilaketa bitarra egin duzu. 1145 01:01:50,320 --> 01:01:53,530 Beraz, zerrenda lortuko duzu. 1146 01:01:53,530 --> 01:01:55,170 Eta ari den erditik ebaki zoazen. 1147 01:01:55,170 --> 01:02:00,580 Eta gero horiek ebakitzen halves txikietan. 1148 01:02:00,580 --> 01:02:01,730 Eta gero batu duzu. 1149 01:02:01,730 --> 01:02:02,960 Zaudete gogoratu, ezta? 1150 01:02:02,960 --> 01:02:04,960 Ados, jo zuen esaten zen. 1151 01:02:04,960 --> 01:02:08,330 >> Ados, erakusleak. 1152 01:02:08,330 --> 01:02:11,078 Beraz, zer erakuslea da? 1153 01:02:11,078 --> 01:02:12,050 >> IKUSLEEN: [INAUDIBLE]. 1154 01:02:12,050 --> 01:02:12,820 >> LUCAS: helbidea. 1155 01:02:12,820 --> 01:02:13,720 Ados. 1156 01:02:13,720 --> 01:02:18,530 David duten mordo bat azaltzen jakin dut binky bideoak eta gauzak apuntatzen 1157 01:02:18,530 --> 01:02:19,080 elkar. 1158 01:02:19,080 --> 01:02:22,960 Baina gustatzen zait erakusleak pentsatzea besterik helbide gisa. 1159 01:02:22,960 --> 01:02:26,110 Beraz, hori gertatzen aldagai bat da Helbide bat gordetzeko. 1160 01:02:26,110 --> 01:02:31,940 >> Beraz, aldagai berezi hau besterik ez da dela lau byte luzea. 1161 01:02:31,940 --> 01:02:36,550 Gogoratu, ezer erakuslea dela beti lau byte gure 32-bit luze 1162 01:02:36,550 --> 01:02:39,370 Makina hain kasua tresnari. 1163 01:02:39,370 --> 01:02:41,920 1164 01:02:41,920 --> 01:02:47,050 Eta besterik kokalekua ditu barruan aldagai baten. 1165 01:02:47,050 --> 01:02:50,240 >> Ados, beraz, ez dago memoria hau da, funtsean. 1166 01:02:50,240 --> 01:02:57,420 Beraz, memoria bloke bakoitza benetan ditu etiketan, eta hori helbidea da 1167 01:02:57,420 --> 01:02:58,890 slotty memoria. 1168 01:02:58,890 --> 01:03:02,370 Beraz, horrek esan nahi dut ahal izango dute erakuslea seinalatuz bat 1169 01:03:02,370 --> 01:03:03,380 Helbide hauek edozein. 1170 01:03:03,380 --> 01:03:09,930 Beraz, arrazoia zergatik erakusleak erabiliko dugu da kokapena gogoratu behar badut 1171 01:03:09,930 --> 01:03:12,300 aldagai zehatz bat duten memoria bat da. 1172 01:03:12,300 --> 01:03:16,560 >> Eta gogoratzen duzu guys horiek bat duten Kasu zen funtzio bat badut 1173 01:03:16,560 --> 01:03:20,820 daukat benetan bada nahi duzu erreal for swap, I actually 1174 01:03:20,820 --> 01:03:22,110 erakuslea bidali behar. 1175 01:03:22,110 --> 01:03:23,460 Ez da aldagai. 1176 01:03:23,460 --> 01:03:25,200 Ez duzu guys gogoratu? 1177 01:03:25,200 --> 01:03:26,450 Aldea between-- The 1178 01:03:26,450 --> 01:03:33,350 1179 01:03:33,350 --> 01:03:34,120 zer izen da? 1180 01:03:34,120 --> 01:03:36,010 Balioa eta deituz Deitzen erreferentzia, ezta? 1181 01:03:36,010 --> 01:03:36,840 >> Ados, bai. 1182 01:03:36,840 --> 01:03:38,330 Beraz, balio by deitu. 1183 01:03:38,330 --> 01:03:43,570 Noiz aldagai bat bidali besterik ez duzu funtziona zu besterik balio bat bidaliz duzu. 1184 01:03:43,570 --> 01:03:45,610 Beraz, benetan ari bidaltzea aldagai horren kopia bat. 1185 01:03:45,610 --> 01:03:49,720 Eta zure programa bortz axola zaie aldagai berarekin benetan bada buruz 1186 01:03:49,720 --> 01:03:51,650 kopia bat egiten du. 1187 01:03:51,650 --> 01:03:56,330 >> Eta deituta erreferentzia esan nahi du, Benetan kopia bat naiz bidaliz 1188 01:03:56,330 --> 01:03:57,550 aldagai hori erakuslea. 1189 01:03:57,550 --> 01:04:00,970 Beraz, naiz duten I bidaliz esan nahi du aldagai horren kokapena. 1190 01:04:00,970 --> 01:04:04,440 Beraz senti kokalekua daukat aldagai, funtzio nuenean deitu 1191 01:04:04,440 --> 01:04:09,700 erakusleak, benetan gai naiz Datu hori nagusia izan zen aldatu. 1192 01:04:09,700 --> 01:04:12,050 Zentzurik? 1193 01:04:12,050 --> 01:04:17,560 >> Arren, erakuslea kopia bat da, erakuslea oraindik helbide benetako du 1194 01:04:17,560 --> 01:04:20,090 aldagai hori aldatu nahi dut. 1195 01:04:20,090 --> 01:04:21,920 Zentzurik? 1196 01:04:21,920 --> 01:04:24,290 >> Beraz, erakusleak sortzeko. 1197 01:04:24,290 --> 01:04:28,410 Gogoratu, erakuslea beti dute duten seinalatuz motaren 1198 01:04:28,410 --> 01:04:29,890 izar bat eta gero. 1199 01:04:29,890 --> 01:04:31,030 Eta gero, izena jarri behar duzu. 1200 01:04:31,030 --> 01:04:35,765 Beraz, gogoratu, betiere duzu edozein dela izarra, izan erakuslea bat bezalakoa da 1201 01:04:35,765 --> 01:04:38,990 edozein dela ere, aldagai hori idatzi izan duzula. 1202 01:04:38,990 --> 01:04:42,850 >> Beraz, hemen izarra, adibidez, oso erakuslea eta zenbaki oso bat. 1203 01:04:42,850 --> 01:04:47,680 Eta gero, char star erakuslea da char izar eta abar. 1204 01:04:47,680 --> 01:04:47,960 Bai? 1205 01:04:47,960 --> 01:04:52,710 >> IKUSLEEN: Zer badugu bat n erakuslea x izarra izateko. 1206 01:04:52,710 --> 01:04:55,255 Duten x erakuslea sortzen badakit. 1207 01:04:55,255 --> 01:04:59,432 Ba al da zenbaki oso bat x deklaratzeko, gainera? 1208 01:04:59,432 --> 01:05:05,170 >> LUCAS: OK, beraz, n izar x esan duzu, Ez duzu erakuslea sortzen ari 1209 01:05:05,170 --> 01:05:06,000 x aldagai. 1210 01:05:06,000 --> 01:05:08,170 X izeneko erakuslea bat sortzen ari zara. 1211 01:05:08,170 --> 01:05:09,396 >> IKUSLEEN: [INAUDIBLE]. 1212 01:05:09,396 --> 01:05:14,250 >> LUCAS: Beraz, n izar x diot, naiz , esaten hey, memoria, naiz joan 1213 01:05:14,250 --> 01:05:16,390 lortzeko hiru kutxa horietako bat. 1214 01:05:16,390 --> 01:05:20,750 Eta ez dut esan nahi hori joan da, hau da x izango da, 1215 01:05:20,750 --> 01:05:22,000 joan erakuslea izan nahi du. 1216 01:05:22,000 --> 01:05:26,860 1217 01:05:26,860 --> 01:05:30,640 Eta zerbait erakusleak buruz interesgarria dela dute ez dutela esan dugun 1218 01:05:30,640 --> 01:05:32,620 4 byte 32-bit makina bat da. 1219 01:05:32,620 --> 01:05:36,320 Eta horren arrazoia dagoelako 4 byte 32-bit dira. 1220 01:05:36,320 --> 01:05:40,490 >> Eta makinek duten 64 bit dira benetan erakusleak helbideak dute 1221 01:05:40,490 --> 01:05:43,480 duten 64 bit luze dira. 1222 01:05:43,480 --> 01:05:49,820 Beraz, esan nahi du, besterik ez duten tamainaren helbideak makina desberdina da. 1223 01:05:49,820 --> 01:05:52,270 >> Beraz, erreferentzia eta Dereferencing. 1224 01:05:52,270 --> 01:05:54,310 Badira bi operadore you guys gogoratu behar. 1225 01:05:54,310 --> 01:05:55,450 Lehena ampersand da. 1226 01:05:55,450 --> 01:05:56,810 Bigarrena izarra da. 1227 01:05:56,810 --> 01:06:05,060 Ez zaitez nahastu izarra duten eta honen arabera izar duelako gogoratu, in 1228 01:06:05,060 --> 01:06:06,950 Kasu honetan, n izarra duzu. 1229 01:06:06,950 --> 01:06:08,700 >> Gauza oso bat bezala da elkarrekin. 1230 01:06:08,700 --> 01:06:10,720 Inolako n espazio star ez. 1231 01:06:10,720 --> 01:06:12,070 Beraz, esan nahi du motakoa dela. 1232 01:06:12,070 --> 01:06:14,870 Gogoratu, denean behar duzu star aldagaia, zaren 1233 01:06:14,870 --> 01:06:16,230 motari buruz hitz egiten. 1234 01:06:16,230 --> 01:06:20,540 >> Noiz besterik izar eta gero egin behar duzu aldagaiaren izena, esan nahi du 1235 01:06:20,540 --> 01:06:24,100 erakuslea, dereferencing ari zaren horrek, esan nahi du ikusten ari zara 1236 01:06:24,100 --> 01:06:28,290 erakuslea, helbidea bilatzeari da, seinalatuz, helbide horretara joan, 1237 01:06:28,290 --> 01:06:30,850 eta, betiere, begira ez duzu. 1238 01:06:30,850 --> 01:06:34,310 Beraz, esango dut nire ikasleak denean behar duzu izarra, pentsatu behar duzu, hori da 1239 01:06:34,310 --> 01:06:36,850 edukia laburdurarik du. 1240 01:06:36,850 --> 01:06:39,770 >> Beraz, erakuslea bat baduzu eta zuk egin star erakuslea, da 1241 01:06:39,770 --> 01:06:41,720 erakuslea edukia. 1242 01:06:41,720 --> 01:06:44,580 Beraz, edozein dela ere da seinalatuz behar duzu eta etengabea eduki begiratu. 1243 01:06:44,580 --> 01:06:47,730 Eta ampersand berdina da Gauza helbide gisa. 1244 01:06:47,730 --> 01:06:52,560 >> Beraz, aldagai bat bezala a-- badut, dezagun esan ez dut int bat itzultzen 3-- 1245 01:06:52,560 --> 01:06:56,900 horren helbidea aurkitu nahi badut aldagai memoria bat, besterik gabe, egin ahal dut 1246 01:06:56,900 --> 01:06:58,240 ampersand bat. 1247 01:06:58,240 --> 01:07:00,280 Beraz baten helbidea da. 1248 01:07:00,280 --> 01:07:01,530 Zentzurik? 1249 01:07:01,530 --> 01:07:03,790 1250 01:07:03,790 --> 01:07:05,040 >> Hortaz, hona hemen adibide bat. 1251 01:07:05,040 --> 01:07:08,370 1252 01:07:08,370 --> 01:07:11,530 Hau int b eta int c falta da. 1253 01:07:11,530 --> 01:07:16,520 Beraz, int bat berdinen 3 bitartekoak direla Memoria joan noa. 1254 01:07:16,520 --> 01:07:19,870 Eta ez dut zirrikitu bat aurkitu du eta jarri 3 zenbakia hemen. 1255 01:07:19,870 --> 01:07:22,200 >> Eta gero, int b berdinen 4. 1256 01:07:22,200 --> 01:07:23,100 Gauza bera egin behar dut. 1257 01:07:23,100 --> 01:07:25,840 Memoria joan eta zenbaki bat jarri Kutxetako batean 4. 1258 01:07:25,840 --> 01:07:27,100 Eta int berdinen 5. 1259 01:07:27,100 --> 01:07:29,740 Aurki box beste bat eta zenbaki bat jarri 5. 1260 01:07:29,740 --> 01:07:36,160 >> Beraz, zer lerro hori aurrera egiten ari da? n izar pa ampersand bat berdin. 1261 01:07:36,160 --> 01:07:37,800 Beraz, lehenik eta behin, n izar pa. 1262 01:07:37,800 --> 01:07:39,050 Zer egiten da? 1263 01:07:39,050 --> 01:07:40,930 1264 01:07:40,930 --> 01:07:42,298 >> IKUSLEEN: [INAUDIBLE]. 1265 01:07:42,298 --> 01:07:47,890 >> LUCAS: Bai, beraz n izar pa, lehenik eta behin, pa izeneko erakuslea deklaratzen. 1266 01:07:47,890 --> 01:07:53,720 Eta gero nik balioa esleitzea da erakuslea baten helbidea izan nahi du. 1267 01:07:53,720 --> 01:07:55,790 Beraz, ampersand bat. 1268 01:07:55,790 --> 01:07:58,510 Ondoren, izar pb egiten badut, zer izar pb bat da? 1269 01:07:58,510 --> 01:08:02,418 1270 01:08:02,418 --> 01:08:03,150 >> Oh, barkatu. 1271 01:08:03,150 --> 01:08:06,330 Honek ere falta da. n izar pb. 1272 01:08:06,330 --> 01:08:07,905 Izar pc esan nahi dut. 1273 01:08:07,905 --> 01:08:11,200 Asko sentitzen dut. 1274 01:08:11,200 --> 01:08:11,940 Gauza bera gertatzen da. 1275 01:08:11,940 --> 01:08:16,408 Baina orain ona erakuslea sortzeko ar naiz b eta gero c erakuslea. 1276 01:08:16,408 --> 01:08:16,886 Bai? 1277 01:08:16,886 --> 01:08:18,136 >> IKUSLEEN: [INAUDIBLE]? 1278 01:08:18,136 --> 01:08:25,490 1279 01:08:25,490 --> 01:08:26,670 >> LUCAS: Bai. 1280 01:08:26,670 --> 01:08:32,630 Beraz, joan memoria gero eta joan behar duzu koadroan duten Designatzaile da pa egiteko, 1281 01:08:32,630 --> 01:08:37,149 benetan ari zaren joan ikusi Ziurtagiri baten ezaugarriak. 1282 01:08:37,149 --> 01:08:38,399 OK? 1283 01:08:38,399 --> 01:08:42,970 1284 01:08:42,970 --> 01:08:43,300 Bai? 1285 01:08:43,300 --> 01:08:45,605 >> IKUSLEEN: [INAUDIBLE]? 1286 01:08:45,605 --> 01:08:49,260 >> LUCAS: Bai, erakuslea helbidea da. 1287 01:08:49,260 --> 01:08:50,120 Inoiz ez ahaztu. 1288 01:08:50,120 --> 01:08:52,800 Da garrantzitsuena bezala da erakusleak buruz zati. 1289 01:08:52,800 --> 01:08:56,180 Ez dago gordetzeko eta helbidea aldagai batzuk. 1290 01:08:56,180 --> 01:08:56,890 Beste ezer? 1291 01:08:56,890 --> 01:08:58,370 Beste edozein galdera? 1292 01:08:58,370 --> 01:08:59,189 Ados. 1293 01:08:59,189 --> 01:09:00,399 >> Beraz, erakusleak eta Matrizeak. 1294 01:09:00,399 --> 01:09:08,189 Gogoratu int array 3 egin dut, Funtsean, zer egiten ari naiz da, naiz nolako 1295 01:09:08,189 --> 01:09:12,779 ren, erakusle bat ere geratuko. 1296 01:09:12,779 --> 01:09:18,960 Beraz, array mota da erakuslea bat bezalakoa da memorian leku jakin horretan, I 1297 01:09:18,960 --> 01:09:21,999 hiru zirrikitu esleitu osokoak da. 1298 01:09:21,999 --> 01:09:23,430 Ez duela zentzurik? 1299 01:09:23,430 --> 01:09:30,250 >> Beraz, int array 3 egin dut, zer naiz egiten, funtsean, hiru sortzen da 1300 01:09:30,250 --> 01:09:31,479 memorian slots. 1301 01:09:31,479 --> 01:09:33,899 Beraz, memoria hiru zirrikitu aurkitu dut. 1302 01:09:33,899 --> 01:09:38,810 Beraz, egin nuen, eta, ondoren, izar array bat, bada funtsean, array edukiak esan nahi du, 1303 01:09:38,810 --> 01:09:46,180 horrek esan nahi du ezabatuko dut erakuslea, I joan dela seinalatuz leku horretara, 1304 01:09:46,180 --> 01:09:47,939 eta zenbaki bat jarri dut. 1305 01:09:47,939 --> 01:09:53,729 >> Eta gero, izar array plus 1 egiten badut, array egiten gauza bera 1306 01:09:53,729 --> 01:09:59,690 Alde parentesi artean, besterik gabe esan nahi joan nahi dut lekua dela seinalatuz. 1307 01:09:59,690 --> 01:10:03,000 Eta gero plus 1 markek posizio bat mugitzeko me. 1308 01:10:03,000 --> 01:10:06,510 Beraz, jarrera hori nahi dut, egia esan, eta jarri bi zenbakia du. 1309 01:10:06,510 --> 01:10:10,900 >> Eta gero, azkenik, noiz egin behar dut array gehi 2, joan nora dut 1310 01:10:10,900 --> 01:10:11,825 array en seinalatuz. 1311 01:10:11,825 --> 01:10:14,690 Eta gero, mugitu memoria bloke nahi dut. 1312 01:10:14,690 --> 01:10:16,240 Eta gero, hiru zenbakia jarri dut hemen. 1313 01:10:16,240 --> 01:10:16,600 Bai? 1314 01:10:16,600 --> 01:10:21,400 >> IKUSLEEN: Beraz, izar array besterik ez da, Oso lehen puntua esaten. 1315 01:10:21,400 --> 01:10:25,090 Eta gehitu dezakezu 1, besterik ez delako gaude bakarrik benetan 1316 01:10:25,090 --> 01:10:27,295 Lehenengo helbide hori erreferentzia. 1317 01:10:27,295 --> 01:10:28,545 >> LUCAS: Bai. 1318 01:10:28,545 --> 01:10:32,720 1319 01:10:32,720 --> 01:10:36,020 Zergatik ez dugu, adibidez, esan array 0, array 1, eta array 2? 1320 01:10:36,020 --> 01:10:38,970 1321 01:10:38,970 --> 01:10:42,790 , Esaten dut zergatik egiten duzu 0, 1, 2, 3 1 ordez, 2, 3? 1322 01:10:42,790 --> 01:10:46,550 Arrazoietako bat da, bat, ordenagailu programatzaileak nahiago hasteko 1323 01:10:46,550 --> 01:10:47,750 0 hasita. 1324 01:10:47,750 --> 01:10:52,370 Bi denean array 0 egin duzulako, array egiten gauza bera da 1325 01:10:52,370 --> 01:10:56,330 plus 0, horrek esan nahi du joan nahi dut posizio horretan, eta ez dut 1326 01:10:56,330 --> 01:10:59,320 memoria bloke edozein saltatzeko. 1327 01:10:59,320 --> 01:11:01,750 Beraz, ez dut memoria bloke edozein mugitzeko. 1328 01:11:01,750 --> 01:11:02,015 Bai? 1329 01:11:02,015 --> 01:11:03,265 >> IKUSLEEN: [INAUDIBLE]? 1330 01:11:03,265 --> 01:11:05,928 1331 01:11:05,928 --> 01:11:12,670 >> LUCAS: Beraz, zuen zer den galdetuz egiten arteko aldea 1332 01:11:12,670 --> 01:11:14,000 hau edo malloc egiten. 1333 01:11:14,000 --> 01:11:17,550 Desberdintasunak bat dela int array 3 eratuz 1334 01:11:17,550 --> 01:11:19,260 array pilan. 1335 01:11:19,260 --> 01:11:23,080 Eta noiz malloc egin nuen, zeure gainean sortzen. 1336 01:11:23,080 --> 01:11:25,250 Ez duela zentzurik? 1337 01:11:25,250 --> 01:11:28,870 >> Beraz, nola malloc benetan lan? 1338 01:11:28,870 --> 01:11:32,245 Beraz, zergatik ez, nahiz malloc erabili behar dugu? 1339 01:11:32,245 --> 01:11:35,730 1340 01:11:35,730 --> 01:11:39,700 Zure konpiladorea zifra motatako guztiak dela deklaratu aldagaiak. 1341 01:11:39,700 --> 01:11:44,040 Eta espazioa sortzen zuen guztientzat horietako pila. 1342 01:11:44,040 --> 01:11:47,180 Beraz, zure aldagai guztiak dira joan pila nonbait izan. 1343 01:11:47,180 --> 01:11:49,460 Hortaz, hona ingurune-aldagai da. 1344 01:11:49,460 --> 01:11:53,850 >> Beraz, funtsean, aldagai horiek, espazio memorian dago at esleituko 1345 01:11:53,850 --> 01:11:55,080 bildu denbora. 1346 01:11:55,080 --> 01:11:58,790 Beraz, zure ordenagailua duela esan nahi du aldagai horiek guztiak ezagutu 1347 01:11:58,790 --> 01:11:59,790 aldez aurretik. 1348 01:11:59,790 --> 01:12:02,500 Ez du behar den jakin zer balio eurengan jarri ari zaren. 1349 01:12:02,500 --> 01:12:05,490 Baina nola jakin behar du memoria askoz behar duzu. 1350 01:12:05,490 --> 01:12:09,380 >> Baina orain, demagun, adibidez, array bat sortzen ari zaren edo bat hartuz 1351 01:12:09,380 --> 01:12:13,430 kate hori hartzen ari zaren erabiltzaileari. 1352 01:12:13,430 --> 01:12:17,300 Zenbat denbora ez dakizu katea da, izan adibidez joan. 1353 01:12:17,300 --> 01:12:20,600 Beraz, ez dakizu zenbat memoria bloke, esleitu ezta? 1354 01:12:20,600 --> 01:12:24,120 >> Beraz, ez da benetan zentzurik for 100 karaktere jarri esateko duzu. 1355 01:12:24,120 --> 01:12:26,420 Eta gero, erabiltzaileak idazten 150? Zer bada 1356 01:12:26,420 --> 01:12:27,670 Izorratu behar izan duzu. 1357 01:12:27,670 --> 01:12:30,160 1358 01:12:30,160 --> 01:12:34,620 >> Beraz, funtsean, ezin duzu nola ziur memoria askoz esleitu behar duzu 1359 01:12:34,620 --> 01:12:35,960 denean programa konpilatu duzu. 1360 01:12:35,960 --> 01:12:38,240 Badakizu besterik ez dela exekutatu denbora. 1361 01:12:38,240 --> 01:12:39,950 Beraz, horregatik zeure duzu. 1362 01:12:39,950 --> 01:12:47,610 Beraz, zeure memoria izan da joan zehar duzula esleitzean ari 1363 01:12:47,610 --> 01:12:50,810 programari iraupena. 1364 01:12:50,810 --> 01:12:55,780 >> Beraz, funtsean, noiz malloc egin duzu, zer egiten ari zaren memoria esleitzean at 1365 01:12:55,780 --> 01:13:00,160 exekuzio, horrek esan nahi du zarela une horretan eskuineko erabakia hartu duzula 1366 01:13:00,160 --> 01:13:02,670 memoria hori izan behar dute. 1367 01:13:02,670 --> 01:13:04,210 Beraz, noiz da esleitzean zaren. 1368 01:13:04,210 --> 01:13:06,430 Ez duela zentzurik? 1369 01:13:06,430 --> 01:13:11,690 >> Beraz, gogoratu, pila aldagai ditu diren konpilatzerakoan zabaltzea da. 1370 01:13:11,690 --> 01:13:14,560 Eta gero, zeure aldagai ditu sortzen joan ahala 1371 01:13:14,560 --> 01:13:15,600 malloc, adibidez. 1372 01:13:15,600 --> 01:13:16,850 >> IKUSLEEN: [INAUDIBLE]? 1373 01:13:16,850 --> 01:13:19,179 1374 01:13:19,179 --> 01:13:24,340 >> LUCAS: Beraz GetString da malloc deitu noa. 1375 01:13:24,340 --> 01:13:26,710 Me hitz malloc egin dezagun, eta Azalduko dut GetString. 1376 01:13:26,710 --> 01:13:32,000 Beraz, malloc gauza bera da memoria esleipena gisa. 1377 01:13:32,000 --> 01:13:34,600 Beraz, esleitu joan memoria zeure gainean. 1378 01:13:34,600 --> 01:13:40,010 Eta hori erakuslea itzuli joan non memoria hartan esleitu zen. 1379 01:13:40,010 --> 01:13:43,090 >> Beraz, do-- duzu 1380 01:13:43,090 --> 01:13:44,910 hemen adibide for 1381 01:13:44,910 --> 01:13:45,830 n star erakuslea. 1382 01:13:45,830 --> 01:13:50,520 Eta, ondoren erakuslea berdinen malloc hazbeteko aldiz 10 tamaina. 1383 01:13:50,520 --> 01:13:52,110 Erakuslea sortzen ari naiz. 1384 01:13:52,110 --> 01:13:59,020 Eta, ondoren erakuslea duten Dut esleitzeko erakuslea malloc duten balioa 1385 01:13:59,020 --> 01:13:59,680 da me emanez. 1386 01:13:59,680 --> 01:14:04,150 >> Beraz, galdetzen dut malloc dezakezu esleitu 10 osokoak espazioa. 1387 01:14:04,150 --> 01:14:05,390 Horixe esaten da. 1388 01:14:05,390 --> 01:14:09,020 Eta malloc ematen dit atzera leku hori erakuslea. 1389 01:14:09,020 --> 01:14:11,460 Zentzurik? 1390 01:14:11,460 --> 01:14:12,270 Ados. 1391 01:14:12,270 --> 01:14:17,940 I Eta GetString da, funtsean, bat egiten malloc deitu beraz esleitu ahal izango duzu 1392 01:14:17,940 --> 01:14:21,680 exekuzio bitartean memoria. 1393 01:14:21,680 --> 01:14:26,460 >> Beti gogoratu null egiaztatzeko malloc null itzuliko delako joan 1394 01:14:26,460 --> 01:14:28,200 ezin badu memoria esleitu. 1395 01:14:28,200 --> 01:14:31,660 Demagun barregarria bat eskatu duzula memoria kopurua. 1396 01:14:31,660 --> 01:14:33,950 Zure ordenagailuak ez da izango duten askoz ere esleitu ahal izango. 1397 01:14:33,950 --> 01:14:36,410 >> Beraz, malloc da, besterik gabe, joan null itzultzeko. 1398 01:14:36,410 --> 01:14:42,210 Beraz, beti gogoan izan balitz egiaztatu erakuslea duzula got malloc da 1399 01:14:42,210 --> 01:14:45,640 nulua edo ez, zeren bada, baliteke egon erakuslea dereferencing eta 1400 01:14:45,640 --> 01:14:48,340 Bigarren mailako failak eragiten. 1401 01:14:48,340 --> 01:14:50,930 Eta, azkenik, ez ahaztu Zure memoria doan. 1402 01:14:50,930 --> 01:14:57,800 1403 01:14:57,800 --> 01:15:00,560 >> Malloc zeure memoria sortzen da. 1404 01:15:00,560 --> 01:15:03,436 Eta memoria libratzeko behar duzu programa amaitu aurretik. 1405 01:15:03,436 --> 01:15:05,370 Ados, hori da dena niretzat. 1406 01:15:05,370 --> 01:15:07,900 Barkatu, Rob. 1407 01:15:07,900 --> 01:15:07,950 Eskerrik asko. 1408 01:15:07,950 --> 01:15:09,878 >> [Txaloak] 1409 01:15:09,878 --> 01:15:12,679 >> LUCAS: Edozein azken galdera aurretik Rob dator? 1410 01:15:12,679 --> 01:15:13,138 No? 1411 01:15:13,138 --> 01:15:13,597 Bai? 1412 01:15:13,597 --> 01:15:15,892 >> IKUSLEEN: ez nuen ikusi Bat online honetan. 1413 01:15:15,892 --> 01:15:17,269 Dute oraindik igotako duzu? 1414 01:15:17,269 --> 01:15:19,106 >> LUCAS: uste dut Dave da laster igotzen. 1415 01:15:19,106 --> 01:15:19,880 >> DAVE: It argitaratu egingo dugu. 1416 01:15:19,880 --> 01:15:20,310 >> LUCAS: online izango da. 1417 01:15:20,310 --> 01:15:21,175 >> IKUSLEEN: Ez da sortu. 1418 01:15:21,175 --> 01:15:22,090 >> LUCAS: Ez da sortu? 1419 01:15:22,090 --> 01:15:23,157 Ados. 1420 01:15:23,157 --> 01:15:23,644 Bai? 1421 01:15:23,644 --> 01:15:27,053 >> IKUSLEEN: [INAUDIBLE]? 1422 01:15:27,053 --> 01:15:30,285 >> LUCAS: Bai, askatu behar duzun guztia memoria hori zeure jarri. 1423 01:15:30,285 --> 01:15:31,535 >> IKUSLEEN: [INAUDIBLE]? 1424 01:15:31,535 --> 01:15:34,518 1425 01:15:34,518 --> 01:15:36,160 >> LUCAS: Bai. 1426 01:15:36,160 --> 01:15:39,980 Duten kultura malloc a behar duzun edozein unetan, kultura bat libre izan beharko duzu 1427 01:15:39,980 --> 01:15:42,640 ondoren gelditu aldagai hori erabilita. 1428 01:15:42,640 --> 01:15:44,800 Beraz, malloc eta dohainik dira Beti elkarrekin. 1429 01:15:44,800 --> 01:15:45,410 Haien lagun onena. 1430 01:15:45,410 --> 01:15:46,720 Bai. 1431 01:15:46,720 --> 01:15:47,970 Rob? 1432 01:15:47,970 --> 01:15:55,595 1433 01:15:55,595 --> 01:15:56,850 >> ROB: azkar joango naiz. 1434 01:15:56,850 --> 01:16:00,466 Eta, gainera, bideoa jarriko du. 1435 01:16:00,466 --> 01:16:01,716 On mic daukat. 1436 01:16:01,716 --> 01:16:24,060 1437 01:16:24,060 --> 01:16:26,230 >> Ados, beraz, astean bost gauzak. 1438 01:16:26,230 --> 01:16:27,970 Lehenik eta behin ditugun pila da. 1439 01:16:27,970 --> 01:16:33,390 Beraz, gogoratu ez dagoela pila bat besterik ez funtzio dei aktibo bakoitzeko fotograma. 1440 01:16:33,390 --> 01:16:34,710 Duten ikusiko dugu bigarren bat. 1441 01:16:34,710 --> 01:16:37,850 Eta, gainera, gogoratu, benetan zer gertatzen den pila marko bakoitzean izango dira 1442 01:16:37,850 --> 01:16:41,880 Gure funtzioen aldagai lokalak dira, diren pasa argudioak gure 1443 01:16:41,880 --> 01:16:43,880 funtzioak, pare bat batera beste gauza batzuk ez duzu benetan 1444 01:16:43,880 --> 01:16:45,260 kezkatu behar. 1445 01:16:45,260 --> 01:16:50,950 >> Hortaz, hona hemen adibide-programa bat, non, oharra, nagusia da itzulera printfing 1446 01:16:50,950 --> 01:16:52,830 foo 4 balioa. 1447 01:16:52,830 --> 01:16:57,930 foo da besterik gabe itzuli egingo da bar 4 koma 6 balioa. 1448 01:16:57,930 --> 01:17:02,380 Eta bar da tokiko zenbait gauzak argitzera 4 6 berdina aldakorreko n. 1449 01:17:02,380 --> 01:17:03,920 Eta gero itzuli n. 1450 01:17:03,920 --> 01:17:09,130 >> Hargatik zehar ditzagun pila at benetako programa honen iterazio. 1451 01:17:09,130 --> 01:17:10,500 Beraz, ez dago gure pila behealdean dago. 1452 01:17:10,500 --> 01:17:12,620 Gogoratu pila hazten sortu. 1453 01:17:12,620 --> 01:17:15,370 Beraz, gure pila behealdean, dugu pila nagusiak marko bat. 1454 01:17:15,370 --> 01:17:17,000 Noiz programa hasieran, nagusiak beti egon behar dute 1455 01:17:17,000 --> 01:17:18,560 gure pila behean. 1456 01:17:18,560 --> 01:17:20,880 >> Eta zer da barruan gure pila marko nagusia da? 1457 01:17:20,880 --> 01:17:23,810 Beraz, ez dira tokiko no nahiz nagusira aldagaiak, lehen esan dudan bezala, 1458 01:17:23,810 --> 01:17:29,670 argc eta rgv dute hartzen espazioa dugu pila nagusiak marko barruan. 1459 01:17:29,670 --> 01:17:33,260 Beraz nagusia da orain joan deitu funtzioa foo. 1460 01:17:33,260 --> 01:17:35,125 Eta horrek esan nahi foo da joan lortzeko bere pila-markoa. 1461 01:17:35,125 --> 01:17:36,970 >> Beraz, gaur egun ari gara, barruan funtzioa foo. 1462 01:17:36,970 --> 01:17:38,610 Eta zer behar du joan foo pila marko? 1463 01:17:38,610 --> 01:17:41,100 Beno, foo argumentu n du. 1464 01:17:41,100 --> 01:17:45,440 Eta N 4 berdina da hori geroztik zer nagusiak pasatzen foo en argumentu gisa. 1465 01:17:45,440 --> 01:17:48,490 >> Beraz, orain foo bar da deitu behar. 1466 01:17:48,490 --> 01:17:52,070 Zer da barra barruan izan da joan Bere 'pila marko of? 1467 01:17:52,070 --> 01:17:55,610 X 4 y sei berdina berdina dauka. 1468 01:17:55,610 --> 01:17:58,540 Hori ez da behar behar dugun guztia pila markoaren bar delako 1469 01:17:58,540 --> 01:18:00,580 halaber, aldagai lokal bat n ditu. 1470 01:18:00,580 --> 01:18:03,370 Eta n ari gara 24 berdinak ezarri behar. 1471 01:18:03,370 --> 01:18:05,750 >> Beraz, gaur egun taberna da itzuliko n egingo. 1472 01:18:05,750 --> 01:18:09,300 Beraz bar itzuli da eta 24 pila marko foo. 1473 01:18:09,300 --> 01:18:12,560 Eta delako bar orain, itzuli da, esan nahi du, pila marko ari gara leihoa 1474 01:18:12,560 --> 01:18:14,250 bar off pila da. 1475 01:18:14,250 --> 01:18:18,430 Beraz, memoria guztia bar izan dira erabiliz, gaur egun pila off. 1476 01:18:18,430 --> 01:18:21,550 >> Orain, lelo hori ere joan 24 itzultzeko nagusira. 1477 01:18:21,550 --> 01:18:25,470 Beraz, orain foo duten itzultzean, memorian lelo hori bere 'in erabiliz 1478 01:18:25,470 --> 01:18:27,550 pila-markoa ere joan da. 1479 01:18:27,550 --> 01:18:29,660 Eta orain, nagusia da printf deitu noa. 1480 01:18:29,660 --> 01:18:31,660 Beraz printf funtzioa bat besterik ez da. 1481 01:18:31,660 --> 01:18:35,320 Noiz printf deitzen diogu, izan da joan beste pila printf egiteko markoa 1482 01:18:35,320 --> 01:18:36,470 funtzio deia. 1483 01:18:36,470 --> 01:18:37,990 >> Zer dira printf pasatzen dugu? 1484 01:18:37,990 --> 01:18:40,090 Horrexek nahasten joango gara bere pila-markoa. 1485 01:18:40,090 --> 01:18:44,970 Oso gutxienez, pasatzen ari gara ehuneko i backslash n eta 1486 01:18:44,970 --> 01:18:47,180 argumentua 24. 1487 01:18:47,180 --> 01:18:50,370 Gehiago izan dezake, bertan pila-markoa da printf gertatzen bada izango batzuk erabiliz 1488 01:18:50,370 --> 01:18:51,200 aldagai lokalak. 1489 01:18:51,200 --> 01:18:51,920 Ez dakigu. 1490 01:18:51,920 --> 01:18:53,810 >> Baina hori guztia printf en doa pila fotograma. 1491 01:18:53,810 --> 01:18:55,740 Honez printf exekutatu behar. 1492 01:18:55,740 --> 01:18:56,830 Ondoren printf kitto. 1493 01:18:56,830 --> 01:18:57,820 Itzuliko da. 1494 01:18:57,820 --> 01:18:58,960 Azkenik, nagusia egiten da. 1495 01:18:58,960 --> 01:18:59,860 Main itzuliko da. 1496 01:18:59,860 --> 01:19:02,020 Eta orduan gure programa egiten da. 1497 01:19:02,020 --> 01:19:02,480 Bai? 1498 01:19:02,480 --> 01:19:04,505 >> IKUSLEEN: zuk ikusten dira [INAUDIBLE] 1499 01:19:04,505 --> 01:19:05,900 argumentuak [INAUDIBLE] 1500 01:19:05,900 --> 01:19:06,830 parametroak? 1501 01:19:06,830 --> 01:19:09,970 >> ROB: Beraz, ez sotil aldea da argudioak eta parametroak artean. 1502 01:19:09,970 --> 01:19:14,400 Eta benetan, hitz komunean, jendeak joera besterik nahastu du denbora guztian. 1503 01:19:14,400 --> 01:19:17,550 Baina parametro formalak dira Gauzak izena. 1504 01:19:17,550 --> 01:19:20,180 >> Beraz argc eta argv dira nagusira parametroak. 1505 01:19:20,180 --> 01:19:23,440 Argumentuak dira zer benetan pasatzen diren parametro horiek bezala. 1506 01:19:23,440 --> 01:19:28,340 Beraz ez denean 4 foo, 4 deitzen dut argumentua I pasatzen naiz da. 1507 01:19:28,340 --> 01:19:31,460 Eta parametro n, barrutik foo, 4 balioa hartzen 1508 01:19:31,460 --> 01:19:32,880 4 geroztik argudioa zen. 1509 01:19:32,880 --> 01:19:35,826 >> IKUSLEEN: [INAUDIBLE]? 1510 01:19:35,826 --> 01:19:37,880 >> ROB: n tokiko aldagai bat taberna da. 1511 01:19:37,880 --> 01:19:41,420 1512 01:19:41,420 --> 01:19:44,960 n dago oraindik foo tokiko, baina Parametro bat foo da. 1513 01:19:44,960 --> 01:19:48,190 Ez da tokiko aldagai bat. 1514 01:19:48,190 --> 01:19:48,546 Bai? 1515 01:19:48,546 --> 01:19:51,180 >> IKUSLEEN: [INAUDIBLE]? 1516 01:19:51,180 --> 01:19:55,400 >> ROB: foo besterik deituz taberna eta edozein dela bar itzultzen itzuli. 1517 01:19:55,400 --> 01:19:56,786 >> IKUSLEEN: [INAUDIBLE]? 1518 01:19:56,786 --> 01:19:59,591 >> ROB: Bai, bat baino gehiago ikusteko markoak pilatu. 1519 01:19:59,591 --> 01:20:00,082 Bai? 1520 01:20:00,082 --> 01:20:03,519 >> IKUSLEEN: Zergatik deitzen zen lelo printf aurretik? 1521 01:20:03,519 --> 01:20:05,920 >> ROB: Zergatik deitzen zen foo printf aurretik? 1522 01:20:05,920 --> 01:20:10,740 Beraz, izan dut, ordez, zerbait egin int bezalako x berdin 4ko foo 1523 01:20:10,740 --> 01:20:12,980 eta gero inprimatutako x. 1524 01:20:12,980 --> 01:20:17,900 Baina horren ordez, funtzioak konbinatzen dut printf argumentua sartu deitu. 1525 01:20:17,900 --> 01:20:23,670 >> Ezin dugu baina konturatu benetan deialdira dugun arte printf exekutatu 1526 01:20:23,670 --> 01:20:25,610 irudikatu 4 foo zer den. 1527 01:20:25,610 --> 01:20:27,480 Beraz, hau ebaluatu behar. 1528 01:20:27,480 --> 01:20:32,504 Eta hori behin bakarrik egiten zoazen itzuli eta hau ebaluatzeko. 1529 01:20:32,504 --> 01:20:32,990 Bai? 1530 01:20:32,990 --> 01:20:37,364 >> IKUSLEEN: bai bar geroztik [INAUDIBLE] 1531 01:20:37,364 --> 01:20:41,738 balioa, zergatik ez dugu [INAUDIBLE]? 1532 01:20:41,738 --> 01:20:44,400 >> ROB: guztiz int izan beharko lukete. 1533 01:20:44,400 --> 01:20:46,260 Hori ez zela harrapatu gorako bat baino gehiago gainditu. 1534 01:20:46,260 --> 01:20:49,010 Beraz, int bar eta int izan beharko litzateke Horietako bi geroztik lelo 1535 01:20:49,010 --> 01:20:50,460 dira osokoak itzuli. 1536 01:20:50,460 --> 01:20:54,214 Hutsa da bakarrik ari dira, ez bada benetako balio itzultzeko. 1537 01:20:54,214 --> 01:20:54,692 Bai? 1538 01:20:54,692 --> 01:20:58,038 >> IKUSLEEN: lerro bat izan ezkero gainetik itzulera, [INAUDIBLE]? 1539 01:20:58,038 --> 01:21:01,862 1540 01:21:01,862 --> 01:21:03,730 >> ROB: itzulera gainetik lerro bat? 1541 01:21:03,730 --> 01:21:04,410 >> IKUSLEEN: Bai. 1542 01:21:04,410 --> 01:21:10,780 Like printf eta [INAUDIBLE] egin baduzu, litzateke bi aldiz inprimatu? 1543 01:21:10,780 --> 01:21:12,992 >> ROB: Beraz, foo barrutik? 1544 01:21:12,992 --> 01:21:15,945 Printf bat izan dugu hemen, bada? 1545 01:21:15,945 --> 01:21:16,750 >> IKUSLEEN: Bai. 1546 01:21:16,750 --> 01:21:19,510 >> ROB: Beraz, printf eskubide bat izan genuen Hemen, behin inprimatu litzateke. 1547 01:21:19,510 --> 01:21:23,400 Foo behin eskuineko deitzen ari gara geroztik Hona hemen, beraz printf hit dugu. 1548 01:21:23,400 --> 01:21:24,620 Ondoren bar deitu dugu. 1549 01:21:24,620 --> 01:21:25,710 Eta gero itzuli egingo foo. 1550 01:21:25,710 --> 01:21:26,275 Eta hori da. 1551 01:21:26,275 --> 01:21:30,985 Bakarra inoiz aurkituko dugu printf behin. 1552 01:21:30,985 --> 01:21:31,482 Bai? 1553 01:21:31,482 --> 01:21:32,973 >> IKUSLEEN: [INAUDIBLE] 1554 01:21:32,973 --> 01:21:37,950 printf foo deituz lehen garelako printf deituz eta ondoren pasatzen ari gara 1555 01:21:37,950 --> 01:21:38,580 argudioak. 1556 01:21:38,580 --> 01:21:40,960 >> ROB: Beraz, teorian, ez da printf foo deituz? 1557 01:21:40,960 --> 01:21:42,220 Beraz, ez. 1558 01:21:42,220 --> 01:21:47,360 Just ordena c hori joan Gauza horiek exekutatu da, ahal dugu aurretik 1559 01:21:47,360 --> 01:21:49,800 funtzio bat deitu, argumentuak guztiak funtzioa behar den 1560 01:21:49,800 --> 01:21:51,600 erabat baloratuko dira. 1561 01:21:51,600 --> 01:21:53,540 Beraz, hau erabat ebaluatzen da? 1562 01:21:53,540 --> 01:21:54,610 Bai, kate bat besterik ez da. 1563 01:21:54,610 --> 01:21:55,480 Balio bat besterik ez da. 1564 01:21:55,480 --> 01:21:57,200 >> Orduan guztiz daukagu hau ebaluatzeko. 1565 01:21:57,200 --> 01:21:59,720 Hori egin eta gero, gaur egun guztien bere argumentuak ebaluatzen dira. 1566 01:21:59,720 --> 01:22:01,982 Eta orain egin dezakegu deitu printf. 1567 01:22:01,982 --> 01:22:02,478 Bai? 1568 01:22:02,478 --> 01:22:03,966 >> IKUSLEEN: galdera bat. 1569 01:22:03,966 --> 01:22:06,942 Void funtzioa bat baduzu, muztioa bueltan koma behar duzu? 1570 01:22:06,942 --> 01:22:09,910 >> ROB: ez duzu bueltan puntu eta koma ez Void funtzioa bat duzu bada. 1571 01:22:09,910 --> 01:22:13,370 1572 01:22:13,370 --> 01:22:14,780 Ados. 1573 01:22:14,780 --> 01:22:15,830 Beraz, orain, zeure gauza batzuk. 1574 01:22:15,830 --> 01:22:19,640 Beraz, arazoak izaten ari da, nola ari gara aurre joan memoria dinamikoa kudeaketa batekin. 1575 01:22:19,640 --> 01:22:23,100 Eta hori zuzenean kontrasteak pila bertan automatikoa deitu genuke 1576 01:22:23,100 --> 01:22:24,100 memoria kudeatzea. 1577 01:22:24,100 --> 01:22:27,140 >> Beraz, pila, benetan inoiz ez duzu nola tokiko aldagai landu 1578 01:22:27,140 --> 01:22:30,400 galtzen ari dira eta popped off guztiak pila fotograma horiek eta halakoak. 1579 01:22:30,400 --> 01:22:31,070 Ez daukazu kezkatu. 1580 01:22:31,070 --> 01:22:32,070 It automatikoa da. 1581 01:22:32,070 --> 01:22:36,990 Beraz, zeure Eskuliburu da. 1582 01:22:36,990 --> 01:22:38,070 Eta [INAUDIBLE] 1583 01:22:38,070 --> 01:22:41,260 funtzio horiek dator malloc eta doakoa. 1584 01:22:41,260 --> 01:22:43,550 >> Hortaz, hona hemen programa bat da. 1585 01:22:43,550 --> 01:22:47,145 Guztiak egiten ari gara, mallocing zenbaki oso bat. 1586 01:22:47,145 --> 01:22:49,360 Gordetzeko ari gara izar x. 1587 01:22:49,360 --> 01:22:52,520 Jakina, egiaztatu behar dugu x null bada ikusteko. 1588 01:22:52,520 --> 01:22:56,400 Ondoren gaude besterik ezarri zer gertatzen x 50 egingo dutenak. 1589 01:22:56,400 --> 01:23:00,350 1590 01:23:00,350 --> 01:23:03,260 Inprimatu zer x seinalatuz, inprimatu x, eta, ondoren, free x. 1591 01:23:03,260 --> 01:23:08,920 >> Beraz, nola da hau benetan begiratzen joan begiratzen dugu gure pila eta zeure kontuan hartuz gero? 1592 01:23:08,920 --> 01:23:10,950 Beraz, hasiko gara berriro. 1593 01:23:10,950 --> 01:23:12,580 Gure pila behealdean lehen bezala. 1594 01:23:12,580 --> 01:23:15,930 Gogoratu zuzenean zeure duten thee pila kontra? 1595 01:23:15,930 --> 01:23:18,850 Beraz, egin behar joan Gure zeure goialdean han. 1596 01:23:18,850 --> 01:23:22,590 >> Beraz, gure pila behealdean, hemengo gure pila nagusiak marko. 1597 01:23:22,590 --> 01:23:28,000 Argc, argv espazioa du, eta guk orain aldagai x lokal bat, behar horrek 1598 01:23:28,000 --> 01:23:30,030 int izar bat da. 1599 01:23:30,030 --> 01:23:32,240 Beraz, batetik bestera joateko joan Programa honen bidez. 1600 01:23:32,240 --> 01:23:34,420 Lehenengo gauza egin dugu malloc deitu. 1601 01:23:34,420 --> 01:23:36,250 >> Beraz, malloc dei bat egiten ari gara. 1602 01:23:36,250 --> 01:23:37,100 Malloc funtzioa da. 1603 01:23:37,100 --> 01:23:38,770 Honez pila marko bat lortzeko. 1604 01:23:38,770 --> 01:23:40,180 Zer ari gara malloc pasatzen? 1605 01:23:40,180 --> 01:23:41,610 Hori barruan joan pila markoaren. 1606 01:23:41,610 --> 01:23:45,130 N, eta horietatik 4 neurri pasatzen ari gara. 1607 01:23:45,130 --> 01:23:49,700 Beraz, hori da malloc gainditu. 1608 01:23:49,700 --> 01:23:50,910 >> Zer egiten du malloc? 1609 01:23:50,910 --> 01:23:53,820 Gurekin zeure buruzko espazioa batzuk hartuko da. 1610 01:23:53,820 --> 01:23:55,320 Beraz, zeure joango gara. 1611 01:23:55,320 --> 01:23:57,990 Eta ari gara hartzen joan 4 byte zeure from. 1612 01:23:57,990 --> 01:24:01,500 Hargatik eman besterik gabe dagoela arbitrarioa helbide bat. 1613 01:24:01,500 --> 01:24:06,680 0x123 Just asmoa dela bat helbide hori zeure gainean. 1614 01:24:06,680 --> 01:24:12,300 >> Beraz, zer da, benetan, horren barruan helbidea ox123 at memoria eskualdea? 1615 01:24:12,300 --> 01:24:13,080 Garbage. 1616 01:24:13,080 --> 01:24:15,270 Beraz, ez dugu ezer gordetzen. 1617 01:24:15,270 --> 01:24:18,830 Beraz, guk dakigula, bezala edozer izan daiteke. 1618 01:24:18,830 --> 01:24:20,560 Ez zenuke arduratuko da zero. 1619 01:24:20,560 --> 01:24:23,870 Da ziurrenik ez da zero. 1620 01:24:23,870 --> 01:24:26,260 >> Beraz, gaur egun malloc itzultzen. 1621 01:24:26,260 --> 01:24:28,020 Eta zer egiten dugu malloc itzultzen? 1622 01:24:28,020 --> 01:24:29,800 Zer itzultzen ezarri dugu. 1623 01:24:29,800 --> 01:24:32,290 X berdinak ezarri dugu zer itzuli da. 1624 01:24:32,290 --> 01:24:33,690 Beraz, zer da itzuli? 1625 01:24:33,690 --> 01:24:38,150 Honez 0x123 itzuli egiten dela geroztik memoria bloke-en helbide hori 1626 01:24:38,150 --> 01:24:40,850 besterik zeure esleitu. 1627 01:24:40,850 --> 01:24:47,160 >> Beraz itzultzeko 0x123 x orain ezarri beharreko joan 0x123 berdina bertan, pictorially, 1628 01:24:47,160 --> 01:24:52,940 marraztu maiz dugu benetako bat izatea x gisa arrow bloke hori seinalatuz. 1629 01:24:52,940 --> 01:24:55,820 Baina x besterik ez da helbide hori gordetzeko. 1630 01:24:55,820 --> 01:24:58,670 Beraz, gaur x null bada egiaztatu behar dugu. 1631 01:24:58,670 --> 01:24:59,120 Ez da nulua. 1632 01:24:59,120 --> 01:25:02,170 Malloc hori lortu nahi dugu. 1633 01:25:02,170 --> 01:25:04,950 >> Beraz, gaur egun izar x berdin 50. 1634 01:25:04,950 --> 01:25:08,450 Beraz, izar gogoratzen esan nahi duen helbide horretara joan. 1635 01:25:08,450 --> 01:25:12,700 Beraz 0x123 ari gara joan helbide horretara joan. 1636 01:25:12,700 --> 01:25:14,660 Beraz, horrek garamatza han. 1637 01:25:14,660 --> 01:25:16,310 Zer ari gara egiten helbide hartan? 1638 01:25:16,310 --> 01:25:19,020 50 gordetzeko ari gara. 1639 01:25:19,020 --> 01:25:22,500 >> Beraz, lerro honen ondoren, horixe da gauzak ez dira itxura. 1640 01:25:22,500 --> 01:25:24,640 Beraz, gaur egun jada ez da zabor sortu ez. 1641 01:25:24,640 --> 01:25:28,910 Orain badakigu 50a da helbidea bereziki delako 1642 01:25:28,910 --> 01:25:32,410 ezarri dugu hori. 1643 01:25:32,410 --> 01:25:32,790 OK? 1644 01:25:32,790 --> 01:25:34,370 Beraz, gaur egun ari gara f inprimatu. 1645 01:25:34,370 --> 01:25:38,490 >> Beraz, lehenengo ari gara izar x inprimatzeko. 1646 01:25:38,490 --> 01:25:39,640 Beraz, zer da izarra x? 1647 01:25:39,640 --> 01:25:44,300 Berriz ere, izar x esan nahi joan Gauza x dela seinalatuz. 1648 01:25:44,300 --> 01:25:47,140 Beraz, x gordetzeko 0x123 Go horretara. 1649 01:25:47,140 --> 01:25:48,490 50 lortuko dugu. 1650 01:25:48,490 --> 01:25:50,540 Beraz, inprimatu f. 1651 01:25:50,540 --> 01:25:54,900 Eta horrek esan nahi du 50 inprimatu behar da joan. 1652 01:25:54,900 --> 01:25:56,850 Eta gero, hori itzuliko du. 1653 01:25:56,850 --> 01:25:58,340 >> Eta gero, bigarren printf dugu. 1654 01:25:58,340 --> 01:25:59,370 Gara orain berea p. 1655 01:25:59,370 --> 01:26:01,680 Ez duzu ikusi bada, hori da, besterik gabe, nola erakuslea inprimatu duzu. 1656 01:26:01,680 --> 01:26:04,960 Beraz ehuneko i, garbi daukagu f, eta dagoeneko horiek guztiak. 1657 01:26:04,960 --> 01:26:07,160 Beraz ehuneko p, inprimatu erakuslea. 1658 01:26:07,160 --> 01:26:08,920 >> Beraz, x erakuslea da. 1659 01:26:08,920 --> 01:26:13,440 Beraz, ari gara, berez x inprimatu bada, ari zer da benetan barrutik inprimatzeko dugu 1660 01:26:13,440 --> 01:26:19,220 x, zein 0x123 da Beraz lehenengoa inprimatu f 50 inprimatu. 1661 01:26:19,220 --> 01:26:23,620 Bigarren inprimatu f va 0x123 inprimatu behar Yeah? 1662 01:26:23,620 --> 01:26:27,460 >> IKUSLEEN: Ba ehuneko erabiltzen dituzun x erakuslea inprimatu? 1663 01:26:27,460 --> 01:26:31,200 >> ROB: Beraz, garbi erabili behar dituzu x erakuslea inprimatu? 1664 01:26:31,200 --> 01:26:38,350 Beraz, ahal duzun, baina ehuneko x besterik ez da, oro har, bezala batzuk izanez gero 1665 01:26:38,350 --> 01:26:40,325 osokoa eta inprimatu nahi duzun it hamaseitar bat bezala. 1666 01:26:40,325 --> 01:26:43,250 1667 01:26:43,250 --> 01:26:44,880 Hori besterik ez nola egiten duzun. 1668 01:26:44,880 --> 01:26:47,160 >> Berriz, ehuneko d litzateke hamartar gisa inprimatu. 1669 01:26:47,160 --> 01:26:50,310 Hori duk honako ehuneko lortuko dugu d. i besterik osokoa da. 1670 01:26:50,310 --> 01:26:52,690 ehuneko p da, zehazki, erakusle da. 1671 01:26:52,690 --> 01:26:54,060 >> Beraz, x erakuslea da. 1672 01:26:54,060 --> 01:26:56,360 Ehuneko p erabili nahi dugu. 1673 01:26:56,360 --> 01:26:57,937 Baina ehuneko x lan izan. 1674 01:26:57,937 --> 01:26:58,414 Bai? 1675 01:26:58,414 --> 01:26:59,664 >> IKUSLEEN: [INAUDIBLE]? 1676 01:26:59,664 --> 01:27:04,138 1677 01:27:04,138 --> 01:27:05,388 >> ROB: Bai. 1678 01:27:05,388 --> 01:27:07,870 1679 01:27:07,870 --> 01:27:13,440 Horretarako Gutxienez beraz call-- dut ez zituen, hemen da. 1680 01:27:13,440 --> 01:27:19,850 Baina bi argumentu horiek ez dira nahitaez pila marko honen barruan 1681 01:27:19,850 --> 01:27:23,040 edozein aldagai lokalak batera printf gertatzen erabiltzen dituztela. 1682 01:27:23,040 --> 01:27:27,020 Eta gero, hurrengo deia orain printf pila marko printf barruan 1683 01:27:27,020 --> 01:27:33,960 ehuneko p backslash n eta edozein x-ren balioa da, eta horrek 0x123 da. 1684 01:27:33,960 --> 01:27:34,425 Bai? 1685 01:27:34,425 --> 01:27:35,675 >> IKUSLEEN: [INAUDIBLE]? 1686 01:27:35,675 --> 01:27:38,145 1687 01:27:38,145 --> 01:27:40,880 >> ROB: zerbait inprimatu egingo da itxura hau. 1688 01:27:40,880 --> 01:27:41,846 >> IKUSLEEN: [INAUDIBLE]. 1689 01:27:41,846 --> 01:27:44,510 >> ROB: Beraz bistaratzen helbidea inprimakia. 1690 01:27:44,510 --> 01:27:47,003 Itxura helbide bat bezalakoa da. 1691 01:27:47,003 --> 01:27:47,494 Bai? 1692 01:27:47,494 --> 01:27:49,458 >> IKUSLEEN: [INAUDIBLE]? 1693 01:27:49,458 --> 01:27:51,075 >> ROB: Zergatik da zer? 1694 01:27:51,075 --> 01:27:52,920 >> IKUSLEEN: [INAUDIBLE]? 1695 01:27:52,920 --> 01:27:55,240 >> ROB: Zergatik da erakuslea hau 4 byte? 1696 01:27:55,240 --> 01:27:58,500 Beraz, ez dira sorta osoa 0-ren honen aurrean. 1697 01:27:58,500 --> 01:28:03,740 Beraz, benetan 0x0000000123 da. 1698 01:28:03,740 --> 01:28:06,510 64-bit sistema bat, ez luke izan zeroen gehiago sorta osoa. 1699 01:28:06,510 --> 01:28:11,410 1700 01:28:11,410 --> 01:28:11,900 Bai? 1701 01:28:11,900 --> 01:28:13,150 >> IKUSLEEN: [INAUDIBLE]. 1702 01:28:13,150 --> 01:28:17,290 1703 01:28:17,290 --> 01:28:21,130 >> ROB: Beraz, lehenengo printf da print-- joan 1704 01:28:21,130 --> 01:28:21,980 >> IKUSLEEN: [INAUDIBLE]. 1705 01:28:21,980 --> 01:28:24,420 >> ROB: Bai, nik inprimatzeko joan zer x seinalatuz. 1706 01:28:24,420 --> 01:28:27,030 1707 01:28:27,030 --> 01:28:29,070 Star dio zer da hau Gauza seinalatuz. 1708 01:28:29,070 --> 01:28:30,300 Hartu ezazu. 1709 01:28:30,300 --> 01:28:31,455 Beraz, zer da apuntatzen da? 1710 01:28:31,455 --> 01:28:31,850 50. 1711 01:28:31,850 --> 01:28:32,410 Hartu ezazu. 1712 01:28:32,410 --> 01:28:33,390 Horixe ari gara inprimatzeko joan. 1713 01:28:33,390 --> 01:28:37,020 , Berriz, hurrengo bat, gara besterik berez x inprimatzeko. 1714 01:28:37,020 --> 01:28:38,850 Zer da f-barrutik? 1715 01:28:38,850 --> 01:28:43,710 0x123. 1716 01:28:43,710 --> 01:28:44,500 Ados. 1717 01:28:44,500 --> 01:28:46,620 >> Eta gero, azkenik, librea daukagu. 1718 01:28:46,620 --> 01:28:48,040 Zer ari gara free pasatzen? 1719 01:28:48,040 --> 01:28:49,470 X pasatzen ari gara. 1720 01:28:49,470 --> 01:28:52,380 Denbora hori benetan bistaratzen dut pila-markoa da. 1721 01:28:52,380 --> 01:28:56,370 >> Beraz balioa pasatzen ari gara 0x123 free. 1722 01:28:56,370 --> 01:28:59,070 Beraz, orain doan badaki, eskubidea, Igo zeure behar dut 1723 01:28:59,070 --> 01:29:00,050 eta memoria hori doan. 1724 01:29:00,050 --> 01:29:03,920 Honez jada ez erabiliz zer helbidea 0x123 da. 1725 01:29:03,920 --> 01:29:07,010 >> Beraz, doan da askatu joan zeure duten. 1726 01:29:07,010 --> 01:29:09,490 Orain gure zeure hutsik dago berriro. 1727 01:29:09,490 --> 01:29:11,120 Memoria filtrazioak ez daukagu. 1728 01:29:11,120 --> 01:29:12,940 Orain doan itzuliko da. 1729 01:29:12,940 --> 01:29:16,130 Ohartu x dela oraindik 0x123. 1730 01:29:16,130 --> 01:29:18,240 Baina hori da, gaur egun ez du balio memoria. 1731 01:29:18,240 --> 01:29:21,220 1732 01:29:21,220 --> 01:29:23,986 Jada ez erreferentzia kenduta x hori behar dugu. 1733 01:29:23,986 --> 01:29:24,440 Bai? 1734 01:29:24,440 --> 01:29:27,240 >> IKUSLEEN: da itzuliko 0 erredundantea? 1735 01:29:27,240 --> 01:29:28,290 >> ROB: Is returen 0 erredundantea? 1736 01:29:28,290 --> 01:29:31,110 Bai. 1737 01:29:31,110 --> 01:29:33,950 Jarri dugu besterik gabe, hori ez delako itzulera bat aire dugu. 1738 01:29:33,950 --> 01:29:36,830 Beraz bezalakoa da, bai, aukera ematen dizu Return 0 besteak beste. 1739 01:29:36,830 --> 01:29:37,310 Bai? 1740 01:29:37,310 --> 01:29:38,560 >> IKUSLEEN: [INAUDIBLE]? 1741 01:29:38,560 --> 01:29:42,110 1742 01:29:42,110 --> 01:29:45,580 >> ROB: Beraz, x free ondoren, zer gertatzen bada saiatu gara erakuslea dereference? 1743 01:29:45,580 --> 01:29:47,240 Posible da ezer oker. 1744 01:29:47,240 --> 01:29:49,330 Posible da egingo dugun oraindik lortu 50. 1745 01:29:49,330 --> 01:29:53,590 >> Posible da, halaber, memoria hori dela gaur egun, beste zerbait erabiltzen da. 1746 01:29:53,590 --> 01:29:57,140 Beraz, portaera undefined. 1747 01:29:57,140 --> 01:30:00,772 Eta undefined ezer esan nahi gerta daiteke. 1748 01:30:00,772 --> 01:30:01,250 Bai? 1749 01:30:01,250 --> 01:30:02,500 >> IKUSLEEN: [INAUDIBLE]? 1750 01:30:02,500 --> 01:30:07,942 1751 01:30:07,942 --> 01:30:10,830 >> ROB: Ez, beraz, esleitu bada beste zerbait x. 1752 01:30:10,830 --> 01:30:15,870 Beraz, hementxe bada esan dugu x funtzioak malloc zerbait else-- 1753 01:30:15,870 --> 01:30:17,100 malloc tamaina gertaera 1754 01:30:17,100 --> 01:30:20,180 ondoren, jatorrizko bloke hori Memoriarik ez da libratuko. 1755 01:30:20,180 --> 01:30:21,490 Eta ofizialki ditugu galdu zuen. 1756 01:30:21,490 --> 01:30:23,150 Memoria-leak bat da. 1757 01:30:23,150 --> 01:30:25,090 Erreferentzia guztiak galdu dugu memoria bloke horretan. 1758 01:30:25,090 --> 01:30:26,827 Beraz, ez dago modurik ez dugu inoiz askatu daitekeela. 1759 01:30:26,827 --> 01:30:32,074 1760 01:30:32,074 --> 01:30:36,630 Ados, beraz, ondoren, itzultzeko 0 bitartez egin. 1761 01:30:36,630 --> 01:30:37,900 >> Ondo da, beraz, pilaren gainezkatzea. 1762 01:30:37,900 --> 01:30:39,320 Zein da ideia hemen? 1763 01:30:39,320 --> 01:30:41,210 Beraz, gogoratu, zeure beheraka doa. 1764 01:30:41,210 --> 01:30:43,480 Stack up da. 1765 01:30:43,480 --> 01:30:48,000 Beraz, hau hitzaldia adibidea izan zen, Uste dut, non nagusia besterik ez da joan 1766 01:30:48,000 --> 01:30:51,380 deitu funtzioa foo hau, hau da, joan bera errekurtsiboki deitzeko baino gehiago eta 1767 01:30:51,380 --> 01:30:52,320 berriz. 1768 01:30:52,320 --> 01:30:55,370 >> Beraz, pila markoak dira joan lan bera zehazki. 1769 01:30:55,370 --> 01:30:58,130 Beraz, nahi nagusirekin hasiko da beheko pila marko gisa. 1770 01:30:58,130 --> 01:31:02,000 Gero nagusia da foo deitu, joan eta bertan pila fotograma bat iritsi. 1771 01:31:02,000 --> 01:31:04,260 >> Ondoren foo da foo deitu noa berriro ere, eta hori da iritsi 1772 01:31:04,260 --> 01:31:05,500 pila marko beste. 1773 01:31:05,500 --> 01:31:08,270 Eta gero berriro, eta berriro, eta berriro, eta berriz arte, azkenean, korrika egin genuen 1774 01:31:08,270 --> 01:31:09,190 zeure sartu. 1775 01:31:09,190 --> 01:31:11,990 Beraz, hau da, nola lortuko dugu pilaren gainezkatzea. 1776 01:31:11,990 --> 01:31:14,910 Eta puntu honetan, seg errua duzu. 1777 01:31:14,910 --> 01:31:17,335 Edo dituzu, benetan seg aurretik errua Puntu honetan, baina bai. 1778 01:31:17,335 --> 01:31:19,660 >> IKUSLEEN: Is core irauliko du seg matxura bera? 1779 01:31:19,660 --> 01:31:26,140 >> ROB: Beraz, ikusiko duzu segmentazio errua core iraultzeko. 1780 01:31:26,140 --> 01:31:28,760 Nukleoaren iraulketa bat denean lortuko duzu seg errua duzu. 1781 01:31:28,760 --> 01:31:32,580 Eta guztien iraulketa bat bezalakoa da Zure uneko memoria edukiak beraz, 1782 01:31:32,580 --> 01:31:36,670 saiatu eta identifikatu ahal izango duzu zergatik faulted seg duzu. 1783 01:31:36,670 --> 01:31:37,135 Bai? 1784 01:31:37,135 --> 01:31:38,385 >> IKUSLEEN: [INAUDIBLE]? 1785 01:31:38,385 --> 01:31:40,855 1786 01:31:40,855 --> 01:31:45,460 >> ROB: Beraz, segmentazio errua bitartekoak ez gainezkatzea pila bat. 1787 01:31:45,460 --> 01:31:47,060 Beraz, ez du zertan. 1788 01:31:47,060 --> 01:31:49,880 Segmentaziuo hutsegitea esan nahi du zarela modu batean memoria hunkigarri 1789 01:31:49,880 --> 01:31:50,880 ez behar duzu. 1790 01:31:50,880 --> 01:31:54,750 Beraz, gertatzen ari den bide bat da, gainezkatzea pilatu duzu, hunkigarri hasten gara 1791 01:31:54,750 --> 01:31:58,736 dela ez genuke modu bat memoria. 1792 01:31:58,736 --> 01:31:59,208 Bai? 1793 01:31:59,208 --> 01:32:00,458 >> IKUSLEEN: [INAUDIBLE]? 1794 01:32:00,458 --> 01:32:03,456 1795 01:32:03,456 --> 01:32:05,830 >> ROB: Beraz, begizta infinitu baten barruan. 1796 01:32:05,830 --> 01:32:08,770 Bezala, hau infinitua recursive bat bezalakoa da loop eta, beraz, beste bat lortuko dugu 1797 01:32:08,770 --> 01:32:09,770 pila aldi bakoitzean enkoadratzearekin. 1798 01:32:09,770 --> 01:32:13,540 Baina besterik ez erregular baten barruko infinitua one-- bitartean 1799 01:32:13,540 --> 01:32:16,390 ondo, ez dezagun are inprimatu f 1800 01:32:16,390 --> 01:32:17,040 Zerbait egin. 1801 01:32:17,040 --> 01:32:18,390 Whatever. 1802 01:32:18,390 --> 01:32:20,610 >> Ez ari gara lortzean joan pila marko beste. 1803 01:32:20,610 --> 01:32:22,530 Besterik ez gara begizta jarraitzea instrukzio bakar horretan. 1804 01:32:22,530 --> 01:32:23,920 Pila ez da hazten. 1805 01:32:23,920 --> 01:32:27,290 Recursive bakoitzak Izan ere, dei pila marko bat uzten dizkigu. 1806 01:32:27,290 --> 01:32:31,231 Horregatik pilaren gainezkatzea bat lortuko dugu. 1807 01:32:31,231 --> 01:32:31,728 Bai? 1808 01:32:31,728 --> 01:32:38,189 >> IKUSLEEN: Beraz, lortu esan duzu loop bitartean eta ondoren, [INAUDIBLE]? 1809 01:32:38,189 --> 01:32:42,000 >> ROB: Beraz, berriz, loop, barruan bada ez zen printf bat, oraindik ere egiten duzun 1810 01:32:42,000 --> 01:32:42,790 Ez errua seg. 1811 01:32:42,790 --> 01:32:46,090 Ez nuen nahi, gauzak nahastu. 1812 01:32:46,090 --> 01:32:46,610 Begizta litzateke izango. 1813 01:32:46,610 --> 01:32:48,225 Pila bakar bat egin ahal dituzu, printf du markoa. 1814 01:32:48,225 --> 01:32:49,580 >> Ondoren printf itzuliko litzateke. 1815 01:32:49,580 --> 01:32:50,280 Ondoren begizta zinela berriro. 1816 01:32:50,280 --> 01:32:51,460 Pila bakar bat egin ahal dituzu, printf du markoa. 1817 01:32:51,460 --> 01:32:52,850 Itzuliko litzateke. 1818 01:32:52,850 --> 01:32:54,060 Pila bakar markoa. 1819 01:32:54,060 --> 01:33:00,215 Beraz, zu ez infinitua hau eskuratzerakoan pila fotograma piling. 1820 01:33:00,215 --> 01:33:03,185 >> IKUSLEEN: [INAUDIBLE]? 1821 01:33:03,185 --> 01:33:04,040 >> ROB: Bai. 1822 01:33:04,040 --> 01:33:09,360 Beraz pilaren gainezkatzea hau gertatzen horietako bat ere ez delako 1823 01:33:09,360 --> 01:33:11,600 foo egindako deiak itzuli dira. 1824 01:33:11,600 --> 01:33:15,250 Beraz itzultzeko badugu, orduan genuke hasteko pila fotograma galdu. 1825 01:33:15,250 --> 01:33:17,870 Eta gero, ez genuke gainezkatzea pila. 1826 01:33:17,870 --> 01:33:20,070 Eta horregatik base kasu bat behar duzu zure funtzio pertsonalerako. 1827 01:33:20,070 --> 01:33:22,992 1828 01:33:22,992 --> 01:33:23,479 Bai? 1829 01:33:23,479 --> 01:33:27,375 >> IKUSLEEN: balizko tamaina eta Is zeure berdina pila 1830 01:33:27,375 --> 01:33:29,880 programa guztiak? 1831 01:33:29,880 --> 01:33:31,910 >> ROB: Gutxi gorabehera. 1832 01:33:31,910 --> 01:33:35,090 Da pilaren tamaina potentziala eta programak guztietan berdina zeure? 1833 01:33:35,090 --> 01:33:37,180 Gutxi gorabehera. 1834 01:33:37,180 --> 01:33:40,080 Badira to Ausazkotzea batzuk non pila hasten da eta 1835 01:33:40,080 --> 01:33:42,400 non zeure hasten da. 1836 01:33:42,400 --> 01:33:45,870 Asko izan gertatuko baduzu aldagai eta global gauzak, baliteke 1837 01:33:45,870 --> 01:33:49,520 kentzen espazioa batzuetatik zure arazoak izaten ari da. 1838 01:33:49,520 --> 01:33:54,060 >> 64-bit sistema bat, ia duzu memoria infinitua dute. 1839 01:33:54,060 --> 01:33:55,820 Ez dago besterik ez hainbeste. 1840 01:33:55,820 --> 01:33:59,250 32 bit eta 64 bit, arteko aldea esanguratsua da. 1841 01:33:59,250 --> 01:34:02,350 >> Oso bat asko gehiago lortzeko ari zara pila eta zeure espazioa 64 bit-batean 1842 01:34:02,350 --> 01:34:05,810 sistema ez delako, besterik gabe, gehiago helbideak erabili ahal izango dutela. 1843 01:34:05,810 --> 01:34:09,360 Baina banakako sistema batean, izango da gutxi gorabehera pila kopuru bera izango 1844 01:34:09,360 --> 01:34:10,785 eta zeure espazioa. 1845 01:34:10,785 --> 01:34:13,635 1846 01:34:13,635 --> 01:34:15,530 Guztiak eskubidea. 1847 01:34:15,530 --> 01:34:18,220 >> Beraz, azken gauza konpilazio da. 1848 01:34:18,220 --> 01:34:19,810 Beraz, prozesu hori jakin behar duzu. 1849 01:34:19,810 --> 01:34:22,240 Lau urrats handiak daude. 1850 01:34:22,240 --> 01:34:24,400 Beraz, lehenengoa izan beharko lukete gogoratzeko erraza izan. 1851 01:34:24,400 --> 01:34:25,085 Pre-prozesatzeko. 1852 01:34:25,085 --> 01:34:28,390 Bertan aurrez aurrizkia dauka. 1853 01:34:28,390 --> 01:34:32,080 Beraz, beste guztia aurretik dator. 1854 01:34:32,080 --> 01:34:34,000 >> Gauza gogoratu hash da. 1855 01:34:34,000 --> 01:34:37,250 Beraz hash definitzen eta hash barne hartzen horiek guztiak ere. 1856 01:34:37,250 --> 01:34:39,560 Horiek dira pre-prozesadore guztiak zuzentarau. 1857 01:34:39,560 --> 01:34:42,030 Hauek dira gauza dela pre-prozesadore ardura hartzen du. 1858 01:34:42,030 --> 01:34:43,680 >> Beraz, zer egiten du pre-prozesadorea? 1859 01:34:43,680 --> 01:34:44,850 Benetan muda gauza bat da. 1860 01:34:44,850 --> 01:34:49,380 Guztiak gai da dira horiek guztiak kopia, eta ebaki eta itsatsi eragiketak. 1861 01:34:49,380 --> 01:34:51,790 >> Beraz hash i0 dot h estandarra dira. 1862 01:34:51,790 --> 01:34:52,990 Zer da hau egiterakoan? 1863 01:34:52,990 --> 01:34:56,610 Honez grabbing i0 dot h estandarra da artxibatzen eta itsasten goiko sartu 1864 01:34:56,610 --> 01:34:58,960 lekuan hash barne hartzen dio i0 dot h estandarra. 1865 01:34:58,960 --> 01:35:02,480 >> Eta edozein hash definitu dugun ikusita, zer da hori egiten? 1866 01:35:02,480 --> 01:35:06,730 Bere hash duten balioa kopiatzea definitu bezala eta itsatsi definitzen da, 1867 01:35:06,730 --> 01:35:08,500 edonon balioa erabiltzen ari zarenean. 1868 01:35:08,500 --> 01:35:13,400 Beraz preprocessor besterik ez du benetan Testu sinple oinarritutako eragiketak. 1869 01:35:13,400 --> 01:35:15,870 Ezer smart egiten du. 1870 01:35:15,870 --> 01:35:18,920 Beraz, beste guztia da zailagoa da. 1871 01:35:18,920 --> 01:35:22,970 >> Beraz, orain preprocessor dela done, benetan konpilatu dugu. 1872 01:35:22,970 --> 01:35:24,320 Beraz, zer esan nahi du konpilatzean? 1873 01:35:24,320 --> 01:35:27,310 Orain ari gara c kodigoa joan muntaia kodea. 1874 01:35:27,310 --> 01:35:27,570 Bai? 1875 01:35:27,570 --> 01:35:28,820 >> IKUSLEEN: [INAUDIBLE]? 1876 01:35:28,820 --> 01:35:32,390 1877 01:35:32,390 --> 01:35:34,220 >> ROB: Bai, hori harrapatu dugu. 1878 01:35:34,220 --> 01:35:36,880 1879 01:35:36,880 --> 01:35:38,660 Beraz konpilatzean. 1880 01:35:38,660 --> 01:35:40,310 Muntaia c aurrera goaz. 1881 01:35:40,310 --> 01:35:42,470 Beraz, hau hizkuntzaren aldaketaren benetako bat da. 1882 01:35:42,470 --> 01:35:45,240 Berez konpilatzean esan nahi joan mailara hizkuntza handiagoa 1883 01:35:45,240 --> 01:35:47,340 mailako hizkuntza txikiagoa. 1884 01:35:47,340 --> 01:35:50,720 >> Eta c mailako hizkuntza altua da aldean muntaia. 1885 01:35:50,720 --> 01:35:52,320 Zer da muntaia? 1886 01:35:52,320 --> 01:35:56,440 Bere argibideak direla, nahiko askoz, zure CPU egin. 1887 01:35:56,440 --> 01:35:59,130 Baina zure ordenagailuan, oraindik ez Ez du ulertzen muntaia. 1888 01:35:59,130 --> 01:36:01,570 Eta zeroen bakarrik ulertzen du. 1889 01:36:01,570 --> 01:36:06,160 Beraz, hurrengo urratsa muntaia da, eta horrek dizkigun argibide hauek dakartzate, 1890 01:36:06,160 --> 01:36:08,760 zure CPU ulertzen eta benetan itzultzen du, 1891 01:36:08,760 --> 01:36:10,820 direnak eta zeroen. 1892 01:36:10,820 --> 01:36:13,570 >> Beraz bitarra muntaia C. 1893 01:36:13,570 --> 01:36:15,870 Baina ez daukat exekutagarria oraindik. 1894 01:36:15,870 --> 01:36:19,550 Beraz CS50 liburutegia uste. 1895 01:36:19,550 --> 01:36:23,070 Prestatu ditugu zuretzat bitar batekin CS50 liburutegi hau, eta bertan ditu GetString 1896 01:36:23,070 --> 01:36:24,400 eta GetInt eta hori guztia. 1897 01:36:24,400 --> 01:36:25,700 >> Baina cs50 liburutegia 1898 01:36:25,700 --> 01:36:27,650 eta bera ez da exekutagarria. 1899 01:36:27,650 --> 01:36:29,570 Ez du funtzio nagusia dute. 1900 01:36:29,570 --> 01:36:32,230 Besterik bitar-sorta bat da hori erabili ahal izango duzu. 1901 01:36:32,230 --> 01:36:41,730 Beraz lotzen nola ekarri dugu elkarrekin guztiak fitxategi bitarrak desberdin horien 1902 01:36:41,730 --> 01:36:43,110 Benetako exekutagarri batean. 1903 01:36:43,110 --> 01:36:45,900 Duten idatzi dezakezu One dot barrarik dot bat out. 1904 01:36:45,900 --> 01:36:51,660 >> Beraz, hau fitxategia bezalakoa da duzula idatzi zuen, - zure programa edozein dela is-- 1905 01:36:51,660 --> 01:36:53,620 Slavia dot c. 1906 01:36:53,620 --> 01:36:55,100 Baina orain, konpilatu binary behera. 1907 01:36:55,100 --> 01:36:56,480 Beraz Slavia dot o. 1908 01:36:56,480 --> 01:36:59,620 Eta hau da gure cs50 liburutegiak bitarra. 1909 01:36:59,620 --> 01:37:02,284 Eta ari dira konbinatzen ari exekutagarri bakar batean. 1910 01:37:02,284 --> 01:37:02,758 Bai? 1911 01:37:02,758 --> 01:37:04,008 >> IKUSLEEN: [INAUDIBLE]? 1912 01:37:04,008 --> 01:37:08,800 1913 01:37:08,800 --> 01:37:12,710 >> ROB: Beraz, lehenengo besteak beste, gogoratu, hash ere sartuko da, benetan bat 1914 01:37:12,710 --> 01:37:13,810 pre-prozesadore urratsa. 1915 01:37:13,810 --> 01:37:14,750 Baina, bereizita. 1916 01:37:14,750 --> 01:37:20,730 Oraindik ez duzu edozein funtzio erabiliz gero duen Zure fitxategi bakar at daudenean, ondoren, 1917 01:37:20,730 --> 01:37:26,100 ez, ez duzu behar ezer lotzeko guztia duzu geroztik. 1918 01:37:26,100 --> 01:37:30,310 >> Esan, printf horretan lotuta ari dira. 1919 01:37:30,310 --> 01:37:32,820 Inoiz printf erabiltzen baduzu, zerbait horretan bideratu behar dira 1920 01:37:32,820 --> 01:37:35,740 ez duzu idazten delako. 1921 01:37:35,740 --> 01:37:39,530 Eta, hain zuzen ere, printf automatikoki lotuta. 1922 01:37:39,530 --> 01:37:42,760 Badakizu zenbat komando-lerroan edo noiz egiteko idazten duzunean, zertan ikusten duzu 1923 01:37:42,760 --> 01:37:46,690 etenaren l cs50, eta horrek lotura dauka CS50 liburutegia? 1924 01:37:46,690 --> 01:37:49,070 Printf, eta horrelako gauzak, va estekatuko dira automatikoki. 1925 01:37:49,070 --> 01:37:51,730 1926 01:37:51,730 --> 01:37:53,930 Ezer beste zalantzaren bat? 1927 01:37:53,930 --> 01:37:56,280 >> IKUSLEEN: [INAUDIBLE]? 1928 01:37:56,280 --> 01:37:58,300 >> ROB: Linking? 1929 01:37:58,300 --> 01:38:03,450 Sorta oso bat daukagu fitxategi bitarrak ezberdinak. 1930 01:38:03,450 --> 01:38:06,410 Hau kanonikoak adibidea da erabiltzen dugun CS50 liburutegia da. 1931 01:38:06,410 --> 01:38:09,960 Konpilatu dugu, eta zuk emandako CS50 liburutegia honen bitar. 1932 01:38:09,960 --> 01:38:12,410 >> GetString erabili nahi duzun programan. 1933 01:38:12,410 --> 01:38:14,750 Beraz, joan eta GetString erabili. 1934 01:38:14,750 --> 01:38:19,700 Baina nire kodea binary gabe GetString, zure kodea konpilatu duzu 1935 01:38:19,700 --> 01:38:23,140 behera, ezin benetan exekutatu duzu zure programa delako GetString String da 1936 01:38:23,140 --> 01:38:25,080 oraindik ez dago guztiz definituta. 1937 01:38:25,080 --> 01:38:29,220 >> Besterik ez da, nire bitarretan estekatzerakoan duten GetString dauzkan orain, guztiak 1938 01:38:29,220 --> 01:38:31,130 eskubidea, benetan ezin dut exekutatu GetString. 1939 01:38:31,130 --> 01:38:32,330 Nire fitxategia osatu da. 1940 01:38:32,330 --> 01:38:34,208 Eta hau exekutatu ahal izango dut. 1941 01:38:34,208 --> 01:38:34,697 Bai? 1942 01:38:34,697 --> 01:38:37,631 >> IKUSLEEN: bihurtzeko estekatzailearen bitarraren exekutagarri? 1943 01:38:37,631 --> 01:38:42,032 Ez baduzu Beraz, nahiz eta beste eduki liburutegiak, ez litzateke oraindik ere izango da 1944 01:38:42,032 --> 01:38:44,477 itzultzeko beharrezkoa [INAUDIBLE]? 1945 01:38:44,477 --> 01:38:48,640 >> ROB: Beraz, exekutagarria da oraindik bitar. 1946 01:38:48,640 --> 01:38:51,750 Besterik osotasunean konbinatuz bitarrik sorta. 1947 01:38:51,750 --> 01:38:55,124 1948 01:38:55,124 --> 01:38:56,591 >> IKUSLEEN: Eskerrik asko. 1949 01:38:56,591 --> 01:38:58,560 >> ROB: Ez dago arazorik. 1950 01:38:58,560 --> 01:38:59,540 Beste edozein galdera? 1951 01:38:59,540 --> 01:39:02,001 Bestela, ari guztiei ezarri dugu. 1952 01:39:02,001 --> 01:39:02,690 Guztiak eskubidea. 1953 01:39:02,690 --> 01:39:02,990 Eskerrik asko. 1954 01:39:02,990 --> 01:39:03,590 >> [Txaloak] 1955 01:39:03,590 --> 01:39:04,490 >> IKUSLEEN: Eskerrik asko. 1956 01:39:04,490 --> 01:39:05,740 >> ROB: Bai. 1957 01:39:05,740 --> 01:39:06,582