1 00:00:00,000 --> 00:00:03,388 >> [Musiikkia] 2 00:00:03,388 --> 00:00:05,104 3 00:00:05,104 --> 00:00:06,020 DOUG Lloyd: Selvä. 4 00:00:06,020 --> 00:00:07,680 Työskentely yhden muuttujat on aika hauskaa. 5 00:00:07,680 --> 00:00:09,500 Mutta mitä jos haluamme työskennellä jossa on paljon muuttujia, 6 00:00:09,500 --> 00:00:12,760 mutta emme halua olla nippu eri nimiä lentelee meidän koodi? 7 00:00:12,760 --> 00:00:15,980 Tässä tapauksessa taulukot ovat tulossa todella kätevä. 8 00:00:15,980 --> 00:00:19,510 Taulukot ovat todella perustavanlaatuinen tiedot rakenne tahansa ohjelmointikielellä 9 00:00:19,510 --> 00:00:20,260 jota käytät. 10 00:00:20,260 --> 00:00:24,450 Ja he todella, todella hyödyllinen, varsinkin, kun näemme, CS 50. 11 00:00:24,450 --> 00:00:27,870 >> Käytämme taulukot pitää arvot samaa tietotyyppiä 12 00:00:27,870 --> 00:00:29,830 klo vierekkäisiä muistipaikkaa. 13 00:00:29,830 --> 00:00:32,430 Toisin sanoen, se on tapa, jolla voimme ryhmä 14 00:00:32,430 --> 00:00:35,430 joukko kokonaislukujen yhdessä muistiin tai joukko merkkejä 15 00:00:35,430 --> 00:00:38,270 tai kelluu muistiin todella lähekkäin ja työ 16 00:00:38,270 --> 00:00:41,930 niitä ilman antaa jokaiselle yksi oma yksilöllinen nimi, joka voi 17 00:00:41,930 --> 00:00:44,500 saada hankalia hetken kuluttua. 18 00:00:44,500 --> 00:00:48,130 >> Nyt, yksi tapa analogize paneelit on mieti paikallisen postin 19 00:00:48,130 --> 00:00:49,000 toimisto toista. 20 00:00:49,000 --> 00:00:51,820 Joten askel poispäin ohjelmointi ja sulje silmäsi 21 00:00:51,820 --> 00:00:54,120 ja visualisoi mielessäsi paikallisesta postista. 22 00:00:54,120 --> 00:00:57,160 Yleensä useimmissa post toimistot, siellä suuri pankki 23 00:00:57,160 --> 00:01:00,490 postilokerot seinälle. 24 00:01:00,490 --> 00:01:03,510 >> Array on jättiläinen lohko yhtenäistä muistia, 25 00:01:03,510 --> 00:01:06,120 samalla tavalla kuin posti pankki omassa postissa 26 00:01:06,120 --> 00:01:11,230 on suuri tilaa seinä posti. 27 00:01:11,230 --> 00:01:15,750 Taulukot on jaettu pieniin, identtisesti kokoisia lohkoja tilaa, 28 00:01:15,750 --> 00:01:19,930 joista kukin on kutsutaan elementtiä Samalla tavoin, että seinämä kentältä 29 00:01:19,930 --> 00:01:23,840 toimisto on osioitu pieniksi, identtisesti kokoisia lohkoja tilaa, 30 00:01:23,840 --> 00:01:27,560 jota kutsumme postilokero. 31 00:01:27,560 --> 00:01:31,650 Jokainen alkio voi tallentaa tietty määrä tietoa, 32 00:01:31,650 --> 00:01:37,540 aivan kuten jokainen posti laatikko pystyy pitää tietty määrä postia. 33 00:01:37,540 --> 00:01:41,540 >> Mitä voidaan tallentaa jokaisen elementin matriisi on muuttujat samat tiedot 34 00:01:41,540 --> 00:01:45,300 tyyppi, kuten int tai char, vain kuten omassa posti laatikko, 35 00:01:45,300 --> 00:01:47,300 voit vain sovi asioita Samantyyppisiä, 36 00:01:47,300 --> 00:01:50,430 kuten kirjaimia tai pienissä pakkauksissa. 37 00:01:50,430 --> 00:01:55,050 Lopuksi voimme käyttää jokaisen elementin array suoraan indeksin numero, 38 00:01:55,050 --> 00:01:59,770 aivan kuten voimme käyttää myös posti box tuntemalla sen postilaatikon numero. 39 00:01:59,770 --> 00:02:02,750 Toivottavasti että analogisesti auttaa saat päätäsi 40 00:02:02,750 --> 00:02:05,540 noin ajatus matriisia analogizing jotain muuta 41 00:02:05,540 --> 00:02:08,400 että olet todennäköisesti jo tuttu. 42 00:02:08,400 --> 00:02:13,182 >> C, elementit jono ovat indeksoitu alkaen 0, ei 1. 43 00:02:13,182 --> 00:02:14,390 Ja tämä on todella tärkeää. 44 00:02:14,390 --> 00:02:18,530 Ja itse asiassa tästä syystä me, CS 50, ja miksi tietotekniikan tutkijoita usein 45 00:02:18,530 --> 00:02:22,150 laskee 0, on koska C: n array 46 00:02:22,150 --> 00:02:24,660 indeksointi, joka aina alkaa 0. 47 00:02:24,660 --> 00:02:28,730 Joten jos joukko koostuu n elementtejä, ensimmäinen osa, joka array 48 00:02:28,730 --> 00:02:32,960 sijaitsee indeksi 0, ja viimeinen osa array 49 00:02:32,960 --> 00:02:36,610 sijaitsee indeksi n miinus 1. 50 00:02:36,610 --> 00:02:43,160 Jälleen, jos on n alkiota meidän array, viimeinen indeksi on n miinus 1. 51 00:02:43,160 --> 00:02:46,820 >> Joten jos meidän joukko on 50 elementtejä, ensimmäinen elementti sijaitsee indeksi 0, 52 00:02:46,820 --> 00:02:51,060 ja viimeinen osa sijaitsee indeksi 49. 53 00:02:51,060 --> 00:02:53,940 Valitettavasti tai onneksi riippuen näkökulmasta, 54 00:02:53,940 --> 00:02:56,170 C on hyvin lievä täällä. 55 00:02:56,170 --> 00:02:59,480 Se ei estä sinua menee out of bounds oman array. 56 00:02:59,480 --> 00:03:03,080 Voisit miinus 3 osa sinun array 57 00:03:03,080 --> 00:03:07,400 tai 59. osa sinun array, jos joukko on vain 50 elementtejä. 58 00:03:07,400 --> 00:03:11,060 Se ei lopeta ohjelmaa kokoamiseen, mutta suorituksen aikana, 59 00:03:11,060 --> 00:03:14,350 saatat kohdata pelätty segmentointi vika 60 00:03:14,350 --> 00:03:17,460 jos alkaa käyttää muistia että on rajojen ulkopuolella, mitä 61 00:03:17,460 --> 00:03:19,260 pyysit ohjelma antaa sinulle. 62 00:03:19,260 --> 00:03:21,250 Joten älä ole varovainen. 63 00:03:21,250 --> 00:03:23,120 >> Mitä array ilmoitus näyttää? 64 00:03:23,120 --> 00:03:26,940 Miten koodata array olemassaoloon kuten me koodata muitakin muuttujia? 65 00:03:26,940 --> 00:03:31,250 On kolme osaa array declaration-- tyyppi, nimi, 66 00:03:31,250 --> 00:03:31,880 ja koko. 67 00:03:31,880 --> 00:03:34,088 Tämä on hyvin samankaltainen muuttuja ilmoitus, joka 68 00:03:34,088 --> 00:03:36,970 on vain tyyppi ja nimi, koko elementti on 69 00:03:36,970 --> 00:03:39,860 erikoistapaus varten array, koska saamme nippu niitä 70 00:03:39,860 --> 00:03:41,830 samaan aikaan. 71 00:03:41,830 --> 00:03:45,560 >> Joten tyyppi on, millaista muuttuja haluavat jokainen osa array olla. 72 00:03:45,560 --> 00:03:47,150 Halua sen joukko kokonaislukuja? 73 00:03:47,150 --> 00:03:49,010 Sitten tietosi, olisi oltava int. 74 00:03:49,010 --> 00:03:51,760 Haluatko sen olevan joukko tupla tai kelluu? 75 00:03:51,760 --> 00:03:54,545 Tietotyyppi pitäisi olla kaksinkertainen tai kellua. 76 00:03:54,545 --> 00:03:56,420 Nimi on mitä haluavat soittaa array. 77 00:03:56,420 --> 00:04:00,970 Mitä haluat nimetä tämän jättiläinen pankki kokonaislukujen tai kellukkeet tai merkkiä 78 00:04:00,970 --> 00:04:03,250 tai kahden, tai mitä olet? 79 00:04:03,250 --> 00:04:04,700 Mitä haluat soittaa sitä? 80 00:04:04,700 --> 00:04:06,110 Melko itsestään selvä. 81 00:04:06,110 --> 00:04:08,610 >> Lopuksi, koko, joka menee sisällä hakasulkeissa, 82 00:04:08,610 --> 00:04:12,180 on kuinka monta elementtiä olisit kuten teidän array sisältää. 83 00:04:12,180 --> 00:04:13,530 Kuinka monta kokonaislukua haluat? 84 00:04:13,530 --> 00:04:15,570 Kuinka monta kellukkeet haluat? 85 00:04:15,570 --> 00:04:19,070 >> Niinpä esimerkiksi, int opiskelija laadut 40. 86 00:04:19,070 --> 00:04:26,020 Tämä ilmoittaa array nimeltään Student laadut, joka koostuu 40 kokonaislukuja. 87 00:04:26,020 --> 00:04:28,180 Melko itsestään selvä, toivottavasti. 88 00:04:28,180 --> 00:04:29,330 Tässä toinen esimerkki. 89 00:04:29,330 --> 00:04:31,560 Kaksinkertainen valikko hinnat 8. 90 00:04:31,560 --> 00:04:34,610 Tämä luo array nimeltään Valikko hintoja, joka koostuu 91 00:04:34,610 --> 00:04:38,300 tilaa muistiin kahdeksan kaksinkertaistuu. 92 00:04:38,300 --> 00:04:42,000 93 00:04:42,000 --> 00:04:45,750 >> Jos luulet jokaisen elementin on joukko tyyppi tietojen tyyppi, 94 00:04:45,750 --> 00:04:49,860 niin esimerkiksi yksittäinen elementti joukko int, samalla tavalla kuin 95 00:04:49,860 --> 00:04:52,770 ajattelisi muuta muuttuja tyyppiä int, 96 00:04:52,770 --> 00:04:56,440 kaikki tutut toiminnot että me keskusteltu aiemmin Operations 97 00:04:56,440 --> 00:04:58,270 video on järkeä. 98 00:04:58,270 --> 00:05:01,620 Joten tässä, voisimme julistaa array on Booleans kutsutaan Truthtable, 99 00:05:01,620 --> 00:05:05,590 joka koostuu tilaa 10 Booleans. 100 00:05:05,590 --> 00:05:09,650 >> Ja sitten, aivan kuten me voisi vain antaa arvo muihin tyyppisenä muuttujana 101 00:05:09,650 --> 00:05:13,470 Boolean, voisimme sanoa jotain kuten Truthtable hakasulje 102 00:05:13,470 --> 00:05:18,040 2, joka on, miten me osoittavat, joka elementti totuustaulukon? 103 00:05:18,040 --> 00:05:20,350 Kolmas elementti totuustaulu, koska muistan, 104 00:05:20,350 --> 00:05:21,800 olemme laskien 0. 105 00:05:21,800 --> 00:05:25,690 Niin, että miten me osoittavat kolmas elementti totuustaulu. 106 00:05:25,690 --> 00:05:28,680 Truthtable 2 tuloksena vääriä, aivan kuten voisimme declare-- 107 00:05:28,680 --> 00:05:33,560 tai voimme luovuttaa, vaan kaikki Boolean tyyppi muuttuja vääriksi. 108 00:05:33,560 --> 00:05:35,050 >> Voimme myös käyttää sitä olosuhteissa. 109 00:05:35,050 --> 00:05:39,000 jos (truthtable 7 == tosi), joka on sanoa, 110 00:05:39,000 --> 00:05:42,370 jos kahdeksas elementti on Truthtable on totta, 111 00:05:42,370 --> 00:05:46,760 ehkä me haluat tulostaa viestin käyttäjälle, printf ("totta! n") ;. 112 00:05:46,760 --> 00:05:50,290 Jotka antaisivat aiheen sanoa Truthtable 10 vastaa totta, eikö? 113 00:05:50,290 --> 00:05:53,590 No, voin, mutta se on melko vaarallista, koska muistan, 114 00:05:53,590 --> 00:05:56,260 meillä on joukko 10 Booleans. 115 00:05:56,260 --> 00:06:02,340 Joten korkein indeksi kääntäjä on antanut meille on 9. 116 00:06:02,340 --> 00:06:06,010 >> Tämä ohjelma kokoaa, mutta jos jotain muuta muistiin 117 00:06:06,010 --> 00:06:09,110 olemassa, kun olisimme odottaa Truthtable 10 mennä, 118 00:06:09,110 --> 00:06:13,980 voisimme kärsiä segmentointi vika. Me voi koira veräjästä, mutta yleensä, 119 00:06:13,980 --> 00:06:14,710 melko vaarallinen. 120 00:06:14,710 --> 00:06:19,759 Joten mitä teen täällä on laillinen C, mutta ei välttämättä parhaan tilanteen. 121 00:06:19,759 --> 00:06:22,300 Nyt, kun julistaa ja alustaa array samanaikaisesti, 122 00:06:22,300 --> 00:06:23,960 siellä oikeastaan ​​aika syntaksinsa että olet 123 00:06:23,960 --> 00:06:26,250 voi käyttää tankata array sen lähtöarvot. 124 00:06:26,250 --> 00:06:30,130 Se voi saada hankala julistaa joukko koko 100, 125 00:06:30,130 --> 00:06:33,430 ja sitten täytyy sanoa, elementti 0 vastaa tämä; elementti 1 vastaa tämän; 126 00:06:33,430 --> 00:06:34,850 elementti 2 on sama kuin. 127 00:06:34,850 --> 00:06:36,370 Mitä järkeä, eikö? 128 00:06:36,370 --> 00:06:39,470 >> Jos se on pieni joukko, sinua voisi tehdä jotain tällaista. 129 00:06:39,470 --> 00:06:44,360 Bool truthtable 3 vastaa auki kihara ahdin ja sitten pilkku 130 00:06:44,360 --> 00:06:48,060 erillinen luettelo elementtien että haluat laittaa array. 131 00:06:48,060 --> 00:06:50,520 Sulje sitten kihara ahdin puolipiste. 132 00:06:50,520 --> 00:06:53,910 Tämä luo erilaisia koko kolme kutsutaan Truthtable, 133 00:06:53,910 --> 00:06:56,090 elementtejä väärä, totta, ja totta. 134 00:06:56,090 --> 00:06:59,270 Ja itse asiassa, instantiation syntaksi Minulla on tässä 135 00:06:59,270 --> 00:07:03,350 täsmälleen sama kuin tekee yksittäinen elementti syntaksi alla. 136 00:07:03,350 --> 00:07:09,380 Nämä kaksi tapaa koodaus olisi tuottaa täsmälleen sama joukko. 137 00:07:09,380 --> 00:07:11,740 >> Samoin voisimme kerrata yli kaikki elementit 138 00:07:11,740 --> 00:07:15,400 array käyttäen silmukan, mikä Itse asiassa on erittäin suositeltavaa 139 00:07:15,400 --> 00:07:16,790 at-home liikuntaa. 140 00:07:16,790 --> 00:07:20,720 Miten luoda array 100 kokonaislukuja, jossa 141 00:07:20,720 --> 00:07:23,477 jokainen alkio on sen indeksi? 142 00:07:23,477 --> 00:07:26,560 Niinpä esimerkiksi, meillä on joukko 100 kokonaislukuja ja ensimmäinen elementti, 143 00:07:26,560 --> 00:07:27,790 haluamme laittaa 0. 144 00:07:27,790 --> 00:07:29,810 Toisessa elementti, haluamme laittaa 1. 145 00:07:29,810 --> 00:07:33,319 Kolmannessa elementti, haluamme laittaa 2; ja niin edelleen ja niin edelleen. 146 00:07:33,319 --> 00:07:35,360 Se on todella hyvä at-home liikuntaa tehdä. 147 00:07:35,360 --> 00:07:38,190 148 00:07:38,190 --> 00:07:40,220 >> Täällä, se ei näytä kuten liian paljon on muuttunut. 149 00:07:40,220 --> 00:07:44,170 Mutta huomaa, että väliin hakasulkeita, tällä kertaa, 150 00:07:44,170 --> 00:07:45,830 Olen itse pois numero. 151 00:07:45,830 --> 00:07:48,000 Jos käytät tätä erittäin erityinen instanssien 152 00:07:48,000 --> 00:07:50,380 syntaksi luoda array, te itse ei 153 00:07:50,380 --> 00:07:53,491 täytyy ilmoittaa koko array etukäteen. 154 00:07:53,491 --> 00:07:55,740 Kääntäjä on fiksu tietää, että olet itse 155 00:07:55,740 --> 00:07:58,980 haluavat taulukon koko 3, koska laitat kolme tekijää 156 00:07:58,980 --> 00:08:00,640 oikealla yhtäläisyysmerkki. 157 00:08:00,640 --> 00:08:04,140 Jos olisit laittaa neljä, se olisi antanut sinulle totuuden taulukko koko neljä; 158 00:08:04,140 --> 00:08:06,270 ja niin edelleen ja niin edelleen. 159 00:08:06,270 --> 00:08:09,380 >> Paneelit eivät rajoitu yhteen ulottuvuus, joka on aika siistiä. 160 00:08:09,380 --> 00:08:12,000 Voit itse olla niin monta puoli suunnittelijat kuin haluat. 161 00:08:12,000 --> 00:08:16,470 Niinpä esimerkiksi, jos haluat luoda aluksella peli Battleship, joka, 162 00:08:16,470 --> 00:08:20,910 Jos olet koskaan pelannut, on peli, joka on pelataan tapit 10 10 verkkoon, 163 00:08:20,910 --> 00:08:22,450 voit luoda erilaisia ​​näin. 164 00:08:22,450 --> 00:08:26,030 Voisi sanoa Bool taistelulaiva hakasulku 10 165 00:08:26,030 --> 00:08:29,590 suljettu hakasulje neliö kiinnike 10 suljettu hakasulku. 166 00:08:29,590 --> 00:08:32,710 >> Ja sitten, voit valita tulkita tämä mielessäsi kuin 10 167 00:08:32,710 --> 00:08:35,576 10 ruudukon solujen. 168 00:08:35,576 --> 00:08:37,409 Nyt, itse asiassa, muistiin, se todella vain 169 00:08:37,409 --> 00:08:42,440 edelleen 100 elementti, yksi ulotteinen array. 170 00:08:42,440 --> 00:08:46,070 Ja tämä itse asiassa pätee jos on kolme ulottuvuutta tai neljä tai viisi. 171 00:08:46,070 --> 00:08:49,420 Se oikeastaan ​​vain ei moninkertaistaa kaikki indices-- 172 00:08:49,420 --> 00:08:51,130 tai kaikki koon specifiers-- yhdessä, 173 00:08:51,130 --> 00:08:53,480 ja juuri saada yksiulotteisen joukko, että koko. 174 00:08:53,480 --> 00:08:57,090 >> Mutta suhteen organisaatiossa ja visualisointi ja ihmisen käsitys, 175 00:08:57,090 --> 00:08:59,240 se voi olla paljon helpompaa työskennellä verkkoon 176 00:08:59,240 --> 00:09:02,980 jos olet työskennellyt peli kuten Ristinolla tai Battleship, 177 00:09:02,980 --> 00:09:05,179 tai jotain sellaista. 178 00:09:05,179 --> 00:09:06,970 Se on hyvä abstraktio, sen sijaan, 179 00:09:06,970 --> 00:09:09,340 ajatella Ristinolla Aluksella linja yhdeksän 180 00:09:09,340 --> 00:09:13,810 neliön tai taistelulaiva hallitus kuten linja 100 neliöitä. 181 00:09:13,810 --> 00:09:16,010 10 10 verkkoon tai kolme kolme ruudukko on luultavasti 182 00:09:16,010 --> 00:09:17,225 paljon enemmän helppo hahmottaa. 183 00:09:17,225 --> 00:09:19,820 184 00:09:19,820 --> 00:09:22,280 >> Nyt, jotain todella tärkeää noin taulukot. 185 00:09:22,280 --> 00:09:25,950 Voimme käsitellä jokaisen yksittäisen alkiota muuttujana. 186 00:09:25,950 --> 00:09:27,700 Näimme, että aiemmin kun olimme osoitetaan 187 00:09:27,700 --> 00:09:32,240 arvo True tiettyihin Booleans tai testaamalla niitä conditionals. 188 00:09:32,240 --> 00:09:35,960 Mutta emme voi kohdella koko paneelit itseään muuttujia. 189 00:09:35,960 --> 00:09:41,760 Emme voi esimerkiksi määrittää yhden ryhmän toiseen matriisi toimeksianto 190 00:09:41,760 --> 00:09:42,930 operaattori. 191 00:09:42,930 --> 00:09:44,640 Se ei ole oikeudellista C. 192 00:09:44,640 --> 00:09:47,920 >> Jos haluamme, sillä example-- mitä sivuuttaisimme siinä esimerkissä 193 00:09:47,920 --> 00:09:50,200 olisi kopioida yhden ryhmän toiseen. 194 00:09:50,200 --> 00:09:53,810 Jos haluamme tehdä niin, me todella täytyy käyttää silmukan kopioida 195 00:09:53,810 --> 00:09:56,550 kukin yksittäinen elementti kerrallaan. 196 00:09:56,550 --> 00:09:58,700 Tiedän, että se vähän aikaa vievää. 197 00:09:58,700 --> 00:10:04,022 >> Niinpä esimerkiksi, jos meillä olisi nämä pari riviä koodia, olisi tätä työtä? 198 00:10:04,022 --> 00:10:05,230 No, ei, se ei olisi, eikö? 199 00:10:05,230 --> 00:10:07,860 Koska me yritämme määrittää ruokaa baarissa. 200 00:10:07,860 --> 00:10:09,860 Se ei tule toimimaan, koska se on joukko, 201 00:10:09,860 --> 00:10:13,130 ja me vain kuvattu että se ei ole oikeudellista C. 202 00:10:13,130 --> 00:10:15,580 >> Sen sijaan, jos haluamme kopioida ruoka 203 00:10:15,580 --> 00:10:18,070 osaksi baari, joka on mitä yritämme tehdä täällä, 204 00:10:18,070 --> 00:10:19,970 tarvitsisimme syntaksi näin. 205 00:10:19,970 --> 00:10:24,170 Meillä varten silmukka, joka menee J on yhtä suuri kuin 0 enintään 5, 206 00:10:24,170 --> 00:10:28,390 ja me kasvattaa J jokaisen iterointia silmukka ja määrittää elementtejä niin. 207 00:10:28,390 --> 00:10:33,360 Tämä johtaisi baarissa myös on yksi, kaksi, kolme, neljä, viisi, 208 00:10:33,360 --> 00:10:36,730 mutta meidän on tehtävä se tämän hyvin hidas elementti-by-elementti tavalla, 209 00:10:36,730 --> 00:10:40,009 sijaan vain hieman kopiointi koko ryhmän. 210 00:10:40,009 --> 00:10:42,050 Muissa ohjelmointi kielet, enemmän uudempiin, 211 00:10:42,050 --> 00:10:45,610 voit itse asiassa tehdä juuri että yksinkertainen vastaa syntaksin. 212 00:10:45,610 --> 00:10:49,620 Mutta C, valitettavasti olemme ei saa tehdä. 213 00:10:49,620 --> 00:10:52,026 >> Nyt on olemassa yksi muu asia, jonka haluan mainita 214 00:10:52,026 --> 00:10:54,650 noin taulukot, jotka voivat olla hieman vähän hankala ensimmäisen kerran 215 00:10:54,650 --> 00:10:55,990 työskennellä heidän kanssaan. 216 00:10:55,990 --> 00:10:59,860 Keskustelimme video noin kiikaritähtäimellä, 217 00:10:59,860 --> 00:11:04,940 että useimmat muuttujat C, kun soitat ne toiminnot, johdetaan arvosta. 218 00:11:04,940 --> 00:11:08,620 Muistatko, mitä se tarkoittaa siirtää jotain arvon? 219 00:11:08,620 --> 00:11:12,570 Se tarkoittaa, että teet kopion muuttuja, joka on parhaillaan kulunut. 220 00:11:12,570 --> 00:11:16,290 Callee toiminto, funktio joka on vastaanottava muuttuja, 221 00:11:16,290 --> 00:11:17,730 ei saa itse muuttujan. 222 00:11:17,730 --> 00:11:20,850 Se saa oma paikallinen kopio työskennellä. 223 00:11:20,850 --> 00:11:24,070 >> Taulukot, tietenkin, do ei noudata tätä sääntöä. 224 00:11:24,070 --> 00:11:27,600 Pikemminkin, mitä me kutsumme tätä on ohi viitteenä. 225 00:11:27,600 --> 00:11:31,360 Callee todella ei saa jono. 226 00:11:31,360 --> 00:11:34,207 Se ei saa sen oma paikallinen kopio. 227 00:11:34,207 --> 00:11:36,040 Ja jos ajattelee se, että tämä on järkevää. 228 00:11:36,040 --> 00:11:39,750 Jos paneelit ovat todella suuria, se vie niin paljon aikaa ja vaivaa 229 00:11:39,750 --> 00:11:44,470 tehdä kopion joukko 100 tai 1000 tai 10000 elementtejä, 230 00:11:44,470 --> 00:11:48,290 että se ei ole sen arvoista toimiakseen saada jäljennös niistä, 231 00:11:48,290 --> 00:11:51,037 tehdä töitä sen kanssa, ja sitten vain tapahduttava jäljennös; 232 00:11:51,037 --> 00:11:53,120 sen ei tarvitse olla se roikkuu ympäri enää. 233 00:11:53,120 --> 00:11:54,710 >> Koska paneelit ovat joitakin iso ja raskas, 234 00:11:54,710 --> 00:11:56,001 me vain siirtää ne viittaamalla. 235 00:11:56,001 --> 00:12:01,210 Me vain luottaa siihen, että toiminto on, eivät riko mitään. 236 00:12:01,210 --> 00:12:03,010 Joten se ei itse saada jono. 237 00:12:03,010 --> 00:12:05,290 Se ei saa oma paikallinen kopio. 238 00:12:05,290 --> 00:12:07,170 >> Joten mitä tämä tarkoittaa, silloin, kun soiton 239 00:12:07,170 --> 00:12:08,970 manipuloi taulukon alkiot? 240 00:12:08,970 --> 00:12:10,780 Mitä tapahtuu? 241 00:12:10,780 --> 00:12:13,210 Nyt me kiilto yli miksi juuri tämä 242 00:12:13,210 --> 00:12:15,320 tapahtuu, miksi taulukot välitetään viittaamalla 243 00:12:15,320 --> 00:12:17,810 ja kaikki muu on ohi arvo. 244 00:12:17,810 --> 00:12:20,470 Mutta lupaan teille, me palata ja antaa sinulle vastauksen 245 00:12:20,470 --> 00:12:23,750 tähän myöhemmässä video. 246 00:12:23,750 --> 00:12:28,110 >> Tässä yksi enemmän liikuntaa sinulle ennen kuin paketoida asioita paneelit. 247 00:12:28,110 --> 00:12:31,400 Nippu koodia täällä, se on ei erityisen hyvä tyyli, 248 00:12:31,400 --> 00:12:33,400 vain Teen että varoitus. 249 00:12:33,400 --> 00:12:36,660 Ei ole kommentteja täällä, joka on melko huono muoto. 250 00:12:36,660 --> 00:12:39,750 Mutta se on vain koska halusin olla pystyä sopimaan kaiken ruudulla. 251 00:12:39,750 --> 00:12:44,360 >> Ylimpänä, voit nähdä, että minulla on kaksi toimintoa ilmoitukset asettaa array 252 00:12:44,360 --> 00:12:45,820 ja asettaa int. 253 00:12:45,820 --> 00:12:49,680 Aseta array ilmeisesti vie array neljä kokonaislukuja sen panos. 254 00:12:49,680 --> 00:12:52,767 Ja joukko int ilmeisesti vie yksi kokonaisluku sen panos. 255 00:12:52,767 --> 00:12:54,350 Mutta molemmat heistä ei ole tuotos. 256 00:12:54,350 --> 00:12:57,689 Lähtö, paluu kirjoitat, jokainen on mitätön. 257 00:12:57,689 --> 00:12:59,480 Main, meillä pari riviä koodia. 258 00:12:59,480 --> 00:13:02,730 Me julistamme kokonaisluku muuttuja nimeltään ja määrittää sen arvo 10. 259 00:13:02,730 --> 00:13:07,080 Me julistamme johdosta neljä kokonaislukuja nimeltään B ja antaa elementit 0, 1, 260 00:13:07,080 --> 00:13:08,730 2, ja 3, vastaavasti. 261 00:13:08,730 --> 00:13:12,190 Sitten meillä on asettamiseen int ja asettamiseen array. 262 00:13:12,190 --> 00:13:15,910 Määritelmät asettaa array ja asettaa int ovat alhaalla, alareunassa. 263 00:13:15,910 --> 00:13:17,640 >> Ja niin, taas, pyydän teitä kysymyksen. 264 00:13:17,640 --> 00:13:20,770 Mikä saa tulostaa täällä lopussa Main? 265 00:13:20,770 --> 00:13:23,020 On tuloste col. Olen tulostamalla kaksi kokonaislukua. 266 00:13:23,020 --> 00:13:28,010 Olen tulostamalla sisältöä ja sisältö B hakasulku 0. 267 00:13:28,010 --> 00:13:29,880 Tauko video täällä ja kestää minuutin. 268 00:13:29,880 --> 00:13:35,482 Voitko selvittää, mitä tämä toiminto tulostaa lopussa? 269 00:13:35,482 --> 00:13:38,190 Toivottavasti jos muistatte erottelu ohi arvo 270 00:13:38,190 --> 00:13:41,680 ja ohi viittaus, tämä ongelma ei ollut liian hankala sinulle. 271 00:13:41,680 --> 00:13:44,130 Ja vastaus olisit ovat löytäneet on tämä. 272 00:13:44,130 --> 00:13:47,660 Jos et ole aivan varma siitä, miksi näin on, ota toinen, 273 00:13:47,660 --> 00:13:50,620 palata, tarkastella, mitä olin juuri keskustelemme siitä kulkee paneelit 274 00:13:50,620 --> 00:13:53,450 viittaamalla, vs. kulkee muiden muuttujien arvon, 275 00:13:53,450 --> 00:13:56,680 ja toivottavasti, se tulee tehdä hieman enemmän järkeä. 276 00:13:56,680 --> 00:13:59,760 >> Olen Doug Lloyd, ja tämä on CS50. 277 00:13:59,760 --> 00:14:01,467