1 00:00:00,000 --> 00:00:03,388 >> [Zenelejátszási] 2 00:00:03,388 --> 00:00:05,104 3 00:00:05,104 --> 00:00:06,020 DOUG LLOYD: Rendben. 4 00:00:06,020 --> 00:00:07,680 Munka egységes változók elég szórakoztató. 5 00:00:07,680 --> 00:00:09,500 De mi van, ha akarunk dolgozni egy csomó változók, 6 00:00:09,500 --> 00:00:12,760 de nem akarjuk, hogy van egy csomó különböző nevek repkednek a kódot? 7 00:00:12,760 --> 00:00:15,980 Ebben az esetben a tömbök fog jönni az igazán praktikus. 8 00:00:15,980 --> 00:00:19,510 A tömbök egy igazán alapvető adatok szerkezet bármely programozási nyelv 9 00:00:19,510 --> 00:00:20,260 fog használni. 10 00:00:20,260 --> 00:00:24,450 És ők nagyon, nagyon hasznosak, Különösen, mint látni fogjuk, a CS 50. 11 00:00:24,450 --> 00:00:27,870 >> Mi tömböket használnak, hogy tartsa értékek az azonos típusú adatok 12 00:00:27,870 --> 00:00:29,830 A folytonos memóriát helyeken. 13 00:00:29,830 --> 00:00:32,430 Azaz, ez egy így tudjuk csoport 14 00:00:32,430 --> 00:00:35,430 egy csomó egész együtt memória vagy egy csomó karakter 15 00:00:35,430 --> 00:00:38,270 vagy úszik a memória igazán közel egymáshoz, és a munka 16 00:00:38,270 --> 00:00:41,930 velük, anélkül, hogy minden egyes Egy saját, egyedi nevet, ami 17 00:00:41,930 --> 00:00:44,500 hogy nehézkes miután egy kicsit. 18 00:00:44,500 --> 00:00:48,130 >> Most, egy módja annak, hogy analogize tömbök az, hogy átgondolják a helyi posta 19 00:00:48,130 --> 00:00:49,000 második hivatali. 20 00:00:49,000 --> 00:00:51,820 Tehát lépésre a programozási és csak csukd be a szemed 21 00:00:51,820 --> 00:00:54,120 és láthatóvá a fejedben a helyi posta. 22 00:00:54,120 --> 00:00:57,160 Általában, a legtöbb hozzászólás irodában, van egy nagy bank 23 00:00:57,160 --> 00:01:00,490 A postafiókok a falon. 24 00:01:00,490 --> 00:01:03,510 >> A tömb egy hatalmas tömb összefüggő memóriaterületet, 25 00:01:03,510 --> 00:01:06,120 Ugyanúgy, ahogy egy-mail bank a posta 26 00:01:06,120 --> 00:01:11,230 egy nagy tér a fal a posta. 27 00:01:11,230 --> 00:01:15,750 A tömbök is osztjuk kicsi, azonos méretű blokkok a tér, 28 00:01:15,750 --> 00:01:19,930 amelyek mindegyike az úgynevezett egy elem, a azonos módon, hogy a fal a poszt 29 00:01:19,930 --> 00:01:23,840 hivatal már osztjuk kicsi, azonos méretű blokkok a tér, 30 00:01:23,840 --> 00:01:27,560 ahogy mi hívjuk a PO box. 31 00:01:27,560 --> 00:01:31,650 Minden eleme a tömb tárolja egy bizonyos mennyiségű adat, 32 00:01:31,650 --> 00:01:37,540 mint ahogy az egyes postafiók képes tartani egy bizonyos összeget a postán. 33 00:01:37,540 --> 00:01:41,540 >> Mit lehet tárolni minden eleme A tömb változók ugyanazon adatok 34 00:01:41,540 --> 00:01:45,300 típusú, mint például int, vagy char, csak mint a postafiók, 35 00:01:45,300 --> 00:01:47,300 akkor csak illik a dolgokat A hasonló típusú, 36 00:01:47,300 --> 00:01:50,430 például levelek vagy kis csomagokban. 37 00:01:50,430 --> 00:01:55,050 Végül, akkor érheti el az egyes elemét A tömb közvetlenül index száma, 38 00:01:55,050 --> 00:01:59,770 mint ahogy mi is elérheti a posta doboz ismeretében a postafiók számát. 39 00:01:59,770 --> 00:02:02,750 Remélhetőleg, hogy az analógia alkalmazás segít a fejed 40 00:02:02,750 --> 00:02:05,540 körül azt az elképzelést tömböket analogizing valami másra 41 00:02:05,540 --> 00:02:08,400 hogy Ön valószínűleg már ismerik. 42 00:02:08,400 --> 00:02:13,182 >> C-ben a tömb elemeit egy olyan indexelt 0-tól, nem 1-jétől. 43 00:02:13,182 --> 00:02:14,390 És ez nagyon fontos. 44 00:02:14,390 --> 00:02:18,530 És valóban, ez az, amiért mi, a CS 50, és miért számítógépes szakemberek gyakran 45 00:02:18,530 --> 00:02:22,150 számítanak 0, a mert a C- tömb 46 00:02:22,150 --> 00:02:24,660 indexálás, amely mindig 0-nál kezdődik. 47 00:02:24,660 --> 00:02:28,730 Tehát, ha egy tömbben áll az n elem, az első eleme, hogy tömb 48 00:02:28,730 --> 00:02:32,960 található index 0 és Az utolsó elem a tömb 49 00:02:32,960 --> 00:02:36,610 található n index mínusz 1. 50 00:02:36,610 --> 00:02:43,160 Ismét, ha van n eleme a mi tömb, az utolsó index n mínusz 1. 51 00:02:43,160 --> 00:02:46,820 >> Tehát, ha a tömb 50 elem, a első elem található index 0, 52 00:02:46,820 --> 00:02:51,060 és az utolsó elem található index 49. 53 00:02:51,060 --> 00:02:53,940 Sajnos, vagy szerencsére, attól függően, hogy a perspektíva, 54 00:02:53,940 --> 00:02:56,170 C nagyon engedékeny itt. 55 00:02:56,170 --> 00:02:59,480 Ez nem akadályozza meg a megy ki a határokat a tömb. 56 00:02:59,480 --> 00:03:03,080 Lehet elérni a mínusz 3 eleme a tömb 57 00:03:03,080 --> 00:03:07,400 vagy a 59. eleme a tömb, ha a tömb csak 50 elemet. 58 00:03:07,400 --> 00:03:11,060 Ez nem fog megállni a program összeállítása, de futás közben, 59 00:03:11,060 --> 00:03:14,350 Ön is találkozhat a rettegett szegmentációs hiba 60 00:03:14,350 --> 00:03:17,460 ha elkezd hozzáférni a memória ami kívül esik a határokat, hogy mi 61 00:03:17,460 --> 00:03:19,260 Azt kérdezted a programot, hogy az Ön. 62 00:03:19,260 --> 00:03:21,250 Szóval ne légy óvatos. 63 00:03:21,250 --> 00:03:23,120 >> Mit jelent egy tömböt nyilatkozatot néz ki? 64 00:03:23,120 --> 00:03:26,940 Hogyan kódot tömb létre mint mi kódolni bármilyen más változó? 65 00:03:26,940 --> 00:03:31,250 Három részből tömbbé declaration-- típusú, egy nevet, 66 00:03:31,250 --> 00:03:31,880 és a mérete. 67 00:03:31,880 --> 00:03:34,088 Ez nagyon hasonló egy változó deklaráció, amely 68 00:03:34,088 --> 00:03:36,970 csak egy típust és egy nevet, A méret elemként jelent 69 00:03:36,970 --> 00:03:39,860 A speciális eset egy tömb, mert kaptunk egy csomó őket 70 00:03:39,860 --> 00:03:41,830 ugyanabban az időben. 71 00:03:41,830 --> 00:03:45,560 >> Tehát a típus milyen változót szeretnénk minden eleme a tömb lenni. 72 00:03:45,560 --> 00:03:47,150 Ne akarja, hogy egy sor egész? 73 00:03:47,150 --> 00:03:49,010 Ezután az adatok típusát kell int. 74 00:03:49,010 --> 00:03:51,760 Tudni szeretné, hogy legyen egy tömb páros vagy úszik? 75 00:03:51,760 --> 00:03:54,545 Adat típus legyen dupla vagy lebegni. 76 00:03:54,545 --> 00:03:56,420 A név, amit Szeretné felhívni tömb. 77 00:03:56,420 --> 00:04:00,970 Mit akar elnevezni ezt a hatalmas partján egész vagy úszók vagy karakter 78 00:04:00,970 --> 00:04:03,250 vagy páros, vagy bármi, ugye? 79 00:04:03,250 --> 00:04:04,700 Mit akar nevezni? 80 00:04:04,700 --> 00:04:06,110 Elég magától értetődő. 81 00:04:06,110 --> 00:04:08,610 >> Végül, méret, ami megy belsejében szögletes zárójelben, 82 00:04:08,610 --> 00:04:12,180 az, hogy hány elemet szeretnéd mint a tömb tartalmazza. 83 00:04:12,180 --> 00:04:13,530 Hány egész akarsz? 84 00:04:13,530 --> 00:04:15,570 Hány úszók akarsz? 85 00:04:15,570 --> 00:04:19,070 >> Így például int hallgatói évfolyamon 40. 86 00:04:19,070 --> 00:04:26,020 Ez kijelenti nevű tömbben Student fokozat, amely a 40 egész számok. 87 00:04:26,020 --> 00:04:28,180 Elég magától értetődő, remélem. 88 00:04:28,180 --> 00:04:29,330 Itt egy másik példa. 89 00:04:29,330 --> 00:04:31,560 Dupla menü ára 8. 90 00:04:31,560 --> 00:04:34,610 Ez egy tömböt hoz létre az úgynevezett Menü ára, amely 91 00:04:34,610 --> 00:04:38,300 A szoba memória nyolc páros. 92 00:04:38,300 --> 00:04:42,000 93 00:04:42,000 --> 00:04:45,750 >> Ha úgy gondolja, az egyes elemek egy tömb típusú adat-típusú, 94 00:04:45,750 --> 00:04:49,860 így például egy egyetlen eleme tömb int típusú, ugyanúgy, ahogy a 95 00:04:49,860 --> 00:04:52,770 azt hiszem, más típusú változó, 96 00:04:52,770 --> 00:04:56,440 minden a megszokott műveleteket, hogy mi korábban tárgyalt az Üzemben 97 00:04:56,440 --> 00:04:58,270 videó lesz értelme. 98 00:04:58,270 --> 00:05:01,620 Tehát itt, tudtuk egy tömböt A Logikai nevű Truthtable, 99 00:05:01,620 --> 00:05:05,590 amely teret 10 Logikai. 100 00:05:05,590 --> 00:05:09,650 >> És akkor, mint mi is csak rendelni érték bármely más típusú változó 101 00:05:09,650 --> 00:05:13,470 Logikai, mondhatnánk valamit mint Truthtable szögletes zárójel 102 00:05:13,470 --> 00:05:18,040 2, ami így azt jelzi, amely eleme az igazság asztalra? 103 00:05:18,040 --> 00:05:20,350 A harmadik elem a igazságtábla, mert emlékszem, 104 00:05:20,350 --> 00:05:21,800 Számítunk 0. 105 00:05:21,800 --> 00:05:25,690 Szóval mi így jelzik a harmadik eleme az igazság táblázat. 106 00:05:25,690 --> 00:05:28,680 Truthtable 2értéke hamis, mint tudjuk declare-- 107 00:05:28,680 --> 00:05:33,560 vagy tudnánk rendelni, hanem bármely Logikai típusú változó, hogy hamis. 108 00:05:33,560 --> 00:05:35,050 >> Azt is használja a feltételeket. 109 00:05:35,050 --> 00:05:39,000 if (truthtable 7 == igaz), ami azt, 110 00:05:39,000 --> 00:05:42,370 ha a nyolcadik elem A Truthtable igaz, 111 00:05:42,370 --> 00:05:46,760 Talán szeretnénk nyomtatni egy üzenetet a felhasználó, printf ("IGAZ! n") ;. 112 00:05:46,760 --> 00:05:50,290 Olyan tény, amely azt Truthtable 10 egyenlő igaz, ugye? 113 00:05:50,290 --> 00:05:53,590 Nos, tudom, de ez elég Veszélyes, mert emlékszem, 114 00:05:53,590 --> 00:05:56,260 van egy sor 10 Logikai. 115 00:05:56,260 --> 00:06:02,340 Tehát a legmagasabb index, amely a fordító adott nekünk 9. 116 00:06:02,340 --> 00:06:06,010 >> Ez a program összeállításához, de ha valami mást emlékére 117 00:06:06,010 --> 00:06:09,110 van, ahol mi lenne számíthat Truthtable 10 menni, 118 00:06:09,110 --> 00:06:13,980 tudnánk szenvedni szegmens hiba. Mi Lehet, hogy megúszod, de általában, 119 00:06:13,980 --> 00:06:14,710 elég veszélyes. 120 00:06:14,710 --> 00:06:19,759 Szóval mit csinálok itt legális C, de nem feltétlenül a legjobb lépés. 121 00:06:19,759 --> 00:06:22,300 Most, amikor kijelentem, és alaphelyzetbe tömb egyidejűleg, 122 00:06:22,300 --> 00:06:23,960 van valójában egy csinos speciális szintaxist, hogy 123 00:06:23,960 --> 00:06:26,250 segítségével töltse ki a tömb A kiindulási értékeket. 124 00:06:26,250 --> 00:06:30,130 Meg tud nehézkes egy tömböt a mérete 100, 125 00:06:30,130 --> 00:06:33,430 majd meg kell mondanom, elem 0 megegyezik ez; 1 elem megegyezik ez; 126 00:06:33,430 --> 00:06:34,850 elem 2 megegyezik. 127 00:06:34,850 --> 00:06:36,370 Mi az értelme, ugye? 128 00:06:36,370 --> 00:06:39,470 >> Ha ez egy kis tömb, akkor tehetett ilyet. 129 00:06:39,470 --> 00:06:44,360 Bool truthtable 3értéke nyitott kapcsos zárójel, majd vessző 130 00:06:44,360 --> 00:06:48,060 külön a fenti elemek hogy el kívánja helyezni a tömbben. 131 00:06:48,060 --> 00:06:50,520 Ezután zárja kapcsos zárójel pontosvessző. 132 00:06:50,520 --> 00:06:53,910 Ez létrehoz egy sor mérete három úgynevezett Truthtable, 133 00:06:53,910 --> 00:06:56,090 elemekkel hamis, igaz, és igaz. 134 00:06:56,090 --> 00:06:59,270 És valóban, a példányosítás szintaxis van itt 135 00:06:59,270 --> 00:07:03,350 pontosan ugyanaz, mint csinál a egyes eleméhez szintaxis alább. 136 00:07:03,350 --> 00:07:09,380 Ez a két módon kódolási lenne termel pontosan ugyanazt a tömb. 137 00:07:09,380 --> 00:07:11,740 >> Hasonlóképpen, tudtuk ismételget felett az összes elem 138 00:07:11,740 --> 00:07:15,400 egy tömb segítségével egy hurok, amely Tény, hogy egy nagyon erősen ajánlott 139 00:07:15,400 --> 00:07:16,790 otthoni gyakorlat. 140 00:07:16,790 --> 00:07:20,720 Hogyan hozható létre egy tömböt 100 egészek, ahol 141 00:07:20,720 --> 00:07:23,477 minden eleme a tömb indexét? 142 00:07:23,477 --> 00:07:26,560 Így például, hogy van egy sor 100 egész számok, és az első elem, 143 00:07:26,560 --> 00:07:27,790 akarjuk helyezni 0. 144 00:07:27,790 --> 00:07:29,810 A második elem, azt akarjuk, hogy 1. 145 00:07:29,810 --> 00:07:33,319 A harmadik elem, szeretnénk hogy 2; és így tovább, és így tovább. 146 00:07:33,319 --> 00:07:35,360 Ez egy nagyon jó otthoni edzés erre. 147 00:07:35,360 --> 00:07:38,190 148 00:07:38,190 --> 00:07:40,220 >> Itt nem úgy néz ki mintha túl sok minden változott. 149 00:07:40,220 --> 00:07:44,170 De észre, hogy a szögletes zárójelben, ebben az időben, 150 00:07:44,170 --> 00:07:45,830 Már tényleg kimaradt a számot. 151 00:07:45,830 --> 00:07:48,000 Ha használja ezt a nagyon Különleges példányosítását 152 00:07:48,000 --> 00:07:50,380 szintaxist, hogy hozzon létre egy tömb, hogy tényleg nem 153 00:07:50,380 --> 00:07:53,491 szükség van, hogy jelezze a méret A tömb előtt. 154 00:07:53,491 --> 00:07:55,740 A fordító elég okos ahhoz, Fontos tudni, hogy ténylegesen 155 00:07:55,740 --> 00:07:58,980 szeretnénk egy sor mérete 3, mert teszel három elem 156 00:07:58,980 --> 00:08:00,640 a jogot az egyenlőségjel. 157 00:08:00,640 --> 00:08:04,140 Ha már fel négy, neki kellene adott neked igazság táblázat méretét négy; 158 00:08:04,140 --> 00:08:06,270 és így tovább, és így tovább. 159 00:08:06,270 --> 00:08:09,380 >> A tömbök nem korlátozódik egyetlen dimenziót, ami elég jó. 160 00:08:09,380 --> 00:08:12,000 Tudod valójában annyi oldalán előírást, ahogy szeretné. 161 00:08:12,000 --> 00:08:16,470 Így például, ha azt szeretné, hogy hozzon létre A fórumon a játék Battleship, amely, 162 00:08:16,470 --> 00:08:20,910 Ha valaha is játszottam, egy játék, játszott kampót a 10 10 grid, 163 00:08:20,910 --> 00:08:22,450 tudna létrehozni egy tömböt, mint ez. 164 00:08:22,450 --> 00:08:26,030 Azt lehetne mondani, Bool csatahajó szögletes zárójel 10 165 00:08:26,030 --> 00:08:29,590 zárt szögletes zárójel téren konzol 10 zárt szögletes zárójel. 166 00:08:29,590 --> 00:08:32,710 >> És akkor, akkor választhat, hogy értelmezi ezt a fejedben, mint egy 10 167 00:08:32,710 --> 00:08:35,576 10 rács a sejtek. 168 00:08:35,576 --> 00:08:37,409 Most, sőt, a memóriában, ez tényleg csak 169 00:08:37,409 --> 00:08:42,440 továbbra is 100 elem, egydimenziós tömbben. 170 00:08:42,440 --> 00:08:46,070 És ez, sőt, megy, ha Van három dimenzióban vagy négy vagy öt. 171 00:08:46,070 --> 00:08:49,420 Ez tényleg csak nem szaporodnak az összes indices-- 172 00:08:49,420 --> 00:08:51,130 vagy az összes mérete specifiers-- együtt, 173 00:08:51,130 --> 00:08:53,480 és akkor csak kap egy egydimenziós tömb, amely méretét. 174 00:08:53,480 --> 00:08:57,090 >> De a szervezés és vizualizáció és az emberi érzékelés, 175 00:08:57,090 --> 00:08:59,240 akkor sokkal könnyebb dolgozni egy rács 176 00:08:59,240 --> 00:09:02,980 ha dolgozik egy játék mint a Tic-tac-toe vagy csatahajó, 177 00:09:02,980 --> 00:09:05,179 vagy valami ilyesmi. 178 00:09:05,179 --> 00:09:06,970 Ez egy nagy absztrakció, ahelyett, 179 00:09:06,970 --> 00:09:09,340 gondolkodni egy tic-tac-toe táblán, mint a sorban kilenc 180 00:09:09,340 --> 00:09:13,810 négyzet vagy egy csatahajó társasjáték mint egy vonal a 100 négyzetek. 181 00:09:13,810 --> 00:09:16,010 A 10, 10 vagy táblázatban három három rács talán 182 00:09:16,010 --> 00:09:17,225 sokkal több könnyű észlelni. 183 00:09:17,225 --> 00:09:19,820 184 00:09:19,820 --> 00:09:22,280 >> Most, valami igazán Fontos mintegy tömbök. 185 00:09:22,280 --> 00:09:25,950 Tudjuk kezelni az egyes elem a tömb, mint egy változó. 186 00:09:25,950 --> 00:09:27,700 Láttuk, hogy a korábbi amikor mi voltunk kiosztása 187 00:09:27,700 --> 00:09:32,240 értékének Igaz, hogy bizonyos Logikai vagy tesztelés őket feltételes. 188 00:09:32,240 --> 00:09:35,960 De nem tudjuk kezelni a teljes tömbök magukat változók. 189 00:09:35,960 --> 00:09:41,760 Nem tudjuk például, hogy rendeljen tömb egy másik tömbben a feladat 190 00:09:41,760 --> 00:09:42,930 üzemben. 191 00:09:42,930 --> 00:09:44,640 Ez nem jogi C. 192 00:09:44,640 --> 00:09:47,920 >> Ha azt akarjuk, hogy, a mi example-- mi tenne ebben a példában 193 00:09:47,920 --> 00:09:50,200 lenne másolni egy tömböt a másik. 194 00:09:50,200 --> 00:09:53,810 Ha meg akarjuk csinálni, hogy mi valójában kell használni a hurok másold át 195 00:09:53,810 --> 00:09:56,550 minden egyes elem egy olyan időpontban. 196 00:09:56,550 --> 00:09:58,700 Tudom, hogy ez egy kicsit időigényes. 197 00:09:58,700 --> 00:10:04,022 >> Így például, ha volna ezeket a házaspár sornyi kódot, lenne ezt a munkát? 198 00:10:04,022 --> 00:10:05,230 Nos, nem, nem, nem igaz? 199 00:10:05,230 --> 00:10:07,860 Mert mi próbálunk rendelni ételt bárban. 200 00:10:07,860 --> 00:10:09,860 Ez nem fog működni, mert egy tömb, 201 00:10:09,860 --> 00:10:13,130 és mi csak le hogy ez nem jogi C. 202 00:10:13,130 --> 00:10:15,580 >> Ehelyett, ha azt akarjuk, hogy másolni élelmiszer 203 00:10:15,580 --> 00:10:18,070 a bárban, amely a mi próbálunk csinálni itt, 204 00:10:18,070 --> 00:10:19,970 szükségünk lenne egy szintaktikai, mint ez. 205 00:10:19,970 --> 00:10:24,170 Van egy ciklusban, hogy megy : J egyenlő 0 legfeljebb 5, 206 00:10:24,170 --> 00:10:28,390 és mi növedék J minden iterációjában a hurok, és hozzá elemeket, mint ezt. 207 00:10:28,390 --> 00:10:33,360 Ez azt eredményezné, hogy bár is hogy egy, kettő, három, négy, öt, 208 00:10:33,360 --> 00:10:36,730 de meg kell csinálni ezt a nagyon lassú element-by-element módon, 209 00:10:36,730 --> 00:10:40,009 ahelyett, hogy a most másolás a teljes tömb. 210 00:10:40,009 --> 00:10:42,050 Más programozási nyelvek, modernebb is, 211 00:10:42,050 --> 00:10:45,610 akkor, sőt, nem csak Ilyen egyszerű egyenlő szintaxis. 212 00:10:45,610 --> 00:10:49,620 De C, sajnos, mi vagyunk Nem tehettem meg. 213 00:10:49,620 --> 00:10:52,026 >> Nos, van egy másik dolog, amit szeretnék megemlíteni, 214 00:10:52,026 --> 00:10:54,650 körülbelül tömbök, hogy lehet egy kicsit kicsit trükkös az első alkalommal, amikor 215 00:10:54,650 --> 00:10:55,990 velük együtt dolgozni. 216 00:10:55,990 --> 00:10:59,860 Megbeszéltük a videót mintegy változó alkalmazási körét, 217 00:10:59,860 --> 00:11:04,940 hogy a legtöbb változók C, amikor telefonál őket funkciók, érték szerint adódnak át. 218 00:11:04,940 --> 00:11:08,620 Emlékszel, hogy mit jelent átadni valamit érték? 219 00:11:08,620 --> 00:11:12,570 Ez azt jelenti, hogy még van egy példányt a változó, amit most telt be. 220 00:11:12,570 --> 00:11:16,290 A hívott fél funkció, a függvény hogy nem fogadják el a változó, 221 00:11:16,290 --> 00:11:17,730 nem kapja meg a változó magát. 222 00:11:17,730 --> 00:11:20,850 Egyre saját helyi másolatát, hogy dolgozni. 223 00:11:20,850 --> 00:11:24,070 >> Tömbök, persze, nem nem követi ezt a szabályt. 224 00:11:24,070 --> 00:11:27,600 Inkább hívjuk ezt Múlik hivatkozással. 225 00:11:27,600 --> 00:11:31,360 A hívott fél ténylegesen kapja meg a tömb. 226 00:11:31,360 --> 00:11:34,207 Ez nem kapja meg saját helyi másolatát. 227 00:11:34,207 --> 00:11:36,040 És ha belegondolunk ez, ennek van értelme. 228 00:11:36,040 --> 00:11:39,750 Ha elrendezések valóban nagy, vesz annyi időt és energiát 229 00:11:39,750 --> 00:11:44,470 hogy egy példányát egy sor 100 vagy 1000 vagy 10000 elem, 230 00:11:44,470 --> 00:11:48,290 hogy nem éri meg a működik, hogy kap egy példányt belőle, 231 00:11:48,290 --> 00:11:51,037 némi munkát vele, majd Csak tenni a másolat; 232 00:11:51,037 --> 00:11:53,120 nem kell, hogy ez lógott többé. 233 00:11:53,120 --> 00:11:54,710 >> Mert tömbök néhány terjedelmes és nehézkes, 234 00:11:54,710 --> 00:11:56,001 mi csak átadni azokat hivatkozást. 235 00:11:56,001 --> 00:12:01,210 Mi csak bízom abban, hogy a funkció a, nem törik semmit. 236 00:12:01,210 --> 00:12:03,010 Tehát ez tényleg csak a tömb. 237 00:12:03,010 --> 00:12:05,290 Ez nem lesz saját helyi másolatát. 238 00:12:05,290 --> 00:12:07,170 >> Szóval mit jelent ez, Ezután, amikor a hívott 239 00:12:07,170 --> 00:12:08,970 manipulálja elemei a tömb? 240 00:12:08,970 --> 00:12:10,780 Mi történik? 241 00:12:10,780 --> 00:12:13,210 Egyelőre mi fényes mint hogy miért éppen ez 242 00:12:13,210 --> 00:12:15,320 történik, miért tömbök átadása hivatkozás 243 00:12:15,320 --> 00:12:17,810 és minden mást fogad el érték. 244 00:12:17,810 --> 00:12:20,470 De ígérem, mi lesz vissza, és megadja a választ 245 00:12:20,470 --> 00:12:23,750 hogy ezt egy későbbi videót. 246 00:12:23,750 --> 00:12:28,110 >> Itt van még egy edzés az Ön számára mielőtt lezárja a dolgokat tömbök. 247 00:12:28,110 --> 00:12:31,400 A csomó kódot itt, ez nem különösebben jó stílusban, 248 00:12:31,400 --> 00:12:33,400 Csak teszem, hogy kivétellel. 249 00:12:33,400 --> 00:12:36,660 Nincs hozzászólás itt, ami elég rossz formában. 250 00:12:36,660 --> 00:12:39,750 De csak azért, mert szerettem volna lenni tudja, hogy illeszkedjen mindent a képernyőn. 251 00:12:39,750 --> 00:12:44,360 >> A tetején, akkor láthatjuk, hogy van két funkció nyilatkozatok beállított tömb 252 00:12:44,360 --> 00:12:45,820 és állítsa int. 253 00:12:45,820 --> 00:12:49,680 Set tömb nyilván tart egy tömböt A négy egész számot, mint a bemeneti. 254 00:12:49,680 --> 00:12:52,767 És set int nyilván tart Egyetlen egész, mint a bemeneti. 255 00:12:52,767 --> 00:12:54,350 De mindketten nincs kimenet. 256 00:12:54,350 --> 00:12:57,689 A kimenet, a visszatérés írja, mindegyik érvénytelen. 257 00:12:57,689 --> 00:12:59,480 Main, van egy pár sornyi kódot. 258 00:12:59,480 --> 00:13:02,730 Kijelentjük, ami egy egész szám úgynevezett A és rendelje hozzá a 10-es értéket. 259 00:13:02,730 --> 00:13:07,080 Kijelentjük, egy sor négy egész számot úgynevezett B és rendelheti elemek 0, 1, 260 00:13:07,080 --> 00:13:08,730 2, és 3., ill. 261 00:13:08,730 --> 00:13:12,190 Aztán van egy hívás, hogy hozzanak int és egy felhívást, hogy hozzanak tömb. 262 00:13:12,190 --> 00:13:15,910 A meghatározások beállított tömb és készlet int a lent, a lap alján. 263 00:13:15,910 --> 00:13:17,640 >> És igen, megint kérem a kérdést. 264 00:13:17,640 --> 00:13:20,770 Mi lesz kinyomtatható itt a végén Main? 265 00:13:20,770 --> 00:13:23,020 Van egy kinyomtatott col. Vagyok kinyomtatásával két egész szám. 266 00:13:23,020 --> 00:13:28,010 Én kinyomtatott tartalmát és tartalmát B szögletes zárójel 0. 267 00:13:28,010 --> 00:13:29,880 Szünet a videót itt, és egy perc. 268 00:13:29,880 --> 00:13:35,482 Tud kitalálni, mi ez függvény kiírja a végén? 269 00:13:35,482 --> 00:13:38,190 Remélhetőleg, ha felidézzük a megkülönböztetése elhaladó értéke 270 00:13:38,190 --> 00:13:41,680 és referenciakénti, ez a probléma nem volt túl bonyolult az Ön számára. 271 00:13:41,680 --> 00:13:44,130 És a válasz tenné Találtunk ez. 272 00:13:44,130 --> 00:13:47,660 Ha nem vagy benne biztos, hogy Ezért ez a helyzet, hogy egy második, 273 00:13:47,660 --> 00:13:50,620 menj vissza, áttekintsék, milyen voltam megvitatni a tömbök átadása 274 00:13:50,620 --> 00:13:53,450 referenciaként, versus elhaladó Más változók értékét, 275 00:13:53,450 --> 00:13:56,680 és remélhetőleg, ez lesz, hogy egy kicsit több értelme van. 276 00:13:56,680 --> 00:13:59,760 >> Én Doug Lloyd, és ez CS50. 277 00:13:59,760 --> 00:14:01,467