1 00:00:00,000 --> 00:00:03,395 >> [Musiikkia] 2 00:00:03,395 --> 00:00:11,031 3 00:00:11,031 --> 00:00:13,280 DAVID J. MALAN: Tﺣ۳mﺣ۳ on kuin fuksi seminaarin tﺣ۳nﺣ۳ﺣ۳n. 4 00:00:13,280 --> 00:00:14,060 OK. 5 00:00:14,060 --> 00:00:15,024 Niin hyvin sateinen ulos. 6 00:00:15,024 --> 00:00:17,690 Tﺣ۳mﺣ۳ yleensﺣ۳ tapahtuu keskiviikkoisin, mutta sitﺣ۳kin tilaisuus 7 00:00:17,690 --> 00:00:18,700 kysymyksiﺣ۳ tﺣ۳nﺣ۳ﺣ۳n. 8 00:00:18,700 --> 00:00:22,210 Joten alkaa todella kanssa elokuvan vain hetken. 9 00:00:22,210 --> 00:00:24,560 Mutta aloitamme grandly kuten aina. 10 00:00:24,560 --> 00:00:28,000 >> Tﺣ۳mﺣ۳ on CS50, ja tﺣ۳mﺣ۳ on viikon lopussa 4. 11 00:00:28,000 --> 00:00:30,820 Joten jos olet koskaan katsonut Televisiota tai elokuvaa, jossa 12 00:00:30,820 --> 00:00:34,690 siellﺣ۳ on tietokone asiantuntijat ja poliisi, tai FBI, tai jotkut virasto 13 00:00:34,690 --> 00:00:36,930 yrittﺣ۳ﺣ۳ saada kiinni joitakin vastustaja, hyvin, olet 14 00:00:36,930 --> 00:00:40,850 luultavasti kuulleet sanonnan "parantaa" jolloin se teknikko jotenkin 15 00:00:40,850 --> 00:00:44,750 maagisesti zoomaa ﺣ۳ﺣ۳rettﺣﭘmﺣ۳n paljon nﺣ۳hdﺣ۳ rikollisia 16 00:00:44,750 --> 00:00:48,640 identiteetin tai rekisterinumero parillisina hohto peilin 17 00:00:48,640 --> 00:00:50,390 tai kimaltaa jonkun silmﺣ۳ﺣ۳n. 18 00:00:50,390 --> 00:00:55,196 Joten todellakin, nyt katsomaan muutamia tﺣ۳llaisia ﻗ€‹ﻗ€‹kohtauksia Hollywood. 19 00:00:55,196 --> 00:00:55,862 [VIDEOTOISTOSTA] 20 00:00:55,862 --> 00:00:59,243 -OK, Nyt Mennﺣ۳ﺣ۳n hyvﺣ۳ katsoa sinua. 21 00:00:59,243 --> 00:01:06,488 22 00:01:06,488 --> 00:01:07,415 >> -Pidﺣ۳ sitﺣ۳. 23 00:01:07,415 --> 00:01:08,267 Ajelu ettﺣ۳ takaisin. 24 00:01:08,267 --> 00:01:09,121 >> -Hetkinen. 25 00:01:09,121 --> 00:01:11,300 Kﺣ۳ﺣ۳nny oikealle. 26 00:01:11,300 --> 00:01:12,209 >> -On, Jﺣ۳ﺣ۳dyttﺣ۳ﺣ۳ ettﺣ۳. 27 00:01:12,209 --> 00:01:12,750 -Koko nﺣ۳yttﺣﭘ. 28 00:01:12,750 --> 00:01:13,558 -OK, Jﺣ۳ﺣ۳dyttﺣ۳ﺣ۳ ettﺣ۳. 29 00:01:13,558 --> 00:01:14,820 Tiukentaa ylﺣﭘs, ettﺣ۳ aiotte? 30 00:01:14,820 --> 00:01:16,530 -Vector Kauppaa nﺣ۳illﺣ۳ kaveri takapyﺣﭘrﺣ۳. 31 00:01:16,530 --> 00:01:19,400 -Zoom Sisﺣ۳ﺣ۳n tﺣ۳ﺣ۳llﺣ۳ tﺣ۳llﺣ۳ paikalla. 32 00:01:19,400 --> 00:01:22,846 -Kun Oikea laitteet, kuva voitaisiin laajentaa ja teroittaa. 33 00:01:22,846 --> 00:01:24,065 -Mikﺣ۳ tuo on? 34 00:01:24,065 --> 00:01:25,600 -Se Tehostamisohjelma. 35 00:01:25,600 --> 00:01:26,860 Voitko selvﺣ۳ﺣ۳, ettﺣ۳ mihin tahansa? 36 00:01:26,860 --> 00:01:27,890 -Minﺣ۳ en tiedﺣ۳. 37 00:01:27,890 --> 00:01:29,050 Katsotaanpa parantaa sitﺣ۳. 38 00:01:29,050 --> 00:01:31,575 >> -Paranna Kohta A6. 39 00:01:31,575 --> 00:01:33,642 >> -En Parannettu yksityiskohta, and-- Mielestﺣ۳ni on olemassa 40 00:01:33,642 --> 00:01:35,433 tarpeeksi parantaa, vapauta se minun nﺣ۳ytﺣﭘn. 41 00:01:35,433 --> 00:01:37,080 -En Parannettu heijastus hﺣ۳nen silmﺣ۳ssﺣ۳. 42 00:01:37,080 --> 00:01:38,830 >> -Anna Run tﺣ۳tﺣ۳ kautta kuvanmuokkausteknologia. 43 00:01:38,830 --> 00:01:40,100 -Edgar, Voit parantaa tﺣ۳mﺣ۳n? 44 00:01:40,100 --> 00:01:41,875 >> -Odota. 45 00:01:41,875 --> 00:01:44,010 >> -I've Tyﺣﭘskennellyt tﺣ۳mﺣ۳n pohdintaa. 46 00:01:44,010 --> 00:01:44,995 >> -Someone Heijastus. 47 00:01:44,995 --> 00:01:45,495 -Reflection. 48 00:01:45,495 --> 00:01:47,399 -On On heijastus miehen kasvot. 49 00:01:47,399 --> 00:01:48,065 -The Heijastus. 50 00:01:48,065 --> 00:01:48,981 -On On heijastus. 51 00:01:48,981 --> 00:01:50,600 -Zoom Sisﺣ۳ﺣ۳n peiliin. 52 00:01:50,600 --> 00:01:52,712 -Voit Nﺣ۳hdﺣ۳ heijastus. 53 00:01:52,712 --> 00:01:54,350 Voitko parantaa kuvan tﺣ۳stﺣ۳? 54 00:01:54,350 --> 00:01:55,370 Voitko parantaa hﺣ۳net tﺣ۳ﺣ۳llﺣ۳? 55 00:01:55,370 --> 00:01:56,210 Voitko parantaa sitﺣ۳? 56 00:01:56,210 --> 00:01:56,900 Voitko parantaa sitﺣ۳? 57 00:01:56,900 --> 00:01:57,870 >> -Voi Parannamme tﺣ۳tﺣ۳? 58 00:01:57,870 --> 00:01:58,717 >> Voitko parantaa sitﺣ۳? 59 00:01:58,717 --> 00:02:00,050 -Hold Toisella, minﺣ۳ parantaa. 60 00:02:00,050 --> 00:02:00,924 -Zoom Vuonna oveen. 61 00:02:00,924 --> 00:02:01,700 -Times 10. 62 00:02:01,700 --> 00:02:02,586 -Zoom. 63 00:02:02,586 --> 00:02:03,490 -Muuttaa. 64 00:02:03,490 --> 00:02:03,990 -Lisﺣ۳ﺣ۳. 65 00:02:03,990 --> 00:02:04,690 -Wait, Lopeta. 66 00:02:04,690 --> 00:02:05,190 -Stop. 67 00:02:05,190 --> 00:02:05,970 -Pause Se. 68 00:02:05,970 --> 00:02:09,460 -Rotate Meille 75 astetta ympﺣ۳ri pystysuoran, kiitos. 69 00:02:09,460 --> 00:02:10,962 -Stop. 70 00:02:10,962 --> 00:02:14,040 Mene takaisin osan noin ovi, jﺣ۳lleen. 71 00:02:14,040 --> 00:02:15,860 >> -Got Kuva tehostajana, joka voi Bitmap? 72 00:02:15,860 --> 00:02:18,776 >> Hei, ehkﺣ۳ voimme kﺣ۳yttﺣ۳ﺣ۳ Pradeep Sen menetelmﺣ۳ kurkistaa ikkunoita. 73 00:02:18,776 --> 00:02:20,372 -tﺣ۳mﺣ۳ Ohjelmisto on uusinta. 74 00:02:20,372 --> 00:02:21,845 >> -The Ominaisarvo on pois pﺣ۳ﺣ۳ltﺣ۳. 75 00:02:21,845 --> 00:02:24,300 >> -Kun Oikea yhdistelmﺣ۳ algorithm-- 76 00:02:24,300 --> 00:02:26,755 >> -Hﺣ۳n Ottanut poistaminen algoritmit seuraavalle tasolle, 77 00:02:26,755 --> 00:02:28,730 ja voin kﺣ۳yttﺣ۳ﺣ۳ niitﺣ۳ parantaa tﺣ۳mﺣ۳n valokuvan. 78 00:02:28,730 --> 00:02:31,286 >> -Lock Pﺣ۳ﺣ۳lle ja suurentaa z-akselin. 79 00:02:31,286 --> 00:02:32,560 >> -Paranna. 80 00:02:32,560 --> 00:02:33,100 >> -Paranna. 81 00:02:33,100 --> 00:02:33,600 >> -Paranna. 82 00:02:33,600 --> 00:02:34,960 -Freeze Ja parantaa. 83 00:02:34,960 --> 00:02:37,180 >> [Lopeta toisto] 84 00:02:37,180 --> 00:02:41,160 >> DAVID J. MALAN: Selvﺣ۳, joten kaikki nﺣ۳mﺣ۳ ovat todella sanoja. 85 00:02:41,160 --> 00:02:44,450 He vain kireﺣ۳ yhdessﺣ۳ ettﺣ۳ ei ole oikeastaan ﻗ€‹ﻗ€‹jﺣ۳rkevﺣ۳ﺣ۳. 86 00:02:44,450 --> 00:02:48,400 Ja itse asiassa, CS50 ja kursseja kuten se taipumus pilata paljon televisiota ja elokuvia 87 00:02:48,400 --> 00:02:48,900 sinua varten. 88 00:02:48,900 --> 00:02:52,330 Koska kun ne tietokone asiantuntijat ravistelevat pois ehdot ja sanomalla 89 00:02:52,330 --> 00:02:56,860 fancy asioita, kuten ominaisvektoria, ja z-akselin, 90 00:02:56,860 --> 00:02:59,572 ja useita muita oikeastaan ﻗ€‹ﻗ€‹enemmﺣ۳n teknisiﺣ۳ termejﺣ۳, 91 00:02:59,572 --> 00:03:02,030 he todella vain nauhassa sanat yhdessﺣ۳ aivan liian usein. 92 00:03:02,030 --> 00:03:05,020 Onko se yksi toiveemme on, ettﺣ۳ kuten haittavaikutus kursseja 93 00:03:05,020 --> 00:03:08,245 nﺣ۳in, tulee enemmﺣ۳n ihmisiﺣ۳ maailma todella voi punnita 94 00:03:08,245 --> 00:03:12,040 ja juuri koskaan niin hieman vaikuttaa laatu ja tarkkuus nﺣ۳istﺣ۳ elokuvista? 95 00:03:12,040 --> 00:03:14,350 >> Itse asiassa, nyt katsomaan todellisuutta. 96 00:03:14,350 --> 00:03:18,070 Joten tﺣ۳ssﺣ۳ on henkilﺣﭘstﺣﭘn kuva Maria, yksi opetuksen Fellows. 97 00:03:18,070 --> 00:03:20,050 Ja kai hﺣ۳n on epﺣ۳illﺣ۳ﺣ۳n jotain. 98 00:03:20,050 --> 00:03:23,730 Ja silti, siellﺣ۳ on pilkahdus jotkut todiste hﺣ۳nen silmﺣ۳ssﺣ۳, 99 00:03:23,730 --> 00:03:25,480 tai heijastus hﺣ۳nen silmﺣ۳lasit. 100 00:03:25,480 --> 00:03:30,760 No, jos teemme juuri niin kuin elokuvien ehdottaa, jolloin me zoomata ja "parantaa", 101 00:03:30,760 --> 00:03:34,080 tﺣ۳mﺣ۳ on kuinka paljon tietoa on Marian kasvot 102 00:03:34,080 --> 00:03:36,795 kun kuvattaessa kanssa, ettﺣ۳ alkuperﺣ۳inen resoluutio. 103 00:03:36,795 --> 00:03:39,120 >> Ja itse asiassa, voit nﺣ۳hdﺣ۳ nﺣ۳mﺣ۳ pisteet. 104 00:03:39,120 --> 00:03:41,900 Ja nﺣ۳mﺣ۳ ovat mitﺣ۳ ovat kutsutaan pikseliﺣ۳, P-I-X-E-L-S, 105 00:03:41,900 --> 00:03:45,740 joka on vain neliﺣﭘ tyypillisesti joka on piste, joka muodostaa kuvan. 106 00:03:45,740 --> 00:03:49,200 Ja takaisin seuraavana pﺣ۳ivﺣ۳nﺣ۳, ja itse asiassa jopa tﺣ۳nﺣ۳ﺣ۳n jotkut nykypﺣ۳ivﺣ۳n LED-televisiot 107 00:03:49,200 --> 00:03:51,950 tai LCD-televisiot, jos sinulla yksi oman huoneen tai kotona, 108 00:03:51,950 --> 00:03:55,100 jos menet ylﺣﭘs Super lﺣ۳hellﺣ۳ sitﺣ۳, ja varsinkin jos se on hieman vanhempi TV, 109 00:03:55,100 --> 00:03:58,760 voit todennﺣ۳kﺣﭘisesti jopa nﺣ۳hdﺣ۳ nﺣ۳mﺣ۳ pisteet ja sitﺣ۳hﺣ۳n sﺣ۳veltﺣ۳ﺣ۳ kuvan. 110 00:03:58,760 --> 00:04:00,980 >> Ja ei ole enﺣ۳ﺣ۳ tiedot kuin tﺣ۳mﺣ۳. 111 00:04:00,980 --> 00:04:05,400 Voisimme "parantaa", siinﺣ۳ mielessﺣ۳ tasoitus asioita yli ja tavallaan 112 00:04:05,400 --> 00:04:09,040 pﺣ۳ﺣ۳ttelemﺣ۳llﺣ۳ sellainen, tavallaan mitﺣ۳ vﺣ۳ri pitﺣ۳isi olla vieressﺣ۳ Marian silmﺣ۳ 113 00:04:09,040 --> 00:04:10,910 niin ettﺣ۳ se ei ole oikeastaan ﻗ€‹ﻗ€‹niin pixelated. 114 00:04:10,910 --> 00:04:14,510 Mutta jos pidﺣ۳n zoomaus, siellﺣ۳ on paha kaveri hﺣ۳nen silmﺣ۳ssﺣ۳. 115 00:04:14,510 --> 00:04:16,600 Kuin ettﺣ۳ on kaikki tiedot meillﺣ۳ on. 116 00:04:16,600 --> 00:04:18,920 Et voi luoda tiedot tyhjﺣ۳stﺣ۳. 117 00:04:18,920 --> 00:04:20,790 On vain rajallinen bittien mﺣ۳ﺣ۳rﺣ۳ siellﺣ۳. 118 00:04:20,790 --> 00:04:22,873 >> Joten Harjoitus 4, jossa sinulla on mahdollisuus 119 00:04:22,873 --> 00:04:24,580 pelata tﺣ۳llaista maailman. 120 00:04:24,580 --> 00:04:27,610 Vuonna Harjoitus 4, voit tutkia maailmaan grafiikka, ja Forensics, 121 00:04:27,610 --> 00:04:30,870 ja todella kirjoittaa koodia joka toipuu menetetty kuvia. 122 00:04:30,870 --> 00:04:33,510 Sinun kirjoittaa koodia, joka manipuloi olevien kuvien 123 00:04:33,510 --> 00:04:36,120 ja lopulta ymmﺣ۳rtﺣ۳ﺣ۳, mitﺣ۳ on meneillﺣ۳ﺣ۳n alla huppu. 124 00:04:36,120 --> 00:04:38,540 >> Ja se kﺣ۳ﺣ۳ntyy pois, se on todella ole kovin monimutkainen. 125 00:04:38,540 --> 00:04:41,320 Esimerkiksi, jos halusimme edustavat hymiﺣﭘ kasvot jossa 126 00:04:41,320 --> 00:04:44,160 mustilla pikseliﺣ۳, tai nﺣ۳itﺣ۳ mustia pisteitﺣ۳, 127 00:04:44,160 --> 00:04:47,230 hyvin, voisimme yksinkertaisesti edustaa ne todella bittikartta. 128 00:04:47,230 --> 00:04:50,040 Ja jos koskaan kuullut, ettﺣ۳ ilmaisu bittikartta, ehkﺣ۳ 129 00:04:50,040 --> 00:04:52,330 nyt alkaa tehdﺣ۳ vﺣ۳hﺣ۳n enemmﺣ۳n jﺣ۳rkeﺣ۳ tﺣ۳nﺣ۳ﺣ۳n. 130 00:04:52,330 --> 00:04:53,580 >> Tiedﺣ۳mme jo mitﺣ۳ vﺣ۳hﺣ۳n on. 131 00:04:53,580 --> 00:04:54,160 Se on 0 tai 1. 132 00:04:54,160 --> 00:04:56,201 Ja kartta on vain jotain kuten paperille 133 00:04:56,201 --> 00:04:59,180 joka antaa sinulle ohjeita ja on ehkﺣ۳ verkkoon x- ja y-koordinaatit. 134 00:04:59,180 --> 00:05:00,540 Joten tﺣ۳ssﺣ۳ on bittikartta. 135 00:05:00,540 --> 00:05:03,680 Se on kartta bittejﺣ۳ jolloin 1 on ilmeisesti 136 00:05:03,680 --> 00:05:07,857 menossa edustaa valkoinen pikseli, ja 0 on menossa edustamaan musta pikseli. 137 00:05:07,857 --> 00:05:09,440 Mutta voisimme varmasti kﺣ۳ﺣ۳nnﺣ۳ se ympﺣ۳ri. 138 00:05:09,440 --> 00:05:11,648 Se ei ole oikeastaan ﻗ€‹ﻗ€‹vﺣ۳liﺣ۳ niin kunhan olemme johdonmukaisesti. 139 00:05:11,648 --> 00:05:15,570 Ja tﺣ۳ssﺣ۳ miten, vuonna binary-- sisﺣ۳llﺣ۳ tietokoneen muistiin, tai jopa sisﺣ۳llﺣ۳ 140 00:05:15,570 --> 00:05:18,160 tiedoston kiintolevyn drive-- voi tallentaa 141 00:05:18,160 --> 00:05:20,240 yksinkertaisin hymiﺣﭘ kasvot kuvia. 142 00:05:20,240 --> 00:05:23,990 Mutta mitﺣ۳ me, tietenkin, puuttuu tﺣ۳mﺣ۳n kuvan? 143 00:05:23,990 --> 00:05:24,610 Vﺣ۳ri, eikﺣﭘ? 144 00:05:24,610 --> 00:05:28,220 Se on selvﺣ۳ﺣ۳, ettﺣ۳ seuraava askel tai lisﺣ۳laite parantaa tﺣ۳tﺣ۳ vﺣ۳riﺣ۳. 145 00:05:28,220 --> 00:05:32,230 Joten valitettavasti vain yhdellﺣ۳ bittinen, 0 tai 1, voisimme esittﺣ۳ﺣ۳ vﺣ۳ri. 146 00:05:32,230 --> 00:05:36,100 Se voisi olla punainen tai sininen, tai musta tai valkoinen, tai vihreﺣ۳, tai vaaleanpunainen, 147 00:05:36,100 --> 00:05:37,420 tai paria vﺣ۳rejﺣ۳. 148 00:05:37,420 --> 00:05:40,860 Mutta yksinkertaisuuden vuoksi, olemme will vain olettaa musta ja valkoinen. 149 00:05:40,860 --> 00:05:45,930 >> Joten mitﺣ۳ loogisesti me tarvitsemme, jos haluamme halua toteuttaa kuvan vﺣ۳rin? 150 00:05:45,930 --> 00:05:49,080 Mitﺣ۳ meidﺣ۳n on tehtﺣ۳vﺣ۳? 151 00:05:49,080 --> 00:05:51,900 Kuten jos rajoittava tekijﺣ۳ tﺣ۳ssﺣ۳ on se, ettﺣ۳ yhden bitin voit vain 152 00:05:51,900 --> 00:05:55,977 edustavat kahta valtiota, 0 tai 1, valkoinen tai musta, mitﺣ۳ haluat tehdﺣ۳? 153 00:05:55,977 --> 00:05:56,810 Yleisﺣﭘ: Lisﺣ۳ﺣ۳ tietoja. 154 00:05:56,810 --> 00:05:58,813 DAVID J. MALAN: enemmﺣ۳n bittejﺣ۳, joo enemmﺣ۳n tietoa, enemmﺣ۳n bittejﺣ۳. 155 00:05:58,813 --> 00:06:01,440 Ja todellakin, juuri niin vﺣ۳rikuvia ovat edustettuina. 156 00:06:01,440 --> 00:06:05,120 Sen sijaan kﺣ۳yttﺣ۳ﺣ۳ yhden bitin, 0 tai 1 kunkin pikselin, jokainen piste, 157 00:06:05,120 --> 00:06:06,170 kﺣ۳ytﺣ۳t vain useita. 158 00:06:06,170 --> 00:06:09,660 Ehkﺣ۳ kﺣ۳yttﺣ۳ﺣ۳ 8, ehkﺣ۳, yleisemmin kﺣ۳yttﺣ۳ﺣ۳ 24, ja todellakin, vuonna Harjoitus 159 00:06:09,660 --> 00:06:13,300 4, tulee pelaat tiedosto muodossa, joka kﺣ۳yttﺣ۳ﺣ۳ 24 bittiﺣ۳ tyypillisesti. 160 00:06:13,300 --> 00:06:15,430 >> Mutta useimmat teistﺣ۳ ovat luultavasti perehtynyt JPEG. 161 00:06:15,430 --> 00:06:17,460 Jos olet koskaan ottanut kuva puhelimeen, 162 00:06:17,460 --> 00:06:20,360 tai ladata tai nﺣ۳hnyt jotain Facebook, tai Flickr, mikﺣ۳ tahansa numero 163 00:06:20,360 --> 00:06:24,882 valokuva-pohjaisia ﻗ€‹ﻗ€‹web-sivustoja, olet luultavasti nﺣ۳hnyt JPEG ennen. 164 00:06:24,882 --> 00:06:27,840 Ja se kﺣ۳ﺣ۳ntyy pois, tﺣ۳mﺣ۳ on tiedosto muodossa aiomme kﺣ۳yttﺣ۳ﺣ۳ PSET 4, 165 00:06:27,840 --> 00:06:30,340 jolloin aiot tﺣ۳ytyy palauttaa kuvia 166 00:06:30,340 --> 00:06:35,160 ettﺣ۳ olen vahingossa poistettu vioittunut muistikortti kamerassa, 167 00:06:35,160 --> 00:06:35,800 jos haluatte. 168 00:06:35,800 --> 00:06:38,490 >> Ja kﺣ۳y ilmi, ettﺣ۳ vaikka JPEG on melko sophisticated-- 169 00:06:38,490 --> 00:06:40,906 se on paljon kehittyneempi kuin musta ja valkoisia pisteitﺣ۳ 170 00:06:40,906 --> 00:06:44,480 nﺣ۳imme hetki sitten, koska siellﺣ۳ todella fancy algoritmeja 171 00:06:44,480 --> 00:06:47,410 kﺣ۳ytetﺣ۳ﺣ۳n pakata JPEG, joten ettﺣ۳ voit olla todella mukava, 172 00:06:47,410 --> 00:06:49,832 kuvanlaatu mutta kﺣ۳yttﺣ۳mﺣ۳llﺣ۳ suhteellisen vﺣ۳hﺣ۳n bittiﺣ۳. 173 00:06:49,832 --> 00:06:51,790 Ja me palaamme puristus ennen pitkﺣ۳ﺣ۳. 174 00:06:51,790 --> 00:06:56,280 On kﺣ۳ynyt ilmi, ettﺣ۳ ensimmﺣ۳inen kolme tavua JPEG image-- 175 00:06:56,280 --> 00:07:02,750 mitﺣ۳ olet ottanut valokuvan of-- ovat arvot 255, 216, 255. 176 00:07:02,750 --> 00:07:05,990 >> Toisin sanoen, jos vain nﺣ۳hdﺣ۳, ettﺣ۳ malli bittien, 177 00:07:05,990 --> 00:07:09,180 tﺣ۳ﺣ۳llﺣ۳ edustettuina kolme tavua, tai 24 bittiﺣ۳ yhteensﺣ۳, 178 00:07:09,180 --> 00:07:13,810 suurella todennﺣ۳kﺣﭘisyydellﺣ۳ voit pﺣ۳ﺣ۳tellﺣ۳, ettﺣ۳ etsit sitﺣ۳ tﺣ۳llﺣ۳ kolmen ensimmﺣ۳isen 179 00:07:13,810 --> 00:07:15,230 tavua JPEG. 180 00:07:15,230 --> 00:07:18,040 Ja tﺣ۳mﺣ۳ on mitﺣ۳ kutsutaan koska allekirjoitus JPEG. 181 00:07:18,040 --> 00:07:20,540 Paljon tiedostomuotoja siellﺣ۳ yleensﺣ۳ alkaa 182 00:07:20,540 --> 00:07:23,735 tiettyjﺣ۳ malleja 0s ja 1s, niin ettﺣ۳ Windows ja Mac OS, ja IOS, 183 00:07:23,735 --> 00:07:28,272 ja Android tietﺣ۳ﺣ۳ minkﺣ۳lainen tiedosto he ovat lisﺣ۳ksi niin kutsutun tiedoston 184 00:07:28,272 --> 00:07:29,730 laajennus paljon tiedostoja on. 185 00:07:29,730 --> 00:07:32,590 Jos olet .jpg, se toinen vihje tietokoneeseen. 186 00:07:32,590 --> 00:07:35,310 >> Joten nyt tarkastelemme tﺣ۳tﺣ۳ hieman teknisesti. 187 00:07:35,310 --> 00:07:37,390 Tiedﺣ۳mme desimaalin jﺣ۳rjestelmﺣ۳ on 0 kautta 9. 188 00:07:37,390 --> 00:07:38,740 Tiedﺣ۳mme binary on 0 ja 1. 189 00:07:38,740 --> 00:07:41,842 Ja jos luulet takaisin PSET 0, meillﺣ۳ oli sinﺣ۳ painia, 190 00:07:41,842 --> 00:07:43,800 varten hieman, jotain nimeltﺣ۳ﺣ۳n heksadesimaali, 191 00:07:43,800 --> 00:07:47,320 jos sinulla on 16 numeroa, sijasta 10 tai sijasta 2. 192 00:07:47,320 --> 00:07:50,405 Ja ne numeroa, sopimuksen mukaan, ovat 0 kautta 9 ja sitten 193 00:07:50,405 --> 00:07:55,040 kautta f, jossa f edustaa mitﺣ۳ desimaaliluku, kuten nopea jﺣ۳rki 194 00:07:55,040 --> 00:07:56,640 tarkistaa? 195 00:07:56,640 --> 00:07:57,610 Niin, 15. 196 00:07:57,610 --> 00:08:01,390 Ja on edustettava 10, vain luonne tilaus ettﺣ۳ olen antanut. 197 00:08:01,390 --> 00:08:04,350 Se on vain mielivaltainen yleissopimus, mutta se on melko tavallinen. 198 00:08:04,350 --> 00:08:06,870 >> Joten jos katsomme tﺣ۳tﺣ۳ mallia kolme bytes-- katsotaanpa 199 00:08:06,870 --> 00:08:09,620 vain alkaa katsomaan sitﺣ۳ tavalla, joka on miten 200 00:08:09,620 --> 00:08:12,450 tietotekniikan tutkijoita yleisesti tarkastella ja miettiﺣ۳ tiedostoja. 201 00:08:12,450 --> 00:08:15,580 Voit varmasti ajatella tiedostoja 0s ja 1s, ja desimaalin, 202 00:08:15,580 --> 00:08:19,340 mutta todellisuudessa meillﺣ۳ on tapana kﺣ۳yttﺣ۳ﺣ۳ binary tai tyypillisemmin hexadecimal-- 203 00:08:19,340 --> 00:08:20,760 takaisin PSET 0. 204 00:08:20,760 --> 00:08:25,857 Haluan siis ehdottaa, ettﺣ۳ 255, 216, ja 255 ovat vain nﺣ۳mﺣ۳ mallit 0 ja 1s. 205 00:08:25,857 --> 00:08:28,440 Ja voit tarkistaa tﺣ۳mﺣ۳n, jos haluavat tehdﺣ۳ matematiikka viikosta 0. 206 00:08:28,440 --> 00:08:30,810 Mutta, nyt, vain olettaa ettﺣ۳ tﺣ۳mﺣ۳ on todellakin oikea. 207 00:08:30,810 --> 00:08:33,850 Olen juuri uusiksi kolmen desimaalin numerot kolme binﺣ۳ﺣ۳riarvot. 208 00:08:33,850 --> 00:08:36,100 Nyt mitﺣ۳ aion tehdﺣ۳, on lisﺣ۳ﺣ۳ vain tyhjﺣ۳ﺣ۳ tilaa, 209 00:08:36,100 --> 00:08:37,266 vain luettavuuden vuoksi. 210 00:08:37,266 --> 00:08:39,940 Ja ilmoitus, olen juuri menossa siirrellﺣ۳ toisistaan. 211 00:08:39,940 --> 00:08:43,090 Joten ennen, jﺣ۳lkeen, ennen, jﺣ۳lkeen. 212 00:08:43,090 --> 00:08:46,180 Mulla mitﺣ۳ﺣ۳n mielenkiintoista muut kuin vain levittﺣ۳ﺣ۳ asiat niin 213 00:08:46,180 --> 00:08:50,380 ettﺣ۳ ilmoitus jokaisen sarjan kahdeksan bitit on nyt kaksi neljﺣ۳ bittiﺣ۳. 214 00:08:50,380 --> 00:08:54,920 Tﺣ۳mﺣ۳ on hyﺣﭘdyllinen, koska heksadesimaali on erityisen muodikas 215 00:08:54,920 --> 00:09:00,930 koska jokainen heksadesimaalinumero 0 f, tai tarkemmin sanottuna 0 lﺣ۳pi 15, 216 00:09:00,930 --> 00:09:03,430 voidaan esittﺣ۳ﺣ۳ tﺣ۳smﺣ۳lleen neljﺣ۳ bittiﺣ۳. 217 00:09:03,430 --> 00:09:07,960 Toisin sanoen, heksadesimaali jos haluavat edustaa 0, se on vain 0000, 218 00:09:07,960 --> 00:09:08,780 neljﺣ۳ nollaa. 219 00:09:08,780 --> 00:09:13,997 Ja jos haluat edustaa 15, se on 1111, mikﺣ۳ on neljﺣ۳ bittiﺣ۳. 220 00:09:13,997 --> 00:09:16,080 Ja jos et matematiikka, jos tﺣ۳mﺣ۳ on itse paikka, 221 00:09:16,080 --> 00:09:18,210 tﺣ۳mﺣ۳ on 16s paikka, joka tulee antaa sinﺣ۳-- 222 00:09:18,210 --> 00:09:19,960 pikemminkin se on menossa to-- pahoillani, binary, 223 00:09:19,960 --> 00:09:23,660 joka on menossa antaa sinulle 15, niistﺣ۳ paikka, kaksittain paikka, nelosta ja kahdeksikkoa paikka. 224 00:09:23,660 --> 00:09:26,821 Joten haluan ehdottaa, ettﺣ۳ Aseta neljﺣ۳ bittiﺣ۳ vasemmalle 225 00:09:26,821 --> 00:09:28,070 on mitﺣ۳ aiomme soittaa f. 226 00:09:28,070 --> 00:09:30,110 Se on suurin numero voi edustaa neljﺣ۳ bittiﺣ۳. 227 00:09:30,110 --> 00:09:33,300 Ja tiedﺣ۳mme jo heksadesimaali, f on suurin numero heksadesimaalimuodossa. 228 00:09:33,300 --> 00:09:36,020 Meillﺣ۳ toinen f siellﺣ۳, kaksi tuolla. 229 00:09:36,020 --> 00:09:38,980 Ja nyt, ota uskoon ettﺣ۳ olen tehnyt matematiikka oikea 230 00:09:38,980 --> 00:09:41,890 ja ettﺣ۳ vasen puoli Nﺣ۳iden bittien, 1101, 231 00:09:41,890 --> 00:09:43,980 on sama asia kuin d heksadesimaalimuodossa. 232 00:09:43,980 --> 00:09:46,490 Ja oikea kﺣ۳si, 1000, on vain 8. 233 00:09:46,490 --> 00:09:48,140 >> Ja ettﺣ۳ yksi helppo nﺣ۳hdﺣ۳, eikﺣﭘ? 234 00:09:48,140 --> 00:09:51,670 8 represents-- on oikea alla, ettﺣ۳ kahdeksikkoa paikka. 235 00:09:51,670 --> 00:09:56,040 Joten meillﺣ۳ on yksi kahdeksikkoa sarakkeessa ja mikﺣ۳ﺣ۳n nelosta, kaksittain tai niistﺣ۳. 236 00:09:56,040 --> 00:09:59,830 Joten nyt enemmﺣ۳n tavanomaisesti, ihmisillﺣ۳ on taipumus kirjoittaa heksadesimaaliluvut nﺣ۳in, 237 00:09:59,830 --> 00:10:03,000 juuri litistﺣ۳ﺣ۳ ne yhteen, ja sitten etuliitteen ne 0x. 238 00:10:03,000 --> 00:10:05,920 Se ei tarkoita mitﺣ۳ﺣ۳n muuta kuin visuaalinen vihje human-- 239 00:10:05,920 --> 00:10:10,350 tﺣ۳ssﺣ۳ tulee heksadesimaalinen value-- koska se ei ehkﺣ۳ muuten olisi ilmeinen. 240 00:10:10,350 --> 00:10:13,629 >> Joka on sanoa, lopulta, ettﺣ۳ kuvio nollia ja ykkﺣﭘsiﺣ۳, 241 00:10:13,629 --> 00:10:16,170 tai rakenteessa heksadesimaali numeroa vastaavasti, ettﺣ۳ olet 242 00:10:16,170 --> 00:10:18,990 aikoo aloittaa etsivﺣ۳t vuonna Harjoitus 4 on this-- 243 00:10:18,990 --> 00:10:22,120 ja Harjoitus 4 spec kﺣ۳vellﺣ۳ sinua tﺣ۳ssﺣ۳ enemmﺣ۳n detail-- 244 00:10:22,120 --> 00:10:25,344 mutta ymmﺣ۳rtﺣ۳ﺣ۳ koska tavallaan mystistﺣ۳ kuin tﺣ۳mﺣ۳ saattaa nﺣ۳yttﺣ۳ﺣ۳ ensi silmﺣ۳yksellﺣ۳, 245 00:10:25,344 --> 00:10:27,010 aiot alkaa nﺣ۳hdﺣ۳ tﺣ۳tﺣ۳ paljon. 246 00:10:27,010 --> 00:10:30,320 Ja itse asiassa jopa GDB, debuggeri otimme kﺣ۳yttﺣﭘﺣﭘn maanantaina 247 00:10:30,320 --> 00:10:35,440 ja Dan esittelee vuonna PSET 3, tulee usein nﺣ۳yttﺣ۳ﺣ۳ heksadesimaaliarvot 248 00:10:35,440 --> 00:10:39,910 vain koska he ovat yleensﺣ۳ tavanomainen kuin desimaalin tai binary 249 00:10:39,910 --> 00:10:41,157 maailman tietokoneita. 250 00:10:41,157 --> 00:10:42,490 Nyt Taustaksi tﺣ۳lle. 251 00:10:42,490 --> 00:10:48,040 Monet teistﺣ۳ saattaa muistaa tﺣ۳mﺣ۳ kuva tﺣ۳ﺣ۳llﺣ۳, joka tuli mitﺣ۳? 252 00:10:48,040 --> 00:10:51,240 Vista, joten jopa aiemmin kuin ettﺣ۳, Windows XP teki tﺣ۳mﺣ۳n debyytti. 253 00:10:51,240 --> 00:10:52,620 Joten tﺣ۳mﺣ۳ on kaunis maisema. 254 00:10:52,620 --> 00:10:55,940 Ja itse asiassa, jos penkoa online-- Minusta se on Wikipedia-artikkeli, 255 00:10:55,940 --> 00:11:00,110 jossa joku hyvin hﺣ۳mmﺣ۳styttﺣ۳vﺣ۳n lﺣ۳htivﺣ۳t lﺣﭘytyi tﺣ۳mﺣ۳ pﺣ۳in maailmaa perustettu 256 00:11:00,110 --> 00:11:02,240 hﺣ۳nen kamera juuri oikeaan place-- 257 00:11:02,240 --> 00:11:06,510 ja tﺣ۳mﺣ۳ tﺣ۳nﺣ۳ﺣ۳n nﺣ۳yttﺣ۳ﺣ۳ like-- mutta se on tﺣ۳smﺣ۳lleen sama asetus. 258 00:11:06,510 --> 00:11:10,060 Tﺣ۳mﺣ۳ kuva on kuitenkin tiedostoon muodossa nimeltﺣ۳ bittikartta, b-m-p. 259 00:11:10,060 --> 00:11:12,910 Ja aiomme ottaa super Pikainen vilkaisu mitﺣ۳ se tarkoittaa. 260 00:11:12,910 --> 00:11:17,770 >> Mutta bittikartta on vain erilainen tapa edustavat kuvia edelleen kﺣ۳ytﺣﭘssﺣ۳ pikseliﺣ۳ 261 00:11:17,770 --> 00:11:19,580 vuonna 0s ja 1s, lopulta. 262 00:11:19,580 --> 00:11:23,282 Mutta nopealla silmﺣ۳yksellﺣ۳, se on mielenkiintoisempi allekirjoitus 263 00:11:23,282 --> 00:11:24,490 alussa tiedoston. 264 00:11:24,490 --> 00:11:26,670 Se ei ole vain kolme tavua, eikﺣ۳ siellﺣ۳ 265 00:11:26,670 --> 00:11:30,770 koko joukko malleja tavua jotka ovat ennalta merkitys. 266 00:11:30,770 --> 00:11:34,490 Esimerkiksi jossain muutaman ensimmﺣ۳isen tavua bittikarttakuvan 267 00:11:34,490 --> 00:11:37,440 tulee olla koko kuva, leveys kuvan, 268 00:11:37,440 --> 00:11:40,390 kuvan korkeus, niin hyﺣﭘdyllinen metatiedot, jos haluatte. 269 00:11:40,390 --> 00:11:43,940 Hyﺣﭘdyllistﺣ۳ tietoa ettﺣ۳ Photoshop tai kuvankﺣ۳sittelyohjelmaan kﺣ۳ytﺣ۳t 270 00:11:43,940 --> 00:11:45,180 voisi itse vﺣ۳litﺣ۳. 271 00:11:45,180 --> 00:11:47,170 >> Joten lisﺣ۳ﺣ۳ tﺣ۳stﺣ۳ Harjoitus 4, mutta tﺣ۳mﺣ۳ 272 00:11:47,170 --> 00:11:49,220 on vain sanoa, ettﺣ۳ pﺣ۳ivﺣ۳n pﺣ۳ﺣ۳tteeksi 273 00:11:49,220 --> 00:11:52,390 kaikki tiedostomuodot olet kﺣ۳yttﺣ۳nyt varten years-- Microsoft Word-tiedostoja, 274 00:11:52,390 --> 00:11:55,820 Numbers tiedostoja, Excel-tiedostoja, rajoittamattoman mﺣ۳ﺣ۳rﺣ۳n tiedostomuotoja 275 00:11:55,820 --> 00:11:57,770 ettﺣ۳ saattaa olla joitakin tunnettu tiedostopﺣ۳ﺣ۳te 276 00:11:57,770 --> 00:12:00,130 ovat vain 0s ja 1s alla huppu. 277 00:12:00,130 --> 00:12:02,970 Ja ihmiset ovat pﺣ۳ﺣ۳ttﺣ۳neet mitﺣ۳ sopimukset ovat, 278 00:12:02,970 --> 00:12:08,340 mitﺣ۳ malleja 0s ja 1s edustavat Word-tiedosto vs. Excel-tiedoston, 279 00:12:08,340 --> 00:12:10,322 vastaan ﻗ€‹ﻗ€‹useita muita tiedostomuotoja. 280 00:12:10,322 --> 00:12:12,780 Joten PSET 4, sinun on mahdollisuus pelata kanssa. 281 00:12:12,780 --> 00:12:14,405 >> Mutta mitﺣ۳ se tarkoittaa olla struct. 282 00:12:14,405 --> 00:12:18,012 Tﺣ۳mﺣ۳ on todella mukava segue nyt osaksi C, joka on vain pari 283 00:12:18,012 --> 00:12:20,220 lisﺣ۳ominaisuuksia, jotka emme ole katsonut vielﺣ۳. 284 00:12:20,220 --> 00:12:24,230 Se on aika pieni kieli ja yksi kivoja ominaisuuksia noin C on struct. 285 00:12:24,230 --> 00:12:27,300 Esimerkiksi, jos halusi represent-- katsotaanpa 286 00:12:27,300 --> 00:12:33,690 ettﺣ۳ haluat olla muuttuja, joka edustaa opiskelija joku ohjelma. 287 00:12:33,690 --> 00:12:37,330 Ehkﺣ۳ olit kirjallisesti kurssi rekisterﺣﭘinti ohjelma, tai ydin ostoksia 288 00:12:37,330 --> 00:12:38,870 tyﺣﭘkalu, tai jotain sellaista. 289 00:12:38,870 --> 00:12:42,922 Mitﺣ۳ kappaletta liittyviﺣ۳ tietoja opiskelijalle, jotka tulevat mieleen? 290 00:12:42,922 --> 00:12:44,880 Kuten opiskelija edustanut mitﺣ۳ arvoja? 291 00:12:44,880 --> 00:12:45,732 Joo? 292 00:12:45,732 --> 00:12:46,940 Sinulla nimi opiskelija. 293 00:12:46,940 --> 00:12:48,900 Mitﺣ۳ muuta tyypillinen opiskelija on? 294 00:12:48,900 --> 00:12:49,320 >> Yleisﺣﭘ: [ﺣ۳ﺣ۳netﺣﭘn] 295 00:12:49,320 --> 00:12:50,200 >> DAVID J. MALAN: Niin, anteeksi. 296 00:12:50,200 --> 00:12:50,660 >> Yleisﺣﭘ: Ikﺣ۳. 297 00:12:50,660 --> 00:12:52,980 >> DAVID J. MALAN: ikﺣ۳ tai syntymﺣ۳pﺣ۳ivﺣ۳ vastaavasti, jep. 298 00:12:52,980 --> 00:12:53,557 Mitﺣ۳ muuta? 299 00:12:53,557 --> 00:12:54,390 Yleisﺣﭘ: ID-numero? 300 00:12:54,390 --> 00:12:57,460 DAVID J. MALAN: Niin henkilﺣﭘtunnus, ehkﺣ۳ puhelinnumero, ehkﺣ۳ asuntolan, tai talo, 301 00:12:57,460 --> 00:12:58,670 tai korkeakoulussa, tai jotain sellaista. 302 00:12:58,670 --> 00:13:01,820 Mikﺣ۳ tahansa kappalemﺣ۳ﺣ۳rﺣ۳ tietojen saatat olla yhteystietoluettelossasi 303 00:13:01,820 --> 00:13:03,890 on mitﺣ۳ voisi mﺣ۳ﺣ۳ritellﺣ۳ opiskelija. 304 00:13:03,890 --> 00:13:08,490 Joten jos halusimme tehdﺣ۳ tﺣ۳mﺣ۳n koodin, voisimme tehdﺣ۳ jotain yksinkertaista, kuten tﺣ۳mﺣ۳. 305 00:13:08,490 --> 00:13:15,670 Meillﺣ۳ saattaa olla ohjelman niin, ettﺣ۳ on sanokaamme, int main (void). 306 00:13:15,670 --> 00:13:18,920 Ja jos haluan edustaa opiskelija voisin olla, esimerkiksi, 307 00:13:18,920 --> 00:13:24,330 merkkijonon kehotti nimi ettﺣ۳ opiskelija, merkkijono nimeltﺣ۳ﺣ۳n asuntolan ettﺣ۳ opiskelija, 308 00:13:24,330 --> 00:13:26,900 ehkﺣ۳ int kehotti tunnus ettﺣ۳ opiskelija. 309 00:13:26,900 --> 00:13:30,840 Ja koska olen kﺣ۳yttﺣ۳en merkkijono, minﺣ۳ tﺣ۳ytyy mennﺣ۳ takaisin ja laittaa ylﺣﭘs CS50.h. 310 00:13:30,840 --> 00:13:33,300 Ehkﺣ۳ olen menossa on stdio.h. 311 00:13:33,300 --> 00:13:38,190 Joten anna minun ennaltaehkﺣ۳isevﺣ۳sti tehdﺣ۳ noita ja minﺣ۳ olen aikoo kutsua tﺣ۳tﺣ۳ student.c nyt 312 00:13:38,190 --> 00:13:40,080 ja tallentaa. 313 00:13:40,080 --> 00:13:44,206 >> Ja nyt voin tehdﺣ۳ jotain nﺣ۳itﺣ۳ muuttujia. 314 00:13:44,206 --> 00:13:46,830 Ja me juuri menossa kirjoittaa ettﺣ۳ kuten kommentti pseudokoodin, 315 00:13:46,830 --> 00:13:48,829 koska se ei ole kiinnostavaa mitﺣ۳ teemme nyt. 316 00:13:48,829 --> 00:13:51,242 OK, joten tﺣ۳mﺣ۳ on ohjelma, joka jotenkin tallentaa opiskelija. 317 00:13:51,242 --> 00:13:53,450 Mitﺣ۳ haluan tehdﺣ۳, jos haluat tallentaa kaksi opiskelijaa? 318 00:13:53,450 --> 00:13:55,991 Joten minun ensimmﺣ۳inen vaisto on menossa olla kunnossa, odota minuutti, 319 00:13:55,991 --> 00:14:01,920 jos minulla on toinen opiskelija Miksi en vain tehdﺣ۳ merkkijonon nimi 2, merkkijono asuntolan 2, 320 00:14:01,920 --> 00:14:04,190 int ID2. 321 00:14:04,190 --> 00:14:06,540 Ja olemme tehneet mennyt tﺣ۳llﺣ۳ tiellﺣ۳ ennen 322 00:14:06,540 --> 00:14:10,890 ja mikﺣ۳ oli meidﺣ۳n ratkaisu mitﺣ۳ nﺣ۳yttﺣ۳ﺣ۳ olla erﺣ۳ﺣ۳nlainen hackish Kopioi Liitﺣ۳ 323 00:14:10,890 --> 00:14:11,555 tyﺣﭘ tﺣ۳ﺣ۳llﺣ۳? 324 00:14:11,555 --> 00:14:12,346 Yleisﺣﭘ: array. 325 00:14:12,346 --> 00:14:13,830 DAVID J. MALAN: Joo, voisimme kﺣ۳yttﺣ۳ﺣ۳ array. 326 00:14:13,830 --> 00:14:15,620 Oikea tﺣ۳mﺣ۳ hyvin nopeasti tyﺣﭘskentely ruuhkautuu. 327 00:14:15,620 --> 00:14:18,453 Sinun tﺣ۳ytyy lajitella mielivaltaisesti aloittaa nimeﺣ۳minen kaikkia nﺣ۳itﺣ۳ muuttujia. 328 00:14:18,453 --> 00:14:22,190 Ja sinﺣ۳, ihminen, on pidettﺣ۳vﺣ۳ seurata, ettﺣ۳ OK NAME2 vastaa 329 00:14:22,190 --> 00:14:25,060 kanssa dorm2 vastaa ID2. 330 00:14:25,060 --> 00:14:26,200 Se vain tulee sotkua. 331 00:14:26,200 --> 00:14:29,350 Niin se on paljon helpompaa, muistamme muutama viikko sitten, 332 00:14:29,350 --> 00:14:34,300 vain ottaa kutsutaan merkkijono nimet ja ehkﺣ۳ antaa meille kolme nﺣ۳istﺣ۳. 333 00:14:34,300 --> 00:14:36,940 Ja sitten ehkﺣ۳ meillﺣ۳ merkkijono asuntoloissa ja on 334 00:14:36,940 --> 00:14:41,900 kolme nﺣ۳istﺣ۳, tai vakio, int tunnukset ja kolme noita. 335 00:14:41,900 --> 00:14:45,250 Mutta jo nyt tﺣ۳mﺣ۳ tuntuu hieman huolimaton, oikea. 336 00:14:45,250 --> 00:14:49,440 Puhumme opiskelijoita ja vielﺣ۳ Olen todella asunnon alhaisella tasolla 337 00:14:49,440 --> 00:14:50,470 toteutuksen yksityiskohdat. 338 00:14:50,470 --> 00:14:52,790 Opiskelija nimi ja asuntolan ja tunnus. 339 00:14:52,790 --> 00:14:59,814 >> Miksi en voi vain julistaa muuttuja nimeltﺣ۳ﺣ۳n opiskelija ja kutsua sitﺣ۳ s. 340 00:14:59,814 --> 00:15:02,230 Ja jos haluan toisen opiskelijan, miksi en vain kutsua sitﺣ۳ T. 341 00:15:02,230 --> 00:15:05,260 Tai jos haluan koko joukko opiskelijoiden, miksi en vain 342 00:15:05,260 --> 00:15:09,740 sanoa, ettﺣ۳ olen koko luokan opiskelijoille, ja se on kolme. 343 00:15:09,740 --> 00:15:12,470 Toisin sanoen, miksi en tulla kanssa oman datatyypin, nimeltﺣ۳ﺣ۳n 344 00:15:12,470 --> 00:15:15,641 Opiskelijoita, jonka sisﺣ۳llﺣ۳ on nimi, on tunnus, on asuntolan, 345 00:15:15,641 --> 00:15:16,890 on useita muita kenttiﺣ۳. 346 00:15:16,890 --> 00:15:19,030 Ja se osoittautuu sinua voi tehdﺣ۳ juuri nﺣ۳in. 347 00:15:19,030 --> 00:15:21,850 >> Joten C on tﺣ۳mﺣ۳ ominaisuus nimeltﺣ۳ struct. 348 00:15:21,850 --> 00:15:24,700 Se kielen ominaisuus, joka antaa meille mahdollisuuden tehdﺣ۳ juuri tﺣ۳mﺣ۳n. 349 00:15:24,700 --> 00:15:28,370 Aion mennﺣ۳ eteenpﺣ۳in ja avata structs.h 350 00:15:28,370 --> 00:15:32,299 minne olemme menossa katsomaan seuraava mﺣ۳ﺣ۳ritelmﺣ۳ opiskelija. 351 00:15:32,299 --> 00:15:35,215 On kﺣ۳ynyt ilmi - ja tﺣ۳mﺣ۳ on jopa yksinkertaisempi kuin yksi mukana tunnus 352 00:15:35,215 --> 00:15:36,080 hetki sitten. 353 00:15:36,080 --> 00:15:39,120 Jos haluat keksiﺣ۳ kotitekoisia tietotyyppi, 354 00:15:39,120 --> 00:15:42,750 ja lisﺣ۳ksi int, ja nieriﺣ۳ﺣ۳ ja float ja kaikki nﺣ۳mﺣ۳ muut olemassa, 355 00:15:42,750 --> 00:15:45,810 voit tehdﺣ۳ niin kirjaimellisesti kirjallisesti typedef struct, 356 00:15:45,810 --> 00:15:47,880 sitten jotkut aaltosulkeita, jonka sisﺣ۳llﺣ۳ sinua 357 00:15:47,880 --> 00:15:51,460 luettelo muuttujat haluat liittﺣ۳vﺣ۳t tﺣ۳mﺣ۳n uuden mukautetun tiedot 358 00:15:51,460 --> 00:15:55,670 kirjoita kuten nimi ja asuntolan, ja sitten sen jﺣ۳lkeen aaltosulkeita 359 00:15:55,670 --> 00:15:57,860 annat nimen uusien tietojen tyyppi. 360 00:15:57,860 --> 00:15:59,220 Niinpﺣ۳ esimerkiksi, opiskelija. 361 00:15:59,220 --> 00:16:03,247 >> Ja mitﺣ۳ mukavaa tﺣ۳stﺣ۳ on, ettﺣ۳ nyt jos katsomme vastaava koodi, 362 00:16:03,247 --> 00:16:05,080 yleissopimus, ensimmﺣ۳inen Kaikkien, on laittaa tﺣ۳mﺣ۳ 363 00:16:05,080 --> 00:16:08,230 tiedostoon nimeltﺣ۳ jotain piste h, header-tiedosto, joka meillﺣ۳ ei 364 00:16:08,230 --> 00:16:09,780 alkoi kﺣ۳yttﺣ۳ﺣ۳ itseﺣ۳mme liikaa. 365 00:16:09,780 --> 00:16:12,120 Mutta aiomme aloittaa kﺣ۳yttﺣ۳en melko vﺣ۳hﺣ۳n nyt. 366 00:16:12,120 --> 00:16:18,650 Ja mitﺣ۳ voimme tehdﺣ۳ tﺣ۳mﺣ۳n, lopulta, nﺣ۳issﺣ۳ muutaman rivin koodia 367 00:16:18,650 --> 00:16:22,130 on julistaa juuri sitﺣ۳ tietotyyppi, opiskelija. 368 00:16:22,130 --> 00:16:23,230 Ja Nyt kﺣ۳yttﺣ۳ﺣ۳ sitﺣ۳. 369 00:16:23,230 --> 00:16:27,274 >> Aion nyt mennﺣ۳ tiedosto nimeltﺣ۳ structs1.c. 370 00:16:27,274 --> 00:16:29,440 Ja lﺣ۳hdetﺣ۳ﺣ۳n katsomaan harvat ominaisuudet tﺣ۳ﺣ۳llﺣ۳. 371 00:16:29,440 --> 00:16:32,250 Joten tukkia tﺣ۳ssﺣ۳ enimmﺣ۳kseen tuttuja, ja me 372 00:16:32,250 --> 00:16:35,040 palata mikﺣ۳ ei ole tuttu vain hetken. 373 00:16:35,040 --> 00:16:39,880 Tﺣ۳mﺣ۳ tietenkin on myﺣﭘs omassani header-tiedosto, joka on uusi myﺣﭘs, 374 00:16:39,880 --> 00:16:42,580 paitsi PSET 3 missﺣ۳, Recall, meillﺣ۳ on helpers.h. 375 00:16:42,580 --> 00:16:45,150 Joten saatat muistaa # include helpers.h. 376 00:16:45,150 --> 00:16:49,381 >> Miksi vaikka minulla on kﺣ۳ytﺣﭘssﺣ۳ lainausmerkkejﺣ۳ sijasta kulmassa suluissa? 377 00:16:49,381 --> 00:16:50,630 Milloin voin valita ne? 378 00:16:50,630 --> 00:16:52,310 Lﺣ۳hes aina Nﺣ۳ytﺣ۳n kﺣ۳yttﺣ۳ﺣ۳ kulma suluissa. 379 00:16:52,310 --> 00:16:55,040 Ja sitten, yhtﺣ۳kkiﺣ۳ on line kuusi Kﺣ۳ytﺣ۳n lainausmerkkeihin. 380 00:16:55,040 --> 00:16:55,860 Miksi voisi olla? 381 00:16:55,860 --> 00:16:56,700 Joo? 382 00:16:56,700 --> 00:16:57,725 >> Yleisﺣﭘ: [ﺣ۳ﺣ۳netﺣﭘn] 383 00:16:57,725 --> 00:16:59,350 DAVID J. MALAN: Se todellinen, mitﺣ۳? 384 00:16:59,350 --> 00:17:00,559 Yleisﺣﭘ: Se on teidﺣ۳n IDE. 385 00:17:00,559 --> 00:17:02,475 DAVID J. MALAN: Joo, se on minun todellinen IDE. 386 00:17:02,475 --> 00:17:05,690 Ja ﺣ۳lkﺣ۳ﺣ۳mme viipyﺣ۳ IDE, koska se on vain tyﺣﭘkalu, joka olen kﺣ۳yttﺣ۳en. 387 00:17:05,690 --> 00:17:08,119 Se on minun nykyinen hakemiston, erityisesti. 388 00:17:08,119 --> 00:17:11,647 Joten structs.h on oma tiedosto ei asennettu IDE, 389 00:17:11,647 --> 00:17:14,480 kﺣ۳yttﺣﭘjﺣ۳rjestelmﺣ۳ itse, vaan se on minun hakemistossa. 390 00:17:14,480 --> 00:17:16,910 Joten yleissopimus on, jos haluat sisﺣ۳llyttﺣ۳ﺣ۳ oman header-tiedosto, 391 00:17:16,910 --> 00:17:18,200 kﺣ۳ytﺣ۳t vain lainausmerkkejﺣ۳. 392 00:17:18,200 --> 00:17:23,290 >> Mitﺣ۳ me kutsumme tﺣ۳tﺣ۳ asia linja 8, yleisesti ottaen? 393 00:17:23,290 --> 00:17:25,200 Tﺣ۳mﺣ۳ on mitﺣ۳? 394 00:17:25,200 --> 00:17:28,220 #define jotain. 395 00:17:28,220 --> 00:17:31,040 Tﺣ۳mﺣ۳ on vakiot, eikﺣﭘ? 396 00:17:31,040 --> 00:17:33,140 Jos haluat olla arvoa ohjelman 397 00:17:33,140 --> 00:17:35,110 ettﺣ۳ kﺣ۳ytﺣ۳t koko joukko kertaa, se on 398 00:17:35,110 --> 00:17:39,330 hyvﺣ۳ yleissopimus tekijﺣ۳ sitﺣ۳, julistaa, ettﺣ۳ se, hash symboli 399 00:17:39,330 --> 00:17:43,340 mﺣ۳ﺣ۳ritellﺣ۳, sitten Sopimuksen mukaan kaikissa isoiksi word-- vaikka se ei ole 400 00:17:43,340 --> 00:17:45,320 ehdottoman vﺣ۳lttﺣ۳mﺣ۳tﺣﭘntﺣ۳, mutta se on ihmisen yleissopimus 401 00:17:45,320 --> 00:17:47,210 hyﺣﭘdyntﺣ۳ﺣ۳ vakioita jotta ne hyppﺣ۳ﺣ۳ ulos 402 00:17:47,210 --> 00:17:50,380 sinua visually-- tilaa ja niin arvo haluat olla 403 00:17:50,380 --> 00:17:52,250 vastaa, ettﺣ۳ jatkuva nimi. 404 00:17:52,250 --> 00:17:56,110 Ei puolipiste, mutta voit yksinkertaisesti seuraa, ettﺣ۳ kuvio siellﺣ۳. 405 00:17:56,110 --> 00:17:57,770 >> Joten mitﺣ۳ teen tﺣ۳ssﺣ۳ todellinen koodi. 406 00:17:57,770 --> 00:18:00,660 Joten katsomaan pﺣ۳ﺣ۳ohjelma tﺣ۳ﺣ۳llﺣ۳. 407 00:18:00,660 --> 00:18:04,080 Linjassa 12, koska olen ovat olleet structs.h, 408 00:18:04,080 --> 00:18:06,492 Minulla on nyt maagisesti minun hﺣ۳vittﺣ۳minen uusi tietotyyppi. 409 00:18:06,492 --> 00:18:09,200 Minulla ei vain ole pﺣ۳ﺣ۳syﺣ۳ int, ja nieriﺣ۳ﺣ۳, ja kellua, ja string, 410 00:18:09,200 --> 00:18:10,060 ja sininen ja muut. 411 00:18:10,060 --> 00:18:12,470 Minulla on nyt pﺣ۳ﺣ۳sy opiskelija tietotyyppi. 412 00:18:12,470 --> 00:18:17,740 Joten linja 12, olen yhdistﺣ۳mﺣ۳llﺣ۳ kaksi ideas-- yksi mukautetun tietotyyppi ja kaksi, 413 00:18:17,740 --> 00:18:18,940 kﺣ۳yttﺣ۳en array. 414 00:18:18,940 --> 00:18:21,700 Ja niin tﺣ۳ssﺣ۳ ohjelmassa, jos Haluan todella tukea 415 00:18:21,700 --> 00:18:24,320 kolme eri opiskelijat minun ohjelma, minﺣ۳ 416 00:18:24,320 --> 00:18:30,480 voi yksinkertaisesti sanoa antaa minulle muuttuja kutsutaan opiskelijoita, joista jokainen 417 00:18:30,480 --> 00:18:32,970 on tyyppiﺣ۳ opiskelijoita, jotka minulla on tapana tietotyyppi. 418 00:18:32,970 --> 00:18:35,890 Ja, erityisesti, anna minulle kolme nﺣ۳istﺣ۳ minun array. 419 00:18:35,890 --> 00:18:37,750 >> Joten nyt mitﺣ۳ me teemme tﺣ۳ssﺣ۳ ohjelmassa? 420 00:18:37,750 --> 00:18:40,670 Tﺣ۳ssﺣ۳ on vain varten silmukka iteroimalla 0-3, koska se on 421 00:18:40,670 --> 00:18:42,110 mitﺣ۳ arvo opiskelijoiden on. 422 00:18:42,110 --> 00:18:44,420 Olen vain kehottaa kﺣ۳yttﺣ۳jﺣ۳ﺣ۳ anna minulle opiskelijan nimi. 423 00:18:44,420 --> 00:18:48,090 Ja sitten linjassa 17, me on enimmﺣ۳kseen tuttuja linja. 424 00:18:48,090 --> 00:18:50,370 Meillﺣ۳ on vanha ystﺣ۳vﺣ۳ GetString oikealla. 425 00:18:50,370 --> 00:18:52,345 Ja mitﺣ۳ pala syntaksin on ilmeisesti uusi, 426 00:18:52,345 --> 00:18:55,130 jos et ole koskaan ohjelmoitu C ennen, eikﺣ۳ ole koskaan kﺣ۳yttﺣ۳nyt structs? 427 00:18:55,130 --> 00:18:55,510 Joo? 428 00:18:55,510 --> 00:18:56,417 >> Yleisﺣﭘ: .name. 429 00:18:56,417 --> 00:18:57,500 DAVID J. MALAN: .name. 430 00:18:57,500 --> 00:19:01,220 Mutta tﺣ۳mﺣ۳ ei ole liikaa harppaus, koska nyt opiskelijat kannatin i 431 00:19:01,220 --> 00:19:02,590 antaa sinulle i: nnen opiskelija. 432 00:19:02,590 --> 00:19:04,730 Ja jos haluat sukeltaa sisﺣ۳llﺣ۳ ettﺣ۳ rakenne, 433 00:19:04,730 --> 00:19:09,490 kﺣ۳ytﺣ۳t vain yhden kerran ja sitten muuttujan nimi sisﺣ۳llﺣ۳, 434 00:19:09,490 --> 00:19:11,900 tai omaisuuden sisﺣ۳llﺣ۳ ettﺣ۳ haluat pﺣ۳ﺣ۳stﺣ۳ kﺣ۳siksi. 435 00:19:11,900 --> 00:19:14,816 Samoin silloin, jos en sitten pyytﺣ۳ﺣ۳ kﺣ۳yttﺣ۳jﺣ۳, anna minulle opiskelijan asuntolan, 436 00:19:14,816 --> 00:19:18,390 voit samalla tallentaa ettﺣ۳ merkkijono asuntolan muuttuja sisﺣ۳llﺣ۳ 437 00:19:18,390 --> 00:19:19,940 Kyseisen opiskelija rakenne. 438 00:19:19,940 --> 00:19:21,410 >> Ja nyt asiat saavat hieman fancy. 439 00:19:21,410 --> 00:19:24,420 Ja tﺣ۳mﺣ۳ tulee nﺣ۳yttﺣ۳mﺣ۳ﺣ۳n klo ehkﺣ۳ paljon melko pian. 440 00:19:24,420 --> 00:19:27,970 Mutta nﺣ۳et tﺣ۳mﺣ۳n paljon enemmﺣ۳n PSET 4, joten haluan vain vilkaista sitﺣ۳ nyt. 441 00:19:27,970 --> 00:19:33,364 On kﺣ۳ynyt ilmi, ettﺣ۳ linja 23 kautta 38, mitﺣ۳ luulet minun kenties tekemﺣ۳ssﺣ۳? 442 00:19:33,364 --> 00:19:35,530 Olen poistanut kommentit tﺣ۳nﺣ۳ﺣ۳n, mutta versio 443 00:19:35,530 --> 00:19:38,660 koodi verkossa viittaus on kaikki kommentit. 444 00:19:38,660 --> 00:19:40,171 Mitﺣ۳ Nﺣ۳ytﺣ۳n tekevﺣ۳n? 445 00:19:40,171 --> 00:19:42,530 >> Yleisﺣﭘ: tallentaminen tiedoston kaikki tiedot, jotka kﺣ۳yttﺣ۳jﺣ۳ on antanut. 446 00:19:42,530 --> 00:19:44,530 >> DAVID J. MALAN: Joo, juuri, tﺣ۳mﺣ۳ on uusi tapa 447 00:19:44,530 --> 00:19:46,370 ettﺣ۳ nﺣ۳emme kaksi, Toinen piirre C, 448 00:19:46,370 --> 00:19:48,700 jolloin voin luoda oman tiedostoja. 449 00:19:48,700 --> 00:19:51,580 Tﺣ۳hﺣ۳n mennessﺣ۳ lﺣ۳hes jokainen ohjelma olet kirjoittanut on kansalaisuudeton. 450 00:19:51,580 --> 00:19:53,334 Heti kun se on tehty kﺣ۳ynnissﺣ۳, se on siinﺣ۳. 451 00:19:53,334 --> 00:19:55,000 Ei ole muistia tai muistikuvaa siitﺣ۳. 452 00:19:55,000 --> 00:19:56,110 Ei ole tallennettu tiedosto. 453 00:19:56,110 --> 00:19:58,120 Mutta jos et halua tallentaa tulo ettﺣ۳ on 454 00:19:58,120 --> 00:20:02,100 tapahtui, kuten pelin tai ohjelman nﺣ۳in, se kﺣ۳ﺣ۳ntyy pois voimme tehdﺣ۳ niin. 455 00:20:02,100 --> 00:20:04,360 Ja nﺣ۳et tﺣ۳mﺣ۳n lisﺣ۳ﺣ۳ vuonna PSET 4 ja jaksossa. 456 00:20:04,360 --> 00:20:08,661 Mutta tﺣ۳mﺣ۳ linja 23 olennaisesti luo tiedosto nimeltﺣ۳ students.csv. 457 00:20:08,661 --> 00:20:10,160 Ja ehkﺣ۳ nﺣ۳hnyt tﺣ۳mﺣ۳n ennenkin. 458 00:20:10,160 --> 00:20:14,250 Vaikka et ole koskaan opiskellut CS ennen, CSV on pilkulla erotettuna muuttujia. 459 00:20:14,250 --> 00:20:19,000 Se on kuin hyvin kﺣﭘyhﺣ۳n versio Excel-tiedoston, 460 00:20:19,000 --> 00:20:22,270 mikﺣ۳ tarkoittaa, ettﺣ۳ se voidaan avata Excel ja Apple numerot, 461 00:20:22,270 --> 00:20:23,830 ja se on rivejﺣ۳ ja sarakkeita. 462 00:20:23,830 --> 00:20:26,485 Mutta se ei ole omaa muodossa, kuten Microsoftin tai Applen. 463 00:20:26,485 --> 00:20:29,840 Se on vain pilkkuja erottamalla arvot ettﺣ۳ nﺣ۳emme hetken kuluttua. 464 00:20:29,840 --> 00:20:31,010 >> Ja ota arvaus. 465 00:20:31,010 --> 00:20:33,480 Linjassa 23, aivan Lopulta minun toinen vﺣ۳ite 466 00:20:33,480 --> 00:20:37,700 tﺣ۳hﺣ۳n uuteen toiminto nimeltﺣ۳ﺣ۳n f avoinna tiedosto auki on w. 467 00:20:37,700 --> 00:20:39,430 Mikﺣ۳ mahtaa W tarkoittavat? 468 00:20:39,430 --> 00:20:40,022 Joo? 469 00:20:40,022 --> 00:20:41,260 >> Yleisﺣﭘ: Sen avulla voit kirjoittaa tiedostoon? 470 00:20:41,260 --> 00:20:42,630 >> DAVID J. MALAN: Sen avulla voit kirjoittaa tiedostoon. 471 00:20:42,630 --> 00:20:44,810 Joten siellﺣ۳ on pari vaihtoehtoja ettﺣ۳ voimme plug tﺣ۳ﺣ۳llﺣ۳. 472 00:20:44,810 --> 00:20:47,184 Mutta jos haluat vain lukea tiedosto, joka on katsoa sitﺣ۳ 473 00:20:47,184 --> 00:20:50,010 ja lukea sen muistiin, voit vain kﺣ۳yttﺣ۳ﺣ۳ lainaus lainaus pﺣ۳ﺣ۳ttyy "R". 474 00:20:50,010 --> 00:20:53,110 Jos haluat kirjoittaa tiedosto, kﺣ۳ytﺣ۳t lainaus lainaus pﺣ۳ﺣ۳ttyy "w". 475 00:20:53,110 --> 00:20:55,190 Mukana on myﺣﭘs liittﺣ۳ﺣ۳ ja pari muutakin 476 00:20:55,190 --> 00:20:57,356 jos haluat muokata olemassa olevia tiedostoja. 477 00:20:57,356 --> 00:21:00,480 Nyt aiomme pitﺣ۳ﺣ۳ nﺣ۳hdﺣ۳ tﺣ۳mﺣ۳ asia, niin me palaamme linja 24. 478 00:21:00,480 --> 00:21:02,640 NULL, se kﺣ۳ﺣ۳ntyy pois, on erityinen arvo 479 00:21:02,640 --> 00:21:06,070 voidaan palauttaa tiettyjﺣ۳ toimintoja jos jotain on mennyt wrong-- 480 00:21:06,070 --> 00:21:08,490 jos tiedostoa ei ole olemassa, jos olet loppuu muisti, 481 00:21:08,490 --> 00:21:09,620 tai joukko muita virheitﺣ۳. 482 00:21:09,620 --> 00:21:13,470 Mutta nyt, haluan vain olettaa, ettﺣ۳ tﺣ۳mﺣ۳ on vain tavanomainen virheentarkistus. 483 00:21:13,470 --> 00:21:17,090 Tﺣ۳ﺣ۳llﺣ۳ linja 26, olen iteroimalla 0-3 kaikkia oppilaitani. 484 00:21:17,090 --> 00:21:20,470 Ja tﺣ۳mﺣ۳ on tavallaan erﺣ۳ﺣ۳nlainen Uuden toiminnon, fprintf, 485 00:21:20,470 --> 00:21:21,460 mutta ota arvaus. 486 00:21:21,460 --> 00:21:24,370 Jos printf on vain tulosta muotoiltu merkkijono, 487 00:21:24,370 --> 00:21:26,507 mitﺣ۳ fprintf luultavasti tarkoittaa? 488 00:21:26,507 --> 00:21:27,590 Yleisﺣﭘ: Tulosta tiedostoon. 489 00:21:27,590 --> 00:21:29,290 DAVID J. MALAN: Tulosta muotoiltu merkkijono tiedostoon. 490 00:21:29,290 --> 00:21:31,180 Sitﺣ۳hﺣ۳n lisﺣ۳ﺣ۳ f keino on tiedosto. 491 00:21:31,180 --> 00:21:36,420 Ja uusi ensimmﺣ۳inen vﺣ۳ite on oltava muuttuja, joka edustaa tiedosto. 492 00:21:36,420 --> 00:21:38,866 Sitten vain formaatti string kuten printf. 493 00:21:38,866 --> 00:21:40,740 Ja vaikka tﺣ۳mﺣ۳ syntaksi on uusi, tﺣ۳mﺣ۳ vain 494 00:21:40,740 --> 00:21:44,610 tarkoittaa kytke opiskelijan nimi, plug-in opiskelija asuntolan, ja sitten 495 00:21:44,610 --> 00:21:47,160 kanssa fclose, sulje tiedosto. 496 00:21:47,160 --> 00:21:49,730 Ja sitten lastly-- tﺣ۳mﺣ۳ on uusi ja me palaamme tﺣ۳hﺣ۳n 497 00:21:49,730 --> 00:21:53,240 ennen long-- Olen vapauttaa opiskelija syistﺣ۳ 498 00:21:53,240 --> 00:21:54,860 tapahtui ylhﺣ۳ﺣ۳llﺣ۳ siellﺣ۳. 499 00:21:54,860 --> 00:21:56,820 Mutta tulemme takaisin sen, ettﺣ۳ ennen long-- 500 00:21:56,820 --> 00:21:59,820 se johtuu siitﺣ۳, miten GetString on itse asiassa tyﺣﭘskentelevﺣ۳t alla huppu. 501 00:21:59,820 --> 00:22:01,280 >> Joten ottaa vilkaista tﺣ۳ﺣ۳llﺣ۳. 502 00:22:01,280 --> 00:22:04,380 Jos kirjoitan ls minun hakemistoon, huomata, ettﺣ۳ en 503 00:22:04,380 --> 00:22:09,360 on tiedosto nimeltﺣ۳ students.csv, vain ole siellﺣ۳, ei ole olemassa. 504 00:22:09,360 --> 00:22:14,965 Jos siis nyt kokoamaan tﺣ۳mﺣ۳n ohjelman, tehdﺣ۳ structs-1. / Tietueet-1, 505 00:22:14,965 --> 00:22:20,570 ja aion mennﺣ۳ eteenpﺣ۳in ja kirjoita Andi, joka asuu Berkeley Yalen. 506 00:22:20,570 --> 00:22:26,350 Aiomme olla Rob jotka asuu Thayer nﺣ۳inﺣ۳ pﺣ۳ivinﺣ۳. 507 00:22:26,350 --> 00:22:33,760 Ja nyt keksiﺣ۳ missﺣ۳ on, mielestﺣ۳ni, Maria on Mather, 508 00:22:33,760 --> 00:22:35,100 jos olen muistanut oikein. 509 00:22:35,100 --> 00:22:36,460 >> Joten mitﺣ۳ﺣ۳n ei tunnu tapahtuvan. 510 00:22:36,460 --> 00:22:40,680 Mutta jos kirjoitan ls nyt, on students.csv. 511 00:22:40,680 --> 00:22:43,080 Mennﺣ۳ﺣ۳n eteenpﺣ۳in ja avoin students.csv. 512 00:22:43,080 --> 00:22:46,050 Tﺣ۳mﺣ۳ on jﺣ۳lleen hyvin kevyt tiedostomuoto. 513 00:22:46,050 --> 00:22:49,570 Mutta olen yksinkertaisesti antoi yleissopimus ettﺣ۳ minulla on kaksi riviﺣ۳ ja sarakkeita. 514 00:22:49,570 --> 00:22:52,020 Ensimmﺣ۳isessﺣ۳ sarakkeessa on ihmisten etunimet. 515 00:22:52,020 --> 00:22:55,740 Toinen sarake on opiskelijan asuntolan, tai korkeakoulussa, tai talon, tai vaikka mitﺣ۳. 516 00:22:55,740 --> 00:22:57,900 Ja nyt olen tallentanut tﺣ۳mﺣ۳n pysyvﺣ۳sti tiedostoon. 517 00:22:57,900 --> 00:22:59,280 >> Joten se ei ole kaikki, ettﺣ۳ mielenkiintoinen. 518 00:22:59,280 --> 00:23:02,980 Mutta tﺣ۳mﺣ۳ on vain ponnahduslauta nyt , ettﺣ۳ voi jatkua tiedot 519 00:23:02,980 --> 00:23:04,040 pysyvﺣ۳sti. 520 00:23:04,040 --> 00:23:08,340 Katsotaanpa nyt, mitﺣ۳ enemmﺣ۳n voimme tehdﺣ۳ nﺣ۳itﺣ۳ ja muita ominaisuuksia. 521 00:23:08,340 --> 00:23:10,729 Mutta ensin kysyttﺣ۳vﺣ۳ﺣ۳? 522 00:23:10,729 --> 00:23:12,145 Se oli paljon, ja se oli nopea. 523 00:23:12,145 --> 00:23:16,131 Mutta nﺣ۳et paljon enemmﺣ۳n PSET 4, samoin. 524 00:23:16,131 --> 00:23:16,630 Joo? 525 00:23:16,630 --> 00:23:19,360 >> Yleisﺣﭘ: Onko olemassa tapa jatkaa lisﺣ۳ﺣ۳mﺣ۳llﺣ۳ nimiﺣ۳ tiedoston? 526 00:23:19,360 --> 00:23:19,880 >> DAVID J. MALAN: Hyvﺣ۳ kysymys. 527 00:23:19,880 --> 00:23:21,800 Onko tapa jatkaa Nimien lisﺣ۳ﺣ۳minen tiedoston? 528 00:23:21,800 --> 00:23:22,340 Kyllﺣ۳. 529 00:23:22,340 --> 00:23:24,630 Ja itse asiassa, jos lopetat up uudelleen tiedoston avaus 530 00:23:24,630 --> 00:23:26,780 kﺣ۳yttﺣ۳isit lainaus lainaus "" varten append, 531 00:23:26,780 --> 00:23:31,090 joka olisi vain lisﺣ۳tﺣ۳ uuden rivin, Uusi linja uudestaan ﻗ€‹ﻗ€‹ja uudestaan, tarkalleen. 532 00:23:31,090 --> 00:23:32,010 Hyvﺣ۳ kysymys. 533 00:23:32,010 --> 00:23:32,950 Muita kysymyksiﺣ۳? 534 00:23:32,950 --> 00:23:33,450 Joo? 535 00:23:33,450 --> 00:23:35,580 Yleisﺣﭘ: Jos suoritit ohjelma uudelleen juuri nyt, 536 00:23:35,580 --> 00:23:38,000 olisi se pitﺣ۳ﺣ۳ lisﺣ۳tﺣ۳ nimet tiedostoon tai olisiko avata uuden tiedoston? 537 00:23:38,000 --> 00:23:38,740 >> DAVID J. MALAN: Ah, hyvﺣ۳ kysymys. 538 00:23:38,740 --> 00:23:41,448 Jos juoksi ohjelman uudelleen oikea nyt, ehkﺣ۳ kirjoittanut uudet nimet, 539 00:23:41,448 --> 00:23:44,820 olisi se lisﺣ۳ﺣ۳ tiedosto tai korvata tiedoston? 540 00:23:44,820 --> 00:23:47,420 Jﺣ۳lkimmﺣ۳inen, koska olen et kﺣ۳ytﺣ۳ append tilassa. 541 00:23:47,420 --> 00:23:49,930 Ja koska olen vain sokeasti tiedoston avaus kirjoittamista varten, 542 00:23:49,930 --> 00:23:51,310 se vain menee korvata tiedoston. 543 00:23:51,310 --> 00:23:54,570 Joten haluan todellakin tarvitsee vain liittﺣ۳ﺣ۳, jos haluan todella olla pitkﺣ۳llﺣ۳ aikavﺣ۳lillﺣ۳ 544 00:23:54,570 --> 00:23:55,350 tietokanta. 545 00:23:55,350 --> 00:23:58,220 >> Nyt CSV on hyﺣﭘdyllinen, suoraan sanottuna, vaikka sillﺣ۳ kuten jos olet writing-- 546 00:23:58,220 --> 00:24:00,100 ja me lopulta nﺣ۳hdﺣ۳ tﺣ۳mﺣ۳ myﺣﭘhemmin lukukauden kun 547 00:24:00,100 --> 00:24:01,455 kﺣ۳ytﺣ۳mme CSV-raportit voivat muihin tarkoituksiin. 548 00:24:01,455 --> 00:24:04,920 Jos haluat tallentaa kaikki ihmiset jotka ovat rekisterﺣﭘityneet jostakin tapahtumasta, 549 00:24:04,920 --> 00:24:07,420 tai rekisterﺣﭘitynyt oman opiskelija ryhmﺣ۳, tai jotain, 550 00:24:07,420 --> 00:24:10,330 datan tallentamisen tﺣ۳llaisessa muotoa on erittﺣ۳in kﺣ۳tevﺣ۳. 551 00:24:10,330 --> 00:24:12,580 Koska kirjaimellisesti, jos en olivat lataat tﺣ۳mﺣ۳n tiedoston. 552 00:24:12,580 --> 00:24:14,540 Voisin double-- ja nyt itse kokeilla tﺣ۳tﺣ۳ 553 00:24:14,540 --> 00:24:16,720 jos minulla on Excel tai Numerot tﺣ۳ﺣ۳llﺣ۳. 554 00:24:16,720 --> 00:24:19,130 >> Aion hiiren kakkospainikkeella tai Control-osoita minun arkistoida. 555 00:24:19,130 --> 00:24:20,020 Oho. 556 00:24:20,020 --> 00:24:21,830 Hiiren kakkospainikkeella tai Control-osoita minun arkistoida. 557 00:24:21,830 --> 00:24:24,960 Tule, minun hiiri ei ole yhteistyﺣﭘtﺣ۳. 558 00:24:24,960 --> 00:24:32,694 Download-- Aion ladata kaikki tiedostot tﺣ۳ﺣ۳llﺣ۳ niin 559 00:24:32,694 --> 00:24:33,860 vain jotta voin napata tﺣ۳mﺣ۳ yksi. 560 00:24:33,860 --> 00:24:37,850 Ja katsotaan, jos tﺣ۳mﺣ۳ toimii students.csv-- ensimmﺣ۳istﺣ۳ kertaa 561 00:24:37,850 --> 00:24:39,310 Olen aktivoitu. 562 00:24:39,310 --> 00:24:41,360 Nyt he haluavat nﺣ۳hdﺣ۳ minun yhteystiedot. 563 00:24:41,360 --> 00:24:44,310 Nyt minun tﺣ۳ytyy rekisterﺣﭘityﺣ۳. 564 00:24:44,310 --> 00:24:47,620 Katso, miten helppoa se on kﺣ۳yttﺣ۳ﺣ۳ CSV-raportit voivat? 565 00:24:47,620 --> 00:24:50,840 Kyllﺣ۳, pitﺣ۳ﺣ۳ sen ajan tasalla. 566 00:24:50,840 --> 00:24:52,375 OK, nyt olemme valmiita luokan. 567 00:24:52,375 --> 00:24:58,750 568 00:24:58,750 --> 00:25:00,370 OK, oi, mitﺣ۳ uutta? 569 00:25:00,370 --> 00:25:02,920 OK, sulje. 570 00:25:02,920 --> 00:25:04,750 Se oli maaginen. 571 00:25:04,750 --> 00:25:07,280 OK, nyt meidﺣ۳n on pﺣ۳ivitettﺣ۳vﺣ۳. 572 00:25:07,280 --> 00:25:10,890 Ja nyt, se unohtanut, mitﺣ۳ tiedosto Olen alun perin avannut, 573 00:25:10,890 --> 00:25:13,090 mutta mitﺣ۳ a-- siellﺣ۳ mennﺣ۳ﺣ۳n. 574 00:25:13,090 --> 00:25:16,341 OK, joten nyt meillﺣ۳ on Excel-tiedoston. 575 00:25:16,341 --> 00:25:18,290 Kiitos. 576 00:25:18,290 --> 00:25:20,764 >> OK, joten mitﺣ۳ tein oli helppoa. 577 00:25:20,764 --> 00:25:23,930 Tietenkin olisin voinut esiasennettuna Excel- tai numerot, tai mitﺣ۳ ohjelmaa. 578 00:25:23,930 --> 00:25:25,846 Mutta tﺣ۳mﺣ۳ on mukava, koska nyt voin manipuloida 579 00:25:25,846 --> 00:25:28,090 tiedot vakiomuodossa. 580 00:25:28,090 --> 00:25:30,294 >> Joten nyt Katsotaanpa yhteydessﺣ۳ vaihtaa mihin jﺣ۳imme 581 00:25:30,294 --> 00:25:32,710 viime kerralla, jonka oli mﺣ۳ﺣ۳rﺣ۳ aloittaa ottaa pois apupyﺣﭘrﺣ۳t. 582 00:25:32,710 --> 00:25:34,543 Mutta ensin sinun ei nﺣ۳hdﺣ۳ tﺣ۳mﺣ۳n aikaisemmin lounas 583 00:25:34,543 --> 00:25:38,150 jﺣ۳lleen tapahtuu tﺣ۳ﺣ۳llﺣ۳ Palo ja Ice Cambridge, Sitar New Haven. 584 00:25:38,150 --> 00:25:43,150 Rekisterﺣﭘidy ylﺣﭘs CS50s verkkosivuilla ASAP liittyﺣ۳ CS50 opiskelijoille ja henkilﺣﭘkunnalle. 585 00:25:43,150 --> 00:25:46,090 >> Joten otimme apupyﺣﭘrﺣ۳t pois maanantain follows-- 586 00:25:46,090 --> 00:25:49,120 merkkijono on ilmoitettu CS50s kirjasto jonkin aikaa. 587 00:25:49,120 --> 00:25:52,650 Ja se on mukavaa, koska se mahdollistaa voimme puhua muuttujien olevan 588 00:25:52,650 --> 00:25:54,660 kokonaisia ﻗ€‹ﻗ€‹sanoja ja lauseita ja enemmﺣ۳n. 589 00:25:54,660 --> 00:25:56,710 Mutta se osoittautuu merkkijono ei ole olemassa. 590 00:25:56,710 --> 00:26:00,200 Se on vain synonyymi, tai alias, ettﺣ۳ olemme luoneet jotain, 591 00:26:00,200 --> 00:26:03,780 itse asiassa on hieman tekninen kutsutaan char *. 592 00:26:03,780 --> 00:26:07,900 >> Ja todellakin, nﺣ۳imme esimerkki ohjelman maanantaina 593 00:26:07,900 --> 00:26:11,200 ettﺣ۳ ei kﺣ۳yttﺣ۳ytynyt aivan kuin odotimme. 594 00:26:11,200 --> 00:26:13,630 Tﺣ۳mﺣ۳ oli tiedosto, vertaa-0. 595 00:26:13,630 --> 00:26:17,910 Ja muistuttavat, ettﺣ۳ vertaat-0, jos Olen kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ maanantain ohjelma 596 00:26:17,910 --> 00:26:22,670 ja ajaa vertaa-0 ja kirjoita ﺣ۳iti vuonna pieniﺣ۳, ja ﺣ۳iti pienillﺣ۳ kirjaimilla uudelleen. 597 00:26:22,670 --> 00:26:25,320 Ohjelma vaati I Kirjoita eri asioita, 598 00:26:25,320 --> 00:26:29,210 vaikka ﺣ۳iti, kaikki pieniﺣ۳, on sama visuaalisesti. 599 00:26:29,210 --> 00:26:31,990 Joten mikﺣ۳ oli lyhyt vastaus miksi tietokoneen ajattelee 600 00:26:31,990 --> 00:26:34,500 nﺣ۳mﺣ۳ kaksi merkkijonoa ovat erilaisia? 601 00:26:34,500 --> 00:26:35,250 Joo? 602 00:26:35,250 --> 00:26:36,534 >> Yleisﺣﭘ: [ﺣ۳ﺣ۳netﺣﭘn] 603 00:26:36,534 --> 00:26:37,450 DAVID J. MALAN: Oikea. 604 00:26:37,450 --> 00:26:39,600 Niin, ﺣ۳iti, ensimmﺣ۳istﺣ۳ kertaa Kirjoitan sen, ollaan 605 00:26:39,600 --> 00:26:42,710 tallennettu jonnekin tietokoneeni muistia, mutta eri paikassa 606 00:26:42,710 --> 00:26:44,690 kuin toinen kerta, kun kirjoitat ﺣ۳iti. 607 00:26:44,690 --> 00:26:46,580 Nyt se varmasti voitaisiin optimoida. 608 00:26:46,580 --> 00:26:49,205 Tietokone voi olla fiksu ja ymmﺣ۳rtﺣ۳ﺣ۳ nﺣ۳mﺣ۳ kaksi merkkijonoa, hei, 609 00:26:49,205 --> 00:26:49,954 he identtisiﺣ۳. 610 00:26:49,954 --> 00:26:51,520 Saanen ei tarpeettomasti sﺣ۳ilytﺣ۳ sitﺣ۳. 611 00:26:51,520 --> 00:26:54,229 Mutta tietokoneet eivﺣ۳t tee sitﺣ۳ optimointi, ellet kerro heille. 612 00:26:54,229 --> 00:26:56,061 Joten, oletuksena, he juuri menossa pﺣ۳ﺣ۳tyﺣ۳ 613 00:26:56,061 --> 00:26:57,670 kahdessa eri paikassa muistiin. 614 00:26:57,670 --> 00:27:01,570 Ja niin olla selvempi, kun vertasimme kaksi merkkijonoa, 615 00:27:01,570 --> 00:27:03,950 ensimmﺣ۳inen oli nimeltﺣ۳ﺣ۳n s, toinen oli nimeltﺣ۳ﺣ۳n 616 00:27:03,950 --> 00:27:08,530 t, mitﺣ۳ nimenomaan oli I verrataan tﺣ۳ﺣ۳llﺣ۳ line 13? 617 00:27:08,530 --> 00:27:09,494 Joo. 618 00:27:09,494 --> 00:27:12,390 >> Yleisﺣﭘ: Se on paikka muistiin ettﺣ۳ muuttuja osoittaa. 619 00:27:12,390 --> 00:27:14,900 >> DAVID J. MALAN: Aivan, olin vertaamalla paikka muistiin 620 00:27:14,900 --> 00:27:16,300 ettﺣ۳ nﺣ۳mﺣ۳ muuttujat viittasivat. 621 00:27:16,300 --> 00:27:20,560 Joten erityisesti, jos ﺣ۳iti oli tavu numero 1, ja 2, ja 3, 622 00:27:20,560 --> 00:27:24,020 ja 4-- koska muistan kenoviiva 0 on oltava aina lopussa. 623 00:27:24,020 --> 00:27:29,420 Ja muut esiintymﺣ۳ ﺣ۳iti, m-o-m, oli osoitteessa 10, 11, 12, ja 13. 624 00:27:29,420 --> 00:27:33,100 Olin vertaamalla 1, ettﺣ۳ osoite, ettﺣ۳ paikalla muistissa, 625 00:27:33,100 --> 00:27:35,160 vastaan ﻗ€‹ﻗ€‹10, joka on tietenkﺣ۳ﺣ۳n ole sama. 626 00:27:35,160 --> 00:27:36,260 1 ei ole 10. 627 00:27:36,260 --> 00:27:39,620 >> Joten tﺣ۳mﺣ۳ on mukavaa, ettﺣ۳ se on melko yksinkertainen. 628 00:27:39,620 --> 00:27:42,870 Mutta se on ongelmallinen sikﺣ۳li kuin emme voi nﺣ۳yttﺣ۳ﺣ۳ verrata jouset. 629 00:27:42,870 --> 00:27:44,930 Niin fundamentally-- ja tﺣ۳llﺣ۳ alhaisella tasolla, 630 00:27:44,930 --> 00:27:47,300 jos halusi toteuttaa ohjelma verrata 631 00:27:47,300 --> 00:27:50,270 kaksi erillistﺣ۳ sanaa, jotka kﺣ۳yttﺣ۳jﺣ۳ on kirjoitettu laatua, 632 00:27:50,270 --> 00:27:53,944 he riviin char varten char, vain yleisesti, 633 00:27:53,944 --> 00:27:55,360 mitﺣ۳ meidﺣ۳n tﺣ۳ytyy tehdﺣ۳, ilmeisesti? 634 00:27:55,360 --> 00:27:57,940 Se ei ole riittﺣ۳vﺣ۳ﺣ۳ vain Katso nﺣ۳itﺣ۳ kaksi osoitetta. 635 00:27:57,940 --> 00:27:58,860 Mitﺣ۳ meidﺣ۳n pitﺣ۳ﺣ۳ tehdﺣ۳? 636 00:27:58,860 --> 00:27:59,360 Joo? 637 00:27:59,360 --> 00:28:01,120 >> Yleisﺣﭘ: kerrata kautta string [kuultavissa]. 638 00:28:01,120 --> 00:28:02,600 >> DAVID J. MALAN: Joo, katsotaanpa kerrata lﺣ۳pi merkkijono. 639 00:28:02,600 --> 00:28:05,808 Katsotaanpa kﺣ۳yttﺣ۳ﺣ۳ silmukka, kun silmukka, tai mitﺣ۳ olet eniten mukava. 640 00:28:05,808 --> 00:28:08,840 Ja jos meillﺣ۳ kaksi merkkijonoa jonnekin muistiin, Katsotaanpa jokaisen n 641 00:28:08,840 --> 00:28:11,770 Ensimmﺣ۳inen merkki, jokainen toinen merkki, sitten kolmas, ja neljﺣ۳s, 642 00:28:11,770 --> 00:28:15,206 ja viides, kunnes osuma mitﺣ۳ erityisiﺣ۳ Sentinel arvo? 643 00:28:15,206 --> 00:28:16,080 Yleisﺣﭘ: [ﺣ۳ﺣ۳netﺣﭘn] 644 00:28:16,080 --> 00:28:18,800 DAVID J. MALAN: Joo, kenoviiva nolla, minkﺣ۳ jﺣ۳lkeen joko merkkijono 645 00:28:18,800 --> 00:28:20,100 voimme pﺣ۳ﺣ۳ttﺣ۳ﺣ۳ se on siinﺣ۳. 646 00:28:20,100 --> 00:28:21,970 Olemmeko Hyvﺣ۳ksytty jokainen merkki? 647 00:28:21,970 --> 00:28:22,990 Jos ei, return false. 648 00:28:22,990 --> 00:28:24,770 Jos nﺣ۳in on, return true. 649 00:28:24,770 --> 00:28:28,800 Ja niin se on juuri mitﺣ۳ tﺣ۳mﺣ۳ versio Ohjelman vertaa-1.c tekee. 650 00:28:28,800 --> 00:28:31,677 Se on sama kuin mitﺣ۳ me Katsoin maanantain paitsi ettﺣ۳ olen 651 00:28:31,677 --> 00:28:34,760 pﺣ۳ﺣ۳ssyt eroon sanan string-- vaikka ettﺣ۳ ei ole toiminnallista impact-- kaikki 652 00:28:34,760 --> 00:28:37,450 Teen nyt on poistaa joitakin visuaalisia apupyﺣﭘrﺣ۳t, 653 00:28:37,450 --> 00:28:40,880 mutta nﺣ۳hdﺣ۳ selvﺣ۳sti, ettﺣ۳ s ja t ovat osoitteita. 654 00:28:40,880 --> 00:28:43,020 Ja sitﺣ۳hﺣ۳n tﺣ۳hti, tﺣ۳hti, edustaa 655 00:28:43,020 --> 00:28:46,690 on osoite, joka tunnetaan teknisesti osoittimena. 656 00:28:46,690 --> 00:28:49,880 >> Joten kun Vakuutan s linja 9 ja sanoa char * s, 657 00:28:49,880 --> 00:28:52,160 se ei tarkoita antaa minulle merkkijono. 658 00:28:52,160 --> 00:28:56,360 Tﺣ۳mﺣ۳ tarkoittaa antaa minulle muuttuja, jonka tarkoitus elﺣ۳mﺣ۳ssﺣ۳ on sﺣ۳ilyttﺣ۳ﺣ۳ osoite. 659 00:28:56,360 --> 00:29:00,400 Koska olen aikeissa laittaa osoitteen merkkijono siihen. 660 00:29:00,400 --> 00:29:03,500 Ja todellakin, GetString, olla kirkas, ei palauta merkkijonon. 661 00:29:03,500 --> 00:29:06,110 Se ei palauta ﺣ۳iti kenoviiva nolla, sinﺣ۳nsﺣ۳. 662 00:29:06,110 --> 00:29:10,005 Mitﺣ۳ GetString erityisesti ja tarkasti palata? 663 00:29:10,005 --> 00:29:10,880 Yleisﺣﭘ: [ﺣ۳ﺣ۳netﺣﭘn] 664 00:29:10,880 --> 00:29:14,080 DAVID J. MALAN: osoite, osoite ensimmﺣ۳isen merkin 665 00:29:14,080 --> 00:29:16,070 Joissakin merkkijono se on saanut. 666 00:29:16,070 --> 00:29:19,250 Ja nyt nﺣ۳emme erityinen avainsana uudelleen. 667 00:29:19,250 --> 00:29:20,640 Ja minﺣ۳ viittasi tﺣ۳hﺣ۳n aiemmin. 668 00:29:20,640 --> 00:29:23,620 Tﺣ۳mﺣ۳ tulee olemaan hyvﺣ۳ yleissopimuksen ettﺣ۳ nﺣ۳emme uudelleen ja uudelleen nyt. 669 00:29:23,620 --> 00:29:27,540 Olen tarkkailun varmistaa, ettﺣ۳ s ei ole nolla ja t ei ole nolla. 670 00:29:27,540 --> 00:29:30,100 Koska perustuu minun todella nopea mainita aikaisemmin, 671 00:29:30,100 --> 00:29:35,510 mitﺣ۳ saattaa merkitﺣ۳, jos GetString palauttaa ei osoite mutta N-U-L-L, joka on jﺣ۳lleen, 672 00:29:35,510 --> 00:29:36,990 joitakin erityisiﺣ۳ arvoa? 673 00:29:36,990 --> 00:29:37,890 >> Yleisﺣﭘ: Virhe. 674 00:29:37,890 --> 00:29:38,600 >> DAVID J. MALAN: Se on virhe. 675 00:29:38,600 --> 00:29:39,550 Jotain meni pieleen. 676 00:29:39,550 --> 00:29:41,341 Ja mitﺣ۳ tyypillisesti voi tapahtua, erityisesti 677 00:29:41,341 --> 00:29:45,162 kanssa strings-- jotka saattavat olla tuntemattomien pituus advance-- 678 00:29:45,162 --> 00:29:46,870 ehkﺣ۳ tietokoneet " muisti, ehkﺣ۳ 679 00:29:46,870 --> 00:29:49,280 kirjoitit tﺣ۳llaisessa pitkﺣ۳ sana tai lause 680 00:29:49,280 --> 00:29:51,880 tai liittﺣ۳ﺣ۳ niin valtava essee siellﺣ۳ vain ole tarpeeksi muistia. 681 00:29:51,880 --> 00:29:55,340 Ja niin GetString voi palauttaa osoitteen koko juttu, 682 00:29:55,340 --> 00:29:56,620 niin se vain palauttaa mitﺣ۳ﺣ۳n. 683 00:29:56,620 --> 00:30:00,580 Ja se sanoo virhe on tapahtunut palauttamalla erityinen NULL arvo. 684 00:30:00,580 --> 00:30:02,890 Se on nolla osoite, niin sanoakseni. 685 00:30:02,890 --> 00:30:06,157 >> Nyt on kﺣ۳ynyt ilmi C mukana toiminto, joka tekee sen iterointia. 686 00:30:06,157 --> 00:30:09,240 Meillﺣ۳ ei tarvitse toteuttaa tﺣ۳mﺣ۳n kanssa silmukan tai while-silmukka itse. 687 00:30:09,240 --> 00:30:11,150 Voimme kﺣ۳yttﺣ۳ﺣ۳ toimintoa, nimeltﺣ۳ﺣ۳n ytimekkﺣ۳ﺣ۳sti, 688 00:30:11,150 --> 00:30:15,400 sekoita comp, tai merkkijono vertailla, jonka tarkoitus elﺣ۳mﺣ۳ssﺣ۳ on tehdﺣ۳ juuri nﺣ۳in. 689 00:30:15,400 --> 00:30:19,990 Annat sille kaksi osoittimia, kaksi osoitetta, ja se menee osoitteet 690 00:30:19,990 --> 00:30:23,130 ja sitten verrata kirjain kirjain, kirjain laatu, 691 00:30:23,130 --> 00:30:26,610 pysﺣ۳htyen vain silloin, kun mikﺣ۳ on totta? 692 00:30:26,610 --> 00:30:31,540 Kun intuitiivisesti pitﺣ۳isi sekoittua Comp lopettaa iteroimalla, vain olla selvﺣ۳? 693 00:30:31,540 --> 00:30:35,400 Kun se osuu kenoviiva 0 joko string, jolloin se voi pﺣ۳ﺣ۳ttﺣ۳ﺣ۳ 694 00:30:35,400 --> 00:30:38,910 on kaikki Hyvﺣ۳ksytty, tai ei ole ollut ristiriita? 695 00:30:38,910 --> 00:30:42,740 >> Joten, jos me suorittaa tﺣ۳mﺣ۳n nyt ja kokeile meidﺣ۳n pikku-arvo peli, 696 00:30:42,740 --> 00:30:49,260 joten varmista vertailla-1, ./compare-1, ja Kirjoita ﺣ۳iti pienillﺣ۳ molemmilla kerroilla. 697 00:30:49,260 --> 00:30:50,560 Nyt se on sama asia. 698 00:30:50,560 --> 00:30:54,080 Ja jos teen sen uudelleen pieniﺣ۳ ja sitten ehkﺣ۳ isoja. 699 00:30:54,080 --> 00:30:56,720 Nyt se todellakin erottaa pien- ja suuraakkosten vﺣ۳lillﺣ۳. 700 00:30:56,720 --> 00:31:00,440 Joten kaikki, ettﺣ۳ kova tai maaginen, mutta se ei nyt selittﺣ۳ﺣ۳ 701 00:31:00,440 --> 00:31:03,140 mitﺣ۳ tapahtuu alla huppu. 702 00:31:03,140 --> 00:31:07,640 >> Mitﺣ۳ enemmﺣ۳n voimme poimia tﺣ۳llaisesta oppitunnin? 703 00:31:07,640 --> 00:31:08,980 Joten katsomaan tﺣ۳tﺣ۳. 704 00:31:08,980 --> 00:31:15,380 Aion mennﺣ۳ eteenpﺣ۳in ja kirjoittaa nopea ohjelma tﺣ۳ssﺣ۳ kutsutaan copy-0. 705 00:31:15,380 --> 00:31:21,594 Ja nyt mennﺣ۳ﺣ۳n eteenpﺣ۳in ja todella Tehdﺣ۳ﺣ۳n this-- kopio-0, 706 00:31:21,594 --> 00:31:23,010 katsomaan mitﺣ۳ minulla tﺣ۳ﺣ۳llﺣ۳. 707 00:31:23,010 --> 00:31:24,712 Haluan ensin kertoa kﺣ۳yttﺣ۳jﺣ۳lle, sanoa jotain. 708 00:31:24,712 --> 00:31:26,420 Sitten saan merkkijono ja minﺣ۳ varastoidaan sen s. 709 00:31:26,420 --> 00:31:29,810 Sitten minﺣ۳ tarkistaa, jos s on yhtﺣ۳ kuin vastaa NULL, vain palata 1. 710 00:31:29,810 --> 00:31:31,590 Joten tﺣ۳mﺣ۳ on vain standardi virheentarkistus. 711 00:31:31,590 --> 00:31:33,112 Mitﺣ۳ﺣ۳n mielenkiintoista on tapahtunut. 712 00:31:33,112 --> 00:31:36,320 Ja itse asiassa, jos me eroon virhe tarkistus-, tﺣ۳mﺣ۳ nﺣ۳yttﺣ۳ﺣ۳ viikolla 1 koodi 713 00:31:36,320 --> 00:31:36,985 hetkellﺣ۳. 714 00:31:36,985 --> 00:31:39,110 Mutta olen alkanut saada vﺣ۳hﺣ۳n paremmin siitﺣ۳. 715 00:31:39,110 --> 00:31:43,340 >> Nyt linja 16, viikko sitten, ehkﺣ۳ jopa pari pﺣ۳ivﺣ۳ﺣ۳ tai minuuttia sitten, 716 00:31:43,340 --> 00:31:46,720 saatat sanoa linja 16 on luodaan muuttuja nimeltﺣ۳ t 717 00:31:46,720 --> 00:31:48,219 ja kopiointi s siihen. 718 00:31:48,219 --> 00:31:50,010 Ja se on tﺣ۳ysin kohtuullinen takeaway. 719 00:31:50,010 --> 00:31:51,560 Mutta tarkemmin nyt. 720 00:31:51,560 --> 00:31:54,190 Mitﺣ۳ tapahtuu linja 16? 721 00:31:54,190 --> 00:31:56,170 Mitﺣ۳ on tulossa kopioidaan oikealta vasemmalle? 722 00:31:56,170 --> 00:31:56,669 Joo? 723 00:31:56,669 --> 00:31:58,490 Yleisﺣﭘ: on t saada osoitteen s? 724 00:31:58,490 --> 00:32:01,220 >> DAVID J. MALAN: Aivan, t on saada osoitteen s. 725 00:32:01,220 --> 00:32:05,170 Joten tehtﺣ۳vﺣ۳ selvﺣ۳ksi nyt, jos menen takaisin tﺣ۳mﺣ۳n aikaisemman esimerkin 726 00:32:05,170 --> 00:32:08,520 ja minﺣ۳ vetﺣ۳ﺣ۳ ulos mitﺣ۳ olen kirjoittanut. 727 00:32:08,520 --> 00:32:11,640 Ja mitﺣ۳ olen kirjoittanut in-- tﺣ۳ssﺣ۳ s, ja tﺣ۳ssﺣ۳ 728 00:32:11,640 --> 00:32:15,830 on mitﺣ۳ olen kirjoittanut jossain muisti, ﺣ۳iti ja sitten kenoviiva 729 00:32:15,830 --> 00:32:17,840 0 joka on lisﺣ۳tty minulle. 730 00:32:17,840 --> 00:32:23,060 Mitﺣ۳ minﺣ۳ tallennettu tﺣ۳ﺣ۳llﺣ۳, muistaa, tﺣ۳mﺣ۳ on paikassa 1, 2, 3, 4, 731 00:32:23,060 --> 00:32:24,655 tﺣ۳mﺣ۳ on mitﺣ۳ tﺣ۳llﺣ۳ hetkellﺣ۳ n. 732 00:32:24,655 --> 00:32:29,220 Joten jos linjalla 16, sanon anna minulle toinen muuttuja nimeltﺣ۳ t ja tallentaa 733 00:32:29,220 --> 00:32:33,590 klo arvon s, mitﺣ۳ saa sﺣ۳ilyttﺣ۳ﺣ۳ tﺣ۳ﺣ۳llﺣ۳ ei ﺣ۳iti 734 00:32:33,590 --> 00:32:35,480 vaan vain numero 1. 735 00:32:35,480 --> 00:32:38,520 >> Joten jos katsomme eteenpﺣ۳in tﺣ۳ssﺣ۳ ohjelmassa nyt, mitﺣ۳ tulee tapahtumaan? 736 00:32:38,520 --> 00:32:40,690 Niin huomaa, ettﺣ۳ on olemassa tﺣ۳mﺣ۳ toiminto saatat 737 00:32:40,690 --> 00:32:44,410 ovat kﺣ۳yttﺣ۳neet tﺣ۳tﺣ۳ jonkin aikaa sitten Caesar, tai Vigenere, tai ehkﺣ۳ ei ollenkaan. 738 00:32:44,410 --> 00:32:48,170 Vﺣ۳itﺣ۳n minun printf, olen menossa hyﺣﭘdyntﺣ۳ﺣ۳ kopion t. 739 00:32:48,170 --> 00:32:51,616 Ensimmﺣ۳inen rivi 19, nopea jﺣ۳rki tarkista, strlen tarkastukset pituus t. 740 00:32:51,616 --> 00:32:53,740 Koska en halua yrittﺣ۳ﺣ۳ hyﺣﭘdyntﺣ۳ﺣ۳ jotain 741 00:32:53,740 --> 00:32:55,104 jos ei ole merkkijono siellﺣ۳. 742 00:32:55,104 --> 00:32:57,520 Jos kﺣ۳yttﺣ۳jﺣ۳ painaa Enter, ei ole mitﺣ۳ﺣ۳n hyﺣﭘdyntﺣ۳ﺣ۳. 743 00:32:57,520 --> 00:33:01,100 Joten en halua tehdﺣ۳ linja 21. 744 00:33:01,100 --> 00:33:05,758 Joten linja 21 capitalizing joka kirjeen, ilmeisesti, t? 745 00:33:05,758 --> 00:33:06,514 >> Yleisﺣﭘ: m? 746 00:33:06,514 --> 00:33:08,722 DAVID J. MALAN: Se nﺣ۳yttﺣ۳ﺣ۳ kuten se on kopiointi kumpi? 747 00:33:08,722 --> 00:33:09,486 Yleisﺣﭘ: m. 748 00:33:09,486 --> 00:33:10,450 DAVID J. MALAN: Tuota, m. 749 00:33:10,450 --> 00:33:12,685 OK, joten ensimmﺣ۳inen m, koska ilmoitus, ettﺣ۳ olen 750 00:33:12,685 --> 00:33:14,935 ohimennen toupper, joka jos et ole koskaan nﺣ۳hnyt sitﺣ۳ se on 751 00:33:14,935 --> 00:33:16,980 vain toiminto hyﺣﭘdyntﺣ۳mﺣ۳ﺣ۳n sen panos. 752 00:33:16,980 --> 00:33:20,240 t kiinnike nolla tarkoittaa antaa minulle nolla luonnetta t. 753 00:33:20,240 --> 00:33:22,550 Ja niin miten tﺣ۳mﺣ۳ kuva muutos, olla selvﺣ۳? 754 00:33:22,550 --> 00:33:25,490 755 00:33:25,490 --> 00:33:29,160 Mitﺣ۳ pitﺣ۳ﺣ۳ saada kirjoitettu uudelleen tai muuttaa suhteen s ja t ja ﺣ۳iti 756 00:33:29,160 --> 00:33:30,097 kenoviiva nolla. 757 00:33:30,097 --> 00:33:31,470 >> Yleisﺣﭘ: [ﺣ۳ﺣ۳netﺣﭘn] 758 00:33:31,470 --> 00:33:34,030 >> DAVID J. MALAN: Joo, joten tﺣ۳mﺣ۳ yksi tﺣ۳ﺣ۳llﺣ۳ yksinkertaisesti 759 00:33:34,030 --> 00:33:40,860 tarvitsee saada muuttunut to-- korjata this-- pitﺣ۳ﺣ۳ saada muuttunut pﺣ۳ﺣ۳oman m. 760 00:33:40,860 --> 00:33:44,330 Mutta nyt, katso myﺣﭘhemmin ohjelma, jos olen tulostaa 761 00:33:44,330 --> 00:33:49,800 s ja t kuin siivoan tﺣ۳ﺣ۳llﺣ۳, katsella mitﺣ۳ tapahtuu tulostaa s ja t. 762 00:33:49,800 --> 00:33:54,310 Niin tehdﺣ۳ kopio-0, ./copy-0. 763 00:33:54,310 --> 00:33:57,140 Anna minun mennﺣ۳ eteenpﺣ۳in ja kirjoita vuonna ﺣ۳iti on pienillﺣ۳. 764 00:33:57,140 --> 00:34:00,140 Huomaa, sekﺣ۳ alkuperﺣ۳isessﺣ۳ kopio on aktivoitu. 765 00:34:00,140 --> 00:34:00,850 Miksi? 766 00:34:00,850 --> 00:34:04,431 Hyvin, s ja t ovat molemmat osoittavat, jos haluatte, sama murikka muistia. 767 00:34:04,431 --> 00:34:06,930 Ja rehellisesti, tﺣ۳mﺣ۳ on tulossa todella uninteresting-- se 768 00:34:06,930 --> 00:34:09,150 ettﺣ۳ kﺣ۳ytﺣ۳mme osoite nolla tﺣ۳ﺣ۳llﺣ۳. 769 00:34:09,150 --> 00:34:11,719 Tarkoitan, en todellakaan vﺣ۳litﺣ۳ jossa tavaraa on muistissa. 770 00:34:11,719 --> 00:34:13,550 Anteeksi pyyhkimﺣ۳llﺣ۳ hieman liikaa. 771 00:34:13,550 --> 00:34:15,674 Mutta en oikeastaan ﻗ€‹ﻗ€‹vﺣ۳litﺣ۳ jossa asiat ovat muistissa. 772 00:34:15,674 --> 00:34:18,510 Ja niin, todellakin mitﺣ۳ ohjelmoijat taipumus ajatella 773 00:34:18,510 --> 00:34:21,080 on, ettﺣ۳ kun puhut osoitteen, tai osoitin, 774 00:34:21,080 --> 00:34:22,679 joka vﺣ۳littﺣ۳ﺣ۳ missﺣ۳ se on muistissa. 775 00:34:22,679 --> 00:34:24,989 En vﺣ۳litﺣ۳, jos se on tavu yksi tai miljardi. 776 00:34:24,989 --> 00:34:27,920 Minﺣ۳ vain vﺣ۳litﺣ۳, ettﺣ۳ tﺣ۳mﺣ۳ muuttuja on tehokkaasti 777 00:34:27,920 --> 00:34:29,620 osoittaen ettﺣ۳ murikka muistia. 778 00:34:29,620 --> 00:34:33,350 Ja niin, vastedes, pikemminkin kuin saivarrella yli mielivaltaisen muistin osoitteet, katsotaanpa 779 00:34:33,350 --> 00:34:36,710 vain alkaa tehdﺣ۳ osoittimia osoittimia, kuten nuolet. 780 00:34:36,710 --> 00:34:39,340 Joten mitﺣ۳ s ja t todella ovat, Tﺣ۳mﺣ۳n ohjelman mukaisesti, 781 00:34:39,340 --> 00:34:42,130 koska miten Loin t, se on vain kaksi erillistﺣ۳ muuttujaa 782 00:34:42,130 --> 00:34:43,840 osoittaen samalla murikka muistia. 783 00:34:43,840 --> 00:34:45,215 Ja emme vﺣ۳litﺣ۳, missﺣ۳ ne ovat. 784 00:34:45,215 --> 00:34:47,130 Joten voimme abstrakti pois, ettﺣ۳ yksityiskohtia. 785 00:34:47,130 --> 00:34:48,780 >> Joten miten voin korjata tﺣ۳mﺣ۳n? 786 00:34:48,780 --> 00:34:54,120 Jos haluan kirjoittaa version kopio ohjelma, joka todella kappaletta merkkijono 787 00:34:54,120 --> 00:34:56,840 ja aktivoi vain kopio, vain intuitiivisesti, 788 00:34:56,840 --> 00:34:59,766 mitﺣ۳ tﺣ۳ytyy olla ainesosa meidﺣ۳n ratkaisu? 789 00:34:59,766 --> 00:35:00,640 Yleisﺣﭘ: [ﺣ۳ﺣ۳netﺣﭘn] 790 00:35:00,640 --> 00:35:01,420 DAVID J. MALAN: Tarvitsemme mitﺣ۳? 791 00:35:01,420 --> 00:35:01,820 Yleisﺣﭘ: murikka muistia. 792 00:35:01,820 --> 00:35:03,280 DAVID J. MALAN: Tarvitsemme toinen kimpale muistia, eikﺣﭘ? 793 00:35:03,280 --> 00:35:05,360 Emme tiedﺣ۳, miten tehdﺣ۳ sitﺣ۳ vielﺣ۳, vﺣ۳lttﺣ۳mﺣ۳ttﺣ۳. 794 00:35:05,360 --> 00:35:11,330 Mutta olen sellainen tﺣ۳ytyy tﺣ۳mﺣ۳n tapahtua niin ettﺣ۳ alkuperﺣ۳inen ﺣ۳iti pienin kirjaimin 795 00:35:11,330 --> 00:35:14,170 pﺣ۳ﺣ۳tyy ettﺣ۳ ylimﺣ۳ﺣ۳rﺣ۳inen murikka muistia. 796 00:35:14,170 --> 00:35:19,770 Ja sitten kun muutan kopio, minﺣ۳ eivﺣ۳t halua muuttaa tﺣ۳mﺣ۳ kopio tﺣ۳ﺣ۳llﺣ۳. 797 00:35:19,770 --> 00:35:26,020 Olen sen sijaan haluat muuttaa vain tﺣ۳mﺣ۳ kopio niin ettﺣ۳ alkuperﺣ۳inen on ennallaan. 798 00:35:26,020 --> 00:35:27,980 >> Niin, Katsotaanpa, miten voisimme tehdﺣ۳ tﺣ۳mﺣ۳n. 799 00:35:27,980 --> 00:35:31,800 In copy-1, joka on jo viety kommentti, 800 00:35:31,800 --> 00:35:33,250 mutta ei kommentoi verkossa. 801 00:35:33,250 --> 00:35:36,710 Me sen sijaan tehdﺣ۳ following-- nﺣ۳mﺣ۳ linjat ovat samat, saat minut merkkijono 802 00:35:36,710 --> 00:35:38,340 ja kutsuvat sitﺣ۳ s. 803 00:35:38,340 --> 00:35:43,500 Mutta nyt Katsotaanpa yksi kaikkein monimutkainen mutta viimeinen monimutkaisuus 804 00:35:43,500 --> 00:35:47,340 jonkin aikaa, linja 16 tekee juuri tﺣ۳mﺣ۳n. 805 00:35:47,340 --> 00:35:49,400 Joten jos mukava kanssa kuva me vain drew-- 806 00:35:49,400 --> 00:35:51,790 anna minulle uusi kimpale muistia, kopioida kaiken siihen, 807 00:35:51,790 --> 00:35:53,730 Katsotaanpa, miten voimme kﺣ۳ﺣ۳ntﺣ۳ﺣ۳, ettﺣ۳ koodin. 808 00:35:53,730 --> 00:35:59,400 >> Joten linja 16, vasemmalla puolella, char * t antaa minulle tﺣ۳mﺣ۳ jos tﺣ۳nne. 809 00:35:59,400 --> 00:36:00,230 Siinﺣ۳ kaikki se tekee. 810 00:36:00,230 --> 00:36:03,240 Oikealla puolella, m Alloc, tai malloc, 811 00:36:03,240 --> 00:36:06,480 on muistin jakamista, Super fancy, arvoituksellinen tapa vain sanoa 812 00:36:06,480 --> 00:36:07,640 antaa minulle palan muistia. 813 00:36:07,640 --> 00:36:09,290 Kuinka paljon muistia tarvitaan? 814 00:36:09,290 --> 00:36:10,910 No, on tavallaan iso ilme. 815 00:36:10,910 --> 00:36:12,570 Mutta katsotaanpa, mitﺣ۳ tﺣ۳ssﺣ۳ sanotaan. 816 00:36:12,570 --> 00:36:15,940 Joten tﺣ۳mﺣ۳ tietenkin on antaa minulle merkkijonon pituus n. 817 00:36:15,940 --> 00:36:19,094 Niin, ﺣ۳iti olisi mitﺣ۳? 818 00:36:19,094 --> 00:36:21,010 Joten vain kolme, eikﺣﭘ? ﺣ۳iti on kolme merkkiﺣ۳. 819 00:36:21,010 --> 00:36:22,830 Sinun ei lasketa kenoviiva nollaan, kun 820 00:36:22,830 --> 00:36:25,960 puhua pituus merkkijono on todella ihmisen nﺣ۳kyvissﺣ۳ kirjaimet. 821 00:36:25,960 --> 00:36:28,020 Niin ﺣ۳iti, joten tﺣ۳mﺣ۳ antaa minulle 3. 822 00:36:28,020 --> 00:36:31,170 Mutta hetkinen, olen nyt lisﺣ۳ﺣ۳mﺣ۳llﺣ۳ 1. 823 00:36:31,170 --> 00:36:34,861 Miksi todella haluavat jakaa 4 tavua eikﺣ۳ vain 3? 824 00:36:34,861 --> 00:36:35,360 Joo? 825 00:36:35,360 --> 00:36:36,910 >> Yleisﺣﭘ: Sentinel arvo? 826 00:36:36,910 --> 00:36:38,951 >> DAVID J. MALAN: Aivan, ettﺣ۳ Sentinel arvo. 827 00:36:38,951 --> 00:36:40,840 Sillﺣ۳ kenoviiva nolla, Tarvitsen 4 tavua yhteensﺣ۳. 828 00:36:40,840 --> 00:36:42,870 Joten minun on pituus merkkijonon plus 1. 829 00:36:42,870 --> 00:36:45,400 Ja sitten vain hyvﺣ۳ measure-- vaikka tﺣ۳tﺣ۳ jﺣ۳rjestelmﺣ۳ﺣ۳, 830 00:36:45,400 --> 00:36:49,390 se on aina olemaan 1-- sanon moninkertaistaa tﺣ۳tﺣ۳ koko char. 831 00:36:49,390 --> 00:36:51,552 Osoittautuu sizeof on operaattori C ettﺣ۳ 832 00:36:51,552 --> 00:36:53,260 vain kertoo tavujen, joka on 833 00:36:53,260 --> 00:36:54,700 vaaditaan tiettyjen tietojen tyyppi. 834 00:36:54,700 --> 00:36:57,740 Se ei toimi paneelit, tyypillisesti, joskus se tekee. 835 00:36:57,740 --> 00:36:59,210 Mutta yleisessﺣ۳ tapauksessa ei. 836 00:36:59,210 --> 00:37:02,330 Mutta se kertoo minulle, kuinka monta tavua nieriﺣ۳ on, joka osoittautuu on aina 1. 837 00:37:02,330 --> 00:37:04,080 Joten tﺣ۳mﺣ۳ on kuin kertomalla 1. 838 00:37:04,080 --> 00:37:05,900 >> Joten Super arvoituksellinen etsivﺣ۳t riviﺣ۳ koodia. 839 00:37:05,900 --> 00:37:09,320 Mutta kaikki se on antanut minulle kimpale muistia. 840 00:37:09,320 --> 00:37:13,590 Mutta se nﺣ۳yttﺣ۳ﺣ۳ olevan kopiointi mitﺣ۳ﺣ۳n tuohon muistiin? 841 00:37:13,590 --> 00:37:14,560 Ei vielﺣ۳. 842 00:37:14,560 --> 00:37:22,040 Ja niin mitﺣ۳ voin verkossa 22, ja 23, 24, 25, no, minﺣ۳ yksinkertaisesti tehdﺣ۳ tﺣ۳mﺣ۳n. 843 00:37:22,040 --> 00:37:23,760 Ja tﺣ۳mﺣ۳ on tavallaan old school kamaa nyt. 844 00:37:23,760 --> 00:37:26,010 Tﺣ۳mﺣ۳ on kuin PSET 2, jossa olet vain liikkuvat asiat 845 00:37:26,010 --> 00:37:28,620 noin muistiin tai pikemminkin jouset. 846 00:37:28,620 --> 00:37:31,920 >> Joten olen iteroimalla 0 merkkijonon pituus n. 847 00:37:31,920 --> 00:37:37,820 Ja olen kopiointi i: nnen merkin S osaksi i: nnen hahmo t. 848 00:37:37,820 --> 00:37:41,820 Ja koska minﺣ۳, ohjelmoija, tehty Muista jakaa tﺣ۳smﺣ۳lleen yhtﺣ۳ monta tavua 849 00:37:41,820 --> 00:37:44,600 kuten minﺣ۳ tarvitsen, se on tﺣ۳ydellinen yksi-yhteen suhde. 850 00:37:44,600 --> 00:37:47,060 Ja voin kopioida ﺣ۳iti vuonna pieniksi uuteen yhteen. 851 00:37:47,060 --> 00:37:50,170 Ja sitten lopuksi, teen tﺣ۳tﺣ۳ linjaa. 852 00:37:50,170 --> 00:37:54,637 Ja niin vaikutus on vain hyﺣﭘdyntﺣ۳ﺣ۳ t tﺣ۳ﺣ۳llﺣ۳. 853 00:37:54,637 --> 00:37:56,470 Niin paljon imeﺣ۳, mutta jos vain harkita 854 00:37:56,470 --> 00:37:58,220 mitﺣ۳ todella tapahtuu on alla huppu 855 00:37:58,220 --> 00:38:00,880 on vain liikkuvat nﺣ۳mﺣ۳ tavua noin, kaikki, 856 00:38:00,880 --> 00:38:06,617 tarvitaan ratkaista tﺣ۳mﺣ۳ ongelma on vain antaa meille tﺣ۳mﺣ۳n murikka muistia. 857 00:38:06,617 --> 00:38:08,450 Nyt riski ylivoimainen, haluan nﺣ۳yttﺣ۳ﺣ۳ 858 00:38:08,450 --> 00:38:13,200 Toinen esimerkki, joka on lﺣ۳hes identtinen, lukuun ottamatta tﺣ۳mﺣ۳ 859 00:38:13,200 --> 00:38:14,350 koodiriviﺣ۳. 860 00:38:14,350 --> 00:38:18,870 Joten tﺣ۳mﺣ۳ on hakkeri versio tﺣ۳mﺣ۳n ohjelman, jos haluatte. 861 00:38:18,870 --> 00:38:21,050 Mutta Haluan vain polttaa se mitﺣ۳ tapahtuu. 862 00:38:21,050 --> 00:38:28,920 Rivi 24 aiemmin t kiinnike i saa s kiinnike i. 863 00:38:28,920 --> 00:38:33,370 Nyt olen muuttuvat tﺣ۳mﺣ۳n paljon arvoituksellinen tﺣ۳hti t 864 00:38:33,370 --> 00:38:36,280 plus 1 vastaa tﺣ۳hti s plus 1. 865 00:38:36,280 --> 00:38:38,702 >> Joten mitﺣ۳ tapahtuu ja miksi meillﺣ۳ on tﺣ۳hti merkki? 866 00:38:38,702 --> 00:38:41,410 Olemme nﺣ۳hneet tﺣ۳hti ennen, ja sitﺣ۳ kﺣ۳ytetﺣ۳ﺣ۳n eri tavalla tﺣ۳ﺣ۳llﺣ۳. 867 00:38:41,410 --> 00:38:45,490 Olemme aiemmin nﺣ۳imme char *, nyt nﺣ۳en tﺣ۳hti alussa, ja se on OK. 868 00:38:45,490 --> 00:38:48,190 Koska se osoittautuu meillﺣ۳ voi sellaista pﺣ۳ﺣ۳tellﺣ۳ vain 869 00:38:48,190 --> 00:38:50,280 Nﺣ۳istﺣ۳ ensimmﺣ۳inen periaatteita mitﺣ۳ tapahtuu. 870 00:38:50,280 --> 00:38:53,860 Joten vain tehdﺣ۳ selvﺣ۳ksi, mikﺣ۳ on s? 871 00:38:53,860 --> 00:38:55,052 Viime viikolla se oli merkkijono. 872 00:38:55,052 --> 00:38:56,260 Se ei riitﺣ۳ enﺣ۳ﺣ۳. 873 00:38:56,260 --> 00:38:57,690 Mikﺣ۳ on s, erityisesti? 874 00:38:57,690 --> 00:38:58,590 >> Yleisﺣﭘ: [ﺣ۳ﺣ۳netﺣﭘn] 875 00:38:58,590 --> 00:38:59,881 >> DAVID J. MALAN: Se on osoitin. 876 00:38:59,881 --> 00:39:02,610 Se on osoite Ensimmﺣ۳inen merkki me kirjoitetaan. 877 00:39:02,610 --> 00:39:04,780 OK, mikﺣ۳ on t? 878 00:39:04,780 --> 00:39:05,660 >> Yleisﺣﭘ: [ﺣ۳ﺣ۳netﺣﭘn] 879 00:39:05,660 --> 00:39:07,950 >> DAVID J. MALAN: osoite ensimmﺣ۳isen tavun 880 00:39:07,950 --> 00:39:10,490 t, ettﺣ۳ murikka muistia uudelleen. 881 00:39:10,490 --> 00:39:14,720 Joten kﺣ۳y ilmi, ettﺣ۳ kun me kerrata 0 jopa merkkijono 882 00:39:14,720 --> 00:39:17,424 length-- ensinnﺣ۳kin, i alkaa klo 0, koska 883 00:39:17,424 --> 00:39:18,840 Tﺣ۳mﺣ۳n vanhan koulun silmukka asia. 884 00:39:18,840 --> 00:39:22,400 Joten yksinkertaisuuden, katsotaanpa olettaa, ettﺣ۳ ensimmﺣ۳inen rivi koodia 885 00:39:22,400 --> 00:39:23,760 on oikeastaan ﻗ€‹ﻗ€‹vain tﺣ۳mﺣ۳, oikea. 886 00:39:23,760 --> 00:39:26,080 Jos i on nolla, lisﺣ۳ﺣ۳mﺣ۳llﺣ۳ nolla jotain oletettavasti 887 00:39:26,080 --> 00:39:27,540 ei tule vaikuttaa. 888 00:39:27,540 --> 00:39:28,560 >> Joten mitﺣ۳ on tﺣ۳mﺣ۳ sanonta? 889 00:39:28,560 --> 00:39:31,600 On kﺣ۳ynyt ilmi, ettﺣ۳ tﺣ۳hti toimija tﺣ۳ssﺣ۳ yhteydessﺣ۳ 890 00:39:31,600 --> 00:39:33,700 on dereference operaattori, joka on vain 891 00:39:33,700 --> 00:39:37,530 hieno tapa sanoa mennﺣ۳ seuraavaan osoitteeseen. 892 00:39:37,530 --> 00:39:42,080 Joten jos s on osoite ensimmﺣ۳isen merkki tﺣ۳ssﺣ۳ kimpale muistia, 893 00:39:42,080 --> 00:39:43,630 * S tarkoittaa sinne. 894 00:39:43,630 --> 00:39:45,630 Ja koska olemme laadittu kuva tﺣ۳llﺣ۳ tavalla, 895 00:39:45,630 --> 00:39:47,430 voit hyvﺣ۳ksyﺣ۳ Seuraavat henkinen malli. 896 00:39:47,430 --> 00:39:51,030 Jos tﺣ۳mﺣ۳ on s, ja sanot * s, * s ikﺣ۳ﺣ۳n kuin liukumﺣ۳et ja tikkaat, 897 00:39:51,030 --> 00:39:54,540 jos muistat peli lapsuudesta, on kuin seurata, ettﺣ۳ nuoli ja mennﺣ۳ 898 00:39:54,540 --> 00:39:55,570 osoitteeseen. 899 00:39:55,570 --> 00:39:57,080 >> * T on sama asia. 900 00:39:57,080 --> 00:39:59,855 Niin alkaa tﺣ۳ﺣ۳llﺣ۳, siirry sen kimpale. 901 00:39:59,855 --> 00:40:03,350 En voi vain hyﺣﭘdyntﺣ۳ﺣ۳ tﺣ۳mﺣ۳n nﺣ۳ytﺣﭘn nﺣ۳in. 902 00:40:03,350 --> 00:40:05,560 * T tarkoittaa mennﺣ۳ tﺣ۳nne. 903 00:40:05,560 --> 00:40:08,830 Ja sitten, silmukka on vain sanomalla siirtﺣ۳ﺣ۳ tﺣ۳tﺣ۳ merkkiﺣ۳ tﺣ۳ﺣ۳llﺣ۳, 904 00:40:08,830 --> 00:40:11,330 siirtﺣ۳ﺣ۳ tﺣ۳tﺣ۳ merkkiﺣ۳ tﺣ۳ﺣ۳llﺣ۳, siirtﺣ۳ﺣ۳ tﺣ۳mﺣ۳n merkin tﺣ۳ssﺣ۳. 905 00:40:11,330 --> 00:40:12,890 Mutta miten voin tehdﺣ۳, ettﺣ۳ incrementation? 906 00:40:12,890 --> 00:40:15,430 Minun tﺣ۳ytyy perua, mitﺣ۳ juuri poistettu. 907 00:40:15,430 --> 00:40:18,140 Tﺣ۳mﺣ۳ on mitﺣ۳ yleensﺣ۳ kutsutaan osoitin aritmeettinen, joka 908 00:40:18,140 --> 00:40:20,040 tarkoittaa matematiikka osoitteita. 909 00:40:20,040 --> 00:40:22,460 >> Jos tﺣ۳ssﺣ۳ silmukka, Jatkan monesko I, 910 00:40:22,460 --> 00:40:26,880 ja s on osoite ja t on osoite, jos vain pitﺣ۳ﺣ۳ lisﺣ۳tﺣ۳ 1, 911 00:40:26,880 --> 00:40:31,406 ettﺣ۳ vain sitﺣ۳ jatkaa eteenpﺣ۳in, ja eteenpﺣ۳in, ja eteenpﺣ۳in muistissa. 912 00:40:31,406 --> 00:40:34,030 Se on kuin Oxford Street, katu ettﺣ۳ CS rakennus sijaitsee. 913 00:40:34,030 --> 00:40:36,490 CS rakennukset on 33 Oxford Street. 914 00:40:36,490 --> 00:40:39,870 Joten jos olit tehdﺣ۳ 33 Oxford Street plus 1, 915 00:40:39,870 --> 00:40:42,870 joka vie sinut 34 Oxford Katu, sitten 35 Oxford Street, 916 00:40:42,870 --> 00:40:46,380 sitten 36 Oxford Street, riippumatta nﺣ۳iden rakennukset todellisuudessa ovat - jos ne ovat olemassa. 917 00:40:46,380 --> 00:40:50,540 Ja niin, ettﺣ۳ kaikki teemme tﺣ۳ﺣ۳llﺣ۳ osoitin aritmeettinen. 918 00:40:50,540 --> 00:40:53,820 >> Joten se on erittﺣ۳in mystistﺣ۳ tavalla ilmaista itseﺣ۳mme. 919 00:40:53,820 --> 00:40:56,160 Mutta kaikki, mitﺣ۳ tapahtuu alla huppu 920 00:40:56,160 --> 00:40:59,330 on vain seuraava nﺣ۳istﺣ۳ osoitteista, kuten seuraava kartta, jos haluatte, 921 00:40:59,330 --> 00:41:02,692 tai seuraavat nuolia kuten olemme piirretﺣ۳ﺣ۳n ruudulle. 922 00:41:02,692 --> 00:41:04,910 OK, paljon sulattaa. 923 00:41:04,910 --> 00:41:10,410 Kysymyksiin on syntaksi, kﺣ۳sitteitﺣ۳, osoittimia, malloc, tai vastaavat. 924 00:41:10,410 --> 00:41:11,480 Joo, tﺣ۳ﺣ۳llﺣ۳ ensin. 925 00:41:11,480 --> 00:41:13,755 >> Yleisﺣﭘ: Missﺣ۳ ettﺣ۳ sanoo * t vastaa toupper * t, 926 00:41:13,755 --> 00:41:15,575 on, ettﺣ۳ aikoo hyﺣﭘdyntﺣ۳ﺣ۳ kaikki kirjaimet tai just-- 927 00:41:15,575 --> 00:41:17,283 >> DAVID J. MALAN: Ah, todella hyvﺣ۳ kysymys. 928 00:41:17,283 --> 00:41:19,805 Joten tﺣ۳tﺣ۳ linjaa tﺣ۳ﺣ۳llﺣ۳, 31, tﺣ۳mﺣ۳ tulee hyﺣﭘtymﺣ۳ﺣ۳n 929 00:41:19,805 --> 00:41:21,430 ensimmﺣ۳inen kirjain tai kaikki kirjaimet. 930 00:41:21,430 --> 00:41:23,460 Joten vastata tﺣ۳hﺣ۳n menemﺣ۳llﺣ۳ takaisin ensimmﺣ۳iset periaatteet. 931 00:41:23,460 --> 00:41:26,168 Ja ensimmﺣ۳iset periaatteet tﺣ۳ssﺣ۳ tarkoitan vain mennﺣ۳ perusmﺣ۳ﺣ۳ritelmﺣ۳t 932 00:41:26,168 --> 00:41:27,000 ja mitﺣ۳ mukana. 933 00:41:27,000 --> 00:41:29,770 Joten toupper on funktio ettﺣ۳ aktivoi merkkiﺣ۳. 934 00:41:29,770 --> 00:41:30,530 Siinﺣ۳ kaikki. 935 00:41:30,530 --> 00:41:36,740 * T tarkoittaa mennﺣ۳ first-- Siirry osoitteeseen t. 936 00:41:36,740 --> 00:41:40,350 Joten, kuvassa, jos tﺣ۳mﺣ۳ on murikka muistia me kohdennetaan malloc, 937 00:41:40,350 --> 00:41:43,310 ja tﺣ۳mﺣ۳ on t, * t tarkoittaa tﺣ۳ﺣ۳ltﺣ۳. 938 00:41:43,310 --> 00:41:46,710 >> Samalla olet ohimennen ettﺣ۳ arvo, pieniﺣ۳ m 939 00:41:46,710 --> 00:41:50,040 ettﺣ۳ toupper, saat takaisin pﺣ۳ﺣ۳oma M, missﺣ۳ olet laittoi pallon? 940 00:41:50,040 --> 00:41:52,410 Olet laskemisesta sitﺣ۳, ettﺣ۳ samassa paikassa. 941 00:41:52,410 --> 00:41:55,540 Ja niin, ettﺣ۳ logiikka nﺣ۳iden perusmﺣ۳ﺣ۳ritelmiﺣ۳ se on vain 942 00:41:55,540 --> 00:41:58,792 hyﺣﭘdyntﺣ۳minen ensimmﺣ۳inen kirjain ellet kerrata I tai 943 00:41:58,792 --> 00:42:02,000 silmukan tai while-silmukka, se ei tule tehdﺣ۳ mitﺣ۳ﺣ۳n enemmﺣ۳n kuin kysyt sitﺣ۳. 944 00:42:02,000 --> 00:42:02,583 Hyvﺣ۳ kysymys. 945 00:42:02,583 --> 00:42:03,237 Joo? 946 00:42:03,237 --> 00:42:05,369 >> Yleisﺣﭘ: Miksi kﺣ۳ytﺣ۳t dereference tapa eikﺣ۳ 947 00:42:05,369 --> 00:42:05,979 array? 948 00:42:05,979 --> 00:42:07,395 >> DAVID J. MALAN: Ah, hyvﺣ۳ kysymys. 949 00:42:07,395 --> 00:42:10,672 Miksi kﺣ۳ytﺣ۳t dereference menetelmﺣ۳ sijaan array menetelmﺣ۳? 950 00:42:10,672 --> 00:42:12,130 Mitﺣ۳ﺣ۳n erityistﺣ۳ syytﺣ۳, olla rehellinen. 951 00:42:12,130 --> 00:42:15,290 Ja, itse asiassa, tﺣ۳mﺣ۳n Tﺣ۳llainen esimerkiksi oikea, 952 00:42:15,290 --> 00:42:17,556 Olen vain vﺣ۳ittﺣ۳en tehdﺣ۳ ohjelma monimutkaisempi, 953 00:42:17,556 --> 00:42:19,680 lisﺣ۳ﺣ۳ silmﺣ۳t lasitus yli, ihmiset ovat tarkkailun 954 00:42:19,680 --> 00:42:22,830 koska tﺣ۳mﺣ۳ nﺣ۳yttﺣ۳ﺣ۳ erittﺣ۳in mystistﺣ۳, mutta vaikka se tekee saman asian. 955 00:42:22,830 --> 00:42:26,695 Ja niin, rehellisesti, tﺣ۳mﺣ۳ on tarpeettoman visuaalisesti monimutkainen ratkaisu 956 00:42:26,695 --> 00:42:27,320 ongelmaan. 957 00:42:27,320 --> 00:42:29,580 >> Se on edelleen hyvﺣ۳ suunnittelu, viidessﺣ۳ viidestﺣ۳ suunnittelun, 958 00:42:29,580 --> 00:42:33,140 onko se on kiinnike merkintﺣ۳ tai osoitin merkintﺣ۳. 959 00:42:33,140 --> 00:42:36,299 But-- erityisesti uusista myﺣﭘhemmin kurssin PSET 5 960 00:42:36,299 --> 00:42:39,340 kun toteutamme ettﺣ۳ sanakirjaa Olen maininnut pari times-- 961 00:42:39,340 --> 00:42:42,300 me todella kiinnostaa alhainen muistiosoitteita 962 00:42:42,300 --> 00:42:44,140 ettﺣ۳ me todella ymmﺣ۳rtﺣ۳ﺣ۳ mitﺣ۳ on meneillﺣ۳ﺣ۳n. 963 00:42:44,140 --> 00:42:48,300 >> Mutta, nyt, kﺣ۳y ilmi, ettﺣ۳ tﺣ۳mﺣ۳ koodiriviﺣ۳ tﺣ۳ssﺣ۳ hakasulkeet 964 00:42:48,300 --> 00:42:49,900 ei ole edes olemassa. 965 00:42:49,900 --> 00:42:52,230 Ne ovat mitﺣ۳ kutsutaan syntaktisia sokeria, joka 966 00:42:52,230 --> 00:42:58,390 on vain outo viileﺣ۳ tapa sanoa kﺣ۳ﺣ۳ntﺣ۳jﺣ۳ muuntaa hakasuluissa olevan 967 00:42:58,390 --> 00:43:00,420 ettﺣ۳ matemaattinen lauseke. 968 00:43:00,420 --> 00:43:02,660 Joten se on ihmisen yleissopimus pystyﺣ۳ vain kirjoittaa 969 00:43:02,660 --> 00:43:04,220 nﺣ۳mﺣ۳ erittﺣ۳in kﺣ۳yttﺣ۳jﺣ۳ystﺣ۳vﺣ۳llinen suluissa. 970 00:43:04,220 --> 00:43:06,850 Mutta mitﺣ۳ kﺣ۳ﺣ۳ntﺣ۳jﺣ۳, clang, on todella tekee tahansa 971 00:43:06,850 --> 00:43:10,970 voit kirjoittaa mitﺣ۳ korostetaan linja 24, alla huppu se on todella 972 00:43:10,970 --> 00:43:12,330 muuntaa sen tﺣ۳hﺣ۳n. 973 00:43:12,330 --> 00:43:16,200 Se on vain enemmﺣ۳n miellyttﺣ۳vﺣ۳ﺣ۳ kuin ihmisen lukea ja kirjoittaa koodia rivi 24. 974 00:43:16,200 --> 00:43:18,530 Mutta lopulta ne apupyﺣﭘrﺣ۳t liian irtoa 975 00:43:18,530 --> 00:43:21,780 kun oman mukavuuden vahvistuu. 976 00:43:21,780 --> 00:43:27,240 >> Selvﺣ۳, joten muistuttaa sitten, ettﺣ۳ tﺣ۳mﺣ۳ oli tavallaan suurin ongelma 977 00:43:27,240 --> 00:43:27,807 tﺣﭘrmﺣ۳simme. 978 00:43:27,807 --> 00:43:30,640 Ja sitﺣ۳hﺣ۳n herﺣ۳tti tﺣ۳mﺣ۳ koko hemmetin keskustelua viitteitﺣ۳, 979 00:43:30,640 --> 00:43:32,340 ja osoitteet, ja kopiointi asioita. 980 00:43:32,340 --> 00:43:35,410 Se oli, koska me kompastui tﺣ۳mﺣ۳ tyhmﺣ۳, tyhmﺣ۳ kysymys, jolloin 981 00:43:35,410 --> 00:43:38,830 Olen toteuttanut logically-- Lauren tﺣ۳ﺣ۳llﺣ۳ demo ja appelsiinimehu 982 00:43:38,830 --> 00:43:43,770 vuonna milk-- tﺣ۳ydellisesti algoritmisesti oikea toiminto 983 00:43:43,770 --> 00:43:47,010 ja vaihtamalla kaksi muuttujaa " arvot, mutta hemmetin asia 984 00:43:47,010 --> 00:43:50,550 ei ollut pysyviﺣ۳, tai pysyvﺣ۳, vaikutus minun koodi. 985 00:43:50,550 --> 00:43:51,820 >> Ja miksi se oli? 986 00:43:51,820 --> 00:43:54,650 Lyhyesti sanottuna, miksi tﺣ۳mﺣ۳ tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpano swap 987 00:43:54,650 --> 00:43:58,740 loogisesti oikea, mutta sillﺣ۳ ei ole vaikutusta muuttujia, jotka vﺣ۳litetﺣ۳ﺣ۳n se, 988 00:43:58,740 --> 00:44:01,119 kuten x ja y pﺣ۳ﺣ۳asiallisten? 989 00:44:01,119 --> 00:44:02,410 Mikﺣ۳ oli ydin kysymys? 990 00:44:02,410 --> 00:44:02,909 Joo? 991 00:44:02,909 --> 00:44:05,532 Yleisﺣﭘ: Koska vaihteleva tehty kopiot muuttuja pass 992 00:44:05,532 --> 00:44:06,240 Lﺣ۳pitoiminto. 993 00:44:06,240 --> 00:44:09,060 >> DAVID J. MALAN: Aivan, kun ohitat muuttujia funktio, tai vﺣ۳itteitﺣ۳ 994 00:44:09,060 --> 00:44:11,030 osaksi toiminto, he ohi kopio, joka 995 00:44:11,030 --> 00:44:14,770 tarkoittaa, saat samanlaista nﺣ۳kﺣﭘinen kuvio bittiﺣ۳ sekﺣ۳ x ja y, 996 00:44:14,770 --> 00:44:15,955 kutsutaan tﺣ۳ﺣ۳llﺣ۳ ja b. 997 00:44:15,955 --> 00:44:18,080 Ja voit tehdﺣ۳ mitﺣ۳ﺣ۳n haluat nﺣ۳iden kopiot, 998 00:44:18,080 --> 00:44:20,657 mutta he aikovat ei ole Vaikutus kutsuvan toiminto. 999 00:44:20,657 --> 00:44:22,990 Ja itse asiassa me kiinnitti ettﺣ۳ kuva ruudulla, Recall 1000 00:44:22,990 --> 00:44:25,520 viime kerralla, jolloin jos todella miettiﺣ۳, mitﺣ۳ 1001 00:44:25,520 --> 00:44:28,570 meneillﺣ۳ﺣ۳n alla hood-- jos tﺣ۳mﺣ۳ on tietokoneen muistiin, 1002 00:44:28,570 --> 00:44:31,650 ja tﺣ۳ﺣ۳llﺣ۳ on kimpale muistia kﺣ۳ytetﺣ۳ﺣ۳n pﺣ۳ﺣ۳asiassa 1003 00:44:31,650 --> 00:44:34,020 tﺣ۳mﺣ۳ on kimpale muistia kﺣ۳ytetﺣ۳ﺣ۳n swap, 1004 00:44:34,020 --> 00:44:37,090 ja niin vaikka tﺣ۳rkein on kaksi muuttujaa, x ja y, 1005 00:44:37,090 --> 00:44:41,840 swap saattaa olla samanlainen nﺣ۳kﺣﭘinen arvot, jotka molemmat ovat 1 ja 2, 1006 00:44:41,840 --> 00:44:44,520 mutta ne ovat tﺣ۳ysin eri paloina muisti. 1007 00:44:44,520 --> 00:44:46,130 >> Tarvitsemme siis ratkaisu tﺣ۳hﺣ۳n. 1008 00:44:46,130 --> 00:44:51,580 Ja rehellisesti, nﺣ۳yttﺣ۳isi siltﺣ۳, ﻗ€‹ﻗ€‹ettﺣ۳ me nyt on ratkaisu tﺣ۳hﺣ۳n ongelmaan, oikea. 1009 00:44:51,580 --> 00:44:55,760 Jos meillﺣ۳ on nyt mahdollisuus manipuloida asiat Poiketen osoitteiden 1010 00:44:55,760 --> 00:44:59,310 ja, tavallaan liukumﺣ۳et ja tikkaat tyyli, toimi nuolet 1011 00:44:59,310 --> 00:45:02,820 ja mennﺣ۳ minne haluamme muistiin, emmekﺣﭘ voisi 1012 00:45:02,820 --> 00:45:06,220 ratkaista tﺣ۳mﺣ۳n ongelman kulkee pﺣ۳ﺣ۳ssﺣ۳ tﺣ۳rkeimmistﺣ۳ vaihtaa 1013 00:45:06,220 --> 00:45:09,650 ei arvoja haluamme swap, mutta vain intuitiivisesti 1014 00:45:09,650 --> 00:45:11,630 mitﺣ۳ voisimme kulkea vaihtaa sijaan? 1015 00:45:11,630 --> 00:45:12,620 >> [Vﺣ۳liin ﺣ„ﺣ„NTﺣ„] 1016 00:45:12,620 --> 00:45:15,244 >> DAVID J. MALAN: Miksi emme vain siirtﺣ۳ﺣ۳ sen osoitteet, eikﺣﭘ? 1017 00:45:15,244 --> 00:45:17,470 Miksi emme anna swap aarrekartan, jos haluatte, 1018 00:45:17,470 --> 00:45:20,950 joka johtaa sen todelliset arvot x ja y. 1019 00:45:20,950 --> 00:45:24,340 Katsotaanpa swap, todella muuttaa Original bittiﺣ۳ sijasta 1020 00:45:24,340 --> 00:45:26,797 vain ohimennen kopioita bittiﺣ۳. 1021 00:45:26,797 --> 00:45:29,130 Ja niin, itse asiassa, se on mitﺣ۳ olemaan ratkaisu. 1022 00:45:29,130 --> 00:45:31,899 Tﺣ۳mﺣ۳ versio tﺣ۳ssﺣ۳ selvﺣ۳sti huono ja puutteellinen. 1023 00:45:31,899 --> 00:45:35,190 Ja nyt, ensi silmﺣ۳yksellﺣ۳, se vain nﺣ۳yttﺣ۳ﺣ۳ kuin lisﺣ۳simme nippu tﺣ۳htiﺣ۳ satunnaisesti 1024 00:45:35,190 --> 00:45:37,106 ja keskitti sormet ettﺣ۳ se koota. 1025 00:45:37,106 --> 00:45:38,460 Mutta se nyt koota. 1026 00:45:38,460 --> 00:45:40,090 >> Mutta katsotaanpa mitﺣ۳ ne oikein ovat. 1027 00:45:40,090 --> 00:45:43,990 Ja valitettavasti laatijat C olisi voinut valita toisen symbolin 1028 00:45:43,990 --> 00:45:46,380 tehdﺣ۳ tﺣ۳stﺣ۳ hieman selkeﺣ۳mpi, mutta tﺣ۳hti operaattori 1029 00:45:46,380 --> 00:45:48,610 on eri merkitys kahdessa eri yhteydessﺣ۳. 1030 00:45:48,610 --> 00:45:50,890 Ja olemme nﺣ۳hneet molemmat, mutta nyt erottaa. 1031 00:45:50,890 --> 00:45:55,310 >> Joten ylﺣﭘs huipulla siellﺣ۳, kun olen muuttanut ja b 1032 00:45:55,310 --> 00:46:00,470 olemasta int n huono versio int tﺣ۳htiﺣ۳, ja b, 1033 00:46:00,470 --> 00:46:01,740 aikaisemmin, oli kokonaislukuja. 1034 00:46:01,740 --> 00:46:05,752 Mitﺣ۳ ovat a ja b nyt hyvﺣ۳, vihreﺣ۳ versio? 1035 00:46:05,752 --> 00:46:06,900 He osoitteet. 1036 00:46:06,900 --> 00:46:09,610 Osoitteet mitﺣ۳, olla selvﺣ۳? 1037 00:46:09,610 --> 00:46:10,770 Osoitteet kokonaislukujen. 1038 00:46:10,770 --> 00:46:12,520 Niin ettﺣ۳ olen sanomalla int tﺣ۳hti vﺣ۳lineet 1039 00:46:12,520 --> 00:46:15,440 tﺣ۳mﺣ۳ on osoite kokonaisluku, erityisesti. 1040 00:46:15,440 --> 00:46:19,120 >> Joten nyt ilmoituksen riviﺣ۳ koodia, jotain muuta on muuttunut liikaa. 1041 00:46:19,120 --> 00:46:22,770 TMP pysyy samana, koska se on vain vﺣ۳liaikainen kokonaisluku, 1042 00:46:22,770 --> 00:46:24,110 ei muisti taikuutta siellﺣ۳. 1043 00:46:24,110 --> 00:46:26,370 Mutta tarvitsee nyt tﺣ۳hti. 1044 00:46:26,370 --> 00:46:28,560 Ja, itse asiassa, joka muut maininta ja b, 1045 00:46:28,560 --> 00:46:31,780 huomaat, ettﺣ۳ kaikki se muuttuvat punaisesta vihreﺣ۳ksi 1046 00:46:31,780 --> 00:46:34,209 on ettﺣ۳ olen prefixing nﺣ۳mﺣ۳ muuttujat tﺣ۳htien kanssa. 1047 00:46:34,209 --> 00:46:35,750 Koska en halua kopioida ja b. 1048 00:46:35,750 --> 00:46:40,350 Koska jos vain kopioida ja b ja swap ja b, mitﺣ۳ olen todella vaihtokauppa? 1049 00:46:40,350 --> 00:46:43,760 Vain osoitteet, haluan vaihtaa mitﺣ۳ noita osoitteita. 1050 00:46:43,760 --> 00:46:44,860 Haluan mennﺣ۳ sinne. 1051 00:46:44,860 --> 00:46:48,000 Ja niin tﺣ۳hti operaattori sisﺣ۳llﺣ۳ minun toiminto, 1052 00:46:48,000 --> 00:46:51,700 ei sisﺣ۳llﺣ۳ parametriluetteloon tarkoittaa menet osoitteet 1053 00:46:51,700 --> 00:46:54,490 ja todella muuttaa nﺣ۳itﺣ۳ arvoja. 1054 00:46:54,490 --> 00:46:56,500 >> Joten mitﺣ۳ kuva nyt nﺣ۳yttﺣ۳ﺣ۳ sijaan. 1055 00:46:56,500 --> 00:47:03,250 No, jos sen sijaan olen ohimennen in ja B 1 ja 2-- 1056 00:47:03,250 --> 00:47:05,790 Olen itse tﺣ۳ytyy lisﺣ۳tﺣ۳ yksi muu mﺣ۳ﺣ۳ritelmﺣ۳ tﺣ۳ﺣ۳llﺣ۳. 1057 00:47:05,790 --> 00:47:09,030 Joten olettaa, ettﺣ۳ tﺣ۳mﺣ۳ mﺣﭘhkﺣ۳le muistia on paikassa 10. 1058 00:47:09,030 --> 00:47:12,960 >> Tﺣ۳mﺣ۳ on paikka 11, mutta tﺣ۳mﺣ۳ on vﺣ۳hﺣ۳n yksinkertaistamista, 1059 00:47:12,960 --> 00:47:18,900 Minulla on nyt kaksi vaihtoehtoa tehdﺣ۳ vﺣ۳litﺣ۳n X ja y tai voin siirtﺣ۳ﺣ۳ niiden osoitteet? 1060 00:47:18,900 --> 00:47:22,500 Jos kuljen heidﺣ۳n osoitteet nﺣ۳in, minﺣ۳ vain 1061 00:47:22,500 --> 00:47:25,390 nyt tﺣ۳ytyy toteuttaa swap kohti vihreﺣ۳ﺣ۳ koodi 1062 00:47:25,390 --> 00:47:29,080 niin ettﺣ۳ kun se nﺣ۳kee, ja kun se nﺣ۳kee b, se ei vain kopioida ja b 1063 00:47:29,080 --> 00:47:30,540 ja siirrﺣ۳ maito ja appelsiinimehu. 1064 00:47:30,540 --> 00:47:32,664 Maito ja appelsiinimehu metafora nyt hajoaa, 1065 00:47:32,664 --> 00:47:35,060 koska ne ovat kupit nesteen eikﺣ۳ karttoja. 1066 00:47:35,060 --> 00:47:37,750 Meidﺣ۳n sijaan tﺣ۳ytyy mennﺣ۳ kﺣ۳sitellﺣ۳ 10 ja me 1067 00:47:37,750 --> 00:47:42,420 tﺣ۳ytyy mennﺣ۳ kﺣ۳sitellﺣ۳ 11, ja sitten suorittaa ettﺣ۳ vaihtamalla logiikka. 1068 00:47:42,420 --> 00:47:45,580 >> Joten logiikka on sama, mutta Tarvitsemme hieman eri tavalla 1069 00:47:45,580 --> 00:47:47,160 saada yhteys nﺣ۳iden muuttujien. 1070 00:47:47,160 --> 00:47:52,400 Ja niin lopulta, mitﺣ۳ Ohjelma on nﺣ۳yttﺣ۳ﺣ۳ tﺣ۳mﺣ۳. 1071 00:47:52,400 --> 00:47:56,610 Vuonna swap.c kirjaimellisesti kopioitu ja liittﺣ۳nyt vihreﺣ۳ versio. 1072 00:47:56,610 --> 00:47:58,450 Mutta minun tﺣ۳ytyy tehdﺣ۳ yksi muutos. 1073 00:47:58,450 --> 00:48:00,180 Se ei ole riittﺣ۳vﺣ۳ﺣ۳ vain vaihtaa swap. 1074 00:48:00,180 --> 00:48:03,830 Mitﺣ۳ muita koodiriviﺣ۳ minun tﺣ۳ytyy muuttaa? 1075 00:48:03,830 --> 00:48:04,330 Joo? 1076 00:48:04,330 --> 00:48:05,770 >> Yleisﺣﭘ: Jos se vie vﺣ۳itteet. 1077 00:48:05,770 --> 00:48:07,603 >> DAVID J. MALAN: Missﺣ۳ se tekee vﺣ۳itteen. 1078 00:48:07,603 --> 00:48:09,985 Jos siis siirry jopa tﺣ۳rkein, I voi vain kulkea x ja y, 1079 00:48:09,985 --> 00:48:12,820 ja, lupaan, viimeinen pala uusia syntaksin tﺣ۳nﺣ۳ﺣ۳n. 1080 00:48:12,820 --> 00:48:17,200 Minun tﺣ۳ytyy kulkea ei X ja y mutta osoite x ja y. 1081 00:48:17,200 --> 00:48:20,400 Ja se osoittautuu, symboli ettﺣ۳ laatijat C valitsi 1082 00:48:20,400 --> 00:48:23,860 on jos kﺣ۳ytﺣ۳t et-merkki tﺣ۳ﺣ۳llﺣ۳, ei sekoittaa ja verkon peiton et-merkki, 1083 00:48:23,860 --> 00:48:27,130 jos kﺣ۳ytﺣ۳t et-merkki tﺣ۳ﺣ۳llﺣ۳ ja et-merkki tﺣ۳ﺣ۳llﺣ۳, 1084 00:48:27,130 --> 00:48:29,570 tﺣ۳mﺣ۳ keksii sinulle, mitﺣ۳ osoitteen x, 1085 00:48:29,570 --> 00:48:31,740 ehkﺣ۳ se on 10, mikﺣ۳ on osoite y, ehkﺣ۳ se 1086 00:48:31,740 --> 00:48:35,400 11, ja kulkee kuin sijasta. 1087 00:48:35,400 --> 00:48:37,210 >> Niin paljon imeﺣ۳ kaikki kerralla. 1088 00:48:37,210 --> 00:48:40,190 Mutta katsotaanpa nyt nopeasti meidﺣ۳n jﺣ۳ljellﺣ۳ neljﺣ۳ minuuttia 1089 00:48:40,190 --> 00:48:42,150 jossa asiat voivat mennﺣ۳ pieleen. 1090 00:48:42,150 --> 00:48:45,120 Ja syrjﺣ۳ﺣ۳n, todella Otin tﺣ۳mﺣ۳n kuvan, 1091 00:48:45,120 --> 00:48:46,920 TF otti tﺣ۳mﺣ۳n kuvan vuosi tai kaksi sitten. 1092 00:48:46,920 --> 00:48:49,190 Joten tﺣ۳mﺣ۳ on takaisin nurkka Eliot ruokasalissa. 1093 00:48:49,190 --> 00:48:52,310 Osoittimet ovat ehkﺣ۳ vaikein aihe, ettﺣ۳ me kattaa CS50. 1094 00:48:52,310 --> 00:48:54,810 Joten jos olet huolissasi lajitella kaltevuus on kuin ehkﺣ۳ se 1095 00:48:54,810 --> 00:48:56,770 enemmﺣ۳n jﺣ۳ﺣ۳kiekkomailasta nﺣ۳in, ymmﺣ۳rtﺣ۳ﺣ۳ 1096 00:48:56,770 --> 00:49:00,160 olemme tavallaan loppusuoralla huippu ehdot kﺣ۳sitteellinen monimutkaisuus. 1097 00:49:00,160 --> 00:49:02,300 >> Ja minﺣ۳ tuoda tﺣ۳tﺣ۳ valokuva, koska vannon 1098 00:49:02,300 --> 00:49:05,920 Jumalalle, syksyllﺣ۳ 1996, kun otin CS50 minun opetus muiden, 1099 00:49:05,920 --> 00:49:09,620 Nishat Mehta, hﺣ۳n istui minua alas nurkassa Eliot D. Hall lounaalla, 1100 00:49:09,620 --> 00:49:12,330 tai pﺣ۳ivﺣ۳llinen, tai jotain yrittﺣ۳ﺣ۳ auttaa minua ymmﺣ۳rtﺣ۳mﺣ۳ﺣ۳n osoittimia. 1101 00:49:12,330 --> 00:49:16,520 Ja tﺣ۳mﺣ۳ on missﺣ۳ olin viikon kuluttua se otettiin kﺣ۳yttﺣﭘﺣﭘn vuonna luento kun 1102 00:49:16,520 --> 00:49:18,170 Olen vihdoin ymmﺣ۳rtﺣ۳nyt osoittimia. 1103 00:49:18,170 --> 00:49:20,590 Ja olen toiveikas, ettﺣ۳ tﺣ۳mﺣ۳ klikkaa paljon nopeammin sinulle. 1104 00:49:20,590 --> 00:49:23,540 Mutta ymmﺣ۳rtﺣ۳ﺣ۳ tﺣ۳mﺣ۳ ehdottoman keskuudessa kehittyneempiﺣ۳ aiheita 1105 00:49:23,540 --> 00:49:24,420 teimme. 1106 00:49:24,420 --> 00:49:25,819 Mutta se on yksi tehokkaimmista. 1107 00:49:25,819 --> 00:49:28,860 Ja kun saat sen, se on oikeastaan ﻗ€‹ﻗ€‹kaikki juuri menossa vihdoinkin yhdessﺣ۳. 1108 00:49:28,860 --> 00:49:31,460 Joten varma se ei tﺣ۳ytyy kaikki uppoavat tﺣ۳nﺣ۳ﺣ۳n. 1109 00:49:31,460 --> 00:49:32,980 >> Joten tﺣ۳ssﺣ۳ on viimeinen ohjelma aiomme tarkastella. 1110 00:49:32,980 --> 00:49:35,605 Ja aiomme pﺣ۳ﺣ۳ttyy nopea kolmen minuutin claymation 1111 00:49:35,605 --> 00:49:37,030 tekemﺣ۳t ystﺣ۳vﺣ۳mme, Nick Parlante. 1112 00:49:37,030 --> 00:49:41,440 Tﺣ۳ssﺣ۳ ohjelmassa, ettﺣ۳ kaksi parasta linjat ilmoittaa muuttujan x ja y. 1113 00:49:41,440 --> 00:49:44,780 Jotka molemmat ovat osoitteita kokonaislukujen, AKA osoittimia. 1114 00:49:44,780 --> 00:49:48,125 Sitten kﺣ۳yttﺣ۳ﺣ۳ riittﺣ۳vﺣ۳sti muisti tallentaa int 1115 00:49:48,125 --> 00:49:51,344 ja tallenna osoite Tﺣ۳mﺣ۳n muistin x. 1116 00:49:51,344 --> 00:49:53,260 Niin, se on vielﺣ۳kin helpompaa kuin esimerkiksi ennen. 1117 00:49:53,260 --> 00:49:56,100 Anna minulle neljﺣ۳ tavua muistia, se koko int, 1118 00:49:56,100 --> 00:49:58,000 ja esittﺣ۳ﺣ۳, ettﺣ۳ osoite X. 1119 00:49:58,000 --> 00:50:01,070 Tﺣ۳mﺣ۳ linja tﺣ۳ssﺣ۳ tarkoittaa Siirry osoitteeseen X 1120 00:50:01,070 --> 00:50:05,270 ja laittaa merkitys elﺣ۳mﺣ۳, numero 42 siellﺣ۳. 1121 00:50:05,270 --> 00:50:07,710 Mutta tﺣ۳mﺣ۳ linja huolestuttaa minua. 1122 00:50:07,710 --> 00:50:12,620 Star y tarkoittaa mennﺣ۳ osoitteeseen y, ja laittaa epﺣ۳onnen luku 13 siellﺣ۳. 1123 00:50:12,620 --> 00:50:15,780 Miksi on vaarallista, tﺣ۳ssﺣ۳ vaiheessa vuonna story-- joskin nopeasti kertoi 1124 00:50:15,780 --> 00:50:17,980 meidﺣ۳n hiipuu minuutissa here-- miksi se huono 1125 00:50:17,980 --> 00:50:19,660 minun sanoa, mene osoitteeseen y? 1126 00:50:19,660 --> 00:50:21,077 >> Yleisﺣﭘ: Et ole [kuultavissa]. 1127 00:50:21,077 --> 00:50:22,910 DAVID J. MALAN: En ole laita mitﺣ۳ﺣ۳n y. 1128 00:50:22,910 --> 00:50:25,520 Joten mikﺣ۳ on arvo y, tﺣ۳ssﺣ۳ vaiheessa tarina? 1129 00:50:25,520 --> 00:50:26,570 Meillﺣ۳ ei ole aavistustakaan. 1130 00:50:26,570 --> 00:50:29,190 On joitakin roskat arvo ja eikﺣ۳ Binky tiedﺣ۳. 1131 00:50:29,190 --> 00:50:32,532 Jos voisimme pﺣ۳ﺣ۳ttyy tﺣ۳mﺣ۳n merkinnﺣ۳n. 1132 00:50:32,532 --> 00:50:34,832 >> [VIDEOTOISTOSTA] 1133 00:50:34,832 --> 00:50:36,500 >> Hei, Binky, herﺣ۳tﺣ۳. 1134 00:50:36,500 --> 00:50:39,140 On aika osoitin hauskaa. 1135 00:50:39,140 --> 00:50:40,210 >> -Mikﺣ۳ tuo on? 1136 00:50:40,210 --> 00:50:41,690 Lisﺣ۳tietoja viitteitﺣ۳? 1137 00:50:41,690 --> 00:50:43,570 Voi, Goody. 1138 00:50:43,570 --> 00:50:46,600 >> -No, Pﺣ۳ﺣ۳stﺣ۳ alkuun, kai olemme menossa on pari viitteitﺣ۳. 1139 00:50:46,600 --> 00:50:47,380 >> -OK. 1140 00:50:47,380 --> 00:50:51,120 Tﺣ۳mﺣ۳ koodi jakaa kaksi osoitinta joka voi viitata kokonaislukuja. 1141 00:50:51,120 --> 00:50:53,557 >> -OK, Hyvin nﺣ۳en kaksi osoitinta, mutta ne 1142 00:50:53,557 --> 00:50:55,140 eivﺣ۳t nﺣ۳ytﺣ۳ olevan osoittaa mitﺣ۳ﺣ۳n. 1143 00:50:55,140 --> 00:50:55,970 >> -Oikein. 1144 00:50:55,970 --> 00:50:58,100 Aluksi Nata eivﺣ۳t viittaa mihinkﺣ۳ﺣ۳n. 1145 00:50:58,100 --> 00:51:00,950 Mitﺣ۳ he viittaavat ovat nimeltﺣ۳ﺣ۳n pointees ja asettamalla ne 1146 00:51:00,950 --> 00:51:02,330 on erillinen vaihe. 1147 00:51:02,330 --> 00:51:03,210 >> -Voi, Oikea, oikea. 1148 00:51:03,210 --> 00:51:03,940 Tiesin sen. 1149 00:51:03,940 --> 00:51:05,730 Pointees ovat erillisiﺣ۳. 1150 00:51:05,730 --> 00:51:08,310 Joten miten jakaa pointee? 1151 00:51:08,310 --> 00:51:11,960 >> -OK, Hyvin tﺣ۳mﺣ۳ koodi allokoi uusi kokonaisluku pointee, 1152 00:51:11,960 --> 00:51:15,050 ja tﺣ۳mﺣ۳ osa sarjaa x osoittamaan sitﺣ۳. 1153 00:51:15,050 --> 00:51:16,240 >> -Hei, Ettﺣ۳ nﺣ۳yttﺣ۳ﺣ۳ paremmalta. 1154 00:51:16,240 --> 00:51:17,743 Joten tee se jotain. 1155 00:51:17,743 --> 00:51:23,580 >> -OK, Minﺣ۳ epﺣ۳viittausongelman osoitin X Tallenna numero 42 osaksi pointee. 1156 00:51:23,580 --> 00:51:27,130 Tﺣ۳mﺣ۳n temppu, minﺣ۳ tarvitsen taikasauva on dereferencing. 1157 00:51:27,130 --> 00:51:30,200 >> -Sinun Taikasauva on dereferencing? 1158 00:51:30,200 --> 00:51:32,310 Uh, ettﺣ۳ se on suuri. 1159 00:51:32,310 --> 00:51:34,270 >> -Tﺣ۳mﺣ۳ On mitﺣ۳ koodi nﺣ۳yttﺣ۳ﺣ۳. 1160 00:51:34,270 --> 00:51:35,970 Otan vain perustanut numero and-- 1161 00:51:35,970 --> 00:51:37,070 >> [POP SOUND] 1162 00:51:37,070 --> 00:51:39,140 >> Hei, katso siellﺣ۳ se menee. 1163 00:51:39,140 --> 00:51:43,980 Joten, tekee dereference X seuraavasti nuoli pﺣ۳ﺣ۳sy sen pointee. 1164 00:51:43,980 --> 00:51:46,150 Tﺣ۳ssﺣ۳ tapauksessa, tallentaa 42 siellﺣ۳. 1165 00:51:46,150 --> 00:51:50,700 Hei, kokeile sitﺣ۳ tallentaa numero 13 kautta muiden osoitin, y. 1166 00:51:50,700 --> 00:51:51,840 >> -OK. 1167 00:51:51,840 --> 00:51:56,270 Otan vain mennﺣ۳ tﺣ۳nne y, ja saada numero 13 perustaa. 1168 00:51:56,270 --> 00:52:00,380 Ja sitten ottaa sauva on dereferencing ja just-- 1169 00:52:00,380 --> 00:52:01,646 >> [Summeriﺣ۳ﺣ۳nen] 1170 00:52:01,646 --> 00:52:04,080 >> -Voi, Hei ettﺣ۳ ei toimi. 1171 00:52:04,080 --> 00:52:06,470 Sano, ﺣﭘh, Binky, en ajatella dereferencing 1172 00:52:06,470 --> 00:52:10,850 y on hyvﺣ۳ idea, koska asetus ylﺣﭘs pointee on erillinen vaihe. 1173 00:52:10,850 --> 00:52:12,480 Ja en usko meidﺣ۳n koskaan tehnyt sitﺣ۳. 1174 00:52:12,480 --> 00:52:14,620 >> -Hmm, Hyvﺣ۳ pointti. 1175 00:52:14,620 --> 00:52:19,810 >> -Joo, Me varattu osoitin, y, mutta emme koskaan aseta se osoittamaan pointee. 1176 00:52:19,810 --> 00:52:21,590 >> -Hmm, Hyvin tarkkaavainen. 1177 00:52:21,590 --> 00:52:23,215 Hei, etsit hyvﺣ۳ siellﺣ۳, Binky. 1178 00:52:23,215 --> 00:52:26,390 Voitteko korjata sen niin, ettﺣ۳ y pistettﺣ۳ samaan pointee kuin x. 1179 00:52:26,390 --> 00:52:29,290 >> -Sure, Kﺣ۳ytﺣ۳n taikasauvaa osoitin tehtﺣ۳vﺣ۳n. 1180 00:52:29,290 --> 00:52:31,970 >> -Onko Se tulee ongelma, kuten ennen? 1181 00:52:31,970 --> 00:52:33,790 >> -Ei, Tﺣ۳mﺣ۳ ei kosketa pointees. 1182 00:52:33,790 --> 00:52:35,840 Se vain muuttaa yksi osoitin osoittamaan samaan thing-- 1183 00:52:35,840 --> 00:52:36,465 >> [Poksahdus] 1184 00:52:36,465 --> 00:52:37,450 --as toiseen. 1185 00:52:37,450 --> 00:52:38,440 >> -Voi, Nﺣ۳en. 1186 00:52:38,440 --> 00:52:41,200 Nyt y pistettﺣ۳ samaan paikkaan kuin x. 1187 00:52:41,200 --> 00:52:42,950 Niin, odota, nyt y on kiinteﺣ۳. 1188 00:52:42,950 --> 00:52:44,110 Se on pointee. 1189 00:52:44,110 --> 00:52:47,779 Joten voit kokeilla sauva on dereferencing jﺣ۳lleen lﺣ۳hettﺣ۳ﺣ۳ 13 yli. 1190 00:52:47,779 --> 00:52:51,110 >> -Voi, OK, tﺣ۳ssﺣ۳ menee. 1191 00:52:51,110 --> 00:52:52,330 >> Hei, katso tuota. 1192 00:52:52,330 --> 00:52:53,570 Nyt dereferencing toimii y. 1193 00:52:53,570 --> 00:52:57,900 Ja koska viitteitﺣ۳ jakavat ettﺣ۳ yksi pointee, he molemmat katso 13. 1194 00:52:57,900 --> 00:52:59,952 >> -Niin, Jakaminen, ﺣﭘh riippumatta. 1195 00:52:59,952 --> 00:53:01,535 Joten, aiomme vaihtaa paikkoja nyt? 1196 00:53:01,535 --> 00:53:03,730 >> -Voi, Katso olemme myﺣﭘhﺣ۳ssﺣ۳. 1197 00:53:03,730 --> 00:53:04,660 >> -But-- 1198 00:53:04,660 --> 00:53:06,520 >> -Vain Muistaa kolme osoitin sﺣ۳ﺣ۳ntﺣﭘjﺣ۳. 1199 00:53:06,520 --> 00:53:09,550 Numero 1, perusrakenne on, ettﺣ۳ sinulla on osoitin, 1200 00:53:09,550 --> 00:53:11,630 ja se osoittaa yli pointee. 1201 00:53:11,630 --> 00:53:13,740 Mutta osoitin ja pointee ovat erillisiﺣ۳. 1202 00:53:13,740 --> 00:53:15,620 Ja yleinen virhe on perustaa osoitin 1203 00:53:15,620 --> 00:53:18,000 mutta unohtaa antaa sille pointee. 1204 00:53:18,000 --> 00:53:21,170 >> Numero 2, osoitin dereferencing alkaa osoittimen 1205 00:53:21,170 --> 00:53:24,020 ja seuraa sen nuoli yli pﺣ۳ﺣ۳sy sen pointee. 1206 00:53:24,020 --> 00:53:27,815 Kuten me kaikki tiedﺣ۳mme, tﺣ۳mﺣ۳ toimii vain jos on pointee, millaisia ﻗ€‹ﻗ€‹saa takaisin 1207 00:53:27,815 --> 00:53:29,260 lausua numero 1. 1208 00:53:29,260 --> 00:53:31,990 >> Numero 3, osoitin toimeksianto kestﺣ۳ﺣ۳ yhden osoitin 1209 00:53:31,990 --> 00:53:35,330 ja muuttaa sen osoittamaan sama pointee kuin toinen osoitin. 1210 00:53:35,330 --> 00:53:37,150 Niin sen jﺣ۳lkeen tehtﺣ۳vﺣ۳n, kaksi osoitinta 1211 00:53:37,150 --> 00:53:40,927 tulee kohta samaan pointee, joskus sitﺣ۳ kutsutaan jakaminen. 1212 00:53:40,927 --> 00:53:42,510 Ja siinﺣ۳ kaikki on sitﺣ۳, todella. 1213 00:53:42,510 --> 00:53:43,130 Hei hei nyt. 1214 00:53:43,130 --> 00:53:43,475 >> [Lopeta toisto] 1215 00:53:43,475 --> 00:53:44,830 >> DAVID J. MALAN: Se on se CS50. 1216 00:53:44,830 --> 00:53:46,246 Kiitos professori Nick Parlante. 1217 00:53:46,246 --> 00:53:47,730 Nﺣ۳hdﺣ۳ﺣ۳n ensi viikolla. 1218 00:53:47,730 --> 00:53:51,706 1219 00:53:51,706 --> 00:53:56,435 >> [ELECTRONIC musiikkia] 1220 00:53:56,435 --> 00:57:22,775