1 00:00:00,000 --> 00:00:03,388 >> [Muzikos grojimo] 2 00:00:03,388 --> 00:00:05,104 3 00:00:05,104 --> 00:00:06,020 Doug LLOYD: Visos dešinę. 4 00:00:06,020 --> 00:00:07,680 Darbas su vieno kintamieji yra gana įdomus. 5 00:00:07,680 --> 00:00:09,500 Bet kas, jei mes norime dirbti su kintamųjų daug, 6 00:00:09,500 --> 00:00:12,760 bet mes nenorime turėti krūva skirtingus pavadinimus plaukioja aplink mūsų kodą? 7 00:00:12,760 --> 00:00:15,980 Šiuo atveju, matricos yra vyksta ateiti tikrai patogu. 8 00:00:15,980 --> 00:00:19,510 Masyvai yra tikrai esminis duomenys struktūra bet programavimo kalba 9 00:00:19,510 --> 00:00:20,260 kad jums naudoti. 10 00:00:20,260 --> 00:00:24,450 Ir jie tikrai, tikrai naudinga, ypač, kaip matysime, CS 50. 11 00:00:24,450 --> 00:00:27,870 >> Mes naudojame masyvus laikyti vertės pačiu duomenų tipą 12 00:00:27,870 --> 00:00:29,830 ne gretimuose atminties vietų. 13 00:00:29,830 --> 00:00:32,430 Tai yra, tai būdas, kad mes galime grupė 14 00:00:32,430 --> 00:00:35,430 iš sveikųjų skaičių krūva kartu atminties arba simbolių krūva 15 00:00:35,430 --> 00:00:38,270 arba plūdės atmintyje tikrai uždaryti kartu ir darbas 16 00:00:38,270 --> 00:00:41,930 su jais nereikia duoti kiekvienas viena savo unikalų pavadinimą, kuris gali 17 00:00:41,930 --> 00:00:44,500 gauti sudėtinga po truputį. 18 00:00:44,500 --> 00:00:48,130 >> Dabar vienas būdas Analogizować masyvai yra galvoti apie savo vietiniame pašto 19 00:00:48,130 --> 00:00:49,000 biuro sekundę. 20 00:00:49,000 --> 00:00:51,820 Taigi žingsnį nuo programavimo ir tiesiog uždaryti savo akis 21 00:00:51,820 --> 00:00:54,120 ir vizualizuoti savo mintis Jūsų vietiniame pašto skyriuje. 22 00:00:54,120 --> 00:00:57,160 Paprastai daugumoje paštu biurai, yra didelis bankas 23 00:00:57,160 --> 00:01:00,490 paštas dėžės ant sienos. 24 00:01:00,490 --> 00:01:03,510 >> Masyvas yra milžiniškas blokas iš gretimos atminties, 25 00:01:03,510 --> 00:01:06,120 tuo pačiu būdu, kad pašto bankas savo pašte 26 00:01:06,120 --> 00:01:11,230 yra didelė erdvė ant siena pašte. 27 00:01:11,230 --> 00:01:15,750 Masyvai buvo padalytas į mažas, identiškai dydžio blokai erdvėje, 28 00:01:15,750 --> 00:01:19,930 kiekvienas iš kurių yra vadinamas elementas, visų taip pat, kad posto sienos 29 00:01:19,930 --> 00:01:23,840 tarnyba buvo padalinta į mažas, identiškai dydžio blokai erdvėje, 30 00:01:23,840 --> 00:01:27,560 kuri mes vadiname pašto Dėžutės. 31 00:01:27,560 --> 00:01:31,650 Kiekvienas iš masyvo elementas gali laikyti tam tikrą kiekį duomenų, 32 00:01:31,650 --> 00:01:37,540 kaip kiekviena pašto dėžutės gali surengti tikrą kiekį paštu. 33 00:01:37,540 --> 00:01:41,540 >> Tai, kas gali būti saugomas kiekvieno elemento masyvas yra kintamieji tos pačios duomenų 34 00:01:41,540 --> 00:01:45,300 tipas, pavyzdžiui, int ar char, tik kaip jūsų pašto dėžutės, 35 00:01:45,300 --> 00:01:47,300 jūs galite tik tilptų dalykus panašaus tipo, 36 00:01:47,300 --> 00:01:50,430 pavyzdžiui, raidės ar mažose pakuotėse. 37 00:01:50,430 --> 00:01:55,050 Galiausiai, mes galime prieiti prie kiekvieno elemento masyvo tiesiogiai indekso numerį, 38 00:01:55,050 --> 00:01:59,770 kaip mes galime prieiti prie mūsų pašte Dėžutė, žinant savo pašto dėžutės numerį. 39 00:01:59,770 --> 00:02:02,750 Tikimės, kad analogija padeda jums gauti savo galvą 40 00:02:02,750 --> 00:02:05,540 aplink masyvų idėją analogizing į ką nors kita 41 00:02:05,540 --> 00:02:08,400 kad jūs tikriausiai jau susipažinę su. 42 00:02:08,400 --> 00:02:13,182 >> C, iš masyvo elementai yra indeksavimo pradedant nuo 0, ne nuo 1. 43 00:02:13,182 --> 00:02:14,390 Ir tai yra labai svarbu. 44 00:02:14,390 --> 00:02:18,530 Ir iš tiesų, tai yra, kodėl mes, CS 50, Ir kodėl kompiuterių mokslininkai Dažnai 45 00:02:18,530 --> 00:02:22,150 bus skaičiuojami nuo 0, tai nes C anketa masyvo 46 00:02:22,150 --> 00:02:24,660 indeksavimas, kuris visada prasideda 0. 47 00:02:24,660 --> 00:02:28,730 Taigi, jei masyvas susideda iš n elementų, pirmasis elementas tos masyvo 48 00:02:28,730 --> 00:02:32,960 yra ne 0 indeksą, ir paskutinis elementas masyvo 49 00:02:32,960 --> 00:02:36,610 yra ne rodiklis n minus 1. 50 00:02:36,610 --> 00:02:43,160 Vėlgi, jei yra n elementų mūsų masyvas, paskutinis puslapis yra n atėmus 1. 51 00:02:43,160 --> 00:02:46,820 >> Taigi, jei mūsų masyvas yra 50 elementai, su pirmasis elementas yra ne 0 indeksą, 52 00:02:46,820 --> 00:02:51,060 ir paskutinis elementas yra ne 49 indekse. 53 00:02:51,060 --> 00:02:53,940 Deja, arba, laimei, priklausomai nuo jūsų požiūriu, 54 00:02:53,940 --> 00:02:56,170 C yra labai atlaidus čia. 55 00:02:56,170 --> 00:02:59,480 Tai netrukdys jums vakarėliai ribų jūsų masyvo. 56 00:02:59,480 --> 00:03:03,080 Jūs galite prieiti prie minuso 3 elementas jūsų masyvo 57 00:03:03,080 --> 00:03:07,400 arba 59. elementas jūsų masyvas, Jei jūsų masyvas turi tik 50 elementų. 58 00:03:07,400 --> 00:03:11,060 Jis nebus sustabdyti savo programą iš renkant, tačiau vykdymo metu, 59 00:03:11,060 --> 00:03:14,350 jums gali susidurti baimės segmentavimo kaltės 60 00:03:14,350 --> 00:03:17,460 jei pradėsite naudotis atminties kad yra už ką ribų 61 00:03:17,460 --> 00:03:19,260 Jūs paprašė savo programą Jums. 62 00:03:19,260 --> 00:03:21,250 Taigi, būkite atsargūs. 63 00:03:21,250 --> 00:03:23,120 >> Ką masyvą deklaracija atrodo? 64 00:03:23,120 --> 00:03:26,940 Kaip mes kodą masyvą į egzistavimą kaip mes koduoti bet kokį kitą kintamąjį? 65 00:03:26,940 --> 00:03:31,250 Yra trys dalys į masyvą declaration-- tipą, vardas 66 00:03:31,250 --> 00:03:31,880 ir dydis. 67 00:03:31,880 --> 00:03:34,088 Tai labai panašus į kintamasis deklaracija, kurios 68 00:03:34,088 --> 00:03:36,970 yra tik tipo ir pavardė, dydis elementas yra 69 00:03:36,970 --> 00:03:39,860 specialus dėklas masyvą, nes mes gauti iš jų krūva 70 00:03:39,860 --> 00:03:41,830 Tuo pačiu metu. 71 00:03:41,830 --> 00:03:45,560 >> Taigi tipas yra kokios kintamajame jūs nori kiekvienas iš masyvo elementas turi būti. 72 00:03:45,560 --> 00:03:47,150 Ar norite jį į sveikųjų skaičių masyvas? 73 00:03:47,150 --> 00:03:49,010 Tada jūsų duomenų tipas turi būti int. 74 00:03:49,010 --> 00:03:51,760 Ar norite, kad ji yra masyvas dvejetų ar plūdės? 75 00:03:51,760 --> 00:03:54,545 Duomenų tipas turėtų būti dvigubai ar plūduriuoti. 76 00:03:54,545 --> 00:03:56,420 Pavadinimas yra tai, ką norite skambinti savo masyvo. 77 00:03:56,420 --> 00:04:00,970 Ką norite pavadinti šį milžiną bankas skaičiais ar plūdes ar simbolių 78 00:04:00,970 --> 00:04:03,250 arba padvigubėja, ar kas jums? 79 00:04:03,250 --> 00:04:04,700 Ką jūs norite jį pavadinti? 80 00:04:04,700 --> 00:04:06,110 Gražūs savaime suprantama. 81 00:04:06,110 --> 00:04:08,610 >> Galiausiai, dydis, kuris eina viduje laužtiniuose skliaustuose, 82 00:04:08,610 --> 00:04:12,180 yra kiek elementai darytumėte kaip jūsų masyvas yra. 83 00:04:12,180 --> 00:04:13,530 Kiek sveikieji skaičiai tu nori? 84 00:04:13,530 --> 00:04:15,570 Kiek plūdės tu nori? 85 00:04:15,570 --> 00:04:19,070 >> Taigi, pavyzdžiui, int studentų pažymius 40. 86 00:04:19,070 --> 00:04:26,020 Ši deklaruoja masyvą vadinamas Studentų rūšių, kurią sudaro 40 skaičių. 87 00:04:26,020 --> 00:04:28,180 Gražūs savaime suprantama, tikiuosi. 88 00:04:28,180 --> 00:04:29,330 Štai dar vienas pavyzdys. 89 00:04:29,330 --> 00:04:31,560 Dviviečiai meniu kainos 8. 90 00:04:31,560 --> 00:04:34,610 Tai sukuria masyvą vadinamas Meniu kainos, kurią sudaro 91 00:04:34,610 --> 00:04:38,300 kambario atmintyje aštuoni dviviečiai kambariai. 92 00:04:38,300 --> 00:04:42,000 93 00:04:42,000 --> 00:04:45,750 >> Jei manote, kad kiekvieno elemento kurio tipo duomenų tipo masyvą, 94 00:04:45,750 --> 00:04:49,860 taigi, pavyzdžiui, vieno elementas AN tipo int masyvas, tokiu pačiu būdu 95 00:04:49,860 --> 00:04:52,770 manyčiau, pagamintos iš bet kurių kintamasis tipas int, 96 00:04:52,770 --> 00:04:56,440 visi pažįstami operacijos, kad mes aptarta anksčiau vykdymo 97 00:04:56,440 --> 00:04:58,270 vaizdo įrašas bus prasminga. 98 00:04:58,270 --> 00:05:01,620 Taigi čia mes galėtume paskelbti masyvą apie loginę vadinamų Truthtable, 99 00:05:01,620 --> 00:05:05,590 kuris susideda iš kambario 10 loginę. 100 00:05:05,590 --> 00:05:09,650 >> Ir tada, kaip mes galėtume tiesiog priskirti vertės į bet kurią kitą kintamojo tipo 101 00:05:09,650 --> 00:05:13,470 Būlio, mes galime pasakyti kažką kaip Truthtable kvadratinį laikiklį 102 00:05:13,470 --> 00:05:18,040 2, kuri yra, kaip mes rodo, kuris elementas tiesos lentelę? 103 00:05:18,040 --> 00:05:20,350 Trečiasis elementas iš Tiesa stalo, nes atsimenu, 104 00:05:20,350 --> 00:05:21,800 mes skaičiuojant nuo 0. 105 00:05:21,800 --> 00:05:25,690 Štai kaip mes nurodyti Trečiasis elementas tiesos lentelę. 106 00:05:25,690 --> 00:05:28,680 Truthtable 2 yra lygus klaidinga, kaip galėtume declare-- 107 00:05:28,680 --> 00:05:33,560 ar galėtume priskirti, o, bet Būlio tipo kintamasis būtų klaidinga. 108 00:05:33,560 --> 00:05:35,050 >> Mes taip pat galime naudoti ją sąlygas. 109 00:05:35,050 --> 00:05:39,000 if (truthtable 7 == teisinga), kuris yra, 110 00:05:39,000 --> 00:05:42,370 jei aštuntą elementą iš Truthtable tiesa, 111 00:05:42,370 --> 00:05:46,760 gal mes norime spausdinti pranešimą vartotojui, printf ("tiesa! n") ;. 112 00:05:46,760 --> 00:05:50,290 Tai sukelia mums pasakyti Truthtable 10 lygu tiesa, tiesa? 113 00:05:50,290 --> 00:05:53,590 Na, aš galiu, bet tai gana pavojinga, nes atsimenu, 114 00:05:53,590 --> 00:05:56,260 mes turime 10 loginę matricą. 115 00:05:56,260 --> 00:06:02,340 Taigi didžiausias rodiklis, kad kompiliatorius davė mums yra 9. 116 00:06:02,340 --> 00:06:06,010 >> Ši programa bus rinkti, bet jei kažkas atmintyje 117 00:06:06,010 --> 00:06:09,110 egzistuoja, jei mes būtume tikėtis Truthtable 10 eiti, 118 00:06:09,110 --> 00:06:13,980 galėtume patirti segmentavimo kaltės. Mes gali išeiti su juo, bet apskritai, 119 00:06:13,980 --> 00:06:14,710 gana pavojinga. 120 00:06:14,710 --> 00:06:19,759 Taigi, ką aš darau čia yra juridinis C bet nebūtinai geriausias komandos. 121 00:06:19,759 --> 00:06:22,300 Dabar, kai jūs deklaruoti ir inicijuoti masyvą vienu metu, 122 00:06:22,300 --> 00:06:23,960 ten tikrai gana specialią sintaksę, kad jus 123 00:06:23,960 --> 00:06:26,250 galite naudoti norėdami užpildyti masyvo su pradinių reikšmių. 124 00:06:26,250 --> 00:06:30,130 Jis gali gauti sudėtinga paskelbti apie dydžio 100 masyvą, 125 00:06:30,130 --> 00:06:33,430 ir tada pasakyti, elementas 0 lygi tai; elementas 1 lygu tai; 126 00:06:33,430 --> 00:06:34,850 elementas 2 yra lygus tai. 127 00:06:34,850 --> 00:06:36,370 Kas yra taškas, tiesa? 128 00:06:36,370 --> 00:06:39,470 >> Jei tai mažas masyvas, galite galėtų padaryti kažką panašaus į tai. 129 00:06:39,470 --> 00:06:44,360 Bool truthtable 3 yra lygus atviras garbanotas petnešomis ir tada kablelis 130 00:06:44,360 --> 00:06:48,060 atskirti sąrašas elementų, kad jūs norite įdėti į masyvą. 131 00:06:48,060 --> 00:06:50,520 Tada uždarykite garbanotas petnešomis kabliataškį. 132 00:06:50,520 --> 00:06:53,910 Tai sukuria masyvo dydis trijų vadinamas Truthtable, 133 00:06:53,910 --> 00:06:56,090 su elementais klaidinga, tiesa, ir tiesa. 134 00:06:56,090 --> 00:06:59,270 Ir iš tiesų, momentinė sintaksė Turiu čia 135 00:06:59,270 --> 00:07:03,350 lygiai taip pat daro individualus elementas sintaksė žemiau. 136 00:07:03,350 --> 00:07:09,380 Šie du būdai kodavimo kas be gaminti tą patį masyvą. 137 00:07:09,380 --> 00:07:11,740 >> Be to, mes galime pakartoti per visus elementus, 138 00:07:11,740 --> 00:07:15,400 masyvo, naudojant kilpą, kuri, savo Tai yra labai primygtinai rekomenduojama 139 00:07:15,400 --> 00:07:16,790 namuose mankšta. 140 00:07:16,790 --> 00:07:20,720 Kaip jums sukurti masyvą 100 sveikieji skaičiai, kur 141 00:07:20,720 --> 00:07:23,477 kiekvienas masyvo elementas yra jos indekso? 142 00:07:23,477 --> 00:07:26,560 Taigi, pavyzdžiui, turime 100 masyvo sveikieji skaičiai, ir pirmojo elemento, 143 00:07:26,560 --> 00:07:27,790 mes norime įdėti 0. 144 00:07:27,790 --> 00:07:29,810 Antroje elemento, nori įdėti 1. 145 00:07:29,810 --> 00:07:33,319 Trečioje elemento, mes nori įdėti 2; ir taip toliau, ir taip toliau. 146 00:07:33,319 --> 00:07:35,360 Štai tikrai geras namuose pratimas tai padaryti. 147 00:07:35,360 --> 00:07:38,190 148 00:07:38,190 --> 00:07:40,220 >> Čia, tai ne atrodo kaip per daug pasikeitė. 149 00:07:40,220 --> 00:07:44,170 Tačiau pastebėti, kad tarp skliaustus, šį kartą, 150 00:07:44,170 --> 00:07:45,830 Aš iš tikrųjų praleisti numerį. 151 00:07:45,830 --> 00:07:48,000 Jei naudojate šią labai ypatingą momentinė 152 00:07:48,000 --> 00:07:50,380 Sintaksė sukurti masyvas, jūs iš tikrųjų nėra 153 00:07:50,380 --> 00:07:53,491 reikia nurodyti dydį masyvo anksto. 154 00:07:53,491 --> 00:07:55,740 Kompiliatorius yra pakankamai protingas, žinoti, kad jūs iš tikrųjų 155 00:07:55,740 --> 00:07:58,980 nori, kad apie 3 dydžio masyvą, nes jūs įdėti trys elementai 156 00:07:58,980 --> 00:08:00,640 į vienodo žymens dešinės. 157 00:08:00,640 --> 00:08:04,140 Jei buvo įdėjęs keturi, ji turėtų davė jums tiesą lentelę dydžio keturių; 158 00:08:04,140 --> 00:08:06,270 ir taip toliau, ir taip toliau. 159 00:08:06,270 --> 00:08:09,380 >> Masyvai yra ne tik vienas matmuo, kuris yra gana kietas. 160 00:08:09,380 --> 00:08:12,000 Jūs iš tikrųjų galite turėti daug šalutinis specifikacijas nustatantys, kaip jūs pageidaujate. 161 00:08:12,000 --> 00:08:16,470 Taigi, pavyzdžiui, jei norite sukurti už žaidimą Šarvuotis taryba, kuri, 162 00:08:16,470 --> 00:08:20,910 jei jūs kada nors grojo, yra žaidimas, kuris yra grojo su vinys apie 10 10 tinklelį, 163 00:08:20,910 --> 00:08:22,450 galite sukurti panašaus masyvo. 164 00:08:22,450 --> 00:08:26,030 Galima sakyti, bool Šarvuotis kvadratinių laikiklis 10 165 00:08:26,030 --> 00:08:29,590 uždara keturkampė aikštė laikiklis laikiklis 10 uždarytas kvadratinių laikiklį. 166 00:08:29,590 --> 00:08:32,710 >> Ir tada, jūs galite pasirinkti interpretuoti tai jūsų protas kaip 10 167 00:08:32,710 --> 00:08:35,576 10 tinklelį ląstelių. 168 00:08:35,576 --> 00:08:37,409 Dabar, iš tikrųjų, atmintyje, tai tikrai tik 169 00:08:37,409 --> 00:08:42,440 lieka 100 elementas, vieno matmenų masyvo. 170 00:08:42,440 --> 00:08:46,070 Ir tai, tiesą sakant, eina, jei jums turi tris matmenis arba keturis ar penkis. 171 00:08:46,070 --> 00:08:49,420 Tai tikrai nėra tik daugintis visi indices-- 172 00:08:49,420 --> 00:08:51,130 arba visi dydžio specifiers-- kartu, 173 00:08:51,130 --> 00:08:53,480 ir jūs tiesiog gauti vienmatis masyvas tokio dydžio. 174 00:08:53,480 --> 00:08:57,090 >> Tačiau kalbant apie organizaciją ir vizualizacija ir žmogaus suvokimas, 175 00:08:57,090 --> 00:08:59,240 ji gali būti daug lengviau dirbti su tinkleliu 176 00:08:59,240 --> 00:09:02,980 jei dirbate žaidimą kaip Kryžiukai-nuliukai ar Battleship 177 00:09:02,980 --> 00:09:05,179 ar kažkas panašaus. 178 00:09:05,179 --> 00:09:06,970 Tai puiki abstrakcija, vietoj to, 179 00:09:06,970 --> 00:09:09,340 galvoti apie Kryžiukai-nuliukai Board kaip devynių linija 180 00:09:09,340 --> 00:09:13,810 kvadratų arba Šarvuotis lenta kaip 100 kvadratų linija. 181 00:09:13,810 --> 00:09:16,010 Iš 10 10 tinklelį ar trijų trys tinklelis yra turbūt 182 00:09:16,010 --> 00:09:17,225 daug lengviau suvokti. 183 00:09:17,225 --> 00:09:19,820 184 00:09:19,820 --> 00:09:22,280 >> Dabar kažkas tikrai Svarbu apie matricas. 185 00:09:22,280 --> 00:09:25,950 Mes galime gydyti kiekvienas individas elementas masyvo, kaip kintamojo. 186 00:09:25,950 --> 00:09:27,700 Mes matėme, kad anksčiau kai mes buvome paskirti 187 00:09:27,700 --> 00:09:32,240 vertė Tiesa tam tikrų loginę arba juos išbandyti sąlyginių. 188 00:09:32,240 --> 00:09:35,960 Bet mes negalime gydyti visą Masyvai save kaip kintamųjų. 189 00:09:35,960 --> 00:09:41,760 Mes negalime, pavyzdžiui, priskirti viena matrica į kitą masyvo, naudojant priskyrimą 190 00:09:41,760 --> 00:09:42,930 operatorius. 191 00:09:42,930 --> 00:09:44,640 Tai ne teisinė C. 192 00:09:44,640 --> 00:09:47,920 >> Jei norime, už ką example-- mes būtų daryti toje pavyzdžiui 193 00:09:47,920 --> 00:09:50,200 būtų nukopijuoti viena matrica į kitą. 194 00:09:50,200 --> 00:09:53,810 Jei mes norime padaryti, kad mes iš tikrųjų reikia naudoti kilpą kopijuoti per 195 00:09:53,810 --> 00:09:56,550 kiekviena atskira elementas vienu metu. 196 00:09:56,550 --> 00:09:58,700 Žinau, kad tai šiek tiek laiko. 197 00:09:58,700 --> 00:10:04,022 >> Taigi, pavyzdžiui, jei mes turėjome šias pora kodo eilučių, ar tai veikia? 198 00:10:04,022 --> 00:10:05,230 Na, ne, tai ne, tiesa? 199 00:10:05,230 --> 00:10:07,860 Kadangi mes bandome priskirti maisto bare. 200 00:10:07,860 --> 00:10:09,860 Štai nesiruošia dirbti, nes tai masyvas, 201 00:10:09,860 --> 00:10:13,130 ir mes ką tik aprašytos kad ne teisinė C. 202 00:10:13,130 --> 00:10:15,580 >> Vietoj to, jei norime kopijuoti maisto turinį 203 00:10:15,580 --> 00:10:18,070 į barą, o tai, ką mes bandome padaryti čia 204 00:10:18,070 --> 00:10:19,970 mums reikia kaip šis sintaksė. 205 00:10:19,970 --> 00:10:24,170 Mes turime už kilpos, kad eina iš J yra lygus 0 iki 5, 206 00:10:24,170 --> 00:10:28,390 ir mes prieaugio J ant kiekvieno pakartojimo kilpa ir priskirti elementai, pavyzdžiui, kad. 207 00:10:28,390 --> 00:10:33,360 Tai lemtų juostoje taip pat yra vienas, du, tris, keturis, penkis, 208 00:10:33,360 --> 00:10:36,730 bet mes turime tai padaryti, tai labai lėtas elementas po elemento būdas, 209 00:10:36,730 --> 00:10:40,009 vietoj tiesiog Kopijuojant visą masyvo. 210 00:10:40,009 --> 00:10:42,050 Be kitų programavimo kalbos, daugiau moderniausių, 211 00:10:42,050 --> 00:10:45,610 galite, iš tikrųjų, tai tik kad paprastas lygus sintaksė. 212 00:10:45,610 --> 00:10:49,620 Tačiau, C, deja, mes neleidžiama daryti. 213 00:10:49,620 --> 00:10:52,026 >> Dabar ten vienas kitas dalykas, kurį noriu paminėti 214 00:10:52,026 --> 00:10:54,650 apie matricas, kad gali būti šiek tiek tiek sudėtinga pirmą kartą 215 00:10:54,650 --> 00:10:55,990 dirbti su jais. 216 00:10:55,990 --> 00:10:59,860 Aptarėme video apie kintamos apimties, 217 00:10:59,860 --> 00:11:04,940 kad dauguma kintamieji C, kai skambinate juos funkcijų, yra perduodama pagal vertę. 218 00:11:04,940 --> 00:11:08,620 Ar pamenate, ką tai reiškia praeiti kažką pagal vertę? 219 00:11:08,620 --> 00:11:12,570 Tai reiškia, kad mes darome yra kopijos kintamasis, kuris manimi buvo priimtas. 220 00:11:12,570 --> 00:11:16,290 Callee funkcija, funkcija kad priimantieji kintamąjį, 221 00:11:16,290 --> 00:11:17,730 negauna pati kintamąjį. 222 00:11:17,730 --> 00:11:20,850 Ji gauna savo vietos jo kopija dirbti. 223 00:11:20,850 --> 00:11:24,070 >> Masyvai, žinoma, daryti ne laikytis šios taisyklės. 224 00:11:24,070 --> 00:11:27,600 Atvirkščiai, tai, ką mes vadiname bėga nuoroda. 225 00:11:27,600 --> 00:11:31,360 Callee tikrųjų ar gauti masyvo. 226 00:11:31,360 --> 00:11:34,207 Jis negauna jos savo vietos kopija. 227 00:11:34,207 --> 00:11:36,040 Ir jei jūs manote apie , tai jis turi prasmę. 228 00:11:36,040 --> 00:11:39,750 Jei matricos yra tikrai didelis, tai trunka taip daug laiko ir pastangų 229 00:11:39,750 --> 00:11:44,470 padaryti kurio masyvo kopiją 100 arba 1000 arba 10000 elementus, 230 00:11:44,470 --> 00:11:48,290 kad tai nėra verta dėl funkcionuoti gauti jo kopiją, 231 00:11:48,290 --> 00:11:51,037 padaryti tam tikrą darbą su juo, ir tada tiesiog būti daroma su kopiją; 232 00:11:51,037 --> 00:11:53,120 ji nėra, reikia turėti ji kabinti aplink nebėra. 233 00:11:53,120 --> 00:11:54,710 >> Kadangi matricos yra kai nepatogūs ir sudėtinga, 234 00:11:54,710 --> 00:11:56,001 mes tiesiog perduoti juos nuorodą. 235 00:11:56,001 --> 00:12:01,210 Mes tiesiog pasitikite šią funkciją kad, neatlieka nieko. 236 00:12:01,210 --> 00:12:03,010 Taigi ji iš tikrųjų gauti masyvo. 237 00:12:03,010 --> 00:12:05,290 Jis neturi gauti savo vietinį kopiją juo. 238 00:12:05,290 --> 00:12:07,170 >> Taigi, ką tai reiškia, tada, kai callee 239 00:12:07,170 --> 00:12:08,970 manipuliuoja elementus iš masyvo? 240 00:12:08,970 --> 00:12:10,780 Kas atsitinka? 241 00:12:10,780 --> 00:12:13,210 Nes dabar, mes blizgesio daugiau, kodėl būtent ši 242 00:12:13,210 --> 00:12:15,320 atsitinka, tai kodėl masyvai yra priimtas prejudicinį sprendimą 243 00:12:15,320 --> 00:12:17,810 ir visa kita yra perduodama pagal vertę. 244 00:12:17,810 --> 00:12:20,470 Bet aš jums pažadu, mes grįžti ir duoti jums atsakymą 245 00:12:20,470 --> 00:12:23,750 tai vėlesniame vaizdo. 246 00:12:23,750 --> 00:12:28,110 >> Štai dar vienas pratimas jums kol mes susivynioti dalykų matricos. 247 00:12:28,110 --> 00:12:31,400 Iš kodą, krūva, tai ne itin geras būdas, 248 00:12:31,400 --> 00:12:33,400 tiesiog aš padaryti, kad įspėjimu. 249 00:12:33,400 --> 00:12:36,660 Yra Nėra komentarų čia, kuri yra gana bloga forma. 250 00:12:36,660 --> 00:12:39,750 Bet tai tik todėl, kad norėjau būti galima pritaikyti viską ekrane. 251 00:12:39,750 --> 00:12:44,360 >> Viršuje, jūs galite pamatyti, kad aš turiu Dviejų funkcijų deklaracijos rinkinio masyvo 252 00:12:44,360 --> 00:12:45,820 ir nustatyti int. 253 00:12:45,820 --> 00:12:49,680 Nustatyti masyvas, matyt, užima masyvą keturi sveikieji skaičiai, kaip savo indėlį. 254 00:12:49,680 --> 00:12:52,767 Ir nustatyti INT matyt trunka vienas sveikasis skaičius, kaip savo indėlį. 255 00:12:52,767 --> 00:12:54,350 Bet juos abu neturi išvestį. 256 00:12:54,350 --> 00:12:57,689 Išėjimo, grąžinimo tipo, kiekvieno iš klaidinga. 257 00:12:57,689 --> 00:12:59,480 Be Main, mes turime pora eilučių kodo. 258 00:12:59,480 --> 00:13:02,730 Mes pareiškiame kintamąjį vadinamas ir priskirti jai vertę 10. 259 00:13:02,730 --> 00:13:07,080 Mes paskelbti keturi sveikieji skaičiai masyvo vadinamas B ir priskirti elementus 0, 1, 260 00:13:07,080 --> 00:13:08,730 2 ir 3, atitinkamai. 261 00:13:08,730 --> 00:13:12,190 Tada mes turime skambinti nustatyti int ir kvietimas nustatyti masyvo. 262 00:13:12,190 --> 00:13:15,910 Seto masyvo ir nustatyti apibrėžimai tarpinis junginys yra žemyn žemiau, apačioje. 263 00:13:15,910 --> 00:13:17,640 >> Ir taip, ir vėl, prašau į klausimą. 264 00:13:17,640 --> 00:13:20,770 Kas gauna neišspausdino čia ne į pagrindinių pabaigos? 265 00:13:20,770 --> 00:13:23,020 Yra spaudinys sp. Aš spausdinti du sveikieji skaičiai. 266 00:13:23,020 --> 00:13:28,010 Aš spausdinti su A turinį ir iš B kvadratinį laikiklį 0 turinį. 267 00:13:28,010 --> 00:13:29,880 Pristabdyti vaizdo įrašą čia ir užtrukti keletą minučių. 268 00:13:29,880 --> 00:13:35,482 Ar jums išsiaiškinti, kas tai funkcija bus atspausdinti pabaigoje? 269 00:13:35,482 --> 00:13:38,190 Tikimės, jei prisimenate skirtumo tarp kitko pagal vertę 270 00:13:38,190 --> 00:13:41,680 ir pakeleivingi nuoroda, tai Problema buvo ne per sudėtinga jums. 271 00:13:41,680 --> 00:13:44,130 Ir atsakymas jums būtų nustatėme, yra tai. 272 00:13:44,130 --> 00:13:47,660 Jei nesate tikras, kaip į kodėl tai toks atvejis, imtis antra, 273 00:13:47,660 --> 00:13:50,620 grįžti, peržiūrėti, ką aš buvo tiesiog aptarti dėl artimųjų masyvai 274 00:13:50,620 --> 00:13:53,450 nurodant, palyginti su artimųjų kiti kintamieji pagal vertę, 275 00:13:53,450 --> 00:13:56,680 ir tikiuosi, jis bus padaryti šiek tiek daugiau prasmės. 276 00:13:56,680 --> 00:13:59,760 >> Aš Doug Lloyd, ir tai yra CS50. 277 00:13:59,760 --> 00:14:01,467