1 00:00:00,000 --> 00:00:02,670 >> [Teemana musiikki] 2 00:00:02,670 --> 00:00:11,834 3 00:00:11,834 --> 00:00:13,365 >> SPEAKER 1: Hei kaikki. 4 00:00:13,365 --> 00:00:14,365 Tervetuloa takaisin osiosta. 5 00:00:14,365 --> 00:00:15,700 6 00:00:15,700 --> 00:00:18,700 Ihana päivä out-- minkä vuoksi olen Varmasti on vain neljä teistä täällä 7 00:00:18,700 --> 00:00:21,180 ja ei meidän tavallinen pakkaus. 8 00:00:21,180 --> 00:00:22,670 Olen ollut sairaana tänä viikonloppuna. 9 00:00:22,670 --> 00:00:24,294 Joten minulla ei ole Starburst teitä. 10 00:00:24,294 --> 00:00:26,400 Ja saatan alkaa yskiminen hirveän koko tämän. 11 00:00:26,400 --> 00:00:27,790 Joten vastaa minulle. 12 00:00:27,790 --> 00:00:30,624 Aion todella yrittää ja saada tätä kautta ensin, 13 00:00:30,624 --> 00:00:32,290 vaikka, ennen kuin minulla on yskää hyökkäys. 14 00:00:32,290 --> 00:00:33,410 15 00:00:33,410 --> 00:00:37,390 Mutta vain olla helppoa minua pikku bit-- siinä kaikki pyydän. 16 00:00:37,390 --> 00:00:39,370 17 00:00:39,370 --> 00:00:44,289 >> Joten meidän asialistalla today-- vain reminder-- tietokilpailun on ensi viikolla. 18 00:00:44,289 --> 00:00:46,830 Kerroin teille viime viikolla, joten se ei sinut kiinni kenet. 19 00:00:46,830 --> 00:00:47,954 Joten olen muistuttamassa teitä uudelleen. 20 00:00:47,954 --> 00:00:49,180 Ensi viikolla tietokilpailun. 21 00:00:49,180 --> 00:00:52,730 Tätä varten ensi viikolla osa tulee olemaan paljon enemmän 22 00:00:52,730 --> 00:00:55,180 of-- Yritän työtä joissakin tarkastelun. 23 00:00:55,180 --> 00:00:58,130 Joten jos te voisi auttaa minua lähettämällä minulle 24 00:00:58,130 --> 00:01:00,990 asioita, että olet tyytyväinen kanssa, että olet huolissasi, 25 00:01:00,990 --> 00:01:03,530 aiheita, jotka haluat varten minua kattamaan, se olisi hienoa. 26 00:01:03,530 --> 00:01:05,740 Joten en voi kokeilla ja työskennellä heidät meidän jakso ensi viikolla 27 00:01:05,740 --> 00:01:11,540 tai lähettää sinulle lisämateriaalia tai prep että et välttämättä saa muualta. 28 00:01:11,540 --> 00:01:12,150 >> Yeah! 29 00:01:12,150 --> 00:01:13,520 Yhä useammat ihmiset ovat tulossa! 30 00:01:13,520 --> 00:01:17,320 Ajattelin, tein niin huonosti viime viikolla, että kukaan ei halua tulla takaisin? 31 00:01:17,320 --> 00:01:18,065 Minua pelottaa. 32 00:01:18,065 --> 00:01:18,892 33 00:01:18,892 --> 00:01:21,100 Joten muut kolme asiaa että aiomme mennä yli 34 00:01:21,100 --> 00:01:24,850 ovat uudelleenohjaus, tiedoston I / O, ja Sitten osoittimet ja dynaaminen muisti. 35 00:01:24,850 --> 00:01:29,160 Olen varma, että olet kaikki erittäin innoissaan pointers-- kaikkien suosikki aihe, 36 00:01:29,160 --> 00:01:31,310 niin helppo ymmärtää. 37 00:01:31,310 --> 00:01:33,130 Olen varma, että te kaikki sai sen? 38 00:01:33,130 --> 00:01:39,510 >> Joten asiat ensin, redirection-- tämä on pohjimmiltaan vain tapa 39 00:01:39,510 --> 00:01:42,920 valvoa, miten syötät asioita omaan ohjelmaan, 40 00:01:42,920 --> 00:01:44,606 miten lähtö asioita ohjelmaan. 41 00:01:44,606 --> 00:01:46,980 Tärkeimmistä tavoista, että te ovat vuorovaikutuksessa sen kanssa 42 00:01:46,980 --> 00:01:51,650 on vain kautta standardi ulos teidän print screen täällä. 43 00:01:51,650 --> 00:01:55,940 Mutta on olemassa keinoja pipe-- kuten näemme täällä 44 00:01:55,940 --> 00:01:58,980 on yksi meidän words-- laatuaan putken, että tietojen 45 00:01:58,980 --> 00:02:02,850 tai että tiedot tiedostoon tiedostosta. 46 00:02:02,850 --> 00:02:05,820 Se on vain erilaisia ​​tapoja saada asioita ohjelmaasi 47 00:02:05,820 --> 00:02:10,681 ja ulos ohjelman sijasta vain tulostaa ne tähän näyttöön 48 00:02:10,681 --> 00:02:12,430 tai syöttämällä asiat komentoriviltä. 49 00:02:12,430 --> 00:02:13,760 50 00:02:13,760 --> 00:02:18,030 >> Joten ensimmäinen on pieni suurempi kuin sirkumfleksi. 51 00:02:18,030 --> 00:02:22,085 Joten output-- se vain tulostaa lähtö tiedostoon sijaan näytön. 52 00:02:22,085 --> 00:02:23,620 53 00:02:23,620 --> 00:02:29,500 Joten jos sinulla on ollut jotain, joka tulostetaan "Hei, maailma!" näyttöön, 54 00:02:29,500 --> 00:02:32,400 jos laitat sen sijaan ja output.text, että 55 00:02:32,400 --> 00:02:35,220 luo tämän tiedoston nimeltä output.text. 56 00:02:35,220 --> 00:02:38,550 Ja kun avaat sen, se tulee sanoa "Hei, maailma!" siellä. 57 00:02:38,550 --> 00:02:41,410 Tämä voi olla erittäin hyödyllinen Jos sinulla on ton virheitä 58 00:02:41,410 --> 00:02:43,430 todellisuudessa, kuten näemme tässä yksi. 59 00:02:43,430 --> 00:02:46,810 Jos teet kaksi Järjestelmäkohdistin, se tulee tulostaa virheilmoituksia. 60 00:02:46,810 --> 00:02:52,090 >> Joten jos sinulla on ongelma kääntämiseen, se on paljon virheitä 61 00:02:52,090 --> 00:02:56,770 ja olet juuttua yrittää Voit selata oman komentorivin 62 00:02:56,770 --> 00:02:59,110 läpi kaikki ne, voit vain tulostaa ne tiedostoon, 63 00:02:59,110 --> 00:03:02,130 avata tiedostoa siten, että voit selata niitä helpommin. 64 00:03:02,130 --> 00:03:05,160 Olen itse käyttänyt tätä paljon, kun olin virheenkorjaus 65 00:03:05,160 --> 00:03:07,970 Oma 181 psets koneen oppimiseen. 66 00:03:07,970 --> 00:03:10,000 Joten se voi olla erittäin hyödyllistä myöhemmin. 67 00:03:10,000 --> 00:03:18,370 On myös hyödyllistä, jos sinulla on ohjelman että ehkä on tuottaa kirjasto 68 00:03:18,370 --> 00:03:20,430 tai tuottaa joukon kokoa narulla, ja te 69 00:03:20,430 --> 00:03:22,846 on voitava nähdä, että se tuottaa niitä oikein. 70 00:03:22,846 --> 00:03:23,860 71 00:03:23,860 --> 00:03:25,160 Tämä on tapa tehdä se. 72 00:03:25,160 --> 00:03:28,280 >> Joten jos tulostaa ne tiedostoon, sinun voi helpommin tarkastella niitä, eikö? 73 00:03:28,280 --> 00:03:30,930 Versus yrittää vierittää kautta komentoriviltä. 74 00:03:30,930 --> 00:03:32,740 75 00:03:32,740 --> 00:03:35,820 Ja sitten yksi asia huomata on, että vain suurempi 76 00:03:35,820 --> 00:03:40,090 kuin Järjestelmäkohdistin, jos kirjoitat tiedostoon, joka jo exists-- 77 00:03:40,090 --> 00:03:44,990 niin kuin jos meillä oli tämä ensimmäinen aika, laitamme sen output.text, 78 00:03:44,990 --> 00:03:49,970 ja sitten meillä oli toinen ohjelma että painettu tätä ohjelmaa kaksi 79 00:03:49,970 --> 00:03:54,250 ja teki enemmän kuin output.text, se ohittaa that-- niin 80 00:03:54,250 --> 00:03:56,715 korvata mitä oli koskaan että tiedosto aluksi. 81 00:03:56,715 --> 00:03:57,720 82 00:03:57,720 --> 00:04:00,750 >> Joten jos haluat liittää tiedostoon, kuten näemme täällä, 83 00:04:00,750 --> 00:04:04,779 et vain kaksi enemmän kuin merkkejä. 84 00:04:04,779 --> 00:04:05,820 Ja se liittää se. 85 00:04:05,820 --> 00:04:06,750 Se ei korvaa sitä. 86 00:04:06,750 --> 00:04:09,770 Joten jos sinun täytyy käyttää useita ohjelmat ja sellainen pitää 87 00:04:09,770 --> 00:04:13,170 Seuraa mitä ne kaikki ovat palaavat sinulle tiedoston, 88 00:04:13,170 --> 00:04:14,190 se on tapa tehdä se. 89 00:04:14,190 --> 00:04:17,231 Jos et välitä mitä teidän tiedosto ja se saa korvata, 90 00:04:17,231 --> 00:04:19,204 voit vain käyttää yhden yli. 91 00:04:19,204 --> 00:04:20,600 Onko järkeä kaikille? 92 00:04:20,600 --> 00:04:23,205 93 00:04:23,205 --> 00:04:31,140 >> Yleisö: Kuin piste slash Hei suurempi kuin tuotanto dot tekstiä, kuten kahdesti, 94 00:04:31,140 --> 00:04:34,030 se tulee vain vain näytä lähtö dot tekstiä toisen time-- 95 00:04:34,030 --> 00:04:34,810 >> SPEAKER 1: Oikea. 96 00:04:34,810 --> 00:04:40,450 Joten olisi pohjimmiltaan vain täysin korvata mikä oli siellä aluksi. 97 00:04:40,450 --> 00:04:44,260 Jos tämä tiedosto tästä, output.text jo 98 00:04:44,260 --> 00:04:48,230 olemassa, periaatteessa kutsuttakoon että jälleen yhdellä suurempi 99 00:04:48,230 --> 00:04:51,920 kuin voit vain ajatella sitä niin kuin se korvasi tiedoston. 100 00:04:51,920 --> 00:04:54,824 Kuten kun säästät Word asiakirja ja et tallenna nimellä 101 00:04:54,824 --> 00:04:57,365 ja pidät sama nimi, ja se täysin korvaa it-- 102 00:04:57,365 --> 00:04:58,680 Tämä on samanlainen asia. 103 00:04:58,680 --> 00:05:00,380 104 00:05:00,380 --> 00:05:03,550 Kellään mitään kysymyksiä vain syöttöä tiedoston? 105 00:05:03,550 --> 00:05:05,051 106 00:05:05,051 --> 00:05:05,550 Mahtava. 107 00:05:05,550 --> 00:05:11,440 >> Joten ilmeisesti, jos kääntää nuolen suuntaan, se voi tehdä tulo. 108 00:05:11,440 --> 00:05:13,090 109 00:05:13,090 --> 00:05:19,960 Joten kun te oli kuten Caesar tai Visioneer 110 00:05:19,960 --> 00:05:23,195 ja sinun piti syöttää jotain, sinulla oli komentorivillä 111 00:05:23,195 --> 00:05:24,960 että todellisuudessa syötetään sitä. 112 00:05:24,960 --> 00:05:27,410 Tämä on toinen tapa tehdä se. 113 00:05:27,410 --> 00:05:30,520 Joten sen sijaan että odotettaisiin ja komentorivi, 114 00:05:30,520 --> 00:05:33,800 kuten silloin, kun kysytään viestin Caesar tai Visioneer, 115 00:05:33,800 --> 00:05:36,490 jos sinulla on ollut tekstitiedosto joka oli viesti, 116 00:05:36,490 --> 00:05:38,280 voit vain kirjoittaa sen, että. 117 00:05:38,280 --> 00:05:44,930 >> Joten jos tämä oli kuin piste slash Caesar 3 vähemmän kuin nuoli syöttää tekstiä, joka 118 00:05:44,930 --> 00:05:47,240 on viestisi, että kulkisi hienosti. 119 00:05:47,240 --> 00:05:51,310 120 00:05:51,310 --> 00:05:54,020 Kun Caesar ohjelma itse pyysi käyttäjän syötettä, 121 00:05:54,020 --> 00:05:57,360 se olisi jo sen vuoksi olet kirjoittanut tähän tiedostoon. 122 00:05:57,360 --> 00:05:58,830 Se on vain yksi tapa. 123 00:05:58,830 --> 00:06:02,445 Vain käänteinen output-- vain syöttää tietosi. 124 00:06:02,445 --> 00:06:04,570 125 00:06:04,570 --> 00:06:06,680 >> Ja sitten viimeinen on putki. 126 00:06:06,680 --> 00:06:07,780 Joten tämä on aika siistiä. 127 00:06:07,780 --> 00:06:09,890 Koska sen avulla voit ottaa tuotoksen yhden 128 00:06:09,890 --> 00:06:13,695 ohjelma ja laittaa sen tulo toiseen ohjelmaan. 129 00:06:13,695 --> 00:06:15,250 130 00:06:15,250 --> 00:06:18,630 En tiedä, jos joku teistä pelataan Decipher 131 00:06:18,630 --> 00:06:20,590 että CS50 saattaa olla antanut sinulle, mutta se 132 00:06:20,590 --> 00:06:27,380 voit ottaa joitakin näyte tiedostoon, kirjoita se salauksen, 133 00:06:27,380 --> 00:06:30,350 ja sitten sieltä kirjoita että teidän salauksen 134 00:06:30,350 --> 00:06:32,470 varmista, että se osoittautui sama. 135 00:06:32,470 --> 00:06:34,050 Joten se on tavallaan kuin kolmitie silmukka. 136 00:06:34,050 --> 00:06:38,400 137 00:06:38,400 --> 00:06:39,423 Tsemppiä. 138 00:06:39,423 --> 00:06:41,785 >> Yleisö: Jos ohjelma on useita tuloja, 139 00:06:41,785 --> 00:06:47,646 on olemassa tapa kertoa se, joka syöttää käyttää tekstitiedosto tai lähtö? 140 00:06:47,646 --> 00:06:49,325 >> SPEAKER 1: Se on useita panoksia. 141 00:06:49,325 --> 00:06:52,190 142 00:06:52,190 --> 00:07:00,430 Mikä tahansa tiedoston sinun input-- kun se on pyytää tulo että ensimmäistä kertaa, se on 143 00:07:00,430 --> 00:07:03,240 menossa olettaa, luulen, se on menee putkeen koko tiedoston. 144 00:07:03,240 --> 00:07:03,979 145 00:07:03,979 --> 00:07:07,145 Joten jos sinulla on useita tuloja, olet aiotaan putkiston useita tiedostoja. 146 00:07:07,145 --> 00:07:08,190 147 00:07:08,190 --> 00:07:12,390 Joten jos olet pyytänyt viestejä kolme kertaa koodissa, 148 00:07:12,390 --> 00:07:15,230 aiot olla laskemisesta kolmessa eri tiedostoja. 149 00:07:15,230 --> 00:07:15,980 Ja se saa hullu. 150 00:07:15,980 --> 00:07:18,188 Ja sinun ei tarvitse pelätä, että juuri nyt. 151 00:07:18,188 --> 00:07:19,150 Mutta se ajatus. 152 00:07:19,150 --> 00:07:20,680 153 00:07:20,680 --> 00:07:26,822 >> Niin joo, putki on vain lähtö yksi Ohjelma käyttää tulo toiseen. 154 00:07:26,822 --> 00:07:27,665 Jokainen hyvä siellä? 155 00:07:27,665 --> 00:07:28,565 156 00:07:28,565 --> 00:07:29,065 Cool. 157 00:07:29,065 --> 00:07:30,170 158 00:07:30,170 --> 00:07:30,932 OK. 159 00:07:30,932 --> 00:07:32,890 Luultavasti ei ole tehdä liikaa sen kanssa. 160 00:07:32,890 --> 00:07:35,670 Mutta sinun pitäisi ymmärtää miten voit käyttää tätä. 161 00:07:35,670 --> 00:07:38,910 Ja on olemassa joitakin tapauksia, jotka saatat haluta käyttää sitä. 162 00:07:38,910 --> 00:07:44,590 >> Joten tiedosto I / O-- tiedän mitä olet saying-- olemme tottuneet lukeminen 163 00:07:44,590 --> 00:07:50,500 ja kirjoitan meidän näytön siellä, joka on standardi ja vakio ulos. 164 00:07:50,500 --> 00:07:54,370 Ja sitähän te olleet tekee alusta lähtien luokan täällä. 165 00:07:54,370 --> 00:07:58,220 Mutta voit myös lukea ja kirjoittaa tiedostoja, joka on kaikkien tiedostojen I / O-- niin tiedostoon tulo, 166 00:07:58,220 --> 00:07:59,850 tuotos on kaikki se edustaa. 167 00:07:59,850 --> 00:08:00,930 168 00:08:00,930 --> 00:08:04,360 Joten tämä tarkoittaa periaatteessa sitä, että voit tallentaa tietoja nyt. 169 00:08:04,360 --> 00:08:08,460 >> Kun vain tulostaa sen näyttö, se on periaatteessa mennyt, eikö? 170 00:08:08,460 --> 00:08:12,507 Heti kun teet "Hei maailma "ja run" Hello world " 171 00:08:12,507 --> 00:08:14,090 se tulostaa "Hello World" näyttö. 172 00:08:14,090 --> 00:08:16,370 Mutta et voi oikeastaan ​​tehdä mitään sen sieltä. 173 00:08:16,370 --> 00:08:18,950 Jos tallentaa tekstin tiedosto, sitten yhtäkkiä 174 00:08:18,950 --> 00:08:22,789 sinulla on tämä tieto, että et saa manipuloida tai siirtää sen tiedoston, 175 00:08:22,789 --> 00:08:24,080 tai laita se ohjelma myöhemmin. 176 00:08:24,080 --> 00:08:26,370 177 00:08:26,370 --> 00:08:29,290 Yksi syy miksi me teemme tätä vain 178 00:08:29,290 --> 00:08:31,560 kuten tapa tallentaa tiedot myöhempää käyttöä varten. 179 00:08:31,560 --> 00:08:34,790 180 00:08:34,790 --> 00:08:37,279 >> Minulla on pari askelta täällä vain kävelemällä standardi 181 00:08:37,279 --> 00:08:39,450 I / O. Vaiheessa yksi, voit luotava viite 182 00:08:39,450 --> 00:08:43,480 tiedostoon kaikki Caps FILE tähti tiedosto. 183 00:08:43,480 --> 00:08:45,740 Niin että luo osoitin tiedostoon. 184 00:08:45,740 --> 00:08:48,080 185 00:08:48,080 --> 00:08:49,650 Niin haluat avata sen. 186 00:08:49,650 --> 00:08:52,940 Ja te sanotte, kirjaimellisesti, vain tiedoston yhtä kuin fopen. 187 00:08:52,940 --> 00:08:57,400 Ja tämä tulee palauttaa osoitin tiedoston juuri avattu. 188 00:08:57,400 --> 00:08:59,610 189 00:08:59,610 --> 00:09:01,460 Olen nähnyt pari sinua pojat virka. 190 00:09:01,460 --> 00:09:07,400 >> Mutta yksi niistä asioista, on remember-- osoittimet 191 00:09:07,400 --> 00:09:10,409 voi olla joitakin osoite tai null, eikö? 192 00:09:10,409 --> 00:09:12,700 Jos joskus on tapaus, jossa jotain voi palauttaa null, 193 00:09:12,700 --> 00:09:14,990 mitä meidän täytyy tehdä ennen kuin me koskaan käytä sitä? 194 00:09:14,990 --> 00:09:16,220 195 00:09:16,220 --> 00:09:19,000 Meidän täytyy tarkistaa, jos se null vai ei, eikö? 196 00:09:19,000 --> 00:09:23,600 Koska jotkut ehkä pitänyt ongelma, jossa mikä tahansa kohde 197 00:09:23,600 --> 00:09:26,110 oltiin palautetaan purkautuminen oli nolla. 198 00:09:26,110 --> 00:09:28,170 Yritit suorittaa jonkin toiminnon päälle. 199 00:09:28,170 --> 00:09:29,770 Ja tietokoneen sivuston vialliseksi. 200 00:09:29,770 --> 00:09:30,725 Oikea? 201 00:09:30,725 --> 00:09:33,640 Lyön vetoa pari sinua ehkä ollut, että kysymys. 202 00:09:33,640 --> 00:09:38,890 >> Joten fopen, fopen on joko palata osoitin tiedoston, 203 00:09:38,890 --> 00:09:41,200 tai jos jokin menee pieleen, se tulee palauttaa null. 204 00:09:41,200 --> 00:09:45,980 Joten sinun täytyy aina tarkistaa että se ei ole palannut null 205 00:09:45,980 --> 00:09:47,880 ennen kuin yrität tehdä mitään muuta. 206 00:09:47,880 --> 00:09:49,110 207 00:09:49,110 --> 00:09:51,974 Tämä on kuin standardi paradigma että olet menossa on täällä. 208 00:09:51,974 --> 00:09:54,390 Jos on joskus mahdollisuus, että jotain voisi palata null, 209 00:09:54,390 --> 00:09:56,590 varmista se ei ennen kuin jatkat. 210 00:09:56,590 --> 00:09:58,911 Muuten, olet menossa saada ihana sivusto vikoja. 211 00:09:58,911 --> 00:10:00,410 Ja kukaan ei tykkää käsitellä näitä. 212 00:10:00,410 --> 00:10:03,180 213 00:10:03,180 --> 00:10:06,410 >> Niin näemme täällä, ensimmäinen argumentti on vain tiedoston polku. 214 00:10:06,410 --> 00:10:09,380 Jos tiedosto ei ole olemassa, se tulee luoda tiedoston. 215 00:10:09,380 --> 00:10:10,713 Ja se vain tulee olemaan tyhjä. 216 00:10:10,713 --> 00:10:10,789 217 00:10:10,789 --> 00:10:13,080 Ja sitten toinen argumentti on tila, jonka haluat. 218 00:10:13,080 --> 00:10:14,610 Haluammeko lukea tämän tiedoston? 219 00:10:14,610 --> 00:10:15,560 Haluatko kirjoittaa siitä? 220 00:10:15,560 --> 00:10:16,476 Haluatko liittää? 221 00:10:16,476 --> 00:10:17,600 222 00:10:17,600 --> 00:10:20,670 Joten oikeastaan ​​mitä vain said-- Jos tiedostoa ei ole olemassa 223 00:10:20,670 --> 00:10:23,400 ja yrität lukea se, se tulee heittää virhe. 224 00:10:23,400 --> 00:10:26,890 Jos tiedosto name-- like jos file.text ei ole vielä olemassa 225 00:10:26,890 --> 00:10:29,250 ja haluat kirjoittaa sen, se luo 226 00:10:29,250 --> 00:10:33,110 tyhjä tiedosto nimeltä file.text sinulle. 227 00:10:33,110 --> 00:10:36,612 Ja jos haluat liittää, sinun pitäisi tehdä sama asia. 228 00:10:36,612 --> 00:10:38,081 Onko järkeä? 229 00:10:38,081 --> 00:10:40,580 Jos yrität lukea tiedosto, joka ei vielä ole olemassa, 230 00:10:40,580 --> 00:10:41,590 se tulee heittää virhe. 231 00:10:41,590 --> 00:10:44,340 Muuten, se luo tiedoston voit tehdä mitä haluat sen. 232 00:10:44,340 --> 00:10:45,970 233 00:10:45,970 --> 00:10:46,470 Cool. 234 00:10:46,470 --> 00:10:47,510 235 00:10:47,510 --> 00:10:48,880 Nyt voimme lukea tiedostosta. 236 00:10:48,880 --> 00:10:52,570 Ja tämä on vain sellainen menossa läpi eri toimintoja 237 00:10:52,570 --> 00:10:58,980 että meillä on tiedostojen I / O. Tämä tahto olla tarpeen tämän viikon PSET, 238 00:10:58,980 --> 00:11:00,505 jos muistan oikein. 239 00:11:00,505 --> 00:11:02,880 Kyllä, se ehdottomasti on tarpeen tällä viikolla PSET. 240 00:11:02,880 --> 00:11:04,260 241 00:11:04,260 --> 00:11:07,010 Joten fgetc palauttaa seuraavan merkin. 242 00:11:07,010 --> 00:11:08,350 243 00:11:08,350 --> 00:11:10,300 fgets palaa aivan rivi tekstiä. 244 00:11:10,300 --> 00:11:11,790 245 00:11:11,790 --> 00:11:14,610 Se palaa mitään asti uusi linja, ja se murtaa. 246 00:11:14,610 --> 00:11:15,950 247 00:11:15,950 --> 00:11:18,700 Joten fread lukee tiettyjä tavujen ja asettaa ne 248 00:11:18,700 --> 00:11:20,700 taulukkoon, joka on jotain saatat 249 00:11:20,700 --> 00:11:25,485 haluat tehdä uudelleen size-- saattaisi olla hyödyllistä. 250 00:11:25,485 --> 00:11:26,550 251 00:11:26,550 --> 00:11:29,290 >> Kuinka moni on lukenut PSET spec, muuten? 252 00:11:29,290 --> 00:11:30,980 253 00:11:30,980 --> 00:11:32,261 OK. 254 00:11:32,261 --> 00:11:32,760 [Äänetön] 255 00:11:32,760 --> 00:11:35,380 256 00:11:35,380 --> 00:11:36,580 >> SPEAKER 1: OK. 257 00:11:36,580 --> 00:11:37,530 Selvä. 258 00:11:37,530 --> 00:11:41,940 Ehdottomasti lukea that-- se on hauska PSET. 259 00:11:41,940 --> 00:11:51,320 Saat palauttaa poistetun muisti card-- todella jännittävä, kun se toimii. 260 00:11:51,320 --> 00:11:54,100 Mutta ehdottomasti, alkaa lukea sitä. 261 00:11:54,100 --> 00:11:56,280 Tule juttelemaan, jos on kysyttävää siitä. 262 00:11:56,280 --> 00:11:59,290 >> OK, niin kuten sanoin, fread lukee tietyn määrän tavuja. 263 00:11:59,290 --> 00:12:01,340 264 00:12:01,340 --> 00:12:03,590 Se on jonkin verran mielivaltainen määrä että aiot asettaa. 265 00:12:03,590 --> 00:12:05,990 266 00:12:05,990 --> 00:12:08,260 Ja sitten fseek vain liikkuu tiettyyn asentoon. 267 00:12:08,260 --> 00:12:11,150 Joten ehkä et välitä noin seuraavat 10 tavua. 268 00:12:11,150 --> 00:12:12,880 Sinä vain haluat siirtyä eteenpäin. 269 00:12:12,880 --> 00:12:14,030 Et välitä niistä. 270 00:12:14,030 --> 00:12:16,280 Haluatko lukea alkaen tavu 11. 271 00:12:16,280 --> 00:12:18,252 fseek voit tehdä sen. 272 00:12:18,252 --> 00:12:20,710 Joten sen avulla voit olla valikoiva mitä luet. 273 00:12:20,710 --> 00:12:25,880 Koska fgetc, fgets ja fread Lue tietystä paikasta tiedoston. 274 00:12:25,880 --> 00:12:27,260 275 00:12:27,260 --> 00:12:35,090 >> Tapa ajatella tätä on, jos tämä on meidän tiedoston, kun avaat sen, 276 00:12:35,090 --> 00:12:41,140 sinulla on tämä asema tiedostoon joka alkaa alussa. 277 00:12:41,140 --> 00:12:45,040 Aina kun soittaa fgetc, fgetf, tai fread, 278 00:12:45,040 --> 00:12:48,875 se tulee aloittaa Tämän asennon merkin. 279 00:12:48,875 --> 00:12:51,340 280 00:12:51,340 --> 00:12:55,245 Sanotaan haluat vain lukea tämä kimpale muistia tänne. 281 00:12:55,245 --> 00:12:56,300 282 00:12:56,300 --> 00:12:57,960 Et voi vain soittaa. 283 00:12:57,960 --> 00:13:02,430 Sinun täytyy etsiä tänne ja sitten lukea sieltä 284 00:13:02,430 --> 00:13:06,540 tai lukea, saa tai getc, riippuen siitä, mitä haluat. 285 00:13:06,540 --> 00:13:09,310 Joten etsiä vain voit skip osia muistia. 286 00:13:09,310 --> 00:13:11,590 Ja se on ainoa Näin voit ohittaa asioita 287 00:13:11,590 --> 00:13:14,012 lukematta niitä omaan puskuriin. 288 00:13:14,012 --> 00:13:15,470 Onko järkeä kaikille? 289 00:13:15,470 --> 00:13:21,110 290 00:13:21,110 --> 00:13:24,780 >> Ilmeisesti siellä on paljon rinnakkaisia ​​here-- 291 00:13:24,780 --> 00:13:27,780 Meidän lähtö tai tulo uudelleenohjaus, olet lukea ja kirjoittaa. 292 00:13:27,780 --> 00:13:31,800 Joten fputc vain kirjoittaa merkki tiedostoon. 293 00:13:31,800 --> 00:13:33,655 fputs kirjoittaa linja. 294 00:13:33,655 --> 00:13:35,030 295 00:13:35,030 --> 00:13:37,420 Fprintf tulostaa alustettu tuotos. 296 00:13:37,420 --> 00:13:41,190 Joten jos sinulla on välilehdet, tai tila, tai vaikka mitä. 297 00:13:41,190 --> 00:13:44,180 Ja sitten fwrite kirjoittaa joitakin joukko tavua tiedostoon. 298 00:13:44,180 --> 00:13:48,860 Joten tämä on samalla tavalla fwrite ja fread ovat analogisia 299 00:13:48,860 --> 00:13:57,550 opposites-- fgets, fputs, ja Sitten fputc ja fgetc-- paljon 300 00:13:57,550 --> 00:14:00,710 hullu, nopea asioita. 301 00:14:00,710 --> 00:14:05,300 >> Juuri sellainen pitää tämän handy-- sinulla on eri aikoina 302 00:14:05,300 --> 00:14:08,680 jossa ehkä haluat vain yksi merkki kerrallaan. 303 00:14:08,680 --> 00:14:09,890 Ehkä haluat koko linjan. 304 00:14:09,890 --> 00:14:14,320 Teidän sanakirja pset-- joka on kaksi psets, 305 00:14:14,320 --> 00:14:19,690 Uskon, annamme sinulle koko sanakirja tekstimuodossa 306 00:14:19,690 --> 00:14:22,252 jonka jokainen sana erotettu linja. 307 00:14:22,252 --> 00:14:24,210 Joten jos olet halunnut lukea yksi sana kerrallaan, 308 00:14:24,210 --> 00:14:31,769 mitä voisitte käyttää jos luet ja he kaikki erotettiin uusia linjoja, 309 00:14:31,769 --> 00:14:33,310 ja haluat vain yhden sanan kerrallaan? 310 00:14:33,310 --> 00:14:35,320 311 00:14:35,320 --> 00:14:36,040 >> Yleisö: fgets 312 00:14:36,040 --> 00:14:36,748 >> SPEAKER 1: Oikea. 313 00:14:36,748 --> 00:14:39,960 Fgets-- koska se palauttaa mikä on yhdelle riville. 314 00:14:39,960 --> 00:14:42,750 Ja jos jokainen sana on sen oma linja, voimme käyttää fgets. 315 00:14:42,750 --> 00:14:44,511 316 00:14:44,511 --> 00:14:45,010 Cool. 317 00:14:45,010 --> 00:14:47,290 Onko järkeä, kaikille? 318 00:14:47,290 --> 00:14:48,020 Cool? 319 00:14:48,020 --> 00:14:50,020 Joo, me aiomme päästä hauska osa osoittimet 320 00:14:50,020 --> 00:14:51,728 hyvin pian, jos olet saada tehdä joitakin matematiikka. 321 00:14:51,728 --> 00:14:52,776 Ja se tulee olemaan suuri. 322 00:14:52,776 --> 00:14:55,690 323 00:14:55,690 --> 00:14:57,740 >> Viimeisin step-- sulje tiedosto. 324 00:14:57,740 --> 00:15:01,090 Niin monia asioita täällä, yksi paradigmoja 325 00:15:01,090 --> 00:15:03,550 on, jos se voi palata null, tarkista null. 326 00:15:03,550 --> 00:15:06,160 Jos avaat jotain, sinun on parasta lopettaa. 327 00:15:06,160 --> 00:15:10,419 OK, joten et ole tehnyt, kunnes olet tehnyt jos olet kiinni se. 328 00:15:10,419 --> 00:15:12,585 Ikään kuin se ei ole ohi kunnes rasva nainen laulaa. 329 00:15:12,585 --> 00:15:14,130 Se on kuin sulkemalla tiedoston. 330 00:15:14,130 --> 00:15:16,860 331 00:15:16,860 --> 00:15:19,190 Kuten tässä sanotaan, vain toistaa, aina 332 00:15:19,190 --> 00:15:21,750 avaa tiedosto ennen olet kirjoittamasta sitä. 333 00:15:21,750 --> 00:15:24,450 Ja aina sulkea se, jos olet avannut sen. 334 00:15:24,450 --> 00:15:25,460 Kaikki hyvin? 335 00:15:25,460 --> 00:15:25,960 Cool. 336 00:15:25,960 --> 00:15:26,835 >> Joten tässä on esimerkki. 337 00:15:26,835 --> 00:15:29,250 338 00:15:29,250 --> 00:15:34,330 Joten tiny-- En tiedä, jos kaverit voivat nähdä, että hyvin. 339 00:15:34,330 --> 00:15:36,805 Jos vain voisimme lisätä kirkkaus jotenkin. 340 00:15:36,805 --> 00:15:40,430 341 00:15:40,430 --> 00:15:45,030 Anna minun itse tehdä tämän, jos voin. 342 00:15:45,030 --> 00:15:48,020 343 00:15:48,020 --> 00:15:51,470 OK, te voi oikeastaan nähdä, että ollenkaan, voit? 344 00:15:51,470 --> 00:15:52,905 OK, me aiomme tehdä tämän, niin. 345 00:15:52,905 --> 00:16:35,094 346 00:16:35,094 --> 00:16:35,594 [Äänetön] 347 00:16:35,594 --> 00:16:56,670 348 00:16:56,670 --> 00:16:58,605 >> Oletan, että tämä on paljon parempi nähdä. 349 00:16:58,605 --> 00:17:17,330 350 00:17:17,330 --> 00:17:19,455 Näkeekö kukaan missä minun hiiri meni on kysymys? 351 00:17:19,455 --> 00:17:22,837 Ah, siellä se is-- mitä taistelee! 352 00:17:22,837 --> 00:17:48,910 353 00:17:48,910 --> 00:17:49,520 >> OK. 354 00:17:49,520 --> 00:17:53,845 Periaatteessa teillä pitäisi olla sellainen on käsitys siitä, mitä tämä tekee. 355 00:17:53,845 --> 00:17:56,740 356 00:17:56,740 --> 00:17:57,600 Se ei ole täydellinen. 357 00:17:57,600 --> 00:17:58,851 358 00:17:58,851 --> 00:18:02,425 Mutta olen mieluummin selittää sitä kuin kuluttaa enemmän aikaa yrittää muotoilla sitä oikein. 359 00:18:02,425 --> 00:18:03,610 360 00:18:03,610 --> 00:18:07,280 Periaatteessa, kuten näette täällä, aloitamme tiedosto auki. 361 00:18:07,280 --> 00:18:09,620 Ja meillä on joitakin tietokanta tiedosto, että olemme 362 00:18:09,620 --> 00:18:12,300 aukko, joka sanoo, että se on meidän opiskelijoille. 363 00:18:12,300 --> 00:18:14,020 Ja aiomme kirjoittaa sitä. 364 00:18:14,020 --> 00:18:15,060 365 00:18:15,060 --> 00:18:17,720 Joten tietenkin palata null. 366 00:18:17,720 --> 00:18:19,650 Joten meidän täytyy tarkistaa null. 367 00:18:19,650 --> 00:18:22,930 Ja sitten jos se ei ole null, käymme läpi. 368 00:18:22,930 --> 00:18:25,660 Ja kuten näette, olemme looping kautta täällä. 369 00:18:25,660 --> 00:18:26,960 On opiskelijoita. 370 00:18:26,960 --> 00:18:30,520 Opiskelijat on hash määritelty kolme. 371 00:18:30,520 --> 00:18:34,060 Ja mitä me teemme on me tulostamalla tiedoston, eikö? 372 00:18:34,060 --> 00:18:36,975 Mitä siis tulostamalla meidän tiedoston? 373 00:18:36,975 --> 00:18:47,040 374 00:18:47,040 --> 00:18:48,906 >> Yleisö: tulokset jotka ovat array? 375 00:18:48,906 --> 00:18:49,680 >> SPEAKER 1: Joo. 376 00:18:49,680 --> 00:18:50,980 Tulokset, jotka ovat array-- tarkalleen. 377 00:18:50,980 --> 00:18:53,050 Joten avaamme tätä tietokanta tiedosto, joka 378 00:18:53,050 --> 00:18:56,040 Oletan on jonkinlainen laatuja tietokanta. 379 00:18:56,040 --> 00:19:01,100 Ja me vain tulostamalla tulokset kunkin opiskelijan tiedoston. 380 00:19:01,100 --> 00:19:02,140 Cool? 381 00:19:02,140 --> 00:19:02,640 Hyvä. 382 00:19:02,640 --> 00:19:03,811 383 00:19:03,811 --> 00:19:04,310 Mahtava. 384 00:19:04,310 --> 00:19:05,100 OK. 385 00:19:05,100 --> 00:19:06,950 Palataanpa to-- 386 00:19:06,950 --> 00:19:08,646 >> Yleisö: Minulla on nopea kysymys. 387 00:19:08,646 --> 00:19:11,570 Onko printf ei varten silmukka? 388 00:19:11,570 --> 00:19:12,870 Se on vain, jos silmukka? 389 00:19:12,870 --> 00:19:14,370 SPEAKER 1: Ei, se on varten silmukka. 390 00:19:14,370 --> 00:19:16,150 391 00:19:16,150 --> 00:19:18,810 En näe hiirtä hyvin täällä. 392 00:19:18,810 --> 00:19:21,359 Joten olen kamppailee muodossa, joka oikein. 393 00:19:21,359 --> 00:19:22,525 Tämä teline on mennyt. 394 00:19:22,525 --> 00:19:23,610 395 00:19:23,610 --> 00:19:25,130 Sen pitäisi olla täällä. 396 00:19:25,130 --> 00:19:26,605 Tämä on mitä teidän varten silmukka. 397 00:19:26,605 --> 00:20:10,680 398 00:20:10,680 --> 00:20:11,180 Siellä. 399 00:20:11,180 --> 00:20:12,160 Nyt se on kaunis. 400 00:20:12,160 --> 00:20:16,720 Niin, että miten se pitäisi be-- paitsi sillä, että viime kiinnike, että olen hylätty. 401 00:20:16,720 --> 00:20:17,220 OK. 402 00:20:17,220 --> 00:20:19,491 Onko järkeä kaikille? 403 00:20:19,491 --> 00:20:19,990 OK. 404 00:20:19,990 --> 00:20:23,750 Menemme eteenpäin seuraavaan asia then-- 405 00:20:23,750 --> 00:20:26,180 joka itse asiassa, olet menossa tarvitse nähdä koodin. 406 00:20:26,180 --> 00:20:28,370 Joten olen juuri menossa kopioida, että yli juuri nyt. 407 00:20:28,370 --> 00:20:31,500 408 00:20:31,500 --> 00:20:32,000 OK. 409 00:20:32,000 --> 00:20:35,110 Joten aion näyttää teille kaverit tämän koodin. 410 00:20:35,110 --> 00:20:38,240 Ja haluan sinun kokeilla ja kuva mitä sen pitäisi tehdä. 411 00:20:38,240 --> 00:20:49,740 412 00:20:49,740 --> 00:20:52,480 >> Joten annetaan that-- kestää minuutin tai niin. 413 00:20:52,480 --> 00:20:54,440 Yrittää selvittää, mitä on tekeillä. 414 00:20:54,440 --> 00:21:58,840 415 00:21:58,840 --> 00:21:59,570 >> Onko ideoita? 416 00:21:59,570 --> 00:22:08,180 417 00:22:08,180 --> 00:22:12,470 >> Tiedämme, että meillä on ainakin kaksi argumentteja komentoriviltä, ​​eikö? 418 00:22:12,470 --> 00:22:16,270 Oletan joista yksi tulee olemaan että [äänetön] meidän ohjelma on 419 00:22:16,270 --> 00:22:17,530 ja sitten jotain muuta. 420 00:22:17,530 --> 00:22:19,980 Koska jos [kuultavissa] on vähemmän kuin kaksi, me huutaa heille. 421 00:22:19,980 --> 00:22:21,140 Oikea? 422 00:22:21,140 --> 00:22:25,300 Ja käyttö, se näyttää se tulee olemaan jonkinlainen tiedoston. 423 00:22:25,300 --> 00:22:26,260 Me kaikki hyväksyä? 424 00:22:26,260 --> 00:22:29,110 425 00:22:29,110 --> 00:22:31,570 Joten nyt, mitä silmukka tekee? 426 00:22:31,570 --> 00:22:32,570 Mitä se tulee läpi? 427 00:22:32,570 --> 00:22:35,000 428 00:22:35,000 --> 00:22:36,449 >> Yleisö: Kaikki tiedostot. 429 00:22:36,449 --> 00:22:37,240 SPEAKER 1: Aivan. 430 00:22:37,240 --> 00:22:39,650 Se menee läpi kaikki tiedostot, että olemme panos siellä. 431 00:22:39,650 --> 00:22:40,720 432 00:22:40,720 --> 00:22:46,040 Joten jokaisen tiedoston, se on avautumassa joitakin merkkijono siellä. 433 00:22:46,040 --> 00:22:47,560 Se avautuminen tiedoston. 434 00:22:47,560 --> 00:22:48,060 Oikea? 435 00:22:48,060 --> 00:22:49,140 436 00:22:49,140 --> 00:22:52,380 Ja se lukee sitä. 437 00:22:52,380 --> 00:22:53,420 438 00:22:53,420 --> 00:22:55,540 Tietenkin, tarkistaa, jos se on nolla. 439 00:22:55,540 --> 00:22:57,220 Ja sitten se tulostamista. 440 00:22:57,220 --> 00:23:01,460 Jos se on tyhjä, se vain kertoo meille että se ei ole olemassa olevaa tiedostoa. 441 00:23:01,460 --> 00:23:04,290 Koska muistan, jossa lue tiedosto on olemassa. 442 00:23:04,290 --> 00:23:04,810 Oikea? 443 00:23:04,810 --> 00:23:06,870 Kanssa kirjoittaa ja liittää, voit saada veräjästä. 444 00:23:06,870 --> 00:23:08,970 Mutta lukea, meidän tiedosto on olemassa. 445 00:23:08,970 --> 00:23:10,430 446 00:23:10,430 --> 00:23:13,330 >> Ja sitten jos se on olemassa, mitä me teemme täällä? 447 00:23:13,330 --> 00:23:14,810 448 00:23:14,810 --> 00:23:15,780 Haluan vain aloittaa tästä. 449 00:23:15,780 --> 00:23:18,815 Mikä tämä do-- tämä ensimmäinen merkki. 450 00:23:18,815 --> 00:23:20,960 451 00:23:20,960 --> 00:23:21,790 Mitä se tekee? 452 00:23:21,790 --> 00:23:24,100 Hän saa yksi merkki, eikö? 453 00:23:24,100 --> 00:23:25,400 Joten mitä tämä tekee? 454 00:23:25,400 --> 00:23:26,775 Se on tulossa ensimmäinen merkki. 455 00:23:26,775 --> 00:23:28,860 456 00:23:28,860 --> 00:23:30,200 Jokainen tietää EOF? 457 00:23:30,200 --> 00:23:31,170 >> Yleisö: Tiedoston loppu? 458 00:23:31,170 --> 00:23:32,680 >> SPEAKER 1: End of file-- tarkalleen. 459 00:23:32,680 --> 00:23:35,310 Niin se menee läpi koko tiedoston, eikö? 460 00:23:35,310 --> 00:23:36,710 461 00:23:36,710 --> 00:23:40,780 Ja sitten se tulee päivittää mukaan saada jokaisen seuraavan merkin. 462 00:23:40,780 --> 00:23:41,565 Oikea? 463 00:23:41,565 --> 00:23:43,636 Ja mitä se tekee? 464 00:23:43,636 --> 00:23:44,760 Yleisö: Operaattorin että in-- 465 00:23:44,760 --> 00:23:46,741 466 00:23:46,741 --> 00:23:49,170 >> SPEAKER 1: Putchar tulosteita teidän näytönsäästäjä. 467 00:23:49,170 --> 00:23:50,867 468 00:23:50,867 --> 00:23:51,950 [Kuulumaton] merkki. 469 00:23:51,950 --> 00:23:54,300 Ja sitten kun se [kuulumaton] Tämä sulkee tiedoston. 470 00:23:54,300 --> 00:23:57,370 >> Yleisö: Ettekö tarvitse [? muuta? ?] 471 00:23:57,370 --> 00:23:59,005 >> SPEAKER 1: Ei välttämättä. 472 00:23:59,005 --> 00:24:01,480 Tarkoitan, se on aika hiljaista tässä. 473 00:24:01,480 --> 00:24:06,780 Koska tämä palaa, vaikka, niin kauan koska tämä ei saalis, olet hieno. 474 00:24:06,780 --> 00:24:07,940 475 00:24:07,940 --> 00:24:10,250 Siis se on luultavasti hyvä käytännössä tehdä muuta. 476 00:24:10,250 --> 00:24:15,755 Mutta muuten ei ole aina tarpeen erityisesti 477 00:24:15,755 --> 00:24:17,610 jos sinulla on jotain kuten tuotto, joka 478 00:24:17,610 --> 00:24:20,640 tarkoittaa, että tässä tapauksessa, jos se ottaa kiinni se, ohjelma tulee lopettaa 479 00:24:20,640 --> 00:24:21,850 ja se koskaan saa tätä. 480 00:24:21,850 --> 00:24:23,030 481 00:24:23,030 --> 00:24:29,190 Se on enemmän silloin, kun olet ei välttämättä palaavat jotain. 482 00:24:29,190 --> 00:24:31,370 Koska jos tämä ei palaavat mitään, 483 00:24:31,370 --> 00:24:34,430 se tarkoittaisi sitä, että jos tämä olisi totta, loput tästä olisi silti ajaa. 484 00:24:34,430 --> 00:24:36,138 Ja siinä tapauksessa, te haluaisi väärä. 485 00:24:36,138 --> 00:24:38,240 Jos se paluu, ja oman ohjelman loppu, 486 00:24:38,240 --> 00:24:41,960 muuta ei tarvita kaikkia aikaa, riippuen yhteydessä. 487 00:24:41,960 --> 00:24:43,084 488 00:24:43,084 --> 00:24:44,375 Jaakob, sinä on kysymys? 489 00:24:44,375 --> 00:24:46,100 Yleisö: Joo. 490 00:24:46,100 --> 00:24:49,300 Joten ei fgetc saada seuraava merkki? 491 00:24:49,300 --> 00:24:50,734 Miten hahmo kasvaa? 492 00:24:50,734 --> 00:24:51,400 SPEAKER 1: Joo. 493 00:24:51,400 --> 00:24:52,774 Joten fgetc saa seuraavan merkin. 494 00:24:52,774 --> 00:24:54,140 495 00:24:54,140 --> 00:24:56,866 Voit ajatella sitä kuten C ++ tavallaan. 496 00:24:56,866 --> 00:24:58,350 >> Yleisö: Mitä oli EOF? 497 00:24:58,350 --> 00:25:00,877 >> SPEAKER 1: EOF on tiedoston loppuun. 498 00:25:00,877 --> 00:25:03,960 Se on vain merkki, joka kertoo että olet lopussa tiedoston. 499 00:25:03,960 --> 00:25:06,742 Joten tämä on menossa painoon teidän standardin ulos. 500 00:25:06,742 --> 00:25:08,950 Ja sitten se tulee sulkea tiedoston, kun se on tehty. 501 00:25:08,950 --> 00:25:10,700 Ja sitten mennään seuraava tiedosto, eikö? 502 00:25:10,700 --> 00:25:12,660 Joten kaiken kaikkiaan, mitä tämä ohjelma tekee? 503 00:25:12,660 --> 00:25:15,402 504 00:25:15,402 --> 00:25:16,090 >> [Äänetön] 505 00:25:16,090 --> 00:25:16,900 >> SPEAKER 1: Joo. 506 00:25:16,900 --> 00:25:18,770 Se vain tulostaa kaiken siellä. 507 00:25:18,770 --> 00:25:23,270 Joten jos te koskaan käyttänyt CAT ja sitten nimi noin file-- 508 00:25:23,270 --> 00:25:26,240 En tiedä, jos joku teistä koskaan tehnyt, että puhelimesi. 509 00:25:26,240 --> 00:25:29,630 Mutta jos joskus käyttää komento CAT-- C-A-T-- 510 00:25:29,630 --> 00:25:31,880 ja sitten mitä tiedosto olet there-- se 511 00:25:31,880 --> 00:25:37,260 tulostaa sen omaan terminaaliin, joka voi olla erittäin kätevä joitakin asioita. 512 00:25:37,260 --> 00:25:38,746 Käytän sitä paljon. 513 00:25:38,746 --> 00:25:40,120 Onko järkeä kaikille? 514 00:25:40,120 --> 00:25:41,480 515 00:25:41,480 --> 00:25:42,100 Cool? 516 00:25:42,100 --> 00:25:46,530 >> OK joten sinun tehtäväsi now-- joko itse tai ihmisiä ympärillä sinä-- 517 00:25:46,530 --> 00:25:54,930 on vain kirjoittaa yksinkertainen ohjelma joka vain kirjoittaa "Hello, world!" 518 00:25:54,930 --> 00:25:56,255 ulos tiedostoon. 519 00:25:56,255 --> 00:26:00,215 >> [Äänetön] 520 00:26:00,215 --> 00:26:56,210 521 00:26:56,210 --> 00:26:57,040 >> [Äänetön] 522 00:26:57,040 --> 00:26:59,248 >> SPEAKER 1: Olin ihan, teki Odotan tätä huonosti viime viikolla? 523 00:26:59,248 --> 00:27:00,201 524 00:27:00,201 --> 00:27:01,492 En usko, että se oli niin paha. 525 00:27:01,492 --> 00:27:02,479 526 00:27:02,479 --> 00:27:03,520 Olen iloinen, että olet kaikki täällä. 527 00:27:03,520 --> 00:27:04,655 Se todella tekee minut onnelliseksi. 528 00:27:04,655 --> 00:27:07,565 529 00:27:07,565 --> 00:27:10,160 Olen tyttö iloja. 530 00:27:10,160 --> 00:27:11,688 En vain pidä siitä, kun minun kohta käy. 531 00:27:11,688 --> 00:27:13,830 532 00:27:13,830 --> 00:27:18,270 Joten olen juuri tämä alkoi te jotta voimme koodata yhdessä. 533 00:27:18,270 --> 00:27:22,290 En pidä laittaa ketään paikka ellet halua olla. 534 00:27:22,290 --> 00:27:26,486 535 00:27:26,486 --> 00:27:30,086 >> Yleisö: Saat tietokilpailu, do meidän täytyy kirjoittaa ohjelma? 536 00:27:30,086 --> 00:27:33,260 >> SPEAKER 1: Saatat pyydetään kirjoittaa yksinkertaisia ​​ohjelmia käsin. 537 00:27:33,260 --> 00:27:35,940 538 00:27:35,940 --> 00:27:36,590 YUP. 539 00:27:36,590 --> 00:27:38,510 >> Yleisö: tietovisa on ensi viikolla, eikö? 540 00:27:38,510 --> 00:27:40,108 >> SPEAKER 1: tietovisa on ensi keskiviikkona. 541 00:27:40,108 --> 00:27:40,855 542 00:27:40,855 --> 00:27:43,730 Tämä tarkoittaa, että on ihana [? CSE?] luokittelua puolue jälkeenpäin, joka 543 00:27:43,730 --> 00:27:50,390 tarkoittaa saat pisteesi takaisin että täksi yöksi mihin aikaan? 544 00:27:50,390 --> 00:27:50,890 Kuka tietää? 545 00:27:50,890 --> 00:27:51,973 Mutta se tulee olemaan, että yö. 546 00:27:51,973 --> 00:28:02,020 547 00:28:02,020 --> 00:28:02,855 >> Selvä. 548 00:28:02,855 --> 00:28:04,250 Miten haluamme aloittaa tämän? 549 00:28:04,250 --> 00:28:07,964 550 00:28:07,964 --> 00:28:09,630 Annan sinulle hint-- alkaa tästä. 551 00:28:09,630 --> 00:28:11,455 >> Yleisö: Sinun täytyy avata tiedoston. 552 00:28:11,455 --> 00:28:12,250 >> SPEAKER 1: Joo. 553 00:28:12,250 --> 00:28:14,060 Joten mitä haluat kutsua tätä? 554 00:28:14,060 --> 00:28:16,150 Haluatko vain kutsua sitä "file"? 555 00:28:16,150 --> 00:28:17,480 Tehdään tästä helppoa. 556 00:28:17,480 --> 00:28:26,752 Joten fopen-- mitä meidän lähtötesti olemaan? 557 00:28:26,752 --> 00:28:36,130 Kutsuvat sitä "Hei." 558 00:28:36,130 --> 00:28:37,810 Ja mikä on meidän tilassa? 559 00:28:37,810 --> 00:28:39,764 560 00:28:39,764 --> 00:28:41,055 Mitä me teemme tämän tiedoston? 561 00:28:41,055 --> 00:28:42,676 562 00:28:42,676 --> 00:28:43,500 >> Yleisö: Lue. 563 00:28:43,500 --> 00:28:44,401 564 00:28:44,401 --> 00:28:44,900 Kirjoittaminen. 565 00:28:44,900 --> 00:28:46,191 SPEAKER 1: Kirjoitamme sitä. 566 00:28:46,191 --> 00:28:47,360 567 00:28:47,360 --> 00:28:47,860 Lovely. 568 00:28:47,860 --> 00:28:50,330 569 00:28:50,330 --> 00:28:52,860 OK, joten meillä on tämä tiedosto nyt. 570 00:28:52,860 --> 00:28:54,920 571 00:28:54,920 --> 00:28:56,212 Mitä meidän pitää tehdä? 572 00:28:56,212 --> 00:28:57,420 Yleisö: Tarkista jos se on nolla. 573 00:28:57,420 --> 00:28:59,820 SPEAKER 1: Tarkista, onko se null-- tarkalleen. 574 00:28:59,820 --> 00:29:01,980 Se mitä haluan kuulla. 575 00:29:01,980 --> 00:29:05,930 Että pitäisi olla automaattista, varsinkin melko paljon tästä eteenpäin. 576 00:29:05,930 --> 00:29:07,530 577 00:29:07,530 --> 00:29:10,950 Jos aloitat segfaulting, luultavasti ei tarkista null jonnekin. 578 00:29:10,950 --> 00:29:12,480 Yhdeksän kertaa kymmenestä, joka on olemaan teidän virhe. 579 00:29:12,480 --> 00:29:15,400 Joten jos voisit saada tapana, aina tarkistaa, jos se on nolla, 580 00:29:15,400 --> 00:29:18,150 elämäsi tulee olemaan mukava ja easy-- tai helpompaa. 581 00:29:18,150 --> 00:29:19,480 >> Joten tarkista jos se on nolla. 582 00:29:19,480 --> 00:29:21,200 583 00:29:21,200 --> 00:29:24,820 Joten jos se ei ole nolla, mikä on mitä bang yhtä kuin 584 00:29:24,820 --> 00:29:26,784 means-- ei null-- se on voimassa. 585 00:29:26,784 --> 00:29:27,700 Mitä haluat tehdä? 586 00:29:27,700 --> 00:29:29,750 587 00:29:29,750 --> 00:29:31,570 Haluamme vain tulostaa kyseiseen tiedostoon, eikö? 588 00:29:31,570 --> 00:29:32,923 Joten mitä aiomme käyttää? 589 00:29:32,923 --> 00:29:34,092 >> Yleisö: fprintf 590 00:29:34,092 --> 00:29:36,800 >> SPEAKER 1: Fprintf-- ihana. 591 00:29:36,800 --> 00:29:38,150 592 00:29:38,150 --> 00:29:44,000 Ja fprintf kestää kaksi arguments-- missä se on menossa ja mitä me haluamme tulostaa. 593 00:29:44,000 --> 00:29:45,820 Niin mitä ensimmäisen? 594 00:29:45,820 --> 00:29:46,570 Missä menee? 595 00:29:46,570 --> 00:29:47,490 >> Yleisö: Tiedosto. 596 00:29:47,490 --> 00:29:48,785 >> SPEAKER 1: Se tulee tiedostoon. 597 00:29:48,785 --> 00:29:49,784 598 00:29:49,784 --> 00:29:50,950 Ja mitä me haluamme painettu? 599 00:29:50,950 --> 00:29:52,900 600 00:29:52,900 --> 00:29:58,065 "Hei, maailma!" 601 00:29:58,065 --> 00:29:58,565 Selvä. 602 00:29:58,565 --> 00:30:03,670 Meillä on yksi viime thing-- toinen suuri paradigman täällä. 603 00:30:03,670 --> 00:30:04,479 604 00:30:04,479 --> 00:30:05,145 Yleisö: Sulje. 605 00:30:05,145 --> 00:30:05,853 SPEAKER 1: Sulje. 606 00:30:05,853 --> 00:30:09,990 607 00:30:09,990 --> 00:30:10,540 Siellä mennään. 608 00:30:10,540 --> 00:30:13,384 >> Yleisö: tämä tapahtuu Jos tiedosto on nolla? 609 00:30:13,384 --> 00:30:15,050 SPEAKER 1: Ei, tämä on, jos se ei ole nolla. 610 00:30:15,050 --> 00:30:16,881 Yleisö: Voi, jos se on not-- OK. 611 00:30:16,881 --> 00:30:21,728 612 00:30:21,728 --> 00:30:25,410 Varten fopen ja sitten kaksi väitettä, jotka menevät sisälle, 613 00:30:25,410 --> 00:30:27,655 Mitä tulee ensimmäiseen väitteeseen tarkoittaa uudelleen? 614 00:30:27,655 --> 00:30:30,392 >> SPEAKER 1: Argumentti aivan kuten tiedoston nimi 615 00:30:30,392 --> 00:30:31,350 että haluat mennä. 616 00:30:31,350 --> 00:30:36,020 Niin sen jälkeen tämä toimii, olisit on joitakin tiedosto nimeltä "hei" 617 00:30:36,020 --> 00:30:38,320 että oli "Hello, world" sisällä. 618 00:30:38,320 --> 00:30:38,820 Siinä kaikki. 619 00:30:38,820 --> 00:30:39,500 Vain nimi. 620 00:30:39,500 --> 00:30:42,685 621 00:30:42,685 --> 00:30:48,650 >> Yleisö: Ja koska se kirjallisesti, tiedostoa ei tarvitse jo olemassa. 622 00:30:48,650 --> 00:30:49,675 Onko se mitä sanoit? 623 00:30:49,675 --> 00:30:50,410 >> SPEAKER 1: Oikea. 624 00:30:50,410 --> 00:30:50,910 Täsmälleen. 625 00:30:50,910 --> 00:30:53,110 626 00:30:53,110 --> 00:30:55,839 Jos "Hei", kuten tiedoston ei vielä ole olemassa, se on 627 00:30:55,839 --> 00:30:58,380 menossa luo tiedosto nimeltä Hei "ja kirjoittaa sen sinulle. 628 00:30:58,380 --> 00:30:59,631 629 00:30:59,631 --> 00:31:03,610 >> Yleisö: Kun sanot ohjelma kirjoitti tiedostoon, 630 00:31:03,610 --> 00:31:08,075 Miksi kirjoitat "tiedosto" sijasta tiedoston nimi ja fprintf-- 631 00:31:08,075 --> 00:31:13,600 >> SPEAKER 1: Koska tässä tapauksessa meillä on että suuri FILE-- kaikki caps-- tähden, 632 00:31:13,600 --> 00:31:14,260 tiedostoon. 633 00:31:14,260 --> 00:31:17,370 Joten se on osoitin tiedostoon että puhut. 634 00:31:17,370 --> 00:31:19,930 Tämä on tapa, että me vain viitata siihen. 635 00:31:19,930 --> 00:31:24,850 Joten tässä tapauksessa sinun voi ajatella file-- aha, 636 00:31:24,850 --> 00:31:31,271 voimme käyttää this-- tiedosto tästä viittaa avaamista "Hei" 637 00:31:31,271 --> 00:31:32,145 ja antamalla sen kirjoittaa. 638 00:31:32,145 --> 00:31:34,728 >> Yleisö: Voisimmeko laittaa "Hei" sijaan [? vain?] f-tiedoston? 639 00:31:34,728 --> 00:31:40,160 SPEAKER 1: Ei, koska "Hei" on oltava avoin ja kirjoitusoikeudet. 640 00:31:40,160 --> 00:31:41,820 641 00:31:41,820 --> 00:31:45,980 Tiedoston täällä on kuin Turvaosoitin joka sanoo OK, me 642 00:31:45,980 --> 00:31:49,190 on tässä file-- hello-- että me tarkastelemme. 643 00:31:49,190 --> 00:31:50,680 Se on avattu. 644 00:31:50,680 --> 00:31:52,140 Ja aiomme kirjoittaa sitä. 645 00:31:52,140 --> 00:31:55,130 Jos käytät vain "Hei", joka kiteytyy se. 646 00:31:55,130 --> 00:31:56,846 Joten se tulee älyttömästi. 647 00:31:56,846 --> 00:31:58,590 648 00:31:58,590 --> 00:32:00,300 Tarkoitan, sinulla voisi olla nimeltään se. 649 00:32:00,300 --> 00:32:03,960 Olisit voinut tehdä tiedosto, tähti, "Hei", on sama kuin. 650 00:32:03,960 --> 00:32:07,840 Mutta pointti on se, että te tarvitsevat tiedosto tähti osoitin jotta 651 00:32:07,840 --> 00:32:09,281 voitava käyttää näitä toimintoja. 652 00:32:09,281 --> 00:32:11,280 Yleisö: Osaatko tiedosto, tähti, tiedosto, "Hei" 653 00:32:11,280 --> 00:32:13,113 Vai onko sinulla laittaa tiedosto tähti, tiedosto on? 654 00:32:13,113 --> 00:32:16,330 SPEAKER 1: Voisit tehdä tiedosto, tähti, "Hei." 655 00:32:16,330 --> 00:32:19,790 Voit vaihtaa tämän millä nimellä haluat. 656 00:32:19,790 --> 00:32:22,114 Se on täysin mielivaltaista mikä se nimi on. 657 00:32:22,114 --> 00:32:23,179 658 00:32:23,179 --> 00:32:24,220 Voit nimetä sen mitään. 659 00:32:24,220 --> 00:32:25,501 660 00:32:25,501 --> 00:32:28,020 Nimeä se lentää spagettia, jos halusi. 661 00:32:28,020 --> 00:32:29,690 >> Yleisö: Mikä on "W" lainausmerkkeihin varten? 662 00:32:29,690 --> 00:32:31,540 >> SPEAKER 1: "W" on vain tila. 663 00:32:31,540 --> 00:32:33,170 Joten olemme kirjoitan tätä tiedostoa. 664 00:32:33,170 --> 00:32:34,410 665 00:32:34,410 --> 00:32:35,320 Jokainen hyvä? 666 00:32:35,320 --> 00:32:36,227 Selvä? 667 00:32:36,227 --> 00:32:36,981 Kyllä. 668 00:32:36,981 --> 00:32:40,365 >> Yleisö: Joten kun se kirjoittaa tämän tiedostoon, missä me sitten huomaavat, että tiedosto? 669 00:32:40,365 --> 00:32:43,820 >> SPEAKER 1: Se tulee olemaan samassa hakemiston, että olet tällä hetkellä. 670 00:32:43,820 --> 00:32:45,650 671 00:32:45,650 --> 00:32:48,880 Jos olet PSET kolme ja olet suorittanut tämän, omassa PSET 672 00:32:48,880 --> 00:32:52,600 kolme kansio tulee olemaan tämä tiedosto nimeltä "Hei." 673 00:32:52,600 --> 00:32:53,160 Cool? 674 00:32:53,160 --> 00:32:53,757 Jokainen hyvä? 675 00:32:53,757 --> 00:32:55,840 Minusta tuntuu et kaikki saada se, mikä on hienoa. 676 00:32:55,840 --> 00:32:57,290 677 00:32:57,290 --> 00:32:57,790 OK. 678 00:32:57,790 --> 00:33:05,960 Joten takaisin minun dia show-- Rakastan kun asiat toimivat. 679 00:33:05,960 --> 00:33:08,674 OK, pointers-- Oletteko innoissaan? 680 00:33:08,674 --> 00:33:09,465 Osoittimet ovat suuria. 681 00:33:09,465 --> 00:33:11,581 682 00:33:11,581 --> 00:33:13,580 He ottavat vähän kääri pään ympärille. 683 00:33:13,580 --> 00:33:15,288 Tämä on minun toinen vuosi opetus viitteitä. 684 00:33:15,288 --> 00:33:16,850 Ja luulen vihdoin sain sen. 685 00:33:16,850 --> 00:33:18,650 Joten jos taistelu, se on OK. 686 00:33:18,650 --> 00:33:19,940 687 00:33:19,940 --> 00:33:24,070 Kuten aiemmin sanoin, piirtämällä kuvia auttaa paljon asioita CS, 688 00:33:24,070 --> 00:33:27,400 niin paljon kuin mielestäni ihmisillä on taipumus ajatella Oh, me olemme tietokone. 689 00:33:27,400 --> 00:33:28,399 Meidän pitäisi vain koodia. 690 00:33:28,399 --> 00:33:30,190 No-- piirustus kuvat todella auttaa sinua. 691 00:33:30,190 --> 00:33:32,773 Ja en todellakaan rohkaista teitä kosketuksen kindergartner puolella 692 00:33:32,773 --> 00:33:35,010 ja tuoda esiin väriliidut tai merkkiaineet ja tasapeli. 693 00:33:35,010 --> 00:33:36,110 Koska se auttaa sinua. 694 00:33:36,110 --> 00:33:39,380 Ja jos näet minut toimistossa tuntia, minä tulee kuljettaa noin nippua 695 00:33:39,380 --> 00:33:41,580 kynät piirustus asioita. 696 00:33:41,580 --> 00:33:44,370 >> Joten erityisesti pointers-- piirtää kuvia. 697 00:33:44,370 --> 00:33:47,970 Ja olen varma, että olemme todella menossa olla piirustus kuvia täälläkin. 698 00:33:47,970 --> 00:33:51,270 >> Joten te kaikki sai nähdä Binky, tämän jäähtyä claymation juttu. 699 00:33:51,270 --> 00:33:54,720 Ja mielestämme se on todella hauskaa, kun hän räjähtää joukko kappaletta. 700 00:33:54,720 --> 00:33:56,280 701 00:33:56,280 --> 00:33:57,755 On joitakin koomikko luokassa. 702 00:33:57,755 --> 00:34:02,140 703 00:34:02,140 --> 00:34:05,900 C [äänetön] tämä suuri kyky pystyä ohjaamaan muistiin. 704 00:34:05,900 --> 00:34:10,090 Ja se on yksi niistä asioista, jotka todella tekee siitä niin voimakas kieli. 705 00:34:10,090 --> 00:34:13,469 Mutta suurella voimalla tulee suuri vastuu. 706 00:34:13,469 --> 00:34:16,230 Ja hulluja asioita voi tapahtua jos et ole varovainen. 707 00:34:16,230 --> 00:34:18,560 Joten kun käytät osoittimet, haluat tehdä 708 00:34:18,560 --> 00:34:21,440 että olet todella ymmärtää tarkalleen mitä olet tekemässä. 709 00:34:21,440 --> 00:34:25,530 Toivottavasti seuraava hieman aika auttaa sinua todella ymmärtää 710 00:34:25,530 --> 00:34:27,850 osoittimet, miten niitä käytetään, ja kuinka manipuloida heitä. 711 00:34:27,850 --> 00:34:29,170 712 00:34:29,170 --> 00:34:33,460 >> Joten memory-- Olen varma, että me olet nähdä tässä kaaviossa ennen. 713 00:34:33,460 --> 00:34:38,540 Joten tämä on vain yksinkertainen kaavio miten asiat saatetaan tallentaa muistiin. 714 00:34:38,540 --> 00:34:43,145 Joten et periaatteessa ole näitä valtava paneelit yhden tavun lohkoja 715 00:34:43,145 --> 00:34:46,000 mitä olemme here-- lievää kasvaa yhdellä joka kerta. 716 00:34:46,000 --> 00:34:51,810 Tämä on hex [kuulumaton] niin kahdeksan bitin lohkoja. 717 00:34:51,810 --> 00:34:55,510 Ja jokainen lohko on liitetty joidenkin heksadesimaaliosoitteen. 718 00:34:55,510 --> 00:34:58,750 Joten jos olet koskaan nähdä 0x, joka on juuri nuotintaminen 719 00:34:58,750 --> 00:35:00,670 että se heksadesimaaliosoitteen. 720 00:35:00,670 --> 00:35:03,970 Voit olettaa, tämä tarkoittaa Joissakin osoite muistiin. 721 00:35:03,970 --> 00:35:06,935 Puhumme muisti osoitteita kun näet heksadesimaaliluvuksi. 722 00:35:06,935 --> 00:35:10,420 723 00:35:10,420 --> 00:35:14,630 >> Meillä on ints ovat muuttujia, kellukkeet ovat muuttujia, jotka tallentavat. 724 00:35:14,630 --> 00:35:16,260 Joten ints myymälä ints. 725 00:35:16,260 --> 00:35:17,430 Kellukkeet myymälä kelluu. 726 00:35:17,430 --> 00:35:20,260 Joten meillä on myös viitteitä että myymälä muisti osoitteita. 727 00:35:20,260 --> 00:35:21,660 Se on eräänlainen kartoitus. 728 00:35:21,660 --> 00:35:24,240 Osoittimet ovat yksinomaan muisti osoitteita. 729 00:35:24,240 --> 00:35:25,780 730 00:35:25,780 --> 00:35:27,292 Niin, että on kuin teidän tyyppi siellä. 731 00:35:27,292 --> 00:35:29,550 732 00:35:29,550 --> 00:35:34,470 Laite on 32-bittinen, mikä tarkoittaa että muisti osoite on neljä tavua. 733 00:35:34,470 --> 00:35:37,830 Joten kaikki osoitin, että sinulla on myös olemaan neljä tavua. 734 00:35:37,830 --> 00:35:43,200 Tai sitten jos se on neljä tavua, muisti on neljä tavua. 735 00:35:43,200 --> 00:35:44,790 Osoittimet myymälä muisti. 736 00:35:44,790 --> 00:35:46,430 Siksi he neljä tavua. 737 00:35:46,430 --> 00:35:48,460 Cool-- haluavat vain vahvistaa tätä. 738 00:35:48,460 --> 00:35:50,120 739 00:35:50,120 --> 00:35:52,220 >> Sinun pitäisi saada tämä sarjakuva nyt. 740 00:35:52,220 --> 00:35:55,040 En tiedä kuinka moni teistä ovat xkcd faneja, mutta rakastan xkcd. 741 00:35:55,040 --> 00:35:55,780 Se on hienoa. 742 00:35:55,780 --> 00:35:57,290 743 00:35:57,290 --> 00:35:57,790 >> Selvä. 744 00:35:57,790 --> 00:36:01,640 Jotta luodaan pointers-- kuten sanoin, se on melko paljon aivan kuin mitään muuta. 745 00:36:01,640 --> 00:36:02,930 Sinulla on tyypin. 746 00:36:02,930 --> 00:36:04,050 Sinulla on nimi. 747 00:36:04,050 --> 00:36:04,810 Oikea? 748 00:36:04,810 --> 00:36:10,410 Sitähän me on siellä. [? Hex?] Tähti tarkoittaa että se on osoitin, 749 00:36:10,410 --> 00:36:12,250 ja sitten mitä haluat kutsua sitä. 750 00:36:12,250 --> 00:36:15,770 Niin tyyppi edustaa mitä voidaan tallentaa. 751 00:36:15,770 --> 00:36:16,850 752 00:36:16,850 --> 00:36:17,990 Kaikki hyvin? 753 00:36:17,990 --> 00:36:24,350 Samalla tavalla, että jos teemme ints, tiedämme olemme tallentamiseen int siellä. 754 00:36:24,350 --> 00:36:25,990 755 00:36:25,990 --> 00:36:30,280 Jossa osoitin, se omistaa muisti osoite. 756 00:36:30,280 --> 00:36:34,240 Mutta mitä se tarkoittaa on that-- tässä tarina piirustus on menossa tulla kätevä. 757 00:36:34,240 --> 00:36:36,170 758 00:36:36,170 --> 00:36:45,980 Joten tässä tapauksessa, meillä on Joissakin value-- sanokaamme neljä. 759 00:36:45,980 --> 00:36:49,306 Neljä on osoitteessa yksi. 760 00:36:49,306 --> 00:36:49,805 OK? 761 00:36:49,805 --> 00:36:51,550 762 00:36:51,550 --> 00:36:56,170 >> Tämä ensimmäinen tarkoittaa tässä että se on osoitin 2x. 763 00:36:56,170 --> 00:36:56,740 Oikea? 764 00:36:56,740 --> 00:36:57,628 Se on noin osoittimen x. 765 00:36:57,628 --> 00:36:58,852 766 00:36:58,852 --> 00:37:00,940 X voi olla jotain, mitä tahansa. 767 00:37:00,940 --> 00:37:01,960 768 00:37:01,960 --> 00:37:05,130 Riippumatta x is-- sanoa x on neljä. 769 00:37:05,130 --> 00:37:07,280 Se tulee säilyttää muistin osoite täällä. 770 00:37:07,280 --> 00:37:12,260 Joten int, tähti, x-- tämä on joitakin muita rako memory-- 771 00:37:12,260 --> 00:37:13,590 kuka tietää mitä tämä on. 772 00:37:13,590 --> 00:37:15,430 Mutta se tulee tallentaa osoitteesi tähän. 773 00:37:15,430 --> 00:37:27,040 Joten tämä olisi like-- tässä tapauksessa, riippumatta, 774 00:37:27,040 --> 00:37:32,630 varastoidaan 0x1-- mitä on tallennettu osoitteessa, että osoitin omistaa, 775 00:37:32,630 --> 00:37:35,280 on ottelu kanssa mitä olemme nimetty. 776 00:37:35,280 --> 00:37:40,330 Joten 0x1, tässä tapauksessa, tämä on x. 777 00:37:40,330 --> 00:37:42,500 778 00:37:42,500 --> 00:37:49,340 Tämä voi vain olla int kun käytämme tätä. 779 00:37:49,340 --> 00:37:52,950 >> Vastaavasti, jos meillä on toinen 1v riippumatta 780 00:37:52,950 --> 00:37:59,130 osoite tallennettu y on olla char-- sama juttu z. 781 00:37:59,130 --> 00:38:05,840 Samalla tavalla, kun te yrittää tehdä intx vastaa 0,4, 782 00:38:05,840 --> 00:38:09,275 se tulee huutaa sinulle ja olla kuin mitään, sanoit halusi int. 783 00:38:09,275 --> 00:38:10,525 Tämän on tarkoitus olla int. 784 00:38:10,525 --> 00:38:11,900 Lopettaa yrittää tehdä kellua. 785 00:38:11,900 --> 00:38:14,150 >> Joten antaa asioiden olla mitä he haluavat olla. 786 00:38:14,150 --> 00:38:15,159 787 00:38:15,159 --> 00:38:16,200 Antaa asioiden olla oma itsensä. 788 00:38:16,200 --> 00:38:19,380 789 00:38:19,380 --> 00:38:23,450 Niin iso juttu on vain lajista riippumatta osoittimen 790 00:38:23,450 --> 00:38:26,101 se on, että on vain asia voit tallentaa sinne. 791 00:38:26,101 --> 00:38:26,600 OK? 792 00:38:26,600 --> 00:38:27,910 793 00:38:27,910 --> 00:38:31,160 Käytäntöä, kuten viime viikolla, kaikki 794 00:38:31,160 --> 00:38:32,817 tuntuu todella sellainen abstrakti. 795 00:38:32,817 --> 00:38:34,150 Aiomme tehdä joitakin käytännön. 796 00:38:34,150 --> 00:38:36,760 Olisi järkevämpää. 797 00:38:36,760 --> 00:38:44,580 >> Joten paikannus ja dereferencing-- se todella tärkeää saada näitä suoraan. 798 00:38:44,580 --> 00:38:46,630 Minulla on vielä virkistää aina silloin tällöin. 799 00:38:46,630 --> 00:38:48,450 Ja minä olen kuin odottaa, kumpi haluan? 800 00:38:48,450 --> 00:38:56,080 Niin & -merkki todella antaa te viittaus tai osoite. 801 00:38:56,080 --> 00:39:00,100 Joten se palauttaa osoitteeseen muisto jonka muuttuja on tallennettu. 802 00:39:00,100 --> 00:39:01,170 803 00:39:01,170 --> 00:39:07,020 Niin se tulee todella palata sinulle heksadesimaar taas dereferencing se 804 00:39:07,020 --> 00:39:10,641 on todella menossa antaa teille tiedot, jotka on varastoitu. 805 00:39:10,641 --> 00:39:11,140 OK? 806 00:39:11,140 --> 00:39:12,680 807 00:39:12,680 --> 00:39:16,060 Joten olemme menossa katsomaan esimerkki todella nopeasti, tai oikeastaan ​​jopa seuraavaksi. 808 00:39:16,060 --> 00:39:18,050 809 00:39:18,050 --> 00:39:19,150 >> OK. 810 00:39:19,150 --> 00:39:21,790 Joten meidän täytyy ajatella todella huolellisesti tästä. 811 00:39:21,790 --> 00:39:23,860 Joten tässä meillä on kokonaisluku x. 812 00:39:23,860 --> 00:39:26,485 Aion yrittää tehdä tämän ulos parhaan kykyni mukaan. 813 00:39:26,485 --> 00:39:30,230 814 00:39:30,230 --> 00:39:32,410 Joten olemme menossa on tähän rakoon x. 815 00:39:32,410 --> 00:39:35,850 816 00:39:35,850 --> 00:39:37,315 Ja se on tallennuskapasiteetti on viisi. 817 00:39:37,315 --> 00:39:38,640 818 00:39:38,640 --> 00:39:40,090 Sen osoite on 0x4. 819 00:39:40,090 --> 00:39:41,920 820 00:39:41,920 --> 00:39:43,160 Cool? 821 00:39:43,160 --> 00:39:44,100 Kaikki hyvä. 822 00:39:44,100 --> 00:39:45,470 >> Joten nyt meillä on tämä osoitin. 823 00:39:45,470 --> 00:39:46,916 824 00:39:46,916 --> 00:39:47,990 Se oli täällä. 825 00:39:47,990 --> 00:39:52,130 826 00:39:52,130 --> 00:39:57,560 Ja et-merkki antaa meille osoitteen jotain. 827 00:39:57,560 --> 00:40:00,780 Eli tässä tapauksessa se osoite x. 828 00:40:00,780 --> 00:40:01,875 Mikä on osoite X? 829 00:40:01,875 --> 00:40:05,660 830 00:40:05,660 --> 00:40:12,590 04-- ja tämä osoitin on 0x08. 831 00:40:12,590 --> 00:40:14,490 832 00:40:14,490 --> 00:40:14,990 Cool? 833 00:40:14,990 --> 00:40:16,570 834 00:40:16,570 --> 00:40:21,570 Joten voit ajatella tätä osoitin, 04, vain huomauttaa tänne. 835 00:40:21,570 --> 00:40:22,840 836 00:40:22,840 --> 00:40:25,740 Ja niitä kutsutaan osoittimet koska kun saamme lisää tähän, 837 00:40:25,740 --> 00:40:28,450 te tulette näkemään osoittaa asioita. 838 00:40:28,450 --> 00:40:31,470 Ja korttelin viittaa toiseen lohko tekee paljon enemmän järkeä. 839 00:40:31,470 --> 00:40:32,760 840 00:40:32,760 --> 00:40:33,890 Joten tässä on kaksi. 841 00:40:33,890 --> 00:40:38,230 Ja sitten meillä on joitakin kopio, joka on what-- 0x0C. 842 00:40:38,230 --> 00:40:41,290 843 00:40:41,290 --> 00:40:43,420 Ja se tulee dereference meidän osoitin. 844 00:40:43,420 --> 00:40:46,790 >> Niin mitä se sanoo ei OK, tässä on meidän osoitin. 845 00:40:46,790 --> 00:40:53,090 Arvo se tallentaa on 0x04, ja mitä se sanoo, on mennä tähän osoitteeseen 846 00:40:53,090 --> 00:40:54,300 ja kerro, mitä siinä on. 847 00:40:54,300 --> 00:40:55,520 848 00:40:55,520 --> 00:40:57,710 Niin, että tehokkaasti mitä tämä nuoli on tekemässä. 849 00:40:57,710 --> 00:40:58,750 850 00:40:58,750 --> 00:41:01,280 Voit ajatella tätä kuin tähti. 851 00:41:01,280 --> 00:41:05,410 Niin OK, kun teemme tähti, se tarkoittaa seurata. 852 00:41:05,410 --> 00:41:06,810 Mene tähän osoitteeseen. 853 00:41:06,810 --> 00:41:11,430 Ja se on pohjimmiltaan vain seuraavat tämä nuolta tämä muisti murikka. 854 00:41:11,430 --> 00:41:15,380 Ja antaa meille mitä siinä on, joka on 5. 855 00:41:15,380 --> 00:41:18,840 Se, miksi meidän kopio on yhtä kuin 5. 856 00:41:18,840 --> 00:41:20,120 Onko järkeä? 857 00:41:20,120 --> 00:41:22,769 Onko kukaan tarvitse minua läpi että uudelleen tai hitaammin? 858 00:41:22,769 --> 00:41:24,560 Haluatko minun mennä läpi vielä kerran? 859 00:41:24,560 --> 00:41:25,060 OK. 860 00:41:25,060 --> 00:41:27,549 861 00:41:27,549 --> 00:41:28,840 Aiomme piirtää se uudelleen. 862 00:41:28,840 --> 00:41:31,930 863 00:41:31,930 --> 00:41:37,205 Kun aloitamme, olemme kaikki samaa mieltä olemme jotkut kimpale muistia, joka on muuttujan 864 00:41:37,205 --> 00:41:40,890 X, että asetamme yhtä suuri kuin 5. 865 00:41:40,890 --> 00:41:42,910 Emme valvo, missä se on muistissa. 866 00:41:42,910 --> 00:41:45,520 Joten tämä paikka on vain mielivaltaisesti. 867 00:41:45,520 --> 00:41:47,770 868 00:41:47,770 --> 00:41:48,731 Hyvä siellä? 869 00:41:48,731 --> 00:41:49,230 OK. 870 00:41:49,230 --> 00:41:50,420 871 00:41:50,420 --> 00:41:53,330 Sitten alustaa osoitin int. 872 00:41:53,330 --> 00:41:56,900 Siksi se on sallittua viitata x koska meillä on int täällä. 873 00:41:56,900 --> 00:42:00,840 Meillä on toinen kimpale muistiin, koska tämä osoitin 874 00:42:00,840 --> 00:42:03,485 on muuttujan aivan kuin mitään muuta. 875 00:42:03,485 --> 00:42:06,615 Se on mielivaltaisesti tilaa muistissa. 876 00:42:06,615 --> 00:42:07,630 877 00:42:07,630 --> 00:42:10,830 Ja mitä se tallentaa on osoite X. 878 00:42:10,830 --> 00:42:13,200 & -merkki Tarkoittaa osoite x. 879 00:42:13,200 --> 00:42:14,575 Niin mikä on osoite X? 880 00:42:14,575 --> 00:42:19,179 881 00:42:19,179 --> 00:42:20,614 >> Yleisö: Se on zero-- 882 00:42:20,614 --> 00:42:21,280 SPEAKER 1: 0x04. 883 00:42:21,280 --> 00:42:24,350 884 00:42:24,350 --> 00:42:25,940 Joten then-- viimeinen. 885 00:42:25,940 --> 00:42:30,650 Meillä on joitakin copy-- uudelleen vain yksi muuttuja. 886 00:42:30,650 --> 00:42:32,520 Joten antaa joitakin mielivaltainen paikka. 887 00:42:32,520 --> 00:42:35,260 888 00:42:35,260 --> 00:42:38,080 Ja me dereference meidän osoitin. 889 00:42:38,080 --> 00:42:42,490 Tähti tarkoittaa mennä osoite tallennettu minun osoitin. 890 00:42:42,490 --> 00:42:44,480 Kerro minulle, mitä siellä. 891 00:42:44,480 --> 00:42:47,290 Joten osoite tallennettu meidän osoitin on 0x04. 892 00:42:47,290 --> 00:42:49,070 893 00:42:49,070 --> 00:42:51,310 Joten menemme kyseiseen osoitteeseen. 894 00:42:51,310 --> 00:42:52,402 895 00:42:52,402 --> 00:42:54,590 Se osoittaa, että osoite. 896 00:42:54,590 --> 00:42:57,481 Mitä sisällä tämä muisti estää? 897 00:42:57,481 --> 00:42:57,980 Se on viisi. 898 00:42:57,980 --> 00:42:59,210 899 00:42:59,210 --> 00:43:01,650 Niin, että mitä me antaa meidän kopio. 900 00:43:01,650 --> 00:43:03,430 901 00:43:03,430 --> 00:43:04,860 Jokainen hyvä? 902 00:43:04,860 --> 00:43:05,360 Cool. 903 00:43:05,360 --> 00:43:07,010 904 00:43:07,010 --> 00:43:08,330 Again-- kuvia. 905 00:43:08,330 --> 00:43:19,750 906 00:43:19,750 --> 00:43:25,200 >> Joten seuranta arvot here-- olen aio antaa te ajattelette tästä. 907 00:43:25,200 --> 00:43:26,550 908 00:43:26,550 --> 00:43:27,750 Voimme piirtää toisen kuvan. 909 00:43:27,750 --> 00:43:31,260 Mutta haluan sinun kokeilla ja syy läpi tämän itse hetken. 910 00:43:31,260 --> 00:44:01,430 911 00:44:01,430 --> 00:44:04,149 >> Koska ne eivät anna meille esimerkiksi osoitteen, 912 00:44:04,149 --> 00:44:06,940 Olen juuri menossa tekemään ampersand x-- jonka pitäisi auttaa ajaa se kotiin. 913 00:44:06,940 --> 00:44:07,950 & -merkki Tarkoittaa osoite. 914 00:44:07,950 --> 00:44:09,540 915 00:44:09,540 --> 00:44:12,360 >> Joten ensimmäinen, kaikille mennä ensimmäinen rivi. 916 00:44:12,360 --> 00:44:15,690 Joitakin X setin five-- joitakin satunnainen slot muistiin. 917 00:44:15,690 --> 00:44:17,660 918 00:44:17,660 --> 00:44:23,200 Int tähti osoitin on yhtä osoitteeseen x, eikö? 919 00:44:23,200 --> 00:44:28,180 Int tähti osoitin luo tämä lohko, vaatii se osoitin, 920 00:44:28,180 --> 00:44:30,650 ja määrittää sen osoitteeseen x. 921 00:44:30,650 --> 00:44:32,750 922 00:44:32,750 --> 00:44:34,230 Olen kauhea -merkit. 923 00:44:34,230 --> 00:44:36,460 924 00:44:36,460 --> 00:44:40,550 >> Nyt mitä teemme on sanomme OK, dereference meidän osoitin. 925 00:44:40,550 --> 00:44:42,760 Joten mennään OK, mitä meidän osoitin? 926 00:44:42,760 --> 00:44:44,820 Se on & -merkki x. 927 00:44:44,820 --> 00:44:49,400 Mene ampersand x ja luovuttamaan sen. 928 00:44:49,400 --> 00:44:51,620 929 00:44:51,620 --> 00:44:57,480 >> Joten nyt, et-merkki X tulee olemaan 35. 930 00:44:57,480 --> 00:45:01,540 931 00:45:01,540 --> 00:45:05,174 Joten periaatteessa, kun olet dereferencing, menet OK. 932 00:45:05,174 --> 00:45:07,090 Aiot olla piirros kuvia, kuten tämä. 933 00:45:07,090 --> 00:45:09,423 Aiot olla piirros nuolia yli, missä se on. 934 00:45:09,423 --> 00:45:16,030 Joten mene tähän rakoon muistiin ja joko anna minulle, että arvo takaisin tai muuttaa sitä. 935 00:45:16,030 --> 00:45:21,620 Tässä tapauksessa, koska olemme tällä arvo, olemme osoitetaan sen olevan 35. 936 00:45:21,620 --> 00:45:24,700 Toteaa, että viimeisten yksi, jos huomaat, me 937 00:45:24,700 --> 00:45:27,680 tehtiin määrittämällä, mitä oli täällä on jotain muuta. 938 00:45:27,680 --> 00:45:30,450 939 00:45:30,450 --> 00:45:32,245 >> Joten heillä on tämä mahtava pöytä. 940 00:45:32,245 --> 00:45:35,000 941 00:45:35,000 --> 00:45:36,890 Se ei ole niin paha. 942 00:45:36,890 --> 00:45:37,970 Te työstää sitä. 943 00:45:37,970 --> 00:45:39,640 Aion vetää sitä pöydällä. 944 00:45:39,640 --> 00:45:41,306 Aiomme täyttää sen yhdessä, OK? 945 00:45:41,306 --> 00:45:42,290 946 00:45:42,290 --> 00:45:45,530 Joten napata joitakin paperia, tartu kumppanin, aloittaa työskentelyn. 947 00:45:45,530 --> 00:45:53,897 948 00:45:53,897 --> 00:45:55,605 Aion saada isompi liidun. 949 00:45:55,605 --> 00:45:56,624 950 00:45:56,624 --> 00:45:58,150 Koska se tulee olemaan paljon. 951 00:45:58,150 --> 00:45:59,410 952 00:45:59,410 --> 00:45:59,910 OK. 953 00:45:59,910 --> 00:48:08,567 954 00:48:08,567 --> 00:48:09,150 PROFESSORI: OK. 955 00:48:09,150 --> 00:48:11,599 956 00:48:11,599 --> 00:48:12,890 Aloitetaan ensimmäisen rivin. 957 00:48:12,890 --> 00:48:14,070 958 00:48:14,070 --> 00:48:16,970 Aloitamme siellä, niin te voi ehkä työn kautta lisää. 959 00:48:16,970 --> 00:48:17,870 OK. 960 00:48:17,870 --> 00:48:19,810 on yhtä kuin b kertaa c niin mikä on? 961 00:48:19,810 --> 00:48:21,420 962 00:48:21,420 --> 00:48:23,260 Se ei ole temppu kysymys, lupaan. 963 00:48:23,260 --> 00:48:24,440 >> Opiskelija: 4 kertaa 5. 964 00:48:24,440 --> 00:48:25,420 >> PROFESSORI: 4 kertaa 5. 965 00:48:25,420 --> 00:48:25,920 20. 966 00:48:25,920 --> 00:48:26,730 Niin mitä b? 967 00:48:26,730 --> 00:48:27,921 968 00:48:27,921 --> 00:48:28,420 Opiskelija: 4. 969 00:48:28,420 --> 00:48:30,204 970 00:48:30,204 --> 00:48:31,043 >> PROFESSORI: ja C? 971 00:48:31,043 --> 00:48:31,542 Opiskelija: 5. 972 00:48:31,542 --> 00:48:32,083 PROFESSORI: 5. 973 00:48:32,083 --> 00:48:35,960 Ja sitten tämä on juuri menossa olla ampersand, et-merkki b, 974 00:48:35,960 --> 00:48:38,575 ampersand C, eikö? 975 00:48:38,575 --> 00:48:39,728 976 00:48:39,728 --> 00:48:40,596 Ei paha. 977 00:48:40,596 --> 00:48:42,081 Se on tarpeeksi yksinkertainen. 978 00:48:42,081 --> 00:48:42,580 OK. 979 00:48:42,580 --> 00:48:44,300 Joten seuraava. 980 00:48:44,300 --> 00:48:48,725 On yhtä kertaa C, mikäli joku oli tunne, että. 981 00:48:48,725 --> 00:48:49,812 982 00:48:49,812 --> 00:48:53,300 On kaikille tuttu ajat on sama? 983 00:48:53,300 --> 00:49:00,105 OK, kaikki tämä means-- tämä on lyhenteenä on yhtä kertaa C. 984 00:49:00,105 --> 00:49:04,840 Voit myös tehdä sen jako, lisäten, vähentäen. 985 00:49:04,840 --> 00:49:12,130 Voit tehdä tasavertaisten tai plus yhtä kuin C tarkoittaa yhtä kuin plus C, miinus yhtäläiset 986 00:49:12,130 --> 00:49:15,190 C olisi yhtä suuri miinus C. 987 00:49:15,190 --> 00:49:16,690 Se on vain syntaktista sokeria. 988 00:49:16,690 --> 00:49:19,380 989 00:49:19,380 --> 00:49:24,140 >> Eli tässä tapauksessa on yhtä suuri kuin kertaa C antaisi meille mitä? 990 00:49:24,140 --> 00:49:25,910 991 00:49:25,910 --> 00:49:28,186 Jälleen, ei ole temppu kysymys. 992 00:49:28,186 --> 00:49:28,965 >> Opiskelija: 100. 993 00:49:28,965 --> 00:49:29,300 >> PROFESSORI: 100. 994 00:49:29,300 --> 00:49:30,383 Onko mitään muuta vaihtaa? 995 00:49:30,383 --> 00:49:31,790 996 00:49:31,790 --> 00:49:32,290 Ei. 997 00:49:32,290 --> 00:49:37,380 998 00:49:37,380 --> 00:49:39,850 Ehkä vihdoinkin paremmin minun -merkit. 999 00:49:39,850 --> 00:49:42,047 >> Opiskelija: OK, anteeksi, miten sait 100? 1000 00:49:42,047 --> 00:49:42,630 PROFESSORI: OK. 1001 00:49:42,630 --> 00:49:46,594 Joten on yhtä suuri kuin kertaa C, joten kertaa C. 1002 00:49:46,594 --> 00:49:48,510 Opiskelija: Ai, sinä käytät varten previous-- 1003 00:49:48,510 --> 00:49:49,135 PROFESSORI: Kyllä. 1004 00:49:49,135 --> 00:49:51,450 Joten nämä ovat viimeisimmät arvot. 1005 00:49:51,450 --> 00:49:53,990 Nämä ovat mitä pitäisi olla käyttäen kun siirrymme alas, OK. 1006 00:49:53,990 --> 00:49:57,290 1007 00:49:57,290 --> 00:50:01,520 Joten, b on ainoa asia muuttuu, eikö? 1008 00:50:01,520 --> 00:50:02,910 Joten täyttää kaikki muu. 1009 00:50:02,910 --> 00:50:09,110 1010 00:50:09,110 --> 00:50:11,330 B. Mikä on b tulee olemaan? 1011 00:50:11,330 --> 00:50:13,020 1012 00:50:13,020 --> 00:50:14,140 Ollako vai eikö olla. 1013 00:50:14,140 --> 00:50:18,680 1014 00:50:18,680 --> 00:50:20,240 Joten mitä tämä tekee? 1015 00:50:20,240 --> 00:50:21,605 Mikä on tähti pa tekee? 1016 00:50:21,605 --> 00:50:23,280 1017 00:50:23,280 --> 00:50:25,350 >> Opiskelija: Koodi sijainnin pa. 1018 00:50:25,350 --> 00:50:26,390 1019 00:50:26,390 --> 00:50:27,480 >> Opiskelija: Ei, ei aivan. 1020 00:50:27,480 --> 00:50:29,470 Joten tämä on d viite. 1021 00:50:29,470 --> 00:50:31,580 >> Opiskelija: Niin b luovutetaan arvo pa. 1022 00:50:31,580 --> 00:50:37,340 >> PROFESSORI: Joo, niin pa on osoitteen, eikö? 1023 00:50:37,340 --> 00:50:42,430 Niin se sanoo sinne, missä on varastoida ja antaa se, että arvo. 1024 00:50:42,430 --> 00:50:43,884 Joten mikä on b? 1025 00:50:43,884 --> 00:50:44,425 Opiskelija: 100. 1026 00:50:44,425 --> 00:50:46,534 PROFESSORI: 100. 1027 00:50:46,534 --> 00:50:47,450 Perfect. 1028 00:50:47,450 --> 00:50:49,879 OK, niin pc on mikä muuttuu. 1029 00:50:49,879 --> 00:50:51,170 Kaikki muu pysyy samana. 1030 00:50:51,170 --> 00:50:57,160 1031 00:50:57,160 --> 00:50:58,620 Mikä PC tulee olemaan? 1032 00:50:58,620 --> 00:51:00,770 1033 00:51:00,770 --> 00:51:01,580 Yksinkertainen tehtävä. 1034 00:51:01,580 --> 00:51:03,520 1035 00:51:03,520 --> 00:51:05,990 PC on yhtä pa, ja mikä on pa? 1036 00:51:05,990 --> 00:51:07,049 >> Opiskelija: & -merkki. 1037 00:51:07,049 --> 00:51:07,840 PROFESSORI: Perfect. 1038 00:51:07,840 --> 00:51:09,490 1039 00:51:09,490 --> 00:51:10,740 Nyt olemme pääsemässä mielenkiintoinen. 1040 00:51:10,740 --> 00:51:12,310 1041 00:51:12,310 --> 00:51:15,230 OK, nyt murtaa tämä yksi alas. 1042 00:51:15,230 --> 00:51:21,110 Ensinnäkin, mitä b kertaa C, koska se on helppo osa tätä, eikö? 1043 00:51:21,110 --> 00:51:22,360 B kertaa C is-- 1044 00:51:22,360 --> 00:51:23,320 >> Opiskelija: 500. 1045 00:51:23,320 --> 00:51:28,880 >> PROFESSORI: Joo, niin mitä tämä tekee, 1046 00:51:28,880 --> 00:51:33,705 Jos se on tähti pb, mikä muuttuu? 1047 00:51:33,705 --> 00:51:35,320 1048 00:51:35,320 --> 00:51:37,242 >> Opiskelija: Mitä the-- 1049 00:51:37,242 --> 00:51:38,200 PROFESSORI: Mitä b? 1050 00:51:38,200 --> 00:51:41,340 Opiskelija: Mikä avaruudessa että pb on osoittaa. 1051 00:51:41,340 --> 00:51:43,406 PROFESSORI: Ja PB osoittaa to-- 1052 00:51:43,406 --> 00:51:43,905 Opiskelija: B. 1053 00:51:43,905 --> 00:51:46,740 PROFESSORI: B. Joten ainoa asia on vaihtoväli b, oikea. 1054 00:51:46,740 --> 00:51:50,800 Joten b kertaa C, 500. 1055 00:51:50,800 --> 00:51:52,367 Niin, että mitä muutoksia nyt. 1056 00:51:52,367 --> 00:51:59,091 1057 00:51:59,091 --> 00:51:59,590 Cool. 1058 00:51:59,590 --> 00:52:00,340 1059 00:52:00,340 --> 00:52:00,840 Lovely. 1060 00:52:00,840 --> 00:52:01,905 Te teette hyvin. 1061 00:52:01,905 --> 00:52:03,650 1062 00:52:03,650 --> 00:52:06,740 Okei, murtaa tämä yksi alas. 1063 00:52:06,740 --> 00:52:08,050 1064 00:52:08,050 --> 00:52:09,630 C muuttuu, eikö? 1065 00:52:09,630 --> 00:52:11,530 Joten voimme täyttää kaikki muu. 1066 00:52:11,530 --> 00:52:12,540 1067 00:52:12,540 --> 00:52:13,205 Katsotaanpa. 1068 00:52:13,205 --> 00:52:19,125 1069 00:52:19,125 --> 00:52:19,625 OK. 1070 00:52:19,625 --> 00:52:21,420 1071 00:52:21,420 --> 00:52:24,740 Tiedämme, että C tulee olemaan Kahden luvun, eikö? 1072 00:52:24,740 --> 00:52:26,290 1073 00:52:26,290 --> 00:52:27,980 Mitä kaksi numeroa, vaikka? 1074 00:52:27,980 --> 00:52:28,970 >> Opiskelija: ja C? 1075 00:52:28,970 --> 00:52:31,930 >> PROFESSORI: Niin on oikea ensimmäinen. 1076 00:52:31,930 --> 00:52:34,385 Joten olemme vrk löytymistä p, eikö? 1077 00:52:34,385 --> 00:52:35,390 1078 00:52:35,390 --> 00:52:42,870 P pistettä, joten tiedämme, että tämä tulee olemaan 100 kertaa mitä? 1079 00:52:42,870 --> 00:52:46,232 Kertaa mitä pc piste? 1080 00:52:46,232 --> 00:52:47,410 1081 00:52:47,410 --> 00:52:48,740 Viittaa. 1082 00:52:48,740 --> 00:52:55,038 Joten 100 kertaa 100 on 10.000. 1083 00:52:55,038 --> 00:52:56,170 Onko se järkevää? 1084 00:52:56,170 --> 00:52:57,640 1085 00:52:57,640 --> 00:52:58,200 Cool. 1086 00:52:58,200 --> 00:53:00,500 Loppusuoralla, kaverit, viimeinen rivi. 1087 00:53:00,500 --> 00:53:01,190 OK. 1088 00:53:01,190 --> 00:53:02,160 Mikä muuttuu täällä? 1089 00:53:02,160 --> 00:53:05,640 1090 00:53:05,640 --> 00:53:06,935 >> Opiskelija: A. 1091 00:53:06,935 --> 00:53:09,435 PROFESSORI: A. Perfect, joten kaikki muu voi pysyä samana. 1092 00:53:09,435 --> 00:53:16,210 1093 00:53:16,210 --> 00:53:16,710 OK. 1094 00:53:16,710 --> 00:53:17,970 Ja mikä on? 1095 00:53:17,970 --> 00:53:23,610 1096 00:53:23,610 --> 00:53:26,060 Joten se on aina mitä? 1097 00:53:26,060 --> 00:53:27,120 Tämä on tähti pb. 1098 00:53:27,120 --> 00:53:29,750 1099 00:53:29,750 --> 00:53:34,490 Joten tähti pb tarkoittaa tässä pb, pb pistettä b. 1100 00:53:34,490 --> 00:53:35,370 >> Opiskelija: 500. 1101 00:53:35,370 --> 00:53:36,230 >> PROFESSORI: 500. 1102 00:53:36,230 --> 00:53:39,236 Joten meillä on 500 kertaa 100. 1103 00:53:39,236 --> 00:53:41,758 Se on 50000. 1104 00:53:41,758 --> 00:53:43,216 Vau! 1105 00:53:43,216 --> 00:53:45,646 Katsokaa tuota. 1106 00:53:45,646 --> 00:53:47,982 >> Opiskelija: Miksi meillä & C last-- 1107 00:53:47,982 --> 00:53:48,690 PROFESSORI: Anteeksi. 1108 00:53:48,690 --> 00:53:50,080 Opiskelija: Ai, OK. 1109 00:53:50,080 --> 00:53:51,600 PROFESSORI: My bad. 1110 00:53:51,600 --> 00:53:52,890 Paljon kirjallisesti. 1111 00:53:52,890 --> 00:53:53,917 1112 00:53:53,917 --> 00:53:54,500 Jokainen hyvä? 1113 00:53:54,500 --> 00:53:55,630 1114 00:53:55,630 --> 00:53:56,660 Ei liian huono, eikö? 1115 00:53:56,660 --> 00:53:58,490 Vie vain vähän vaikka työn kautta. 1116 00:53:58,490 --> 00:54:01,080 Jos rikot sen alas, ymmärtää, mitä kukin osa 1117 00:54:01,080 --> 00:54:03,197 viittaa to-- kuin kaiken sen, 1118 00:54:03,197 --> 00:54:05,780 yes-- murtaa se alas hieman ongelmia ja sitten recombine, 1119 00:54:05,780 --> 00:54:07,345 ja voit tehdä joitakin mahtavia juttuja. 1120 00:54:07,345 --> 00:54:08,970 On vastauksia, mutta me teimme sen. 1121 00:54:08,970 --> 00:54:10,324 1122 00:54:10,324 --> 00:54:11,115 Pointer aritmeettinen. 1123 00:54:11,115 --> 00:54:13,961 1124 00:54:13,961 --> 00:54:14,460 Ah. 1125 00:54:14,460 --> 00:54:15,510 Käteni ovat kaikki kalkkipitoinen. 1126 00:54:15,510 --> 00:54:17,970 Joten lisäämällä tai vähentämällä int säätää osoittimen 1127 00:54:17,970 --> 00:54:21,890 koon tyypin osoittimen. 1128 00:54:21,890 --> 00:54:22,940 1129 00:54:22,940 --> 00:54:28,390 Muistan, kuinka jokainen tyyppi on erikokoisia? 1130 00:54:28,390 --> 00:54:34,890 Niin kuin kaksinkertainen tai pitkä pitkä kahdeksan ja int on neljä, mutta nieriä on yksi. 1131 00:54:34,890 --> 00:54:38,360 >> Joten mitä haluat tehdä is-- yksi asia muistaa 1132 00:54:38,360 --> 00:54:44,080 on vain, että kuinka paljon osoitinarvon todella muuttuu 1133 00:54:44,080 --> 00:54:46,550 riippuu tyyppinen osoitin on. 1134 00:54:46,550 --> 00:54:50,820 1135 00:54:50,820 --> 00:54:51,820 Jokainen hyvä tässä? 1136 00:54:51,820 --> 00:54:52,760 Voinko poistaa sen? 1137 00:54:52,760 --> 00:54:53,440 Olemme hyviä? 1138 00:54:53,440 --> 00:54:53,940 Mahtava. 1139 00:54:53,940 --> 00:55:01,020 1140 00:55:01,020 --> 00:55:07,501 >> Joten jos meillä on joitakin osoitin that-- tämä tulee be-- olen 1141 00:55:07,501 --> 00:55:08,834 aio tehdä sitä int osoitin. 1142 00:55:08,834 --> 00:55:10,610 1143 00:55:10,610 --> 00:55:12,760 Se tallentaa tämän. 1144 00:55:12,760 --> 00:55:14,210 1145 00:55:14,210 --> 00:55:20,170 Jos sinun pitäisi sanoa osoitin plus yksi, mitä se aikoo tehdä 1146 00:55:20,170 --> 00:55:23,420 on se tulee päivittää sen kokoa int 1147 00:55:23,420 --> 00:55:25,950 koska se on tyyppinen osoitin on. 1148 00:55:25,950 --> 00:55:28,260 >> C, kaikki on hyvin tiukka ja säännelty. 1149 00:55:28,260 --> 00:55:29,440 1150 00:55:29,440 --> 00:55:35,260 Int osoitin tulee päivittää mukaan tilan määrä int kestäisi. 1151 00:55:35,260 --> 00:55:36,260 Int on neljä tavua. 1152 00:55:36,260 --> 00:55:37,650 1153 00:55:37,650 --> 00:55:39,060 >> Joten mitä tämä muuttuu? 1154 00:55:39,060 --> 00:55:40,876 1155 00:55:40,876 --> 00:55:44,390 Olet vain lisäämällä neljä päälle tämä. 1156 00:55:44,390 --> 00:55:50,040 Nyt osoitin olisi be-- OK. 1157 00:55:50,040 --> 00:55:51,820 1158 00:55:51,820 --> 00:55:55,380 >> Joten jos se oli nieriää ja teimme osoitin plus yksi, mikä se olisi nyt? 1159 00:55:55,380 --> 00:56:00,300 1160 00:56:00,300 --> 00:56:03,330 Jos se started-- teeskentelemällä started-- nyt se on 0x08. 1161 00:56:03,330 --> 00:56:04,850 1162 00:56:04,850 --> 00:56:10,850 Oletetaan nyt sanoa, että tämä oli char osoitin, ja lisäsimme yhden. 1163 00:56:10,850 --> 00:56:11,850 Mitä se muuttaa? 1164 00:56:11,850 --> 00:56:14,989 1165 00:56:14,989 --> 00:56:16,030 Kuinka monta tavua on char? 1166 00:56:16,030 --> 00:56:16,680 >> Yleisö: One. 1167 00:56:16,680 --> 00:56:17,304 >> SPEAKER 1: One. 1168 00:56:17,304 --> 00:56:18,309 Yleisö: Niin 0x09. 1169 00:56:18,309 --> 00:56:19,600 SPEAKER 1: Niin se olisi yhdeksän. 1170 00:56:19,600 --> 00:56:22,571 1171 00:56:22,571 --> 00:56:23,820 Joten jotain muistaa. 1172 00:56:23,820 --> 00:56:28,340 Juuri kun lisäät yhden, se ei ole lisäämällä yksi ellei se merkkiä. 1173 00:56:28,340 --> 00:56:34,190 Se lisätään kuinka monta tavua tyyppiä, että se on, 1174 00:56:34,190 --> 00:56:36,960 minkä vuoksi olemme tämä yhtälö täällä. 1175 00:56:36,960 --> 00:56:40,190 Joten se on int kertaa koko tyypin osoitin. 1176 00:56:40,190 --> 00:56:42,850 1177 00:56:42,850 --> 00:56:44,730 >> Joten meillä on esimerkki tästä. 1178 00:56:44,730 --> 00:56:47,250 1179 00:56:47,250 --> 00:56:54,430 Y oli määrätty, että arvo, 0x4, kun teimme y plus vastaa yhtä. 1180 00:56:54,430 --> 00:56:56,830 Mitä se, mitä x, ei muutu. 1181 00:56:56,830 --> 00:56:58,610 Mitä muutos on mitä on y. 1182 00:56:58,610 --> 00:57:04,980 Osoite tallennettu y päivitetty neljä koska on neljä tavua int 1183 00:57:04,980 --> 00:57:06,097 ja se on int osoitin. 1184 00:57:06,097 --> 00:57:07,290 1185 00:57:07,290 --> 00:57:07,790 >> Selvä. 1186 00:57:07,790 --> 00:57:09,123 Joten nyt meillä on toinen harjoitus. 1187 00:57:09,123 --> 00:57:11,140 1188 00:57:11,140 --> 00:57:13,500 Joten kysymys on, mitä tulostetaan. 1189 00:57:13,500 --> 00:57:36,710 1190 00:57:36,710 --> 00:57:37,650 Onko ideoita? 1191 00:57:37,650 --> 00:57:41,690 1192 00:57:41,690 --> 00:57:43,699 >> Yleisö: määrä merkkiä onnellinen kissa? 1193 00:57:43,699 --> 00:57:44,490 SPEAKER 1: Aivan. 1194 00:57:44,490 --> 00:57:45,531 Niin kuin teidän merkkijono. 1195 00:57:45,531 --> 00:57:47,302 1196 00:57:47,302 --> 00:57:48,260 Onko kaikki tuon? 1197 00:57:48,260 --> 00:57:49,509 Haluammeko kävellä läpi? 1198 00:57:49,509 --> 00:57:50,300 1199 00:57:50,300 --> 00:57:52,010 >> Kyllä, OK. 1200 00:57:52,010 --> 00:57:57,385 Eli meillä here-- I näin niin paljon enemmän. 1201 00:57:57,385 --> 00:57:59,340 En tarvitse [Kuultavissa] naurettavan. 1202 00:57:59,340 --> 00:58:01,690 >> Joten meillä on jono täällä, onnellinen kissa. 1203 00:58:01,690 --> 00:58:02,950 Lovely. 1204 00:58:02,950 --> 00:58:05,080 Meillä on joitakin laskuri Pidämme kirjaa. 1205 00:58:05,080 --> 00:58:11,430 Joten meillä on joitakin char * osoitin että vain asetetaan arvoon str. 1206 00:58:11,430 --> 00:58:14,320 Mitä tämä tekee on se osoitetaan joitakin osoitin 1207 00:58:14,320 --> 00:58:16,380 alkuun merkkijono. 1208 00:58:16,380 --> 00:58:19,840 Koska olen varma, koska se mainittiin luento, 1209 00:58:19,840 --> 00:58:22,290 Me olemme antaneet teille kaverit tämän tietotyyppi kutsutaan merkkijono. 1210 00:58:22,290 --> 00:58:29,070 >> Mutta todella jouset ovat vain array of-- kuten char *. 1211 00:58:29,070 --> 00:58:32,330 Se osoittimen kasan merkkejä jotka ovat vierekkäin muistissa. 1212 00:58:32,330 --> 00:58:33,680 1213 00:58:33,680 --> 00:58:36,280 Joten tämä vain asettaa se vastaa mitä tahansa merkkijonoa on 1214 00:58:36,280 --> 00:58:38,980 tunnistetaan, jos sen ensimmäinen kirjain. 1215 00:58:38,980 --> 00:58:42,710 Joten tämä on vain asettamalla jossain vaiheessa yhtä merkkijonon alusta lukien. 1216 00:58:42,710 --> 00:58:44,130 Jokainen hyvä siellä? 1217 00:58:44,130 --> 00:58:44,960 Cool. 1218 00:58:44,960 --> 00:58:49,840 >> Joten tämä on dereferencing meidän osoitin. 1219 00:58:49,840 --> 00:58:53,760 Joten se todella tulee antaa meille jotain arvoa täällä, 1220 00:58:53,760 --> 00:58:55,610 meidän string että puhumme. 1221 00:58:55,610 --> 00:58:58,342 Ja sanomme niin kauan kuin se ei ole null terminaattori. 1222 00:58:58,342 --> 00:59:00,550 Joten jatka kunnes saat ja merkkijonon loppuun. 1223 00:59:00,550 --> 00:59:02,180 1224 00:59:02,180 --> 00:59:04,190 Päivitä osoitinta yhdellä. 1225 00:59:04,190 --> 00:59:09,250 Niin R, se todella päivittää yhdellä joka kerta, koska tämä on char, 1226 00:59:09,250 --> 00:59:09,820 char *. 1227 00:59:09,820 --> 00:59:10,930 1228 00:59:10,930 --> 00:59:12,340 >> Niin se menee läpi. 1229 00:59:12,340 --> 00:59:13,290 Se tulee päivittää. 1230 00:59:13,290 --> 00:59:16,705 Joten ensimmäistä kertaa tässä käynnistetään, se tulee olemaan täällä h. 1231 00:59:16,705 --> 00:59:17,590 Se tulee päivittää. 1232 00:59:17,590 --> 00:59:18,185 >> Se tulee olemaan. 1233 00:59:18,185 --> 00:59:21,310 Se tulee olemaan p, y, ja niin edelleen ja niin edelleen. 1234 00:59:21,310 --> 00:59:22,300 Me päivittää laskuri. 1235 00:59:22,300 --> 00:59:26,160 Kun se loppuu, se vain tulostaa kuinka pitkälle se on mennyt. 1236 00:59:26,160 --> 00:59:27,550 1237 00:59:27,550 --> 00:59:28,050 Kyllä. 1238 00:59:28,050 --> 00:59:31,475 >> Yleisö: Niin se laskee tilaa kuin yksi, eikö? 1239 00:59:31,475 --> 00:59:31,974 OK. 1240 00:59:31,974 --> 00:59:34,294 1241 00:59:34,294 --> 00:59:35,222 >> SPEAKER 1: Ajattele niin. 1242 00:59:35,222 --> 00:59:36,830 Onko se question-- 1243 00:59:36,830 --> 00:59:37,746 >> Yleisö: [kuulumaton]. 1244 00:59:37,746 --> 00:59:37,968 1245 00:59:37,968 --> 00:59:38,884 >> SPEAKER 1: Ei hätää. 1246 00:59:38,884 --> 00:59:39,720 1247 00:59:39,720 --> 00:59:42,736 Tämän teen sen. 1248 00:59:42,736 --> 00:59:47,710 Okei, joten yksi asia ymmärtää, että array, 1249 00:59:47,710 --> 00:59:51,736 Voit myös pitää sitä osoitin koska taulukot ovat vain 1250 00:59:51,736 --> 00:59:52,860 jatkuva paikkoja muistia. 1251 00:59:52,860 --> 00:59:53,970 1252 00:59:53,970 --> 00:59:56,380 >> Joten voit käsitellä sitä samalla tavalla. 1253 00:59:56,380 --> 00:59:59,000 Voit käsitellä niitä osoittimet, liian. 1254 00:59:59,000 --> 01:00:04,770 Joten sen sijaan tehdä, tässä Tällöin analoginen asia 1255 01:00:04,770 --> 01:00:07,490 olisi array 0 on 1. 1256 01:00:07,490 --> 01:00:08,760 1257 01:00:08,760 --> 01:00:15,210 >> Mutta samalla tavalla, että merkkijono on määritetty 1258 01:00:15,210 --> 01:00:18,740 alkuun mennessä, jos sen ensimmäinen merkki on, 1259 01:00:18,740 --> 01:00:22,270 array määritetään jossa ensimmäinen alkuaine on. 1260 01:00:22,270 --> 01:00:25,120 Koska tiedämme, että olemme taattu, että nämä 1261 01:00:25,120 --> 01:00:27,985 tulevat olemaan jatkuvaa lohkot muistia. 1262 01:00:27,985 --> 01:00:29,360 Sitähän voimme tehdä tämän. 1263 01:00:29,360 --> 01:00:31,193 Tiedämme, että he jatkuvasti lohkot muistia. 1264 01:00:31,193 --> 01:00:32,230 1265 01:00:32,230 --> 01:00:36,500 >> Joten tässä tapauksessa, jonka dereferencing vain array, joka kertoo meille, 1266 01:00:36,500 --> 01:00:40,800 OK, siirry alkua matriisin, joka on täällä. 1267 01:00:40,800 --> 01:00:42,640 Joten voit asettaa sen arvoksi otetaan yksi. 1268 01:00:42,640 --> 01:00:48,610 Ja tässä tapauksessa, mitä teidän array tyyppi on, kun päivität sen yhden, 1269 01:00:48,610 --> 01:00:50,830 että on aivan kuin päivittäminen se seuraavaan indeksiin. 1270 01:00:50,830 --> 01:00:52,760 1271 01:00:52,760 --> 01:00:56,360 Voit tehdä sen, koska olet tietää mitä teidän array. 1272 01:00:56,360 --> 01:00:59,770 Niin se tietää kuinka paljon päivittää osoitinta, 1273 01:00:59,770 --> 01:01:02,925 mikä osoite päivittää sen niin että olet seuraavassa välissä. 1274 01:01:02,925 --> 01:01:04,740 1275 01:01:04,740 --> 01:01:09,400 >> Joten tämä on vain erilainen tapa kirjoitettaessa array 0 on 1, 1276 01:01:09,400 --> 01:01:15,114 array 1 = 2, array kiinnike 2 tuloksena on 3. 1277 01:01:15,114 --> 01:01:16,780 Se on vain yksi tapa ajatella asiaa. 1278 01:01:16,780 --> 01:01:19,600 Koska ne ovat jatkuvia lohkot muistiin, 1279 01:01:19,600 --> 01:01:21,830 voit viitata niihin joko jonka array notation-- 1280 01:01:21,830 --> 01:01:24,390 josta olen itse löytää easier-- mutta ehkä 1281 01:01:24,390 --> 01:01:27,347 sinun täytyy käsitellä sitä tiukasti muisti osoitteita. 1282 01:01:27,347 --> 01:01:28,930 Ja tämä on tapa voisitte tehdä. 1283 01:01:28,930 --> 01:01:30,630 1284 01:01:30,630 --> 01:01:32,630 Tavallaan enemmän kuin viileä mitä voi tehdä 1285 01:01:32,630 --> 01:01:35,213 vs. ehkä ole jotain olet todella aikoo toteuttaa. 1286 01:01:35,213 --> 01:01:36,960 1287 01:01:36,960 --> 01:01:38,630 >> Käytän sitä 61. 1288 01:01:38,630 --> 01:01:41,710 Te luultavasti ei tarvitse huolehtia siitä liikaa. 1289 01:01:41,710 --> 01:01:43,693 Mutta jos olet kiinnostunut, ottaa 61 ensi vuonna. 1290 01:01:43,693 --> 01:01:45,269 1291 01:01:45,269 --> 01:01:46,560 Olemme loppusuoralla kaverit. 1292 01:01:46,560 --> 01:01:47,510 Tiedän, se on pitkä. 1293 01:01:47,510 --> 01:01:50,570 1294 01:01:50,570 --> 01:01:58,880 Dynaaminen muisti Allocation-- joten tiedämme, että yksi 1295 01:01:58,880 --> 01:02:01,790 asioita kun puhuimme aikana meidän ensimmäinen jakso yhdessä, 1296 01:02:01,790 --> 01:02:04,560 me katsoimme swap toiminto, jossa se oli 1297 01:02:04,560 --> 01:02:08,010 soveltamisalan ulkopuolella tärkein toiminto. 1298 01:02:08,010 --> 01:02:14,370 Ja olimme ohimennen näitä arvoja jotka olivat tehokkaasti kopioita. 1299 01:02:14,370 --> 01:02:20,570 >> Ja kerran swap päättynyt täytäntöönpanosta, se vain lähti pino. 1300 01:02:20,570 --> 01:02:22,830 Muista, meillä on pino runko swap. 1301 01:02:22,830 --> 01:02:26,070 Se lähtee ja ne arvoja saanut sitä. 1302 01:02:26,070 --> 01:02:27,050 Ja he olivat poissa. 1303 01:02:27,050 --> 01:02:28,615 Emme voineet tehdä mitään heidän kanssaan ja olimme surullisia 1304 01:02:28,615 --> 01:02:29,989 koska emme voi vaihtaa arvojamme. 1305 01:02:29,989 --> 01:02:31,070 1306 01:02:31,070 --> 01:02:36,560 >> Mutta C, kuten mainitsin, et on paljon valtaa muistia. 1307 01:02:36,560 --> 01:02:43,310 Joten mitä voit tehdä on voit jakaa asioita kasaan täällä 1308 01:02:43,310 --> 01:02:46,830 että pysyy siellä, kunnes kerrot heille toisin. 1309 01:02:46,830 --> 01:02:48,280 >> Ne ovat kuin hyvä lapsille. 1310 01:02:48,280 --> 01:02:49,150 Ne pysyvät siellä. 1311 01:02:49,150 --> 01:02:50,270 He eivät jätä. 1312 01:02:50,270 --> 01:02:52,750 Ne pysyvät siellä, kunnes olet kuten, OK, voit mennä pois. 1313 01:02:52,750 --> 01:02:55,920 >> Ottaa huomioon, että asiat pinoon, who-- he ovat kuin tuhma lapsille. 1314 01:02:55,920 --> 01:02:59,160 He vain juosta pois, kun haluat olla siellä ja sitten he ovat poissa. 1315 01:02:59,160 --> 01:03:00,160 Et voi saada niitä takaisin. 1316 01:03:00,160 --> 01:03:01,350 1317 01:03:01,350 --> 01:03:07,187 >> Joten kasaan is-- aiomme puhua malloc ja vapaa, joka 1318 01:03:07,187 --> 01:03:08,895 Olen varma, että te kuulleet luento. 1319 01:03:08,895 --> 01:03:10,270 1320 01:03:10,270 --> 01:03:14,210 Ja se on pohjimmiltaan tapa olevan erittäin pysyviä tietoja. 1321 01:03:14,210 --> 01:03:18,920 Joten voit pitää tiedot noin niin kauan kuin haluat. 1322 01:03:18,920 --> 01:03:19,546 Mhm. 1323 01:03:19,546 --> 01:03:21,475 >> Yleisö: Voitko määritellä kasaan ja pino? 1324 01:03:21,475 --> 01:03:24,030 Ovatko he haluavat paikkoja laittaa asioita? 1325 01:03:24,030 --> 01:03:26,630 >> SPEAKER 1: Niin he pohjimmiltaan just-- he 1326 01:03:26,630 --> 01:03:29,530 Muuten puhumme vain muistiin. 1327 01:03:29,530 --> 01:03:37,300 Joten kasaan vain paikoissa, joissa muistista on dynaamisesti, 1328 01:03:37,300 --> 01:03:40,960 ottaa huomioon, että pino viittaa lisää pino kehyksiä 1329 01:03:40,960 --> 01:03:45,950 jotka ovat keskeisiä toimintoja, jotka ovat todella käynnissä. 1330 01:03:45,950 --> 01:03:47,200 Et todellakaan ole määräysvaltaa. 1331 01:03:47,200 --> 01:03:50,690 >> Suuri ero, sinulla on valvoa kasan päälle, jos haluat. 1332 01:03:50,690 --> 01:03:52,710 Sinulla on vähemmän keinoja valvoa pino. 1333 01:03:52,710 --> 01:03:55,030 Pino riippuu toimintoja, jotka ovat käynnissä, 1334 01:03:55,030 --> 01:03:58,320 ja järjestyksessä, jossa ne ovat ajaa, ja miten asiat palautetaan. 1335 01:03:58,320 --> 01:04:01,290 Taas kasaan, koska näemme, voit sanoa, 1336 01:04:01,290 --> 01:04:06,639 OK, haluan tämän arvon olevan noin kunnes kerron teille toisin. 1337 01:04:06,639 --> 01:04:08,180 Sinulla ei ole oikeutta päästä eroon siitä. 1338 01:04:08,180 --> 01:04:09,300 Et saa ohittaa sitä. 1339 01:04:09,300 --> 01:04:11,675 Aiot pitää sen ympärillä niin kauan kuin minä sanon. 1340 01:04:11,675 --> 01:04:15,780 Saat olla pomo kasaan, ottaa stack-- ehkä jos 1341 01:04:15,780 --> 01:04:18,080 kuten finagle tiesi voit olla pomo. 1342 01:04:18,080 --> 01:04:19,340 Mutta ei aivan. 1343 01:04:19,340 --> 01:04:20,480 1344 01:04:20,480 --> 01:04:22,070 Ja se on oikeastaan ​​vain muisto. 1345 01:04:22,070 --> 01:04:24,260 Se on vain eri tavoin viitata muistia. 1346 01:04:24,260 --> 01:04:25,800 1347 01:04:25,800 --> 01:04:26,400 >> Cool. 1348 01:04:26,400 --> 01:04:28,630 Niin, että, miten ohjata muistia. 1349 01:04:28,630 --> 01:04:32,070 Se on kanssa malloc, joka aiot saada käyttää. 1350 01:04:32,070 --> 01:04:37,100 Joten se on vain lyhyt muistin jakamista. 1351 01:04:37,100 --> 01:04:38,459 Sitä se vain on. 1352 01:04:38,459 --> 01:04:41,250 On joukko muita hienoja toimintoja, jotka ovat alloc lopussa, 1353 01:04:41,250 --> 01:04:42,750 ja he edustavat eri asioita. 1354 01:04:42,750 --> 01:04:43,550 1355 01:04:43,550 --> 01:04:49,050 >> Joten kun tarvitset varastointi, joka tarvitsee Outlast nykyinen toiminta, jotta 1356 01:04:49,050 --> 01:04:51,010 että kun nykyinen toiminto pakenee, 1357 01:04:51,010 --> 01:04:55,774 sinulla on vielä tietoja, jotka olet sai siitä, haluatko käyttää malloc. 1358 01:04:55,774 --> 01:04:57,190 Se tulee alustaa se kasaan. 1359 01:04:57,190 --> 01:05:00,140 Ja kuten sanoin ja pitää sanomalla, sinun pitää se siellä 1360 01:05:00,140 --> 01:05:03,050 ennen kuin kerrot sen toisin, mikä on tärkeintä tässä. 1361 01:05:03,050 --> 01:05:08,450 >> Niin yksi asia huomata, ja se on yleensä todella tärkeää, 1362 01:05:08,450 --> 01:05:13,620 on, että tämä sizeof on erittäin hyödyllistä käyttää 1363 01:05:13,620 --> 01:05:16,440 koska riippuen Koneen näytät, 1364 01:05:16,440 --> 01:05:22,470 se voi olla vaihtelevia määriä Muistin, että se kestää. 1365 01:05:22,470 --> 01:05:26,870 Niin haluat aina käyttää koko niin että et ole kone riippuvainen, 1366 01:05:26,870 --> 01:05:30,300 niin, että koodi ajaa millä tahansa koneella. 1367 01:05:30,300 --> 01:05:32,360 >> Ja tämä on vain osa kirjoittaa hyvää koodia. 1368 01:05:32,360 --> 01:05:34,610 Jos se toimii yhdellä koneella, mutta ei mitään muita, 1369 01:05:34,610 --> 01:05:36,440 kuinka hyödyllistä oli ohjelman? 1370 01:05:36,440 --> 01:05:38,420 Niin haluat aina Varmista ja käyttää sizeof. 1371 01:05:38,420 --> 01:05:41,306 >> Yleisö: Niin on, että kuten koko 10 tuumaa [kuulumaton]? 1372 01:05:41,306 --> 01:05:43,698 >> SPEAKER 1: Tämä on koko 10 ints. 1373 01:05:43,698 --> 01:05:44,197 joo. 1374 01:05:44,197 --> 01:05:45,360 1375 01:05:45,360 --> 01:05:48,830 Joten koko Ints palaa Kuinka paljon int kestää. 1376 01:05:48,830 --> 01:05:51,530 Tai koko char, miten Paljonko yksi char ottaa. 1377 01:05:51,530 --> 01:05:54,150 Ja sitten kuinka monta lohkojen Tämän sinä haluat? 1378 01:05:54,150 --> 01:05:57,590 >> Joten tässä tapauksessa, haluamme jotain että voimme varastoida 10 ints kohteeseen. 1379 01:05:57,590 --> 01:06:00,240 Ja se toimii riippumatta kone, joka on viileä. 1380 01:06:00,240 --> 01:06:01,720 1381 01:06:01,720 --> 01:06:04,846 Niin kuinka monta tavua jotka todella antavat sinulle? 1382 01:06:04,846 --> 01:06:06,190 Lyhyt matematiikka. 1383 01:06:06,190 --> 01:06:06,787 >> Yleisö: 40. 1384 01:06:06,787 --> 01:06:07,370 SPEAKER 1: 40. 1385 01:06:07,370 --> 01:06:07,869 Täsmälleen. 1386 01:06:07,869 --> 01:06:09,520 1387 01:06:09,520 --> 01:06:12,030 Niin toinen iso juttu. 1388 01:06:12,030 --> 01:06:14,840 Pointer tai malloc voi palauttaa null. 1389 01:06:14,840 --> 01:06:17,910 >> Joten jälleen, aina tarkistaa katso jos se palautetaan null 1390 01:06:17,910 --> 01:06:19,620 ennen kuin yrität ja tehdä sille mitään. 1391 01:06:19,620 --> 01:06:23,430 1392 01:06:23,430 --> 01:06:27,350 Jos yrität ja dereference Tämän osoittimen nyt 1393 01:06:27,350 --> 01:06:29,720 se on juuri menossa segfault koska menit ja kokeillut 1394 01:06:29,720 --> 01:06:31,730 koskettaa null, kun sinun ei pitäisi olla. 1395 01:06:31,730 --> 01:06:34,000 Joten aina tarkistaa null. 1396 01:06:34,000 --> 01:06:36,075 Jälleen, kaikki mitä voi tehdä. 1397 01:06:36,075 --> 01:06:38,300 1398 01:06:38,300 --> 01:06:39,720 >> Se saattaa palata null. 1399 01:06:39,720 --> 01:06:42,740 Se tulee palauttaa null, jos olet joko tila loppuu, tai mistä tahansa syystä 1400 01:06:42,740 --> 01:06:44,350 se törmäsi muistiin bug. 1401 01:06:44,350 --> 01:06:45,890 1402 01:06:45,890 --> 01:06:47,510 Joskus vain palauttaa null. 1403 01:06:47,510 --> 01:06:48,990 Joten sinun tarvitsee vain tarkistaa sitä. 1404 01:06:48,990 --> 01:06:51,050 Siinä kaikki tämän dian sanoo. 1405 01:06:51,050 --> 01:06:53,366 1406 01:06:53,366 --> 01:06:55,240 Ja sitten, mitä meillä on Tässä on kutsu ilmaiseksi. 1407 01:06:55,240 --> 01:07:00,550 Niin samalla tavalla, että jos Avaa tiedosto pitää sulkea tiedoston, 1408 01:07:00,550 --> 01:07:04,340 jos malloc muistia, teidän täytyy vapauttaa, että muistia. 1409 01:07:04,340 --> 01:07:06,530 Ja te saat tehdä todella hienoja juttuja. 1410 01:07:06,530 --> 01:07:09,624 >> Ja siellä on ohjelma, voit ajaa katso jos olet joskus vuotaa muistia. 1411 01:07:09,624 --> 01:07:11,040 Mutta et halua vuotaa muistia. 1412 01:07:11,040 --> 01:07:11,820 Se on todella huono. 1413 01:07:11,820 --> 01:07:13,191 1414 01:07:13,191 --> 01:07:15,020 Vain sotkea asioita. 1415 01:07:15,020 --> 01:07:20,939 >> Se on huono tehdä juuri kuten ohjelmointi viisasta suunnittelun tehokkuutta. 1416 01:07:20,939 --> 01:07:22,980 Mutta se on myös vain eräänlainen huono tietokoneellesi. 1417 01:07:22,980 --> 01:07:26,780 Joten vapaa asiat kun malloc niitä. 1418 01:07:26,780 --> 01:07:28,190 1419 01:07:28,190 --> 01:07:30,210 >> Näittekö symmetriat täällä. 1420 01:07:30,210 --> 01:07:31,180 Super yksinkertainen. 1421 01:07:31,180 --> 01:07:33,010 Vain vapaa ja sitten Mikä tahansa osoitin, 1422 01:07:33,010 --> 01:07:34,843 mikä nimi osoitin on, ja se 1423 01:07:34,843 --> 01:07:36,710 huolehtivat vapauttaa sen sinulle. 1424 01:07:36,710 --> 01:07:38,200 1425 01:07:38,200 --> 01:07:38,700 Cool. 1426 01:07:38,700 --> 01:07:40,410 1427 01:07:40,410 --> 01:07:42,530 >> Sitten meillä on tämä. 1428 01:07:42,530 --> 01:07:44,770 Joten olemme juuri menossa kulkea tätä ohjelmaa. 1429 01:07:44,770 --> 01:07:46,560 Ja sitten te olette tehneet. 1430 01:07:46,560 --> 01:07:50,240 >> Joten [äänetön] vain tärkeimmät. 1431 01:07:50,240 --> 01:07:51,690 Joten meillä on joitakin int * osoitin. 1432 01:07:51,690 --> 01:07:53,648 Joten meillä on osoitin että menee pitämään ints. 1433 01:07:53,648 --> 01:07:54,500 1434 01:07:54,500 --> 01:07:56,170 Ja kuinka monta ints se aikoo järjestää? 1435 01:07:56,170 --> 01:07:57,400 1436 01:07:57,400 --> 01:07:58,170 Vain yksi. 1437 01:07:58,170 --> 01:07:59,400 1438 01:07:59,400 --> 01:08:01,100 Koko int. 1439 01:08:01,100 --> 01:08:03,900 >> Me tarkistaa, onko osoitin on nolla, koska se 1440 01:08:03,900 --> 01:08:06,130 on, haluamme sanoa älä tee mitään. 1441 01:08:06,130 --> 01:08:07,065 Se on huono. 1442 01:08:07,065 --> 01:08:08,130 1443 01:08:08,130 --> 01:08:12,130 Joten me painamme jokin virhe ulos muisti, useimmiten palaa 1, 1444 01:08:12,130 --> 01:08:14,260 kuten te käytetään. 1445 01:08:14,260 --> 01:08:17,390 >> Ja sitten meillä on täällä, me dereference meidän osoitin. 1446 01:08:17,390 --> 01:08:22,840 Niin se tarkoittaa, että me aiomme säilyttää jotain sijainti annetaan meille. 1447 01:08:22,840 --> 01:08:24,350 1448 01:08:24,350 --> 01:08:30,830 Int * osoitin tai malloc, palauttaa osoite, jossa se kumosi tämän 1449 01:08:30,830 --> 01:08:31,750 muisti sinua. 1450 01:08:31,750 --> 01:08:32,830 1451 01:08:32,830 --> 01:08:34,800 Joten se on pohjimmiltaan antaa sinulle like-- jos 1452 01:08:34,800 --> 01:08:38,149 ajatella nippu taloja naapurustossa 1453 01:08:38,149 --> 01:08:40,640 että haluat laittaa teidän huonekalut, malloc 1454 01:08:40,640 --> 01:08:43,850 on kuin OK, saat mennä taloon kolme. 1455 01:08:43,850 --> 01:08:45,800 Ja se antaa sinulle osoite talossa kolme. 1456 01:08:45,800 --> 01:08:48,775 >> Joten tämä nyt, tämä osoitin tallentaa osoitteen, 1457 01:08:48,775 --> 01:08:50,149 tallentaa osoite talosi. 1458 01:08:50,149 --> 01:08:51,470 1459 01:08:51,470 --> 01:08:54,640 * Ptr keinoin, OK, olen kotonani. 1460 01:08:54,640 --> 01:08:55,326 Cool. 1461 01:08:55,326 --> 01:08:56,580 Minun täytyy saada joitakin kokonaisluku. 1462 01:08:56,580 --> 01:08:59,229 >> Joten pyydät jotakuta antaa sinulle huonekalujen nyt. 1463 01:08:59,229 --> 01:09:00,430 Niin saat noin int. 1464 01:09:00,430 --> 01:09:05,100 Ja se laittaa sen osoitin jos se osoittaa. 1465 01:09:05,100 --> 01:09:08,670 >> Ja sitten se vain tulostaa ulos, annoit missä. 1466 01:09:08,670 --> 01:09:11,060 Ja taas, viittaus. 1467 01:09:11,060 --> 01:09:15,649 Joten tämä on kuin menit tämän käsitellä ja näit, mitä siellä oli. 1468 01:09:15,649 --> 01:09:17,120 1469 01:09:17,120 --> 01:09:17,630 Cool? 1470 01:09:17,630 --> 01:09:20,174 >> Ja sitten tietysti me vapautamme meidän osoitin. 1471 01:09:20,174 --> 01:09:21,590 Älä unohda vapauttaa osoittimen. 1472 01:09:21,590 --> 01:09:22,933 Älä unohda tarkistaa null. 1473 01:09:22,933 --> 01:09:24,349 Älä unohda vapauttaa osoittimen. 1474 01:09:24,349 --> 01:09:27,270 Sinulla on kaksi asiaa muistat tämä, tai että sinun pitäisi muistaa. 1475 01:09:27,270 --> 01:09:27,770 Kyllä. 1476 01:09:27,770 --> 01:09:31,590 Yleisö: [kuulumaton] juttuja niin, char * s. 1477 01:09:31,590 --> 01:09:33,760 Miten ihmeessä me koskaan vapauttamaan? 1478 01:09:33,760 --> 01:09:34,529 >> SPEAKER 1: Hm? 1479 01:09:34,529 --> 01:09:36,450 >> Yleisö: Ovatko nuo kuten jouset? 1480 01:09:36,450 --> 01:09:39,160 Sanoit jouset ovat aivan kuten char * s, eikö? 1481 01:09:39,160 --> 01:09:41,200 Joten miksi emme tilaa jouset? 1482 01:09:41,200 --> 01:09:43,204 >> SPEAKER 1: Sinä vain ilmaiseksi, jos olet mallocing. 1483 01:09:43,204 --> 01:09:44,620 Yleisö: Voi, jos olet mallocing. 1484 01:09:44,620 --> 01:09:47,399 SPEAKER 1: Niin malloc ja ilmainen ovat kaksi asiaa 1485 01:09:47,399 --> 01:09:49,000 että sinun pitäisi aina olla yhdessä. 1486 01:09:49,000 --> 01:09:51,630 f avoin, f lähellä, kaksi asiaa sinulla pitäisi olla yhdessä. 1487 01:09:51,630 --> 01:09:54,471 Molemmissa näissä tapauksissa, tarkista null. 1488 01:09:54,471 --> 01:09:54,971 Kyllä. 1489 01:09:54,971 --> 01:09:57,130 >> Yleisö: Niin vapaa on vain huomasi jotain muuta 1490 01:09:57,130 --> 01:09:59,690 varastoidaan siellä jälkeen tämä ohjelma on käyttänyt sitä? 1491 01:09:59,690 --> 01:10:01,946 >> SPEAKER 1: Se on vain sanomalla, OK, olen tehnyt tämän. 1492 01:10:01,946 --> 01:10:03,320 Sinun ei tarvitse pitää sitä noin. 1493 01:10:03,320 --> 01:10:05,340 1494 01:10:05,340 --> 01:10:08,190 Muuten tietokone aivan kuten yrittää pitää se siellä. 1495 01:10:08,190 --> 01:10:10,910 Ja sitten can't-- se toimii muistiin asioita myöhemmin. 1496 01:10:10,910 --> 01:10:13,660 Haluat aina vapauttaa, koska se kertoo tietokoneen, OK, olen 1497 01:10:13,660 --> 01:10:15,190 tehnyt tämän paikan muistia. 1498 01:10:15,190 --> 01:10:17,190 Voit olla se takaisin minun käyttää myöhemmin. 1499 01:10:17,190 --> 01:10:19,250 1500 01:10:19,250 --> 01:10:20,500 Cool? 1501 01:10:20,500 --> 01:10:21,320 Kyllä. 1502 01:10:21,320 --> 01:10:26,950 >> Yleisö: Joten käytimme% d juuri koska kaksinkertainen, joka on tulossa takaisin, 1503 01:10:26,950 --> 01:10:28,330 tai miksi is-- [kuultavissa]. 1504 01:10:28,330 --> 01:10:30,170 1505 01:10:30,170 --> 01:10:31,620 >> Yleisö: Voitko käyttää% i? 1506 01:10:31,620 --> 01:10:32,760 >> SPEAKER 1: Voit käyttää% i. 1507 01:10:32,760 --> 01:10:35,052 1508 01:10:35,052 --> 01:10:36,135 Viime hetken kysymyksiä? 1509 01:10:36,135 --> 01:10:38,310 1510 01:10:38,310 --> 01:10:38,985 Menkää. 1511 01:10:38,985 --> 01:10:40,610 Yleisö: Minulla on vain lyhyt kysymys. 1512 01:10:40,610 --> 01:10:50,200 Joten PTR muuttuja, that's-- vastaavat, int * ptr = malloc, 1513 01:10:50,200 --> 01:10:54,142 että on vain sano, että se osoittaa paikka memory-- 1514 01:10:54,142 --> 01:10:55,600 SPEAKER 1: Haluatko [kuulumaton]? 1515 01:10:55,600 --> 01:10:58,050 Yleisö: --that on koko of-- mitään, se on OK. 1516 01:10:58,050 --> 01:11:01,292 Mutta se on vain osoittaa paikka muisti, joka on aivan kuin neljä tavua. 1517 01:11:01,292 --> 01:11:02,000 SPEAKER 1: Oikea. 1518 01:11:02,000 --> 01:11:03,030 1519 01:11:03,030 --> 01:11:07,070 Joten malloc koko int sanoo, OK, aion mennä ajaa pois, 1520 01:11:07,070 --> 01:11:08,780 löytää neljä tavua muistia sinulle. 1521 01:11:08,780 --> 01:11:10,700 Kun se toteaa, että neljä tavua muistia, se 1522 01:11:10,700 --> 01:11:14,030 , antaa sinulle takaisin osoitteeseen missä se alkaa, 1523 01:11:14,030 --> 01:11:16,160 ja sitähän tallennettu Pointer tai PTR. 1524 01:11:16,160 --> 01:11:17,510 1525 01:11:17,510 --> 01:11:18,010 Hyvä. 1526 01:11:18,010 --> 01:11:18,742 1527 01:11:18,742 --> 01:11:21,700 Te näyttää vähemmän sekava kuin useimmat ihmiset kun puhun osoitin, 1528 01:11:21,700 --> 01:11:23,670 joten tunnen melko hyvä juuri nyt. 1529 01:11:23,670 --> 01:11:24,520 >> Selvä. 1530 01:11:24,520 --> 01:11:27,960 Kuten aina, te pitäisi olla kaikki saanut oman pset2 laadut mennessä. 1531 01:11:27,960 --> 01:11:32,769 Tiedän, että on ollut joitakin hutera asioita, jos se sanoo, kaava ei kelpaa 1532 01:11:32,769 --> 01:11:33,310 tai jotain. 1533 01:11:33,310 --> 01:11:36,166 Jos saat, että kaikki teidän laadut ovat voimassa minun puolellani. 1534 01:11:36,166 --> 01:11:38,040 Jotta voin lähettää sinulle ruutukaappauksia laadut. 1535 01:11:38,040 --> 01:11:39,011 1536 01:11:39,011 --> 01:11:41,760 Juuri minulle niin hyvin, jos olet puuttuu kaikki laadut tai jotain 1537 01:11:41,760 --> 01:11:43,060 ei tunnu järkevältä. 1538 01:11:43,060 --> 01:11:43,720 Tule luokseni. 1539 01:11:43,720 --> 01:11:44,830 1540 01:11:44,830 --> 01:11:48,830 >> Olen ollut erittäin ylpeä sinusta kaverit jo, joten keep it up. 1541 01:11:48,830 --> 01:11:50,640 Ja on hyvä loppuelämäsi viikolla. 1542 01:11:50,640 --> 01:11:53,440 Olen varma, että näet joitakin teistä toimistossa tuntia. 1543 01:11:53,440 --> 01:11:55,414