1 00:00:00,000 --> 00:00:02,670 >> [Þema MUSIC] 2 00:00:02,670 --> 00:00:11,834 3 00:00:11,834 --> 00:00:13,365 >> Ræðumaður 1: Hæ, allir. 4 00:00:13,365 --> 00:00:14,365 Velkomin aftur til kafla. 5 00:00:14,365 --> 00:00:15,700 6 00:00:15,700 --> 00:00:18,700 Lovely dagur out-- sem er ástæðan, ég er Jú, það eru aðeins fjórir af þér hér 7 00:00:18,700 --> 00:00:21,180 og ekki venjulega pakki okkar. 8 00:00:21,180 --> 00:00:22,670 Ég hef verið veikur um helgina. 9 00:00:22,670 --> 00:00:24,294 Þannig að ég hef ekki gylltu fyrir ykkur. 10 00:00:24,294 --> 00:00:26,400 Og ég kann að byrja að hósta hræðilega alla þessa. 11 00:00:26,400 --> 00:00:27,790 Svo bara bera með mér. 12 00:00:27,790 --> 00:00:30,624 Ég ætla að virkilega reyna og komast í gegnum þetta fyrst, 13 00:00:30,624 --> 00:00:32,290 þó, áður en ég hafa a sér hósta árás. 14 00:00:32,290 --> 00:00:33,410 15 00:00:33,410 --> 00:00:37,390 En bara vera auðvelt á mér lítið bit-- það er allt sem ég spyrja. 16 00:00:37,390 --> 00:00:39,370 17 00:00:39,370 --> 00:00:44,289 >> Svo dagskrá okkar fyrir today-- bara reminder-- quiz er í næstu viku. 18 00:00:44,289 --> 00:00:46,830 Ég sagði þér þetta í síðustu viku svo það myndi ekki ná þér burt vörður. 19 00:00:46,830 --> 00:00:47,954 Þannig að ég ætla að minna þig aftur. 20 00:00:47,954 --> 00:00:49,180 Næstu viku quiz þitt. 21 00:00:49,180 --> 00:00:52,730 Í því skyni, í næstu viku er kafla verður mun meira 22 00:00:52,730 --> 00:00:55,180 of-- Ég reyni og vinna í einhverju endurskoðun. 23 00:00:55,180 --> 00:00:58,130 Þannig að ef þú krakkar gætu hjálpa mér út með því að senda mér 24 00:00:58,130 --> 00:01:00,990 hlutir sem þú ert ánægð með, að þú ert að hafa áhyggjur, 25 00:01:00,990 --> 00:01:03,530 efni sem þú vilt fyrir mér að ná, sem myndi vera mikill. 26 00:01:03,530 --> 00:01:05,740 Svo ég get reynt og vinna þá í kafla okkar í næstu viku 27 00:01:05,740 --> 00:01:11,540 eða senda þér auka efni eða prep að þú getur ekki fengið annars staðar. 28 00:01:11,540 --> 00:01:12,150 >> Yeah! 29 00:01:12,150 --> 00:01:13,520 Fleiri fólk eru að koma! 30 00:01:13,520 --> 00:01:17,320 Ég hélt, gerði ég það illa síðasta viku, að enginn vill koma aftur? 31 00:01:17,320 --> 00:01:18,065 Ég er hrædd. 32 00:01:18,065 --> 00:01:18,892 33 00:01:18,892 --> 00:01:21,100 Svo hinum þremur hlutum að við erum að fara að fara yfir 34 00:01:21,100 --> 00:01:24,850 eru utanáskrift, skrá I / O, og þá ábendingum og dynamic minni. 35 00:01:24,850 --> 00:01:29,160 Ég er viss um að þú ert allur frábær æstur pointers-- uppáhalds umræðuefni allra, 36 00:01:29,160 --> 00:01:31,310 svo einfalt að skilja. 37 00:01:31,310 --> 00:01:33,130 Ég er viss um að þú krakkar fékk allt það, ekki satt? 38 00:01:33,130 --> 00:01:39,510 >> Svo fyrsta sem fyrst, redirection-- þetta er í grundvallaratriðum bara leið 39 00:01:39,510 --> 00:01:42,920 að stjórna hvernig þú inntak hlutir í forritinu, 40 00:01:42,920 --> 00:01:44,606 Hvernig þú framleiðsla hlutina frá forritinu. 41 00:01:44,606 --> 00:01:46,980 Helstu leiðir að þið hafa samskipti við það 42 00:01:46,980 --> 00:01:51,650 er bara í gegnum staðlaða út með skjánum prenta hér. 43 00:01:51,650 --> 00:01:55,940 En það eru leiðir til að pipe-- eins og við sjáum hér 44 00:01:55,940 --> 00:01:58,980 er einn af words-- tagi okkar pípulagna að upplýsingar 45 00:01:58,980 --> 00:02:02,850 eða að gögn í skrá úr skrá. 46 00:02:02,850 --> 00:02:05,820 Það er bara mismunandi leiðir fá hluti í forritinu 47 00:02:05,820 --> 00:02:10,681 og út af forritinu, í stað þess bara prentun þá þessum skjá 48 00:02:10,681 --> 00:02:12,430 eða inputting hluti frá the stjórn lína. 49 00:02:12,430 --> 00:02:13,760 50 00:02:13,760 --> 00:02:18,030 >> Svo er fyrsta einn lítill meiri en caret. 51 00:02:18,030 --> 00:02:22,085 Svo output-- það prentar bara framleiðsla að skrá í staðinn af þinn skjár. 52 00:02:22,085 --> 00:02:23,620 53 00:02:23,620 --> 00:02:29,500 Þannig að ef þú hefðir eitthvað sem prentað "Halló, heimur!" á skjánum, 54 00:02:29,500 --> 00:02:32,400 ef þú setur það í staðinn að output.text að 55 00:02:32,400 --> 00:02:35,220 skapar þessa skrá sem heitir output.text. 56 00:02:35,220 --> 00:02:38,550 Og þegar þú opnar það, verður það segja "Halló, heimur!" þar. 57 00:02:38,550 --> 00:02:41,410 Þetta getur verið frábær gagnlegt Ef þú hafa a tonn af villum 58 00:02:41,410 --> 00:02:43,430 Reyndar, eins og við sjáum í þessu. 59 00:02:43,430 --> 00:02:46,810 Ef þú gerir tvær caret, verður það prenta villu skilaboð. 60 00:02:46,810 --> 00:02:52,090 >> Svo ef þú ert having a vandamál með setja saman, það hefur a einhver fjöldi af villum 61 00:02:52,090 --> 00:02:56,770 og þú ert að fá hika við niður í að reyna að fletta í gegnum stjórn lína þinni 62 00:02:56,770 --> 00:02:59,110 í gegnum alla þá, þú getur bara prenta þær í skrá 63 00:02:59,110 --> 00:03:02,130 opna að skrá svo að þú getur flett í gegnum þær auðveldara. 64 00:03:02,130 --> 00:03:05,160 Ég notaði reyndar að mikið þegar ég var að kembiforrit 65 00:03:05,160 --> 00:03:07,970 181 psets mínar fyrir vél námi. 66 00:03:07,970 --> 00:03:10,000 Svo það er hægt að vera frábær gagnlegt síðar. 67 00:03:10,000 --> 00:03:18,370 Það er einnig gagnlegt ef þú ert með forrit sem kannski er að búa bókasafn 68 00:03:18,370 --> 00:03:20,430 eða búa sumir sett strengjum, og þú 69 00:03:20,430 --> 00:03:22,846 þurfa að vera fær um að sjá að það er að búa þá almennilega. 70 00:03:22,846 --> 00:03:23,860 71 00:03:23,860 --> 00:03:25,160 Þetta er leiðin til að gera þetta. 72 00:03:25,160 --> 00:03:28,280 >> Svo ef þú prenta þær í skrá þig geta fleiri auðveldlega skoða þær, ekki satt? 73 00:03:28,280 --> 00:03:30,930 Móti að reyna að fletta með stjórn línu. 74 00:03:30,930 --> 00:03:32,740 75 00:03:32,740 --> 00:03:35,820 Og svo eitt að huga er að með bara meiri 76 00:03:35,820 --> 00:03:40,090 en caret, ef þú ert að skrifa í skrá sem þegar exists-- 77 00:03:40,090 --> 00:03:44,990 svo eins og ef við hljóp þetta fyrsta tími, leggjum það til output.text, 78 00:03:44,990 --> 00:03:49,970 og þá höfðum við aðra áætlun prentaða þetta sem áætlun tvö 79 00:03:49,970 --> 00:03:54,250 og gerði meiri en output.text, það verður skrifað that-- svo 80 00:03:54,250 --> 00:03:56,715 skrifa hvað var alltaf í þessi skrá til að byrja með. 81 00:03:56,715 --> 00:03:57,720 82 00:03:57,720 --> 00:04:00,750 >> Svo ef þú vilt bæta í skrá, eins og við sjáum hér, 83 00:04:00,750 --> 00:04:04,779 þú bara tveir hærri en merki. 84 00:04:04,779 --> 00:04:05,820 Og það mun bæta við það. 85 00:04:05,820 --> 00:04:06,750 Það mun ekki skrifa það. 86 00:04:06,750 --> 00:04:09,770 Svo ef þú þarft að keyra mörg forrit og hvers konar halda 87 00:04:09,770 --> 00:04:13,170 utan um það sem allar þeirra eru aftur til þín í skrá, 88 00:04:13,170 --> 00:04:14,190 það er leið til að gera það. 89 00:04:14,190 --> 00:04:17,231 Ef þú er alveg sama hvað er í skránni og það er leyfilegt að vera plága, 90 00:04:17,231 --> 00:04:19,204 þú getur bara notað eitt stærra en. 91 00:04:19,204 --> 00:04:20,600 Er að gera skilningarvit til alla? 92 00:04:20,600 --> 00:04:23,205 93 00:04:23,205 --> 00:04:31,140 >> Áhorfendur: Eins punktur rista halló meiri en framleiðsla punktur texta, eins tvisvar, 94 00:04:31,140 --> 00:04:34,030 það verður bara aðeins sýna á framleiðsla punktur texta annað time-- 95 00:04:34,030 --> 00:04:34,810 >> Ræðumaður 1: Hægri. 96 00:04:34,810 --> 00:04:40,450 Svo það myndi í rauninni bara alveg skrifa hvað var þar til að byrja með. 97 00:04:40,450 --> 00:04:44,260 Ef þessi skrá hér, output.text þegar 98 00:04:44,260 --> 00:04:48,230 til, í grundvallaratriðum hvað sem þú kallar að aftur með einum Greater 99 00:04:48,230 --> 00:04:51,920 en þú getur bara að hugsa um það og eins og það í stað skrána. 100 00:04:51,920 --> 00:04:54,824 Eins og þegar þú ert að vista Word skjal og þú spara eins, 101 00:04:54,824 --> 00:04:57,365 og þú halda sama nafn og það birtist alveg it-- 102 00:04:57,365 --> 00:04:58,680 þetta er sama tegund af hlutur. 103 00:04:58,680 --> 00:05:00,380 104 00:05:00,380 --> 00:05:03,550 Einhver hefur einhverjar spurningar um bara outputting í skrá? 105 00:05:03,550 --> 00:05:05,051 106 00:05:05,051 --> 00:05:05,550 Ógnvekjandi. 107 00:05:05,550 --> 00:05:11,440 >> Svo augljóslega, ef þú snúa við arrow átt, það getur gert inntak. 108 00:05:11,440 --> 00:05:13,090 109 00:05:13,090 --> 00:05:19,960 Þannig að þegar þú krakkar höfðu eins Caesar eða Visioneer 110 00:05:19,960 --> 00:05:23,195 og þú þurftir að inntak eitthvað, þú hefðir stjórn lína rifrildi 111 00:05:23,195 --> 00:05:24,960 sem raunverulega inntak það. 112 00:05:24,960 --> 00:05:27,410 Þetta er önnur leið til að gera þetta. 113 00:05:27,410 --> 00:05:30,520 Þannig að í stað þess að bíða fyrir stjórn hvetja, 114 00:05:30,520 --> 00:05:33,800 eins og þegar þú baðst um þinn skilaboð í Caesar eða Visioneer, 115 00:05:33,800 --> 00:05:36,490 ef þú hefðir textaskrá sem höfðu skilaboðin 116 00:05:36,490 --> 00:05:38,280 þú gætir bara slá það inn í það. 117 00:05:38,280 --> 00:05:44,930 >> Þannig að ef þetta væri eins og punktur rista Caesar 3 minna en ör inntak texta, sem 118 00:05:44,930 --> 00:05:47,240 er skilaboðin þín, það myndi keyra bara fínt. 119 00:05:47,240 --> 00:05:51,310 120 00:05:51,310 --> 00:05:54,020 Þegar Caesar program raunverulega bað um inntak frá notanda, 121 00:05:54,020 --> 00:05:57,360 það væri nú þegar hafa það vegna þess að þú hefur slegið í þessari skrá. 122 00:05:57,360 --> 00:05:58,830 Það er bara önnur leið. 123 00:05:58,830 --> 00:06:02,445 Bara andhverfa output-- bara inntak fyrir gögnunum. 124 00:06:02,445 --> 00:06:04,570 125 00:06:04,570 --> 00:06:06,680 >> Og þá er það síðasta sem pípa. 126 00:06:06,680 --> 00:06:07,780 Svo laglegur kaldur þessa manns. 127 00:06:07,780 --> 00:06:09,890 Vegna þess að það gerir þér kleift að að taka í framleiðslu einn 128 00:06:09,890 --> 00:06:13,695 program og setja það sem inntak í annað forrit. 129 00:06:13,695 --> 00:06:15,250 130 00:06:15,250 --> 00:06:18,630 Ég veit ekki hvort einhver ykkar spilað með ráða 131 00:06:18,630 --> 00:06:20,590 sem CS50 gæti hafa gefið þér, en það væri 132 00:06:20,590 --> 00:06:27,380 leyfa þér að taka nokkur sýnishorn skrá, slá það inn dulkóðunarlyklunum, 133 00:06:27,380 --> 00:06:30,350 og þá þaðan slá þessi inn decryption þína 134 00:06:30,350 --> 00:06:32,470 að ganga úr skugga um það reyndist sama. 135 00:06:32,470 --> 00:06:34,050 Svo það er góður af eins og þriggja vegur lykkju. 136 00:06:34,050 --> 00:06:38,400 137 00:06:38,400 --> 00:06:39,423 Að fara í það. 138 00:06:39,423 --> 00:06:41,785 >> Áhorfendur: Ef forrit hefur marga inntak, 139 00:06:41,785 --> 00:06:47,646 er einhver leið til að segja það sem inntak að nota textaskrá eða framleiðsla fyrir? 140 00:06:47,646 --> 00:06:49,325 >> Ræðumaður 1: Það hefur mörgum aðföngum. 141 00:06:49,325 --> 00:06:52,190 142 00:06:52,190 --> 00:07:00,430 Whatever skrá input-- þitt þegar það er biðja um inntak þessi fyrstu skipti, það er 143 00:07:00,430 --> 00:07:03,240 fara að gera ráð fyrir, held ég, að það er fara að pípa í allan skrá. 144 00:07:03,240 --> 00:07:03,979 145 00:07:03,979 --> 00:07:07,145 Svo ef þú ert með marga inntak, þú ert að fara að lagna í mörgum skrám. 146 00:07:07,145 --> 00:07:08,190 147 00:07:08,190 --> 00:07:12,390 Svo ef þú ert að biðja um skilaboð þrisvar í kóðanum þínum, 148 00:07:12,390 --> 00:07:15,230 þú ert að fara að vera að setja í þremur mismunandi skrár. 149 00:07:15,230 --> 00:07:15,980 Og það fær brjálaður. 150 00:07:15,980 --> 00:07:18,188 Og þú ættir ekki að þurfa að hafa áhyggjur af því núna. 151 00:07:18,188 --> 00:07:19,150 En það er hugmynd. 152 00:07:19,150 --> 00:07:20,680 153 00:07:20,680 --> 00:07:26,822 >> Svo já, pípa er bara framleiðsla á einn program uses inntak inn í hinn. 154 00:07:26,822 --> 00:07:27,665 Allir góður þarna? 155 00:07:27,665 --> 00:07:28,565 156 00:07:28,565 --> 00:07:29,065 Cool. 157 00:07:29,065 --> 00:07:30,170 158 00:07:30,170 --> 00:07:30,932 OK. 159 00:07:30,932 --> 00:07:32,890 Þú verður að öllum líkindum ekki hafa að gera of mikið með það. 160 00:07:32,890 --> 00:07:35,670 En þú ættir að skilja leiðir til að nota þetta. 161 00:07:35,670 --> 00:07:38,910 Og það eru nokkur tilfelli sem þú might vilja til að nota það. 162 00:07:38,910 --> 00:07:44,590 >> Svo skrá I / O-- ég veit hvað þú ert saying-- við erum að nota til að lesa úr 163 00:07:44,590 --> 00:07:50,500 og skrifa á skjá okkar þar, sem er staðalbúnaður í og ​​staðall út. 164 00:07:50,500 --> 00:07:54,370 Og það er það sem þú krakkar hafa verið gera frá upphafi bekknum hér. 165 00:07:54,370 --> 00:07:58,220 En þú getur líka lesið og skrifa skrár, sem er allt skrá I / O-- svo skrá inntak, 166 00:07:58,220 --> 00:07:59,850 framleiðsla er allt það stendur fyrir. 167 00:07:59,850 --> 00:08:00,930 168 00:08:00,930 --> 00:08:04,360 Þannig að þetta þýðir í rauninni að þú getur geymt gögn núna. 169 00:08:04,360 --> 00:08:08,460 >> Þegar þú hefur prentað bara það til skjár, það er í grundvallaratriðum farið, ekki satt? 170 00:08:08,460 --> 00:08:12,507 Um leið og þú gerir "Hello heim "og hlaupa" Halló heimur " 171 00:08:12,507 --> 00:08:14,090 það prentar "Halló heimur" á skjáinn. 172 00:08:14,090 --> 00:08:16,370 En þú getur í raun ekki gert nokkuð með það þaðan. 173 00:08:16,370 --> 00:08:18,950 Ef þú geyma í texta skrá, svo skyndilega 174 00:08:18,950 --> 00:08:22,789 þú hefur þetta gögn sem þú ert að leyfa að vinna eða setja það inn í a skrá, 175 00:08:22,789 --> 00:08:24,080 eða setja það inn í forrit síðar. 176 00:08:24,080 --> 00:08:26,370 177 00:08:26,370 --> 00:08:29,290 Ein af ástæðunum hvers vegna við gerum þetta er bara 178 00:08:29,290 --> 00:08:31,560 sem leið til að geyma gögn til notkunar síðar. 179 00:08:31,560 --> 00:08:34,790 180 00:08:34,790 --> 00:08:37,279 >> ÉG hafa a par af stíga hér bara að ganga í gegnum staðall 181 00:08:37,279 --> 00:08:39,450 I / O. Í skrefi eitt, þú þarft að búa til tilvísun 182 00:08:39,450 --> 00:08:43,480 að skránni með öllu húfur SKRÁ stjörnu skrá. 183 00:08:43,480 --> 00:08:45,740 Svo skapar það bendi til a skrá. 184 00:08:45,740 --> 00:08:48,080 185 00:08:48,080 --> 00:08:49,650 Svo þá þú vilt að opna hana. 186 00:08:49,650 --> 00:08:52,940 Og þú segir, bókstaflega, bara skrá jafngildir fopen. 187 00:08:52,940 --> 00:08:57,400 Og þetta er að fara að skila bendi á skránni sem þú var að opna. 188 00:08:57,400 --> 00:08:59,610 189 00:08:59,610 --> 00:09:01,460 Ég sá nokkra af þér krakkar á skrifstofutíma. 190 00:09:01,460 --> 00:09:07,400 >> En einn af þeim hlutum er remember-- ábendingum 191 00:09:07,400 --> 00:09:10,409 geta vera sumir heimilisfang eða null, ekki satt? 192 00:09:10,409 --> 00:09:12,700 Ef við höfum alltaf mál þar eitthvað getur aftur null, 193 00:09:12,700 --> 00:09:14,990 hvað eigum við að gera áður en við notum það alltaf? 194 00:09:14,990 --> 00:09:16,220 195 00:09:16,220 --> 00:09:19,000 Við þurfum að athuga hvort það er tómt eða ekki, ekki satt? 196 00:09:19,000 --> 00:09:23,600 Því sumir af þú mega hafa haft málið þar hvað mótmæla 197 00:09:23,600 --> 00:09:26,110 var verið skilað í Breakout var null. 198 00:09:26,110 --> 00:09:28,170 Þú reyndir að framkvæma sumir virka á það. 199 00:09:28,170 --> 00:09:29,770 Og tölvan síðuna þína faulted. 200 00:09:29,770 --> 00:09:30,725 Hægri? 201 00:09:30,725 --> 00:09:33,640 Ég veðja nokkra þér kann að hafa haft þessi mál. 202 00:09:33,640 --> 00:09:38,890 >> Svo með fopen, fopen verður annaðhvort skila bendi á skrá, 203 00:09:38,890 --> 00:09:41,200 eða ef eitthvað fer úrskeiðis, það er að fara að fara aftur null. 204 00:09:41,200 --> 00:09:45,980 Svo þú þarft alltaf að athuga að það hefur ekki skilað null 205 00:09:45,980 --> 00:09:47,880 áður en þú reynir að gera neitt annað. 206 00:09:47,880 --> 00:09:49,110 207 00:09:49,110 --> 00:09:51,974 Þetta er eins og a staðall hugmyndafræði að þú ert að fara að þurfa hér. 208 00:09:51,974 --> 00:09:54,390 Ef það er alltaf möguleiki á að eitthvað gæti aftur null, 209 00:09:54,390 --> 00:09:56,590 stöðva til að tryggja að það ekki áður en þú halda áfram. 210 00:09:56,590 --> 00:09:58,911 Annars, þú ert að fara að fá yndislega síðuna galla. 211 00:09:58,911 --> 00:10:00,410 Og enginn hefur gaman að takast á við þá. 212 00:10:00,410 --> 00:10:03,180 213 00:10:03,180 --> 00:10:06,410 >> Svo eins og við sjáum hér, fyrsta rifrildi er bara leið til að skrá. 214 00:10:06,410 --> 00:10:09,380 Ef þessi skrá er ekki til, það er að fara að búa til að skrá. 215 00:10:09,380 --> 00:10:10,713 Og það er bara að fara að vera auður. 216 00:10:10,713 --> 00:10:10,789 217 00:10:10,789 --> 00:10:13,080 Og þá seinni rök er háttur sem þú vilt. 218 00:10:13,080 --> 00:10:14,610 Viljum við lesa úr þessari skrá? 219 00:10:14,610 --> 00:10:15,560 Viltu skrifa frá honum? 220 00:10:15,560 --> 00:10:16,476 Viltu bæta? 221 00:10:16,476 --> 00:10:17,600 222 00:10:17,600 --> 00:10:20,670 Svo í raun það sem ég said-- bara ef skráin er ekki til 223 00:10:20,670 --> 00:10:23,400 og þú ert að reyna að lesa úr það, það er að fara að kasta villu. 224 00:10:23,400 --> 00:10:26,890 Ef skráin name-- vilt ef file.text er ekki til enn 225 00:10:26,890 --> 00:10:29,250 og þú vilt að skrifa við það, mun það skapa 226 00:10:29,250 --> 00:10:33,110 autt skrá heitir file.text fyrir þig. 227 00:10:33,110 --> 00:10:36,612 Og ef þú vilt að auka, þú ættir að gera það sama. 228 00:10:36,612 --> 00:10:38,081 Er að skynsamleg? 229 00:10:38,081 --> 00:10:40,580 Ef þú ert að reyna að lesa úr skrá sem er ekki til enn, 230 00:10:40,580 --> 00:10:41,590 það mun kasta villu. 231 00:10:41,590 --> 00:10:44,340 Annars mun það búa til skrá fyrir þig að gera það sem þú vilt við það. 232 00:10:44,340 --> 00:10:45,970 233 00:10:45,970 --> 00:10:46,470 Cool. 234 00:10:46,470 --> 00:10:47,510 235 00:10:47,510 --> 00:10:48,880 Nú getum við lesið úr skrá. 236 00:10:48,880 --> 00:10:52,570 Og þetta er bara svona að fara gegnum mismunandi valkosti 237 00:10:52,570 --> 00:10:58,980 að við höfum skrá I / O. Þetta mun vera nauðsynlegt á þessu viku pset, 238 00:10:58,980 --> 00:11:00,505 ef ég man rétt. 239 00:11:00,505 --> 00:11:02,880 Já, það er algjörlega vera nauðsynlegt í þessu viku pset. 240 00:11:02,880 --> 00:11:04,260 241 00:11:04,260 --> 00:11:07,010 Svo fgetc skilar næsta staf. 242 00:11:07,010 --> 00:11:08,350 243 00:11:08,350 --> 00:11:10,300 fgets bara skilar línu af texta. 244 00:11:10,300 --> 00:11:11,790 245 00:11:11,790 --> 00:11:14,610 Það mun fara aftur eitthvað upp til ný lína, og það mun brjóta. 246 00:11:14,610 --> 00:11:15,950 247 00:11:15,950 --> 00:11:18,700 Svo les ákveðin fread Fjöldi bæti og setur þá 248 00:11:18,700 --> 00:11:20,700 í fylkinu, sem er eitthvað sem þú gætir 249 00:11:20,700 --> 00:11:25,485 langar til að gera við aftur size-- gæti verið gagnlegt. 250 00:11:25,485 --> 00:11:26,550 251 00:11:26,550 --> 00:11:29,290 >> Hve margir hafa lesið að pset sérstakur, við the vegur? 252 00:11:29,290 --> 00:11:30,980 253 00:11:30,980 --> 00:11:32,261 OK. 254 00:11:32,261 --> 00:11:32,760 [Inaudible] 255 00:11:32,760 --> 00:11:35,380 256 00:11:35,380 --> 00:11:36,580 >> Ræðumaður 1: OK. 257 00:11:36,580 --> 00:11:37,530 Allt í lagi. 258 00:11:37,530 --> 00:11:41,940 Ákveðið lesa that-- það er gaman pset. 259 00:11:41,940 --> 00:11:51,320 Þú færð að endurheimta eytt minni card-- virkilega spennandi þegar það virkar. 260 00:11:51,320 --> 00:11:54,100 En ákveðið, byrja að lesa það. 261 00:11:54,100 --> 00:11:56,280 Komdu tala við mig ef þig hafa spurningar um það. 262 00:11:56,280 --> 00:11:59,290 >> OK, þannig að ég var að segja, fread les ákveðinn fjölda bæti. 263 00:11:59,290 --> 00:12:01,340 264 00:12:01,340 --> 00:12:03,590 Það er einhver handahófskennt númer að þú ert að fara að setja. 265 00:12:03,590 --> 00:12:05,990 266 00:12:05,990 --> 00:12:08,260 Og þá fseek bara hreyfingar til ákveðna stöðu. 267 00:12:08,260 --> 00:12:11,150 Svo kannski þú hefur ekki sama um næstu 10 bæti. 268 00:12:11,150 --> 00:12:12,880 Þú vilt bara að sleppa undan. 269 00:12:12,880 --> 00:12:14,030 Þú hefur ekki sama um þá. 270 00:12:14,030 --> 00:12:16,280 Þú vilt lesa byrjun á bæti 11. 271 00:12:16,280 --> 00:12:18,252 fseek leyfir þér að gera það. 272 00:12:18,252 --> 00:12:20,710 Svo það er hægt að vera sérhæfðir um hvað þú ert að lesa. 273 00:12:20,710 --> 00:12:25,880 Vegna fgetc, fgets og fread lesa frá ákveðnum stað í skránni. 274 00:12:25,880 --> 00:12:27,260 275 00:12:27,260 --> 00:12:35,090 >> A leið til að hugsa um þetta er ef þetta er skrá okkar, þegar þú opnar það fyrst, 276 00:12:35,090 --> 00:12:41,140 þú hefur þessa stöðu á skrá sem byrjar í upphafi. 277 00:12:41,140 --> 00:12:45,040 Alltaf þegar þú hringir fgetc, fgetf eða fread, 278 00:12:45,040 --> 00:12:48,875 það er að fara að byrja þessi staða merkið. 279 00:12:48,875 --> 00:12:51,340 280 00:12:51,340 --> 00:12:55,245 Segjum að þú vilt bara að lesa þessi klumpur af minni hérna. 281 00:12:55,245 --> 00:12:56,300 282 00:12:56,300 --> 00:12:57,960 Þú getur ekki bara hringt. 283 00:12:57,960 --> 00:13:02,430 Þú þarft að leita hérna og þá lesa þaðan 284 00:13:02,430 --> 00:13:06,540 eða lesa, fær eða getc, eftir því hvað þú vilt. 285 00:13:06,540 --> 00:13:09,310 Svo leita bara leyfa þér að sleppa hluta af minni. 286 00:13:09,310 --> 00:13:11,590 Og það er eina vegur þú getur sleppt það 287 00:13:11,590 --> 00:13:14,012 án þess að lesa þá í biðminni þína. 288 00:13:14,012 --> 00:13:15,470 Er að gera skilningarvit til alla? 289 00:13:15,470 --> 00:13:21,110 290 00:13:21,110 --> 00:13:24,780 >> Vitanlega, það er a mikið samhliða here-- 291 00:13:24,780 --> 00:13:27,780 framleiðsla, eða inntak utanáskrift okkar, þú hefur lesið og skrifa. 292 00:13:27,780 --> 00:13:31,800 Svo fputc bara skrifar eðli í skránni. 293 00:13:31,800 --> 00:13:33,655 fputs skrifar línu. 294 00:13:33,655 --> 00:13:35,030 295 00:13:35,030 --> 00:13:37,420 Fprintf prentar sniðinn framleiðsla. 296 00:13:37,420 --> 00:13:41,190 Svo ef þú hefur tabs, eða rúm eða whatnot. 297 00:13:41,190 --> 00:13:44,180 Og svo skrifar fwrite sumir array bæti í skrá. 298 00:13:44,180 --> 00:13:48,860 Svo er þetta á sama hátt fwrite og fread eru hliðstæð 299 00:13:48,860 --> 00:13:57,550 opposites-- fgets, fputs og þá fputc og fgetc-- hellingur 300 00:13:57,550 --> 00:14:00,710 brjálaður, fljótur hluti. 301 00:14:00,710 --> 00:14:05,300 >> Bara svona halda þessu handy-- þú munt hafa mismunandi tímum 302 00:14:05,300 --> 00:14:08,680 þar kannski þú vilt bara einn staf í einu. 303 00:14:08,680 --> 00:14:09,890 Kannski þú vilt alla línuna. 304 00:14:09,890 --> 00:14:14,320 Með orðabók pset-- þinni sem er í tveimur psets, 305 00:14:14,320 --> 00:14:19,690 Ég tel, að við gefa þér allt orðabók í texta formi 306 00:14:19,690 --> 00:14:22,252 sem hefur hvert orð aðskilin með línu. 307 00:14:22,252 --> 00:14:24,210 Svo ef þú vildir lesa í einu orði í einu, 308 00:14:24,210 --> 00:14:31,769 hvað gætir þú nota ef þú ert að lesa og þeir eru allir aðskilin á nýjum línum, 309 00:14:31,769 --> 00:14:33,310 og þú vilt bara eitt orð í einu? 310 00:14:33,310 --> 00:14:35,320 311 00:14:35,320 --> 00:14:36,040 >> Áhorfendur: Fgets 312 00:14:36,040 --> 00:14:36,748 >> Ræðumaður 1: Hægri. 313 00:14:36,748 --> 00:14:39,960 Fgets-- því sem skilar hvað er í einni línu. 314 00:14:39,960 --> 00:14:42,750 Og ef hvert orð er þess eigin línu, sem við getum notað fgets. 315 00:14:42,750 --> 00:14:44,511 316 00:14:44,511 --> 00:14:45,010 Cool. 317 00:14:45,010 --> 00:14:47,290 Er að skynsamleg, allir? 318 00:14:47,290 --> 00:14:48,020 Cool? 319 00:14:48,020 --> 00:14:50,020 Já, við erum að fara að fá að Gleðin hluti með ábendingum 320 00:14:50,020 --> 00:14:51,728 mjög fljótlega, þar sem þú fá að gera smá stærðfræði. 321 00:14:51,728 --> 00:14:52,776 Og það verður frábært. 322 00:14:52,776 --> 00:14:55,690 323 00:14:55,690 --> 00:14:57,740 >> Last step-- loka skrána þína. 324 00:14:57,740 --> 00:15:01,090 Með svo margt hér, einn af hugmyndafræði okkar 325 00:15:01,090 --> 00:15:03,550 er ef það getur skilað null, athuga for null. 326 00:15:03,550 --> 00:15:06,160 Ef þú opnar eitthvað, þú vilt betri að loka henni. 327 00:15:06,160 --> 00:15:10,419 OK, þannig að þú ert ekki gert fyrr en þú ert gert nema þú hafir lokað það. 328 00:15:10,419 --> 00:15:12,585 Góður af eins og það er ekki yfir þar til feitur konan syngur. 329 00:15:12,585 --> 00:15:14,130 Það er eins og loka skrá. 330 00:15:14,130 --> 00:15:16,860 331 00:15:16,860 --> 00:15:19,190 Eins og það segir hér, bara að ítreka, alltaf 332 00:15:19,190 --> 00:15:21,750 opna skrána áður en þú ert lesa eða skrifa á það. 333 00:15:21,750 --> 00:15:24,450 Og alltaf loka það ef þú hefur opnað hana. 334 00:15:24,450 --> 00:15:25,460 Allt í lagi? 335 00:15:25,460 --> 00:15:25,960 Cool. 336 00:15:25,960 --> 00:15:26,835 >> Svo hér er dæmi. 337 00:15:26,835 --> 00:15:29,250 338 00:15:29,250 --> 00:15:34,330 Svo tiny-- Ég veit ekki hvort þú krakkar geta séð að mjög vel. 339 00:15:34,330 --> 00:15:36,805 Ef aðeins við gætum aukið birtustig einhvern veginn. 340 00:15:36,805 --> 00:15:40,430 341 00:15:40,430 --> 00:15:45,030 Leyfðu mér að gera í raun og veru þetta ef ég get. 342 00:15:45,030 --> 00:15:48,020 343 00:15:48,020 --> 00:15:51,470 OK, þú krakkar geta ekki raunverulega sjá að á öllu, getur þú? 344 00:15:51,470 --> 00:15:52,905 OK, við erum að fara að gera þetta, þá. 345 00:15:52,905 --> 00:16:35,094 346 00:16:35,094 --> 00:16:35,594 [Inaudible] 347 00:16:35,594 --> 00:16:56,670 348 00:16:56,670 --> 00:16:58,605 >> Ég geri ráð fyrir að þetta er miklu betra að sjá. 349 00:16:58,605 --> 00:17:17,330 350 00:17:17,330 --> 00:17:19,455 Getur einhver séð hvar minn mús fór er spurningin? 351 00:17:19,455 --> 00:17:22,837 Ah, þar það is-- hvað baráttu! 352 00:17:22,837 --> 00:17:48,910 353 00:17:48,910 --> 00:17:49,520 >> OK. 354 00:17:49,520 --> 00:17:53,845 Í grundvallaratriðum, þú krakkar ættu að hafa góður um hugmynd um hvað þetta er að gera. 355 00:17:53,845 --> 00:17:56,740 356 00:17:56,740 --> 00:17:57,600 Það er ekki fullkominn. 357 00:17:57,600 --> 00:17:58,851 358 00:17:58,851 --> 00:18:02,425 En ég vil frekar útskýra það en að eyða meiri tíma að reyna að forsníða það almennilega. 359 00:18:02,425 --> 00:18:03,610 360 00:18:03,610 --> 00:18:07,280 Grundvallaratriðum, eins og þú sérð hér, við byrjum með skrá Open. 361 00:18:07,280 --> 00:18:09,620 Og höfum við nokkur gagnagrunn sem við erum 362 00:18:09,620 --> 00:18:12,300 opnun sem segir það er nemendur okkar. 363 00:18:12,300 --> 00:18:14,020 Og við erum að fara að skrifa það. 364 00:18:14,020 --> 00:18:15,060 365 00:18:15,060 --> 00:18:17,720 Svo auðvitað aftur null. 366 00:18:17,720 --> 00:18:19,650 Þannig að við verðum að athuga for null. 367 00:18:19,650 --> 00:18:22,930 Og þá ef það er ekki null, við förum í gegnum. 368 00:18:22,930 --> 00:18:25,660 Og eins og þú sérð, við erum lykkja í gegnum hér. 369 00:18:25,660 --> 00:18:26,960 Það eru nemendur. 370 00:18:26,960 --> 00:18:30,520 Nemendur er kjötkássa skilgreind sem þrír. 371 00:18:30,520 --> 00:18:34,060 Og það sem við erum að gera er að við erum prentun að skránni, ekki satt? 372 00:18:34,060 --> 00:18:36,975 Svo hvað erum við að prenta út í skrá okkar? 373 00:18:36,975 --> 00:18:47,040 374 00:18:47,040 --> 00:18:48,906 >> Áhorfendur: Stigin sem eru í fylki? 375 00:18:48,906 --> 00:18:49,680 >> Ræðumaður 1: Já. 376 00:18:49,680 --> 00:18:50,980 Stigin sem eru í að array-- nákvæmlega. 377 00:18:50,980 --> 00:18:53,050 Þannig að við erum að opna þetta gagnagrunn, sem 378 00:18:53,050 --> 00:18:56,040 Ég geri ráð fyrir er einhvers konar af einkunnum gagnagrunninum. 379 00:18:56,040 --> 00:19:01,100 Og við erum bara að prenta út skorar á hvern nemanda til að skrá. 380 00:19:01,100 --> 00:19:02,140 Cool? 381 00:19:02,140 --> 00:19:02,640 Good. 382 00:19:02,640 --> 00:19:03,811 383 00:19:03,811 --> 00:19:04,310 Ógnvekjandi. 384 00:19:04,310 --> 00:19:05,100 OK. 385 00:19:05,100 --> 00:19:06,950 Við skulum fara aftur to-- 386 00:19:06,950 --> 00:19:08,646 >> Áhorfendur: Ég hafa a fljótur spurning. 387 00:19:08,646 --> 00:19:11,570 Er printf ekki í for lykkju? 388 00:19:11,570 --> 00:19:12,870 Það er bara í ef henni? 389 00:19:12,870 --> 00:19:14,370 Ræðumaður 1: Nei, það er í for lykkju. 390 00:19:14,370 --> 00:19:16,150 391 00:19:16,150 --> 00:19:18,810 Ég get ekki séð mús mína mjög vel upp hér. 392 00:19:18,810 --> 00:19:21,359 Þannig að ég ætla að reyna sitt snið sem rétt. 393 00:19:21,359 --> 00:19:22,525 Þessi krappi skal farin. 394 00:19:22,525 --> 00:19:23,610 395 00:19:23,610 --> 00:19:25,130 Það ætti að vera hér niðri. 396 00:19:25,130 --> 00:19:26,605 Þetta er það sem er í þínu fyrir lykkju. 397 00:19:26,605 --> 00:20:10,680 398 00:20:10,680 --> 00:20:11,180 There. 399 00:20:11,180 --> 00:20:12,160 Nú er það nokkuð. 400 00:20:12,160 --> 00:20:16,720 Svo er það hvernig það ætti að be-- nema fyrir að síðustu krappi sem ég vísaði. 401 00:20:16,720 --> 00:20:17,220 OK. 402 00:20:17,220 --> 00:20:19,491 Er að gera skilningarvit til alla? 403 00:20:19,491 --> 00:20:19,990 OK. 404 00:20:19,990 --> 00:20:23,750 Við erum að fara að fara á í næsta hlutur then-- 405 00:20:23,750 --> 00:20:26,180 sem, í raun, þú ert að fara að þurfa að sjá kóðann. 406 00:20:26,180 --> 00:20:28,370 Þannig að ég ætla bara að fara að eintak sem yfir núna. 407 00:20:28,370 --> 00:20:31,500 408 00:20:31,500 --> 00:20:32,000 OK. 409 00:20:32,000 --> 00:20:35,110 Þannig að ég ætla að sýna ykkur þessa kóða. 410 00:20:35,110 --> 00:20:38,240 Og ég vil að þú að reyna að reikna út hvað það er ætlast til að gera. 411 00:20:38,240 --> 00:20:49,740 412 00:20:49,740 --> 00:20:52,480 >> Svo gefið that-- taka eina mínútu eða svo. 413 00:20:52,480 --> 00:20:54,440 Prófaðu og reikna út hvað er að gerast hér. 414 00:20:54,440 --> 00:21:58,840 415 00:21:58,840 --> 00:21:59,570 >> Einhverjar hugmyndir? 416 00:21:59,570 --> 00:22:08,180 417 00:22:08,180 --> 00:22:12,470 >> Við vitum að við höfum að minnsta kosti tvær röksemdir í stjórn lína, ekki satt? 418 00:22:12,470 --> 00:22:16,270 Ég geri ráð fyrir einn sem er að fara til vera að [inaudible] af program okkar er 419 00:22:16,270 --> 00:22:17,530 og þá eitthvað annað. 420 00:22:17,530 --> 00:22:19,980 Vegna þess að ef [inaudible] er minna en tveir, æpa við á þeim. 421 00:22:19,980 --> 00:22:21,140 Hægri? 422 00:22:21,140 --> 00:22:25,300 Og úr notkun, það lítur út eins og það er að fara að vera einhvers konar skrá. 423 00:22:25,300 --> 00:22:26,260 Við öll sammála því? 424 00:22:26,260 --> 00:22:29,110 425 00:22:29,110 --> 00:22:31,570 Svo nú, hvað er lykkja gera? 426 00:22:31,570 --> 00:22:32,570 Hvað er það að fara í gegnum? 427 00:22:32,570 --> 00:22:35,000 428 00:22:35,000 --> 00:22:36,449 >> Áhorfendur: Allar skrár. 429 00:22:36,449 --> 00:22:37,240 Ræðumaður 1: Einmitt. 430 00:22:37,240 --> 00:22:39,650 Það er að fara í gegnum allar skrár sem við höfum inntak þar. 431 00:22:39,650 --> 00:22:40,720 432 00:22:40,720 --> 00:22:46,040 Svo fyrir hverja skrá, það er opnun upp smá band þar. 433 00:22:46,040 --> 00:22:47,560 Það er að opna upp að skrá. 434 00:22:47,560 --> 00:22:48,060 Hægri? 435 00:22:48,060 --> 00:22:49,140 436 00:22:49,140 --> 00:22:52,380 Og það er að lesa af því. 437 00:22:52,380 --> 00:22:53,420 438 00:22:53,420 --> 00:22:55,540 Auðvitað, stöðva ef það er null. 439 00:22:55,540 --> 00:22:57,220 Og þá er það prentun. 440 00:22:57,220 --> 00:23:01,460 Ef það er null, það er bara að segja okkur að það er ekki a skrá sem er til. 441 00:23:01,460 --> 00:23:04,290 Vegna muna, með lesa skrá okkar þarf að vera til. 442 00:23:04,290 --> 00:23:04,810 Hægri? 443 00:23:04,810 --> 00:23:06,870 Með skrifa og bæta, þú getur komist upp með það. 444 00:23:06,870 --> 00:23:08,970 En með að lesa, skrá okkar hefur til. 445 00:23:08,970 --> 00:23:10,430 446 00:23:10,430 --> 00:23:13,330 >> Og þá ef það er til staðar, hvað erum við að gera hér? 447 00:23:13,330 --> 00:23:14,810 448 00:23:14,810 --> 00:23:15,780 Við skulum byrja hérna. 449 00:23:15,780 --> 00:23:18,815 Hvað er þetta do-- þessa fyrstu persónu. 450 00:23:18,815 --> 00:23:20,960 451 00:23:20,960 --> 00:23:21,790 Hvað þýðir það að gera? 452 00:23:21,790 --> 00:23:24,100 Hann fær einn staf, ekki satt? 453 00:23:24,100 --> 00:23:25,400 Svo hvað er þetta að gera? 454 00:23:25,400 --> 00:23:26,775 Það er að fá í fyrsta staf. 455 00:23:26,775 --> 00:23:28,860 456 00:23:28,860 --> 00:23:30,200 Einhver veit EOF? 457 00:23:30,200 --> 00:23:31,170 >> Áhorfendur: Lok skrá? 458 00:23:31,170 --> 00:23:32,680 >> Ræðumaður 1: Lok file-- nákvæmlega. 459 00:23:32,680 --> 00:23:35,310 Svo það er að fara að fara í gegnum allt skrá, ekki satt? 460 00:23:35,310 --> 00:23:36,710 461 00:23:36,710 --> 00:23:40,780 Og þá er það að fara að uppfæra með því fá sérhverjum staf. 462 00:23:40,780 --> 00:23:41,565 Hægri? 463 00:23:41,565 --> 00:23:43,636 Og hvað er það að gera? 464 00:23:43,636 --> 00:23:44,760 Áhorfendur: Pútt það in-- 465 00:23:44,760 --> 00:23:46,741 466 00:23:46,741 --> 00:23:49,170 >> Ræðumaður 1: Putchar prentar við skjávara þínu. 467 00:23:49,170 --> 00:23:50,867 468 00:23:50,867 --> 00:23:51,950 [Inaudible] eðli. 469 00:23:51,950 --> 00:23:54,300 Og svo þegar það [inaudible] þetta mun loka skrá. 470 00:23:54,300 --> 00:23:57,370 >> Áhorfendur: Ert þú ekki að þurfa að [? annað? ?] 471 00:23:57,370 --> 00:23:59,005 >> Ræðumaður 1: Ekki endilega. 472 00:23:59,005 --> 00:24:01,480 Ég meina, það er góður af skyn í þessu. 473 00:24:01,480 --> 00:24:06,780 Vegna þess að þetta skilar, þó, svo lengi því það er ekki að ná þessu, þú ert fínn. 474 00:24:06,780 --> 00:24:07,940 475 00:24:07,940 --> 00:24:10,250 Ég meina það er líklega gott æfa að gera annað. 476 00:24:10,250 --> 00:24:15,755 En annað er ekki alltaf nauðsynlegt sérstaklega 477 00:24:15,755 --> 00:24:17,610 ef þú hefur eitthvað eins afkomu sem 478 00:24:17,610 --> 00:24:20,640 þýðir að í þessu tilfelli ef það veiðir það, program er að fara að enda 479 00:24:20,640 --> 00:24:21,850 og það mun aldrei komast að þessu. 480 00:24:21,850 --> 00:24:23,030 481 00:24:23,030 --> 00:24:29,190 Það er meira fyrir að ræða þar sem þú ert ekki endilega aftur eitthvað. 482 00:24:29,190 --> 00:24:31,370 Vegna þess að ef þetta væri ekki aftur neitt, 483 00:24:31,370 --> 00:24:34,430 það myndi þýða að ef þetta væri satt, restin af þessu væri enn keyrt. 484 00:24:34,430 --> 00:24:36,138 Og í því tilviki, þú myndi vilja a falskur. 485 00:24:36,138 --> 00:24:38,240 Ef það er aftur, og áætlunarinnar þíns endir, 486 00:24:38,240 --> 00:24:41,960 sem annað er ekki nauðsynlegt öllum tíminn, eftir samhengi. 487 00:24:41,960 --> 00:24:43,084 488 00:24:43,084 --> 00:24:44,375 Jacob, did þú með spurningu? 489 00:24:44,375 --> 00:24:46,100 Áhorfendur: Já. 490 00:24:46,100 --> 00:24:49,300 Svo er fgetc fá næsta staf? 491 00:24:49,300 --> 00:24:50,734 Hvernig virkar eðli hækkar? 492 00:24:50,734 --> 00:24:51,400 Ræðumaður 1: Já. 493 00:24:51,400 --> 00:24:52,774 Svo fgetc fær næsta staf. 494 00:24:52,774 --> 00:24:54,140 495 00:24:54,140 --> 00:24:56,866 Þú getur hugsað um það eins og C ++ í vissum skilningi. 496 00:24:56,866 --> 00:24:58,350 >> Áhorfendur: Svo það var EOF? 497 00:24:58,350 --> 00:25:00,877 >> Ræðumaður 1: EOF er endir af skrá. 498 00:25:00,877 --> 00:25:03,960 Það er bara merki sem leyfir þér að vita að þú ert í lok skrá. 499 00:25:03,960 --> 00:25:06,742 Þannig að þetta er að fara að prenta til staðall út. 500 00:25:06,742 --> 00:25:08,950 Og þá er það að fara að loka skráin þegar það er gert. 501 00:25:08,950 --> 00:25:10,700 Og þá skulum fara til næstu skrá, ekki satt? 502 00:25:10,700 --> 00:25:12,660 Svo í heild, hvað þýðir þetta forrit gera? 503 00:25:12,660 --> 00:25:15,402 504 00:25:15,402 --> 00:25:16,090 >> [Inaudible] 505 00:25:16,090 --> 00:25:16,900 >> Ræðumaður 1: Já. 506 00:25:16,900 --> 00:25:18,770 Það prentar bara út allt það. 507 00:25:18,770 --> 00:25:23,270 Svo ef þið hafið einhvern tíma notað CAT og þá heiti nokkurra file-- 508 00:25:23,270 --> 00:25:26,240 Ég veit ekki hvort einhver ykkar hafa alltaf gert það á flugstöðinni. 509 00:25:26,240 --> 00:25:29,630 En ef þú alltaf að nota stjórn CAT-- C-A-T-- 510 00:25:29,630 --> 00:25:31,880 og þá hvað skrá þú hefur there-- það 511 00:25:31,880 --> 00:25:37,260 prentar það út til flugstöðinni, sem geta vera frábær vel fyrir sumum hlutum. 512 00:25:37,260 --> 00:25:38,746 Ég nota það mikið. 513 00:25:38,746 --> 00:25:40,120 Er að gera skilningarvit til alla? 514 00:25:40,120 --> 00:25:41,480 515 00:25:41,480 --> 00:25:42,100 Cool? 516 00:25:42,100 --> 00:25:46,530 >> OK svo þitt verkefni now-- annaðhvort sjálfur eða með fólkið í kringum you-- 517 00:25:46,530 --> 00:25:54,930 er bara að skrifa einföld forrit sem vilja bara skrifa "Halló, heimur!" 518 00:25:54,930 --> 00:25:56,255 út í skrá. 519 00:25:56,255 --> 00:26:00,215 >> [Inaudible] 520 00:26:00,215 --> 00:26:56,210 521 00:26:56,210 --> 00:26:57,040 >> [Inaudible] 522 00:26:57,040 --> 00:26:59,248 >> Ræðumaður 1: Ég var eins og, gerði Ég gera það illa í síðustu viku? 523 00:26:59,248 --> 00:27:00,201 524 00:27:00,201 --> 00:27:01,492 Ég vissi ekki að hugsa það var svo slæmt. 525 00:27:01,492 --> 00:27:02,479 526 00:27:02,479 --> 00:27:03,520 Ég er feginn að þú ert öll hér. 527 00:27:03,520 --> 00:27:04,655 Það sem veitir mér ánægju. 528 00:27:04,655 --> 00:27:07,565 529 00:27:07,565 --> 00:27:10,160 Ég er stelpa á einföldum munaði. 530 00:27:10,160 --> 00:27:11,688 Mér líkar bara þegar kafla minn situr. 531 00:27:11,688 --> 00:27:13,830 532 00:27:13,830 --> 00:27:18,270 Þannig að ég ætla bara að fá þetta byrjaði fyrir þú krakkar þannig að við getum kóða saman. 533 00:27:18,270 --> 00:27:22,290 Mér líkar ekki að setja einhver á blettur nema þú vilt vera. 534 00:27:22,290 --> 00:27:26,486 535 00:27:26,486 --> 00:27:30,086 >> Áhorfendur: Fyrir próf, gera við verðum að skrifa forrit? 536 00:27:30,086 --> 00:27:33,260 >> Ræðumaður 1: Þú getur verið beðin um að skrifa einföld forrit af hendi. 537 00:27:33,260 --> 00:27:35,940 538 00:27:35,940 --> 00:27:36,590 Jamm. 539 00:27:36,590 --> 00:27:38,510 >> Áhorfendur: Prófinu næstu viku, ekki satt? 540 00:27:38,510 --> 00:27:40,108 >> Ræðumaður 1: The quiz er næsta miðvikudag. 541 00:27:40,108 --> 00:27:40,855 542 00:27:40,855 --> 00:27:43,730 Það þýðir að það er yndisleg [? CSE?] einkunnagjafar aðila eftirá, sem 543 00:27:43,730 --> 00:27:50,390 þýðir að þú munt fá stig þín aftur að night-- á hvaða tíma? 544 00:27:50,390 --> 00:27:50,890 Hver veit? 545 00:27:50,890 --> 00:27:51,973 En það verður um nóttina. 546 00:27:51,973 --> 00:28:02,020 547 00:28:02,020 --> 00:28:02,855 >> Allt í lagi. 548 00:28:02,855 --> 00:28:04,250 Hvernig viljum við að byrja þetta? 549 00:28:04,250 --> 00:28:07,964 550 00:28:07,964 --> 00:28:09,630 Ég skal gefa þér hint-- byrjar þetta. 551 00:28:09,630 --> 00:28:11,455 >> Áhorfendur: Þú þarft að opna skrá. 552 00:28:11,455 --> 00:28:12,250 >> Ræðumaður 1: Já. 553 00:28:12,250 --> 00:28:14,060 Svo hvað viltu kalla þetta? 554 00:28:14,060 --> 00:28:16,150 Viltu bara að kalla það "skrá"? 555 00:28:16,150 --> 00:28:17,480 Skulum gera það auðvelt. 556 00:28:17,480 --> 00:28:26,752 Svo fopen-- hvað er okkar framleiðsla próf að fara að vera? 557 00:28:26,752 --> 00:28:36,130 Kalla það "Hello." 558 00:28:36,130 --> 00:28:37,810 Og hvað er háttur okkar? 559 00:28:37,810 --> 00:28:39,764 560 00:28:39,764 --> 00:28:41,055 Hvað erum við að gera við þessa skrá? 561 00:28:41,055 --> 00:28:42,676 562 00:28:42,676 --> 00:28:43,500 >> Áhorfendur: Lesa. 563 00:28:43,500 --> 00:28:44,401 564 00:28:44,401 --> 00:28:44,900 Skrifa. 565 00:28:44,900 --> 00:28:46,191 Ræðumaður 1: Við erum að skrifa á það. 566 00:28:46,191 --> 00:28:47,360 567 00:28:47,360 --> 00:28:47,860 Lovely. 568 00:28:47,860 --> 00:28:50,330 569 00:28:50,330 --> 00:28:52,860 OK, þannig að við höfum þessa skrá núna. 570 00:28:52,860 --> 00:28:54,920 571 00:28:54,920 --> 00:28:56,212 Hvað þurfum við að gera? 572 00:28:56,212 --> 00:28:57,420 Áhorfendur: Athugaðu hvort það er null. 573 00:28:57,420 --> 00:28:59,820 Ræðumaður 1: Athugaðu hvort það er null-- nákvæmlega. 574 00:28:59,820 --> 00:29:01,980 Það er það sem ég eins og til að heyra. 575 00:29:01,980 --> 00:29:05,930 Það ætti að vera sjálfvirk, sérstaklega ansi mikið af þessum tímapunkti á. 576 00:29:05,930 --> 00:29:07,530 577 00:29:07,530 --> 00:29:10,950 Ef þú byrjar segfaulting, sennilega ekki athuga for null einhversstaðar. 578 00:29:10,950 --> 00:29:12,480 Níu sinnum af hverjum tíu, sem er fara að vera villa þinn. 579 00:29:12,480 --> 00:29:15,400 Svo ef þú gætir bara í venja, alltaf að athuga hvort það er null, 580 00:29:15,400 --> 00:29:18,150 líf þitt er að fara að vera gott og easy-- eða auðveldara. 581 00:29:18,150 --> 00:29:19,480 >> Svo að athuga hvort það er null. 582 00:29:19,480 --> 00:29:21,200 583 00:29:21,200 --> 00:29:24,820 Þannig að ef það er ekki null, sem er það Bang jafngildir 584 00:29:24,820 --> 00:29:26,784 means-- ekki null-- það gilt. 585 00:29:26,784 --> 00:29:27,700 Hvað viljum við gera? 586 00:29:27,700 --> 00:29:29,750 587 00:29:29,750 --> 00:29:31,570 Við viljum bara að prenta þeirri skrá, ekki satt? 588 00:29:31,570 --> 00:29:32,923 Svo hvað erum við að fara að nota? 589 00:29:32,923 --> 00:29:34,092 >> Áhorfendur: Fprintf 590 00:29:34,092 --> 00:29:36,800 >> Ræðumaður 1: Fprintf-- yndisleg. 591 00:29:36,800 --> 00:29:38,150 592 00:29:38,150 --> 00:29:44,000 Og fprintf tekur tvær arguments-- hvar það er að fara og hvað við viljum prenta. 593 00:29:44,000 --> 00:29:45,820 Svo er það sá fyrsti? 594 00:29:45,820 --> 00:29:46,570 Hvar er það að fara? 595 00:29:46,570 --> 00:29:47,490 >> Áhorfendur: File. 596 00:29:47,490 --> 00:29:48,785 >> Ræðumaður 1: Það er að fara að skrá. 597 00:29:48,785 --> 00:29:49,784 598 00:29:49,784 --> 00:29:50,950 Og hvað við viljum prenta? 599 00:29:50,950 --> 00:29:52,900 600 00:29:52,900 --> 00:29:58,065 "Halló, heimur!" 601 00:29:58,065 --> 00:29:58,565 Allt í lagi. 602 00:29:58,565 --> 00:30:03,670 Við höfum eitt síðustu thing-- annar stór hugmyndafræði hér. 603 00:30:03,670 --> 00:30:04,479 604 00:30:04,479 --> 00:30:05,145 Áhorfendur: Close. 605 00:30:05,145 --> 00:30:05,853 Ræðumaður 1: Close. 606 00:30:05,853 --> 00:30:09,990 607 00:30:09,990 --> 00:30:10,540 Þar sem þú ferð. 608 00:30:10,540 --> 00:30:13,384 >> Áhorfendur: Er þetta að gerast Ef skráin er núll? 609 00:30:13,384 --> 00:30:15,050 Ræðumaður 1: Nei, þetta er ef það er ekki núll. 610 00:30:15,050 --> 00:30:16,881 Áhorfendur: Oh, ef það er not-- OK. 611 00:30:16,881 --> 00:30:21,728 612 00:30:21,728 --> 00:30:25,410 Fyrir fopen og síðan tvær breytur sem fara inn, 613 00:30:25,410 --> 00:30:27,655 hvað þýðir fyrsta rök meina aftur? 614 00:30:27,655 --> 00:30:30,392 >> Ræðumaður 1: Rökin er bara eins og nafn skrárinnar 615 00:30:30,392 --> 00:30:31,350 að þú vilt fara í. 616 00:30:31,350 --> 00:30:36,020 Svo eftir þetta keyrir, þú myndir hafa sumir skrá sem heitir "halló" 617 00:30:36,020 --> 00:30:38,320 sem hefði "Halló, heimur" innan þess. 618 00:30:38,320 --> 00:30:38,820 Það er allt. 619 00:30:38,820 --> 00:30:39,500 Bara nafn. 620 00:30:39,500 --> 00:30:42,685 621 00:30:42,685 --> 00:30:48,650 >> Áhorfendur: Og þar sem það er að skrifa, er skrá þarf ekki að nú þegar. 622 00:30:48,650 --> 00:30:49,675 Er það sem þú sagðir? 623 00:30:49,675 --> 00:30:50,410 >> Ræðumaður 1: Hægri. 624 00:30:50,410 --> 00:30:50,910 Einmitt. 625 00:30:50,910 --> 00:30:53,110 626 00:30:53,110 --> 00:30:55,839 Ef "Hello" sem skrá er ekki til enn, það er 627 00:30:55,839 --> 00:30:58,380 fara að búa til skrá sem kallast Halló "og skrifa það fyrir þig. 628 00:30:58,380 --> 00:30:59,631 629 00:30:59,631 --> 00:31:03,610 >> Áhorfendur: Þegar þú ert að segja the program til skrifaði að skránni 630 00:31:03,610 --> 00:31:08,075 hví þú skrifar "skrá" í stað nafn á skránni og fprintf-- 631 00:31:08,075 --> 00:31:13,600 >> Ræðumaður 1: Vegna þess að í þessu tilfelli, við höfum að stór FILE-- allt í caps-- stjarna, 632 00:31:13,600 --> 00:31:14,260 skrá. 633 00:31:14,260 --> 00:31:17,370 Svo það er bendi til að skrá að þú ert að tala um. 634 00:31:17,370 --> 00:31:19,930 Þetta er leiðin sem við vísa bara til þess. 635 00:31:19,930 --> 00:31:24,850 Svo í þessu tilfelli, þú getur hugsað file-- AHA, 636 00:31:24,850 --> 00:31:31,271 við getum notað this-- skrá hér átt við opnun "Hello" 637 00:31:31,271 --> 00:31:32,145 og láta það skrifa. 638 00:31:32,145 --> 00:31:34,728 >> Áhorfendur: Gætum við setja "Hello" staðinn [? af réttlátur?] f skrá? 639 00:31:34,728 --> 00:31:40,160 Ræðumaður 1: Nei, vegna þess að "Halló" þarf að vera opin og writeable. 640 00:31:40,160 --> 00:31:41,820 641 00:31:41,820 --> 00:31:45,980 Skrá hér er eins designator sem segir OK, við 642 00:31:45,980 --> 00:31:49,190 hafa þetta file-- hello-- að við erum að horfa á. 643 00:31:49,190 --> 00:31:50,680 Það hefur verið opnaður. 644 00:31:50,680 --> 00:31:52,140 Og við erum að fara að skrifa það. 645 00:31:52,140 --> 00:31:55,130 Ef þú notar bara "Halló", sem er sett í hylki í henni. 646 00:31:55,130 --> 00:31:56,846 Svo það er að fara til Freak út. 647 00:31:56,846 --> 00:31:58,590 648 00:31:58,590 --> 00:32:00,300 Ég meina, þú gætir hafa nefnt það. 649 00:32:00,300 --> 00:32:03,960 Þú gætir hafa gert skrá, stjörnu, "Halló", jafngildir það. 650 00:32:03,960 --> 00:32:07,840 En allt lið er að þú þarf skrá stjörnu músina í röð 651 00:32:07,840 --> 00:32:09,281 að vera fær um að nota þessar aðgerðir. 652 00:32:09,281 --> 00:32:11,280 Áhorfendur: Gætirðu gert skrá, stjarna, skrá, "Halló" 653 00:32:11,280 --> 00:32:13,113 eða þú þarft að setja skrá stjörnuna, skrá með það? 654 00:32:13,113 --> 00:32:16,330 Ræðumaður 1: Þú getur gera skrá, stjarna, "Hello." 655 00:32:16,330 --> 00:32:19,790 Þú getur breytt þessu til hvaða nafni sem þú vilt. 656 00:32:19,790 --> 00:32:22,114 Það er alveg handahófskennt hvað það nafn er. 657 00:32:22,114 --> 00:32:23,179 658 00:32:23,179 --> 00:32:24,220 Þú getur kallað það neitt. 659 00:32:24,220 --> 00:32:25,501 660 00:32:25,501 --> 00:32:28,020 Nafn það fljúga spagettí, ef þú vildir. 661 00:32:28,020 --> 00:32:29,690 >> Áhorfendur: Hvað er "W" í gæsalöppum fyrir? 662 00:32:29,690 --> 00:32:31,540 >> Ræðumaður 1: The "m" er bara háttur. 663 00:32:31,540 --> 00:32:33,170 Þannig að við erum að skrifa í þessa skrá. 664 00:32:33,170 --> 00:32:34,410 665 00:32:34,410 --> 00:32:35,320 Allir góður? 666 00:32:35,320 --> 00:32:36,227 Tær? 667 00:32:36,227 --> 00:32:36,981 Já. 668 00:32:36,981 --> 00:32:40,365 >> Áhorfendur: Svo þegar það skrifar þetta skrá, hvar finnum við þá þessa skrá? 669 00:32:40,365 --> 00:32:43,820 >> Ræðumaður 1: Það verður að vera á sama möppu sem þú ert nú í. 670 00:32:43,820 --> 00:32:45,650 671 00:32:45,650 --> 00:32:48,880 Ef þú ert í pset þremur og þú keyrir þetta, innan pset þinni 672 00:32:48,880 --> 00:32:52,600 þriggja mappa er að fara að vera Þessi skrá sem heitir "Hello." 673 00:32:52,600 --> 00:32:53,160 Cool? 674 00:32:53,160 --> 00:32:53,757 Allir góður? 675 00:32:53,757 --> 00:32:55,840 Mér finnst eins og þú ert allur fá það, sem er frábært. 676 00:32:55,840 --> 00:32:57,290 677 00:32:57,290 --> 00:32:57,790 OK. 678 00:32:57,790 --> 00:33:05,960 Svo aftur að renna show-- minn Ég elska þegar hlutirnir virka. 679 00:33:05,960 --> 00:33:08,674 OK, pointers-- eruð þið spennt? 680 00:33:08,674 --> 00:33:09,465 Ábendingum eru frábær. 681 00:33:09,465 --> 00:33:11,581 682 00:33:11,581 --> 00:33:13,580 Þeir taka smá að vefja höfðinu í kring. 683 00:33:13,580 --> 00:33:15,288 Þetta er annað árið mitt kennslu ábendingum. 684 00:33:15,288 --> 00:33:16,850 Og ég held að ég fékk loksins það. 685 00:33:16,850 --> 00:33:18,650 Þannig að ef þú baráttu, er það í lagi. 686 00:33:18,650 --> 00:33:19,940 687 00:33:19,940 --> 00:33:24,070 Eins og ég sagði áður, teikna myndir hjálpar mikið með hlutum í CS, 688 00:33:24,070 --> 00:33:27,400 eins mikið og ég held að fólk hafa tilhneigingu að hugsa ó, við erum í tölvunni. 689 00:33:27,400 --> 00:33:28,399 Við ættum bara númer. 690 00:33:28,399 --> 00:33:30,190 No-- teikna myndir mun virkilega hjálpa þér. 691 00:33:30,190 --> 00:33:32,773 Og ég hvet virkilega að tappa inn kindergartner hlið 692 00:33:32,773 --> 00:33:35,010 og koma út vaxlitir eða merki og teikna. 693 00:33:35,010 --> 00:33:36,110 Vegna þess að það mun hjálpa þér. 694 00:33:36,110 --> 00:33:39,380 Og ef þú sérð mig á skrifstofutíma, I muni bera kringum stafla af pappír 695 00:33:39,380 --> 00:33:41,580 með penna teikna það út. 696 00:33:41,580 --> 00:33:44,370 >> Svo sérstaklega með pointers-- teikna myndir. 697 00:33:44,370 --> 00:33:47,970 Og ég er viss um að við erum í raun að fara að vera teikna nokkrar myndir hér líka. 698 00:33:47,970 --> 00:33:51,270 >> Svo þú krakkar fékk alla að sjá Binky, This kaldur claymation hlutur. 699 00:33:51,270 --> 00:33:54,720 Og við teljum að það er mjög fyndið þegar hann springur í fullt af stykki. 700 00:33:54,720 --> 00:33:56,280 701 00:33:56,280 --> 00:33:57,755 Það er einhver grínisti léttir fyrir bekknum. 702 00:33:57,755 --> 00:34:02,140 703 00:34:02,140 --> 00:34:05,900 C [inaudible] þessi mikli getu til að vera fær um að stjórna minni. 704 00:34:05,900 --> 00:34:10,090 Og það er eitt af því sem raunverulega gerir það svo öflugur tungumál. 705 00:34:10,090 --> 00:34:13,469 En með miklum mætti ​​fylgir mikil ábyrgð. 706 00:34:13,469 --> 00:34:16,230 Og brjálaður hlutir geta gerst ef þú ert ekki varkár. 707 00:34:16,230 --> 00:34:18,560 Svo þegar þú ert að nota ábendingum, þú vilt gera 708 00:34:18,560 --> 00:34:21,440 viss um að þú skiljir virkilega nákvæmlega það sem þú ert að gera. 709 00:34:21,440 --> 00:34:25,530 Vonandi næsta lítill hluti af tími mun hjálpa þér að skilja raunverulega 710 00:34:25,530 --> 00:34:27,850 ábendingum, hvernig á að nota þá, og hvernig á að vinna þá. 711 00:34:27,850 --> 00:34:29,170 712 00:34:29,170 --> 00:34:33,460 >> Svo memory-- ég viss um að við höfum séð þessa skýringarmynd áður. 713 00:34:33,460 --> 00:34:38,540 Svo er þetta bara einföld skýringarmynd af hvernig væri að vera geymd minni. 714 00:34:38,540 --> 00:34:43,145 Svo þú ert í rauninni þessir gríðarstór fylki af eitt bæti blokkir 715 00:34:43,145 --> 00:34:46,000 er það sem við höfum here-- smávægileg þrepum í hvert skipti. 716 00:34:46,000 --> 00:34:51,810 Þetta er í álög [inaudible] svo átta bita blokkir. 717 00:34:51,810 --> 00:34:55,510 Og hvert blokk tengist með nokkrum sextánskur heimilisfang. 718 00:34:55,510 --> 00:34:58,750 Þannig að ef þú alltaf sjá 0x, það er bara notating 719 00:34:58,750 --> 00:35:00,670 að það er a sextánskur netfang. 720 00:35:00,670 --> 00:35:03,970 Þú getur tekið þetta þýðir sumir heimilisfang í minni. 721 00:35:03,970 --> 00:35:06,935 Við erum að tala um minni heimilisföng þegar þú sérð sextánskur. 722 00:35:06,935 --> 00:35:10,420 723 00:35:10,420 --> 00:35:14,630 >> Við höfum ints eru breytur, flotholt eru breytur sem geyma. 724 00:35:14,630 --> 00:35:16,260 Svo ints geyma ints. 725 00:35:16,260 --> 00:35:17,430 Flotholt Store fljóta. 726 00:35:17,430 --> 00:35:20,260 Þannig að við höfum einnig ábendingum sem geyma minni heimilisföng. 727 00:35:20,260 --> 00:35:21,660 Það er eins konar kortlagning. 728 00:35:21,660 --> 00:35:24,240 Ábendingum eingöngu fyrir minni viðtakandi. 729 00:35:24,240 --> 00:35:25,780 730 00:35:25,780 --> 00:35:27,292 Svo er það eins og tegund þar. 731 00:35:27,292 --> 00:35:29,550 732 00:35:29,550 --> 00:35:34,470 Búnaðurinn er 32-bita, sem þýðir að minni þitt er fjögur bæti. 733 00:35:34,470 --> 00:35:37,830 Svo allir bendi að þú hafir er líka að fara að vera fjórir bytes. 734 00:35:37,830 --> 00:35:43,200 Eða annars ef það er fjórum bytes, minni er fjögur bæti. 735 00:35:43,200 --> 00:35:44,790 Ábendingum geyma minni. 736 00:35:44,790 --> 00:35:46,430 Því þá eru þeir fjórum bæti. 737 00:35:46,430 --> 00:35:48,460 Cool-- langar bara að styrkja það. 738 00:35:48,460 --> 00:35:50,120 739 00:35:50,120 --> 00:35:52,220 >> Þú ættir að fá þetta grínisti núna. 740 00:35:52,220 --> 00:35:55,040 Ég veit ekki hversu mörg ykkar eru XKCD fans, en ég elska XKCD. 741 00:35:55,040 --> 00:35:55,780 Það er frábært. 742 00:35:55,780 --> 00:35:57,290 743 00:35:57,290 --> 00:35:57,790 >> Allt í lagi. 744 00:35:57,790 --> 00:36:01,640 Svo búa pointers-- eins og ég sagði, það er ansi mikið bara eins og allt annað. 745 00:36:01,640 --> 00:36:02,930 Þú ert með tegund. 746 00:36:02,930 --> 00:36:04,050 Þú ert með nafn. 747 00:36:04,050 --> 00:36:04,810 Hægri? 748 00:36:04,810 --> 00:36:10,410 Það er það sem við höfum þar. [? Hex?] Stjörnu þýðir að það er a músina, 749 00:36:10,410 --> 00:36:12,250 og þá hvað þú vilt kalla það. 750 00:36:12,250 --> 00:36:15,770 Svo gerð táknar hvað þú getur geymt. 751 00:36:15,770 --> 00:36:16,850 752 00:36:16,850 --> 00:36:17,990 Allt í lagi? 753 00:36:17,990 --> 00:36:24,350 Á sama hátt að ef við gerum ints, við vitum að við erum að geyma við int þar. 754 00:36:24,350 --> 00:36:25,990 755 00:36:25,990 --> 00:36:30,280 Með músina, það heldur minni heimilisfang. 756 00:36:30,280 --> 00:36:34,240 En hvað það þýðir er that-- hér er þar teikning er að fara að koma sér vel. 757 00:36:34,240 --> 00:36:36,170 758 00:36:36,170 --> 00:36:45,980 Svo í þessu tilfelli, höfum við sumir value-- segjum fjórir. 759 00:36:45,980 --> 00:36:49,306 Fjögur er tekið einn. 760 00:36:49,306 --> 00:36:49,805 OK? 761 00:36:49,805 --> 00:36:51,550 762 00:36:51,550 --> 00:36:56,170 >> Þetta fyrsta er hér að það er bendi 2x. 763 00:36:56,170 --> 00:36:56,740 Hægri? 764 00:36:56,740 --> 00:36:57,628 Það er einhver bendi x. 765 00:36:57,628 --> 00:36:58,852 766 00:36:58,852 --> 00:37:00,940 x getur verið eitthvað, hvað sem er. 767 00:37:00,940 --> 00:37:01,960 768 00:37:01,960 --> 00:37:05,130 Whatever x is-- segja X er fjórir. 769 00:37:05,130 --> 00:37:07,280 Það er að fara til að geyma minni heimilisfang hér. 770 00:37:07,280 --> 00:37:12,260 Svo Int, stjarna, x-- þetta er einhver önnur rifa memory-- 771 00:37:12,260 --> 00:37:13,590 hver veit hvað þetta er. 772 00:37:13,590 --> 00:37:15,430 En það er að fara að geyma netfang hér. 773 00:37:15,430 --> 00:37:27,040 Þannig að þetta væri like-- í þessu tilfelli, Whatever, 774 00:37:27,040 --> 00:37:32,630 er geymt við 0x1-- hvað sem er geymt á það heimilisfang sem bendillinn okkar heldur, 775 00:37:32,630 --> 00:37:35,280 þarf að passa upp með það sem við höfum tilnefnt. 776 00:37:35,280 --> 00:37:40,330 Svo, í þessu tilfelli, þetta er x á 0x1. 777 00:37:40,330 --> 00:37:42,500 778 00:37:42,500 --> 00:37:49,340 Þetta getur bara alltaf verið int meðan við erum að nota þetta. 779 00:37:49,340 --> 00:37:52,950 >> Sama hátt, ef við höfum annar 1y, hvað 780 00:37:52,950 --> 00:37:59,130 netfang er geymt með Y hefur að vera char-- sama með z. 781 00:37:59,130 --> 00:38:05,840 Á sama hátt, þegar þú reyna og gera intx jafngildir 0,4, 782 00:38:05,840 --> 00:38:09,275 það er að fara að æpa á þig og vera eins og enginn, þú sagðir að þú vildir við int. 783 00:38:09,275 --> 00:38:10,525 Þetta er ætlað að vera int. 784 00:38:10,525 --> 00:38:11,900 Hætta að reyna að gera það fljóta. 785 00:38:11,900 --> 00:38:14,150 >> Svo láta hlutina vera það sem þeir vilja vera. 786 00:38:14,150 --> 00:38:15,159 787 00:38:15,159 --> 00:38:16,200 Láta hlutina vera sig. 788 00:38:16,200 --> 00:38:19,380 789 00:38:19,380 --> 00:38:23,450 Svo er stór hlutur bara hvað tegund af músina 790 00:38:23,450 --> 00:38:26,101 það er, það er eina sem þú getur geymt þar. 791 00:38:26,101 --> 00:38:26,600 OK? 792 00:38:26,600 --> 00:38:27,910 793 00:38:27,910 --> 00:38:31,160 Með æfingu, eins og með í síðustu viku, allt 794 00:38:31,160 --> 00:38:32,817 virðist í raun eins konar ágrip. 795 00:38:32,817 --> 00:38:34,150 Við erum að fara að gera sumir æfa. 796 00:38:34,150 --> 00:38:36,760 Það ætti að gera meira vit. 797 00:38:36,760 --> 00:38:44,580 >> Svo vísa og dereferencing-- það er mjög mikilvægt að fá þetta beint. 798 00:38:44,580 --> 00:38:46,630 Ég á eftir að hressa sérhver nú og þá. 799 00:38:46,630 --> 00:38:48,450 Og ég er eins og bíða, hver einn gera ég vil? 800 00:38:48,450 --> 00:38:56,080 Svo ampersand vilja raunverulega gefa þú tilvísun eða heimilisfangi. 801 00:38:56,080 --> 00:39:00,100 Svo það skilar heimilisfang í minni sem breyta er geymt. 802 00:39:00,100 --> 00:39:01,170 803 00:39:01,170 --> 00:39:07,020 Svo það er að fara að í raun að fara aftur til þín a sextánskur en dereferencing það 804 00:39:07,020 --> 00:39:10,641 er í raun að fara að gefa þér gögn sem eru geymd þar. 805 00:39:10,641 --> 00:39:11,140 OK? 806 00:39:11,140 --> 00:39:12,680 807 00:39:12,680 --> 00:39:16,060 Þannig að við erum að fara að líta á dæmi mjög hratt, eða í raun upp við hliðina. 808 00:39:16,060 --> 00:39:18,050 809 00:39:18,050 --> 00:39:19,150 >> OK. 810 00:39:19,150 --> 00:39:21,790 Þannig að við verðum að hugsa í raun vandlega um þetta. 811 00:39:21,790 --> 00:39:23,860 Svo hér höfum við einhverja heiltölu x. 812 00:39:23,860 --> 00:39:26,485 Ég ætla að reyna og draga þetta út eftir bestu getu mína. 813 00:39:26,485 --> 00:39:30,230 814 00:39:30,230 --> 00:39:32,410 Þannig að við erum að fara að hafa þetta rifa x. 815 00:39:32,410 --> 00:39:35,850 816 00:39:35,850 --> 00:39:37,315 Og það er að geyma fimm. 817 00:39:37,315 --> 00:39:38,640 818 00:39:38,640 --> 00:39:40,090 Netfang hennar er 0x4. 819 00:39:40,090 --> 00:39:41,920 820 00:39:41,920 --> 00:39:43,160 Cool? 821 00:39:43,160 --> 00:39:44,100 Allt gott. 822 00:39:44,100 --> 00:39:45,470 >> Svo nú höfum við þetta músina. 823 00:39:45,470 --> 00:39:46,916 824 00:39:46,916 --> 00:39:47,990 Það var hérna. 825 00:39:47,990 --> 00:39:52,130 826 00:39:52,130 --> 00:39:57,560 Og ampersand gefur okkur Heimilisfang eitthvað. 827 00:39:57,560 --> 00:40:00,780 Svo, í þessu tilfelli, það er veffang x. 828 00:40:00,780 --> 00:40:01,875 Hvað er heimilisfang x? 829 00:40:01,875 --> 00:40:05,660 830 00:40:05,660 --> 00:40:12,590 04-- og þetta bendillinn er 0x08. 831 00:40:12,590 --> 00:40:14,490 832 00:40:14,490 --> 00:40:14,990 Cool? 833 00:40:14,990 --> 00:40:16,570 834 00:40:16,570 --> 00:40:21,570 Svo er hægt að hugsa um þetta músina, 04, bara bendir hérna. 835 00:40:21,570 --> 00:40:22,840 836 00:40:22,840 --> 00:40:25,740 Og þeir eru kallaðir ábendingum því eins og við fá meira inn í þetta, 837 00:40:25,740 --> 00:40:28,450 þú ert að fara að sjá sem bendir til hlutur. 838 00:40:28,450 --> 00:40:31,470 Og ein húsaröð bendir til annars blokk mun gera a einhver fjöldi meira vit. 839 00:40:31,470 --> 00:40:32,760 840 00:40:32,760 --> 00:40:33,890 Svo hér eru tveir. 841 00:40:33,890 --> 00:40:38,230 Og þá höfum við nokkur afrita, sem er what-- 0x0c. 842 00:40:38,230 --> 00:40:41,290 843 00:40:41,290 --> 00:40:43,420 Og það er að fara til dereference músina okkar. 844 00:40:43,420 --> 00:40:46,790 >> Svo hvað það er að segja er OK, hér er bendill okkar. 845 00:40:46,790 --> 00:40:53,090 Gildið það geymir er 0x04, og hvað það er að segja er að fara á þetta netfang 846 00:40:53,090 --> 00:40:54,300 og segðu mér hvað er í henni. 847 00:40:54,300 --> 00:40:55,520 848 00:40:55,520 --> 00:40:57,710 Svo er það í raun hvað þetta arrow er að gera. 849 00:40:57,710 --> 00:40:58,750 850 00:40:58,750 --> 00:41:01,280 Þú getur hugsað þetta eins stjörnu þína. 851 00:41:01,280 --> 00:41:05,410 Svo OK, þegar við gerum stjörnu, þýðir það fylgja. 852 00:41:05,410 --> 00:41:06,810 Fara á þetta heimilisfang. 853 00:41:06,810 --> 00:41:11,430 Og það er í rauninni bara eftir Þessi ör við þessa minni klumpur. 854 00:41:11,430 --> 00:41:15,380 Og gefa okkur hvað er í henni, sem er 5. 855 00:41:15,380 --> 00:41:18,840 Það er hvers vegna okkar eintak er jafnt og 5. 856 00:41:18,840 --> 00:41:20,120 Er að skynsamleg? 857 00:41:20,120 --> 00:41:22,769 Hefur einhver þurft mig til að fara í gegnum þetta aftur, eða hægar? 858 00:41:22,769 --> 00:41:24,560 Þú vilt að ég fari gegnum það einu sinni? 859 00:41:24,560 --> 00:41:25,060 OK. 860 00:41:25,060 --> 00:41:27,549 861 00:41:27,549 --> 00:41:28,840 Við erum að fara að uppkast það aftur. 862 00:41:28,840 --> 00:41:31,930 863 00:41:31,930 --> 00:41:37,205 Þegar við byrjum, sammála við öll að við höfum sumir klumpur af minni sem er breytilegt 864 00:41:37,205 --> 00:41:40,890 x sem við sett jafnt og 5. 865 00:41:40,890 --> 00:41:42,910 Við stjórn ekki þar sem það er í minni. 866 00:41:42,910 --> 00:41:45,520 Þannig að þessi blettur er bara geðþótta úthlutað. 867 00:41:45,520 --> 00:41:47,770 868 00:41:47,770 --> 00:41:48,731 Good þarna? 869 00:41:48,731 --> 00:41:49,230 OK. 870 00:41:49,230 --> 00:41:50,420 871 00:41:50,420 --> 00:41:53,330 Þá erum við frumstilla bendi heiltala. 872 00:41:53,330 --> 00:41:56,900 Það er hvers vegna það er leyft að benda á x vegna þess að við höfum við int hérna. 873 00:41:56,900 --> 00:42:00,840 Við höfum annað klumpur minni því þetta bendi 874 00:42:00,840 --> 00:42:03,485 er breytilegt bara eins og allt annað. 875 00:42:03,485 --> 00:42:06,615 Það er geðþótta úthlutað sumir pláss í minni. 876 00:42:06,615 --> 00:42:07,630 877 00:42:07,630 --> 00:42:10,830 Og hvað það geymir er heimilisfang x. 878 00:42:10,830 --> 00:42:13,200 Merkið þýðir heimilisfang x. 879 00:42:13,200 --> 00:42:14,575 Svo er það sem heimilisfang x? 880 00:42:14,575 --> 00:42:19,179 881 00:42:19,179 --> 00:42:20,614 >> Áhorfendur: Það er zero-- 882 00:42:20,614 --> 00:42:21,280 Ræðumaður 1: 0x04. 883 00:42:21,280 --> 00:42:24,350 884 00:42:24,350 --> 00:42:25,940 Svo then-- síðasta. 885 00:42:25,940 --> 00:42:30,650 Við höfum einhverja copy-- aftur bara annað breytu. 886 00:42:30,650 --> 00:42:32,520 Svo skulum úthluta sumir handahófi stað. 887 00:42:32,520 --> 00:42:35,260 888 00:42:35,260 --> 00:42:38,080 Og við dereference músina okkar. 889 00:42:38,080 --> 00:42:42,490 Stjarnan muni fara til netfang geymd í músina mína. 890 00:42:42,490 --> 00:42:44,480 Segðu mér hvað er þarna. 891 00:42:44,480 --> 00:42:47,290 Svo heimilisfang geymd í músina okkar er 0x04. 892 00:42:47,290 --> 00:42:49,070 893 00:42:49,070 --> 00:42:51,310 Svo við förum á þetta netfang. 894 00:42:51,310 --> 00:42:52,402 895 00:42:52,402 --> 00:42:54,590 Það er benda á þetta netfang. 896 00:42:54,590 --> 00:42:57,481 Hvað er inni þessa minni blokk? 897 00:42:57,481 --> 00:42:57,980 Það er a fimm. 898 00:42:57,980 --> 00:42:59,210 899 00:42:59,210 --> 00:43:01,650 Svo er það það sem við framselja okkar eintak. 900 00:43:01,650 --> 00:43:03,430 901 00:43:03,430 --> 00:43:04,860 Allir góður? 902 00:43:04,860 --> 00:43:05,360 Cool. 903 00:43:05,360 --> 00:43:07,010 904 00:43:07,010 --> 00:43:08,330 Again-- myndir. 905 00:43:08,330 --> 00:43:19,750 906 00:43:19,750 --> 00:43:25,200 >> Svo rekja gildin here-- ég er fara að láta ykkur hugsa um þetta. 907 00:43:25,200 --> 00:43:26,550 908 00:43:26,550 --> 00:43:27,750 Við getum teiknað aðra mynd. 909 00:43:27,750 --> 00:43:31,260 En ég vil að þú að reyna og ástæða gegnum þetta á eigin spýtur fyrir eina mínútu. 910 00:43:31,260 --> 00:44:01,430 911 00:44:01,430 --> 00:44:04,149 >> Þar sem þeir vildu ekki gefa okkur dæmi heimilisfang, 912 00:44:04,149 --> 00:44:06,940 Ég ætla bara að fara að gera merkið x-- sem ætti að hjálpa keyra hana heim. 913 00:44:06,940 --> 00:44:07,950 Merkið þýðir heimilisfang. 914 00:44:07,950 --> 00:44:09,540 915 00:44:09,540 --> 00:44:12,360 >> Svo í fyrstu, allir fara með í fyrstu línunni. 916 00:44:12,360 --> 00:44:15,690 Sumir x sett er five-- sumir handahófi rifa í minni. 917 00:44:15,690 --> 00:44:17,660 918 00:44:17,660 --> 00:44:23,200 Int stjörnu bendillinn er jöfn á heimilisfang X, ekki satt? 919 00:44:23,200 --> 00:44:28,180 Int stjörnu bendillinn skapar þessi blokk, kalla það Pointer, 920 00:44:28,180 --> 00:44:30,650 og gefur það á heimilisfang x. 921 00:44:30,650 --> 00:44:32,750 922 00:44:32,750 --> 00:44:34,230 Ég er hræðileg í -merkið. 923 00:44:34,230 --> 00:44:36,460 924 00:44:36,460 --> 00:44:40,550 >> Nú hvað við erum að gera er að við segjum OK, dereference músina okkar. 925 00:44:40,550 --> 00:44:42,760 Svo við förum í lagi, hvað er í músina okkar? 926 00:44:42,760 --> 00:44:44,820 Það er ampersand x. 927 00:44:44,820 --> 00:44:49,400 Fara á merkið x og breyta henni. 928 00:44:49,400 --> 00:44:51,620 929 00:44:51,620 --> 00:44:57,480 >> Svo nú, ampersand X er að fara að vera 35. 930 00:44:57,480 --> 00:45:01,540 931 00:45:01,540 --> 00:45:05,174 Svo í rauninni, þegar þú ert dereferencing, þú ferð OK. 932 00:45:05,174 --> 00:45:07,090 Þú ert að fara að vera að teikna Myndir eins og þetta. 933 00:45:07,090 --> 00:45:09,423 Þú ert að fara að vera að teikna Örvar þínar á hvar það er. 934 00:45:09,423 --> 00:45:16,030 Svo fara á þetta rifa minni og annaðhvort gefa mér að gildi aftur, eða breyta henni. 935 00:45:16,030 --> 00:45:21,620 Í þessu tilfelli, vegna þess að við erum á þessu gildi, við erum framselja það til að vera 35. 936 00:45:21,620 --> 00:45:24,700 En í síðasta einn, ef þú tekur eftir, við 937 00:45:24,700 --> 00:45:27,680 voru framselja það sem var hér til að eitthvað annað. 938 00:45:27,680 --> 00:45:30,450 939 00:45:30,450 --> 00:45:32,245 >> Svo þeir hafa þetta frábæra borð. 940 00:45:32,245 --> 00:45:35,000 941 00:45:35,000 --> 00:45:36,890 Það er ekki svo slæmt. 942 00:45:36,890 --> 00:45:37,970 Þú krakkar vinna á það. 943 00:45:37,970 --> 00:45:39,640 Ég ætla að draga það út á borðinu. 944 00:45:39,640 --> 00:45:41,306 Við erum að fara að fylla það út saman, OK? 945 00:45:41,306 --> 00:45:42,290 946 00:45:42,290 --> 00:45:45,530 Svo grípa sumir pappír, grípa samstarfsaðili, byrja að vinna. 947 00:45:45,530 --> 00:45:53,897 948 00:45:53,897 --> 00:45:55,605 Ég ætla að fá a stærri stykki af Kalksteinn. 949 00:45:55,605 --> 00:45:56,624 950 00:45:56,624 --> 00:45:58,150 Vegna þess að það er að fara til vera a einhver fjöldi. 951 00:45:58,150 --> 00:45:59,410 952 00:45:59,410 --> 00:45:59,910 OK. 953 00:45:59,910 --> 00:48:08,567 954 00:48:08,567 --> 00:48:09,150 PROFESSOR: OK. 955 00:48:09,150 --> 00:48:11,599 956 00:48:11,599 --> 00:48:12,890 Við skulum byrja á fyrstu röðinni. 957 00:48:12,890 --> 00:48:14,070 958 00:48:14,070 --> 00:48:16,970 Við munum byrja þar, þá krakkar getur kannski vinna með meira. 959 00:48:16,970 --> 00:48:17,870 OK. 960 00:48:17,870 --> 00:48:19,810 a jafngildir b sinnum c svo hvað er a? 961 00:48:19,810 --> 00:48:21,420 962 00:48:21,420 --> 00:48:23,260 Það er ekki bragð spurning, ég lofa. 963 00:48:23,260 --> 00:48:24,440 >> Námsmaður: 4 sinnum 5. 964 00:48:24,440 --> 00:48:25,420 >> PROFESSOR: 4 sinnum 5. 965 00:48:25,420 --> 00:48:25,920 20. 966 00:48:25,920 --> 00:48:26,730 Svo er það b? 967 00:48:26,730 --> 00:48:27,921 968 00:48:27,921 --> 00:48:28,420 Nemandi: 4. 969 00:48:28,420 --> 00:48:30,204 970 00:48:30,204 --> 00:48:31,043 >> PROFESSOR: Og c? 971 00:48:31,043 --> 00:48:31,542 Nemandi: 5. 972 00:48:31,542 --> 00:48:32,083 PROFESSOR: 5. 973 00:48:32,083 --> 00:48:35,960 Og þá er þetta er bara að fara að að merkið upp, merkið B, 974 00:48:35,960 --> 00:48:38,575 ampersand c, ekki satt? 975 00:48:38,575 --> 00:48:39,728 976 00:48:39,728 --> 00:48:40,596 Ekki slæmt. 977 00:48:40,596 --> 00:48:42,081 Það er nógu einfalt. 978 00:48:42,081 --> 00:48:42,580 OK. 979 00:48:42,580 --> 00:48:44,300 Svo the næstur einn. 980 00:48:44,300 --> 00:48:48,725 A jafngildir sinnum c, ef einhver var ókunnur með það. 981 00:48:48,725 --> 00:48:49,812 982 00:48:49,812 --> 00:48:53,300 Er allir þekki við sinnum jafnt? 983 00:48:53,300 --> 00:49:00,105 OK, allt þetta means-- þetta er shorthand fyrir jafngildir sinnum c. 984 00:49:00,105 --> 00:49:04,840 Þú getur líka gert það með skiptingu, með viðbót, með Frádráttur. 985 00:49:04,840 --> 00:49:12,130 Þú getur gert jafn, eða plús jafngildir c merkir jafngildir plús c, mínus jöfn 986 00:49:12,130 --> 00:49:15,190 c væri jafngildir mínus c. 987 00:49:15,190 --> 00:49:16,690 Það er bara nokkur dæmi um setningarleg sykur. 988 00:49:16,690 --> 00:49:19,380 989 00:49:19,380 --> 00:49:24,140 >> Svo, í þessu tilfelli, a er jöfn sinnum c myndi gefa okkur hvað? 990 00:49:24,140 --> 00:49:25,910 991 00:49:25,910 --> 00:49:28,186 Aftur, ekki bragð spurning. 992 00:49:28,186 --> 00:49:28,965 >> Nemandi: 100. 993 00:49:28,965 --> 00:49:29,300 >> PROFESSOR: 100. 994 00:49:29,300 --> 00:49:30,383 Er nokkuð annað að breyta? 995 00:49:30,383 --> 00:49:31,790 996 00:49:31,790 --> 00:49:32,290 No. 997 00:49:32,290 --> 00:49:37,380 998 00:49:37,380 --> 00:49:39,850 Kannski mun ég loksins fá betri í -merkið mínum. 999 00:49:39,850 --> 00:49:42,047 >> Námsmaður: OK, fyrirgefðu, hvernig fékkstu 100? 1000 00:49:42,047 --> 00:49:42,630 PROFESSOR: OK. 1001 00:49:42,630 --> 00:49:46,594 Svo er a jafn og a sinnum c, svo sinni c. 1002 00:49:46,594 --> 00:49:48,510 Nemandi: Oh, þú ert að nota a fyrir previous-- 1003 00:49:48,510 --> 00:49:49,135 PROFESSOR: Já. 1004 00:49:49,135 --> 00:49:51,450 Svo þetta eru nýjustu gildi okkar. 1005 00:49:51,450 --> 00:49:53,990 Þetta eru það sem þú ættir að vera nota eins og við fara niður, OK. 1006 00:49:53,990 --> 00:49:57,290 1007 00:49:57,290 --> 00:50:01,520 Svo, b er það eina breytast, ekki satt? 1008 00:50:01,520 --> 00:50:02,910 Svo skulum fylla í allt annað. 1009 00:50:02,910 --> 00:50:09,110 1010 00:50:09,110 --> 00:50:11,330 B. Hvað er b að fara að vera? 1011 00:50:11,330 --> 00:50:13,020 1012 00:50:13,020 --> 00:50:14,140 Að vera eða ekki vera. 1013 00:50:14,140 --> 00:50:18,680 1014 00:50:18,680 --> 00:50:20,240 Svo hvað er þetta að gera? 1015 00:50:20,240 --> 00:50:21,605 Hvað er stjarna PA gera? 1016 00:50:21,605 --> 00:50:23,280 1017 00:50:23,280 --> 00:50:25,350 >> Nemandi: Kóði til staðsetningu pa. 1018 00:50:25,350 --> 00:50:26,390 1019 00:50:26,390 --> 00:50:27,480 >> Nemandi: Nei, ekki alveg. 1020 00:50:27,480 --> 00:50:29,470 Þannig að þetta er d tilvísun. 1021 00:50:29,470 --> 00:50:31,580 >> Nemandi: Svo er b hönd gildi pa. 1022 00:50:31,580 --> 00:50:37,340 >> PROFESSOR: Já, svo er ári veffang, ekki satt? 1023 00:50:37,340 --> 00:50:42,430 Svo það er að segja að fara þangað sem a er geymd og gefa það að gildi. 1024 00:50:42,430 --> 00:50:43,884 Svo er það b? 1025 00:50:43,884 --> 00:50:44,425 Nemandi: 100. 1026 00:50:44,425 --> 00:50:46,534 PROFESSOR: 100. 1027 00:50:46,534 --> 00:50:47,450 Perfect. 1028 00:50:47,450 --> 00:50:49,879 OK, svo tölvunni er það sem er að breytast. 1029 00:50:49,879 --> 00:50:51,170 Allt annað er óbreytt. 1030 00:50:51,170 --> 00:50:57,160 1031 00:50:57,160 --> 00:50:58,620 Hvað er Einkatölva að fara að vera? 1032 00:50:58,620 --> 00:51:00,770 1033 00:51:00,770 --> 00:51:01,580 Einföld verkefni. 1034 00:51:01,580 --> 00:51:03,520 1035 00:51:03,520 --> 00:51:05,990 Pc er jafn pa, og hvað er ári? 1036 00:51:05,990 --> 00:51:07,049 >> Nemandi: merkið a. 1037 00:51:07,049 --> 00:51:07,840 PROFESSOR: Perfect. 1038 00:51:07,840 --> 00:51:09,490 1039 00:51:09,490 --> 00:51:10,740 Nú við erum að fá áhugavert. 1040 00:51:10,740 --> 00:51:12,310 1041 00:51:12,310 --> 00:51:15,230 OK, við skulum brjóta þetta einn niður. 1042 00:51:15,230 --> 00:51:21,110 Fyrst, hvað er b sinnum c, því það er auðvelt að hluta af þessu einn, ekki satt? 1043 00:51:21,110 --> 00:51:22,360 B sinnum c is-- 1044 00:51:22,360 --> 00:51:23,320 >> Nemandi: 500. 1045 00:51:23,320 --> 00:51:28,880 >> PROFESSOR: Já, svo hvað er þetta eina að gera, 1046 00:51:28,880 --> 00:51:33,705 Ef það er stjörnu Pb, hvað er að breytast? 1047 00:51:33,705 --> 00:51:35,320 1048 00:51:35,320 --> 00:51:37,242 >> Nemandi: Hvað er í the-- 1049 00:51:37,242 --> 00:51:38,200 PROFESSOR: Hvað er í b? 1050 00:51:38,200 --> 00:51:41,340 Nemandi: Hvað er í rýminu sem PB er bendir til. 1051 00:51:41,340 --> 00:51:43,406 PROFESSOR: Og PB snúi to-- 1052 00:51:43,406 --> 00:51:43,905 STUDENT: B. 1053 00:51:43,905 --> 00:51:46,740 PROFESSOR: B. Svo eina hlutur breytast er b, ekki satt. 1054 00:51:46,740 --> 00:51:50,800 Svo b sinnum c, 500. 1055 00:51:50,800 --> 00:51:52,367 Svo það er það sem breytist nú. 1056 00:51:52,367 --> 00:51:59,091 1057 00:51:59,091 --> 00:51:59,590 Cool. 1058 00:51:59,590 --> 00:52:00,340 1059 00:52:00,340 --> 00:52:00,840 Lovely. 1060 00:52:00,840 --> 00:52:01,905 Þú krakkar eru að gera fínt. 1061 00:52:01,905 --> 00:52:03,650 1062 00:52:03,650 --> 00:52:06,740 Allt í lagi, brjóta þetta einn niður. 1063 00:52:06,740 --> 00:52:08,050 1064 00:52:08,050 --> 00:52:09,630 C er að breytast, ekki satt? 1065 00:52:09,630 --> 00:52:11,530 Þannig að við getum fyllt í allt annað. 1066 00:52:11,530 --> 00:52:12,540 1067 00:52:12,540 --> 00:52:13,205 Við skulum sjá. 1068 00:52:13,205 --> 00:52:19,125 1069 00:52:19,125 --> 00:52:19,625 OK. 1070 00:52:19,625 --> 00:52:21,420 1071 00:52:21,420 --> 00:52:24,740 Við vitum að C er að fara til vera the margfeldi tveggja talna, ekki satt? 1072 00:52:24,740 --> 00:52:26,290 1073 00:52:26,290 --> 00:52:27,980 Hvað tvær tölur, þó? 1074 00:52:27,980 --> 00:52:28,970 >> Nemandi: A og c? 1075 00:52:28,970 --> 00:52:31,930 >> PROFESSOR: Svo er rétt fyrir það fyrsta. 1076 00:52:31,930 --> 00:52:34,385 Þannig að við erum d tilvísun p með, ekki satt? 1077 00:52:34,385 --> 00:52:35,390 1078 00:52:35,390 --> 00:52:42,870 P með stig til a, þannig að við vitum að þetta er að fara að vera 100 sinnum hvað? 1079 00:52:42,870 --> 00:52:46,232 Sinnum hvað vegna Einkatölva benda til? 1080 00:52:46,232 --> 00:52:47,410 1081 00:52:47,410 --> 00:52:48,740 Benda til a. 1082 00:52:48,740 --> 00:52:55,038 Svo er 100 sinnum 100 10.000. 1083 00:52:55,038 --> 00:52:56,170 Er það er vit? 1084 00:52:56,170 --> 00:52:57,640 1085 00:52:57,640 --> 00:52:58,200 Cool. 1086 00:52:58,200 --> 00:53:00,500 Home teygja, krakkar, síðasta röðin. 1087 00:53:00,500 --> 00:53:01,190 OK. 1088 00:53:01,190 --> 00:53:02,160 Hvaða breytingar hér? 1089 00:53:02,160 --> 00:53:05,640 1090 00:53:05,640 --> 00:53:06,935 >> STUDENT: A. 1091 00:53:06,935 --> 00:53:09,435 PROFESSOR: A. Perfect, svo allt annað er hægt að vera það sama. 1092 00:53:09,435 --> 00:53:16,210 1093 00:53:16,210 --> 00:53:16,710 OK. 1094 00:53:16,710 --> 00:53:17,970 Og hvað er a? 1095 00:53:17,970 --> 00:53:23,610 1096 00:53:23,610 --> 00:53:26,060 Svo er það sinnum hvað? 1097 00:53:26,060 --> 00:53:27,120 Þetta er stjarna PB. 1098 00:53:27,120 --> 00:53:29,750 1099 00:53:29,750 --> 00:53:34,490 Svo stjörnu PB þýðir hér er PB, PB stig til b. 1100 00:53:34,490 --> 00:53:35,370 >> Nemandi: 500. 1101 00:53:35,370 --> 00:53:36,230 >> PROFESSOR: 500. 1102 00:53:36,230 --> 00:53:39,236 Þannig að við höfum 500 sinnum 100. 1103 00:53:39,236 --> 00:53:41,758 Það er 50.000. 1104 00:53:41,758 --> 00:53:43,216 Whew! 1105 00:53:43,216 --> 00:53:45,646 Horfðu á það. 1106 00:53:45,646 --> 00:53:47,982 >> Nemandi: Hvers vegna eigum við á & c fyrir last-- 1107 00:53:47,982 --> 00:53:48,690 PROFESSOR: Sorry. 1108 00:53:48,690 --> 00:53:50,080 Nemandi: Oh, OK. 1109 00:53:50,080 --> 00:53:51,600 PROFESSOR: slæmt mín. 1110 00:53:51,600 --> 00:53:52,890 Fullt af að skrifa. 1111 00:53:52,890 --> 00:53:53,917 1112 00:53:53,917 --> 00:53:54,500 Allir góður? 1113 00:53:54,500 --> 00:53:55,630 1114 00:53:55,630 --> 00:53:56,660 Ekki of slæmt, ekki satt? 1115 00:53:56,660 --> 00:53:58,490 Bara tekur smá en að vinna í gegnum. 1116 00:53:58,490 --> 00:54:01,080 Ef þú brýtur það niður, skilja hvað hver hluti 1117 00:54:01,080 --> 00:54:03,197 er vísað to-- eins með allt sem hún er, 1118 00:54:03,197 --> 00:54:05,780 yes-- brjóta það niður á litla vandamál og þá recombine, 1119 00:54:05,780 --> 00:54:07,345 og þú getur gert nokkrar ógnvekjandi efni. 1120 00:54:07,345 --> 00:54:08,970 Það eru svörin, en við gerðum það. 1121 00:54:08,970 --> 00:54:10,324 1122 00:54:10,324 --> 00:54:11,115 Pointer tölur. 1123 00:54:11,115 --> 00:54:13,961 1124 00:54:13,961 --> 00:54:14,460 Ah. 1125 00:54:14,460 --> 00:54:15,510 Hendur mínar eru chalky. 1126 00:54:15,510 --> 00:54:17,970 Svo að bæta við eða draga INT lagar músina 1127 00:54:17,970 --> 00:54:21,890 með því að stærð tegund músina. 1128 00:54:21,890 --> 00:54:22,940 1129 00:54:22,940 --> 00:54:28,390 Mundu hvernig sérhver tegund hefur mismunandi stærð? 1130 00:54:28,390 --> 00:54:34,890 Svo eins og a tvöfaldur eða lengi lengi er átta og INT er fjögur en bleikja er einn. 1131 00:54:34,890 --> 00:54:38,360 >> Svo hvað þú vilt gera is-- eitt að muna 1132 00:54:38,360 --> 00:54:44,080 er bara að hversu mikið ÞINN bendillinn gildi raun breytist 1133 00:54:44,080 --> 00:54:46,550 mun ráðast á tegund af músina það er. 1134 00:54:46,550 --> 00:54:50,820 1135 00:54:50,820 --> 00:54:51,820 Allir góður með þetta? 1136 00:54:51,820 --> 00:54:52,760 Get ég eytt það? 1137 00:54:52,760 --> 00:54:53,440 Við erum góður? 1138 00:54:53,440 --> 00:54:53,940 Ógnvekjandi. 1139 00:54:53,940 --> 00:55:01,020 1140 00:55:01,020 --> 00:55:07,501 >> Þannig að ef við höfum sumir bendi that-- þetta er að fara að be-- ég 1141 00:55:07,501 --> 00:55:08,834 fara að gera það int músina. 1142 00:55:08,834 --> 00:55:10,610 1143 00:55:10,610 --> 00:55:12,760 Það geymir þetta. 1144 00:55:12,760 --> 00:55:14,210 1145 00:55:14,210 --> 00:55:20,170 Ef þú varst að segja músina plús einn, hvað það er að fara að gera 1146 00:55:20,170 --> 00:55:23,420 er það er að fara að uppfæra það með stærð int 1147 00:55:23,420 --> 00:55:25,950 því það er tegund af músina það er. 1148 00:55:25,950 --> 00:55:28,260 >> Með C, allt er mjög ströng og skipulegur. 1149 00:55:28,260 --> 00:55:29,440 1150 00:55:29,440 --> 00:55:35,260 Int músina er að fara að uppfæra með því pláss int myndi taka. 1151 00:55:35,260 --> 00:55:36,260 Int er fjögur bæti. 1152 00:55:36,260 --> 00:55:37,650 1153 00:55:37,650 --> 00:55:39,060 >> Svo hvað myndi þetta breytast í? 1154 00:55:39,060 --> 00:55:40,876 1155 00:55:40,876 --> 00:55:44,390 Þú ert bara að bæta fjórum á þetta. 1156 00:55:44,390 --> 00:55:50,040 Nú bendillinn þinn myndi be-- OK. 1157 00:55:50,040 --> 00:55:51,820 1158 00:55:51,820 --> 00:55:55,380 >> Þannig að ef það var a bleikju og við gerðum músina plús einn, hvað myndi það nú vera? 1159 00:55:55,380 --> 00:56:00,300 1160 00:56:00,300 --> 00:56:03,330 Ef það started-- þykjast vér started-- núna það er 0x08. 1161 00:56:03,330 --> 00:56:04,850 1162 00:56:04,850 --> 00:56:10,850 Segjum nú að þetta var bleikju músina, og við bætt var við. 1163 00:56:10,850 --> 00:56:11,850 Hvað myndi það breyta til? 1164 00:56:11,850 --> 00:56:14,989 1165 00:56:14,989 --> 00:56:16,030 Hversu margir bytes er bleikju? 1166 00:56:16,030 --> 00:56:16,680 >> Áhorfendur: One. 1167 00:56:16,680 --> 00:56:17,304 >> Ræðumaður 1: One. 1168 00:56:17,304 --> 00:56:18,309 Áhorfendur: Svo 0x09. 1169 00:56:18,309 --> 00:56:19,600 Ræðumaður 1: Þannig að það væri níu. 1170 00:56:19,600 --> 00:56:22,571 1171 00:56:22,571 --> 00:56:23,820 Svo bara eitthvað að muna. 1172 00:56:23,820 --> 00:56:28,340 Bara þegar þú bæta við einum, er það ekki að bæta við einum nema það er a bleikju. 1173 00:56:28,340 --> 00:56:34,190 Það er að bæta hversu margir bæti þeirri gerð sem það er, 1174 00:56:34,190 --> 00:56:36,960 sem er ástæða þess að við höfum Jafnan hér. 1175 00:56:36,960 --> 00:56:40,190 Svo það er int sinnum stærð af gerð músina. 1176 00:56:40,190 --> 00:56:42,850 1177 00:56:42,850 --> 00:56:44,730 >> Þannig að við höfum dæmi um hér. 1178 00:56:44,730 --> 00:56:47,250 1179 00:56:47,250 --> 00:56:54,430 Y var úthlutað til að gildi, 0x4, Þegar við gerðum Y plús jafngildir einn. 1180 00:56:54,430 --> 00:56:56,830 Hvað er í það, hvað er í X, er ekki breytt. 1181 00:56:56,830 --> 00:56:58,610 Hvað breytist er það sem er í y. 1182 00:56:58,610 --> 00:57:04,980 Heimilisfangið geymd í Y uppfærður eftir fjórum vegna þess að það eru fjórir bytes í int 1183 00:57:04,980 --> 00:57:06,097 og það er int músina. 1184 00:57:06,097 --> 00:57:07,290 1185 00:57:07,290 --> 00:57:07,790 >> Allt í lagi. 1186 00:57:07,790 --> 00:57:09,123 Svo nú höfum við annað æfingu. 1187 00:57:09,123 --> 00:57:11,140 1188 00:57:11,140 --> 00:57:13,500 Svo er spurning hvað verður prentað. 1189 00:57:13,500 --> 00:57:36,710 1190 00:57:36,710 --> 00:57:37,650 Einhverjar hugmyndir? 1191 00:57:37,650 --> 00:57:41,690 1192 00:57:41,690 --> 00:57:43,699 >> Áhorfendur: Fjöldi stafir í Happy cat? 1193 00:57:43,699 --> 00:57:44,490 Ræðumaður 1: Einmitt. 1194 00:57:44,490 --> 00:57:45,531 Svo eins og með band þitt. 1195 00:57:45,531 --> 00:57:47,302 1196 00:57:47,302 --> 00:57:48,260 Er allir fá það? 1197 00:57:48,260 --> 00:57:49,509 Viljum við ganga í gegnum það? 1198 00:57:49,509 --> 00:57:50,300 1199 00:57:50,300 --> 00:57:52,010 >> Já, OK. 1200 00:57:52,010 --> 00:57:57,385 Svo það sem við höfum here-- I svona svo margt fleira. 1201 00:57:57,385 --> 00:57:59,340 Ég þarf ekki að [Inaudible] hlægilegur. 1202 00:57:59,340 --> 00:58:01,690 >> Þannig að við höfum band síðu okkar, hamingjusamur köttur. 1203 00:58:01,690 --> 00:58:02,950 Lovely. 1204 00:58:02,950 --> 00:58:05,080 Við höfum einhverja counter sem við erum að halda utan um. 1205 00:58:05,080 --> 00:58:11,430 Þannig að við höfum sumir char * músina það bara er stillt jafn str. 1206 00:58:11,430 --> 00:58:14,320 Hvað þetta er að gera er að það er framselja sumir bendi 1207 00:58:14,320 --> 00:58:16,380 til byrjun band þitt. 1208 00:58:16,380 --> 00:58:19,840 Vegna þess að ég er viss um, eins og það var getið í fyrirlestri 1209 00:58:19,840 --> 00:58:22,290 við höfum gefið ykkur þetta gögn tegund kallast strengur. 1210 00:58:22,290 --> 00:58:29,070 >> En í raun strengir eru bara fylki of-- eins char *. 1211 00:58:29,070 --> 00:58:32,330 Það er bendi til fullt af stöfum sem eru samliggjandi í minni. 1212 00:58:32,330 --> 00:58:33,680 1213 00:58:33,680 --> 00:58:36,280 Þannig að þetta bara setur það jafnt hvaða streng er 1214 00:58:36,280 --> 00:58:38,980 greindust þar Fyrsti stafurinn hennar. 1215 00:58:38,980 --> 00:58:42,710 Þannig að þetta er bara að setja einhverjum tímapunkti jafn upphafi strengsins. 1216 00:58:42,710 --> 00:58:44,130 Allir góður þarna? 1217 00:58:44,130 --> 00:58:44,960 Cool. 1218 00:58:44,960 --> 00:58:49,840 >> Svo er þetta dereferencing músina okkar. 1219 00:58:49,840 --> 00:58:53,760 Svo það er í raun að fara til gefa okkur einhvers virði hér, 1220 00:58:53,760 --> 00:58:55,610 í band okkar sem við erum að tala um. 1221 00:58:55,610 --> 00:58:58,342 Og við erum að segja svo lengi sem það er ekki null Terminator. 1222 00:58:58,342 --> 00:59:00,550 Svo halda áfram þar til þú færð til enda strengsins. 1223 00:59:00,550 --> 00:59:02,180 1224 00:59:02,180 --> 00:59:04,190 Uppfærðu bendilinn um einn. 1225 00:59:04,190 --> 00:59:09,250 Svo r, það mun í raun uppfæra af einum hvert sinn því þetta er bleikja, 1226 00:59:09,250 --> 00:59:09,820 bleikjan *. 1227 00:59:09,820 --> 00:59:10,930 1228 00:59:10,930 --> 00:59:12,340 >> Svo það er að fara að fara í gegnum. 1229 00:59:12,340 --> 00:59:13,290 Það er að fara að uppfæra. 1230 00:59:13,290 --> 00:59:16,705 Svo í fyrsta sinn rekur, það er að fara að vera hér á h. 1231 00:59:16,705 --> 00:59:17,590 Það er að fara að uppfæra. 1232 00:59:17,590 --> 00:59:18,185 >> Það verður að vera a. 1233 00:59:18,185 --> 00:59:21,310 Það verður að vera p, y, og svo framvegis og svo framvegis. 1234 00:59:21,310 --> 00:59:22,300 Við munum uppfæra teljara. 1235 00:59:22,300 --> 00:59:26,160 Þegar það kemur að enda, það bara prentar hversu langt það er fengið. 1236 00:59:26,160 --> 00:59:27,550 1237 00:59:27,550 --> 00:59:28,050 Já. 1238 00:59:28,050 --> 00:59:31,475 >> Áhorfendur: Svo það skiptir máli rýmið sem einn, ekki satt? 1239 00:59:31,475 --> 00:59:31,974 OK. 1240 00:59:31,974 --> 00:59:34,294 1241 00:59:34,294 --> 00:59:35,222 >> Ræðumaður 1: Hugsaðu svo. 1242 00:59:35,222 --> 00:59:36,830 Er að question-- 1243 00:59:36,830 --> 00:59:37,746 >> Áhorfendur: [inaudible]. 1244 00:59:37,746 --> 00:59:37,968 1245 00:59:37,968 --> 00:59:38,884 >> Ræðumaður 1: Engar áhyggjur. 1246 00:59:38,884 --> 00:59:39,720 1247 00:59:39,720 --> 00:59:42,736 Þetta sem ég gera það. 1248 00:59:42,736 --> 00:59:47,710 Allt í lagi, þannig að eitt sem ég skilja er að með fjölda, 1249 00:59:47,710 --> 00:59:51,736 þú getur líka meðhöndla það sem bendillinn vegna fylki eru bara 1250 00:59:51,736 --> 00:59:52,860 samfelld blettur minni. 1251 00:59:52,860 --> 00:59:53,970 1252 00:59:53,970 --> 00:59:56,380 >> Svo er hægt að meðhöndla það á sama hátt. 1253 00:59:56,380 --> 00:59:59,000 Þú getur vinna þá með ábendingum líka. 1254 00:59:59,000 --> 01:00:04,770 Svo í stað þess að gera, í þessu mál, hliðstætt hlutur 1255 01:00:04,770 --> 01:00:07,490 væri array 0 er 1. 1256 01:00:07,490 --> 01:00:08,760 1257 01:00:08,760 --> 01:00:15,210 >> En á sama hátt sem strengur er ákvarðað 1258 01:00:15,210 --> 01:00:18,740 með upphaf þar Fyrsti stafurinn þess er, 1259 01:00:18,740 --> 01:00:22,270 fylki er ákvörðuð með því að þar fyrst þáttur hennar er. 1260 01:00:22,270 --> 01:00:25,120 Þar sem við vitum, erum við tryggingu, að þessi 1261 01:00:25,120 --> 01:00:27,985 eru að fara að vera samfelld blokkir af minni. 1262 01:00:27,985 --> 01:00:29,360 Það er það sem gerir okkur að gera þetta. 1263 01:00:29,360 --> 01:00:31,193 Við vitum að þeir eru stöðugt blokkir af minni. 1264 01:00:31,193 --> 01:00:32,230 1265 01:00:32,230 --> 01:00:36,500 >> Þannig að í þessu tilfelli, með því að dereferencing bara array, sem segir okkur, 1266 01:00:36,500 --> 01:00:40,800 OK, fara til the byrjun af array þinn, sem er hér. 1267 01:00:40,800 --> 01:00:42,640 Svo er hægt að setja það jafnt á móti einum. 1268 01:00:42,640 --> 01:00:48,610 Og í þessu tilfelli, hvað sem array þinn gerð er, þegar þú uppfærir hann í einu, 1269 01:00:48,610 --> 01:00:50,830 það er bara eins og að uppfæra það til næsta vísitölu. 1270 01:00:50,830 --> 01:00:52,760 1271 01:00:52,760 --> 01:00:56,360 Þú getur gert það vegna þess að þú vita hvað er í fylkingu þínu. 1272 01:00:56,360 --> 01:00:59,770 Svo veit það hversu mikið þarf að uppfæra músina þína með, 1273 01:00:59,770 --> 01:01:02,925 hvaða netfang að uppfæra hana að svo að þú ert á næsta rifa. 1274 01:01:02,925 --> 01:01:04,740 1275 01:01:04,740 --> 01:01:09,400 >> Þannig að þetta er bara mismunandi hátt að skrifa array 0 er 1, 1276 01:01:09,400 --> 01:01:15,114 array 1 jafngildir 2, array krappi 2 er 3. 1277 01:01:15,114 --> 01:01:16,780 Það er bara önnur leið til að hugsa um það. 1278 01:01:16,780 --> 01:01:19,600 Vegna þess að þeir eru stöðugt blokkir í minni, 1279 01:01:19,600 --> 01:01:21,830 þú getur átt við þá annaðhvort með array notation-- 1280 01:01:21,830 --> 01:01:24,390 sem ég persónulega finna easier-- en kannski 1281 01:01:24,390 --> 01:01:27,347 þú þarft að vinna það stranglega eftir minni viðtakandi. 1282 01:01:27,347 --> 01:01:28,930 Og þetta er sú leið sem þú myndir gera það. 1283 01:01:28,930 --> 01:01:30,630 1284 01:01:30,630 --> 01:01:32,630 Konar meira af eins og a kaldur hlutur sem þú gætir gert 1285 01:01:32,630 --> 01:01:35,213 móti kannski ekki eitthvað sem þú ert í raun að fara að framkvæma. 1286 01:01:35,213 --> 01:01:36,960 1287 01:01:36,960 --> 01:01:38,630 >> Ég nota það í 61. 1288 01:01:38,630 --> 01:01:41,710 Þú krakkar sennilega þurfa ekki að hafa áhyggjur óður í það of mikið. 1289 01:01:41,710 --> 01:01:43,693 En ef þú hefur áhuga, taka 61 á næsta ári. 1290 01:01:43,693 --> 01:01:45,269 1291 01:01:45,269 --> 01:01:46,560 Við erum í heimili teygja krakkar. 1292 01:01:46,560 --> 01:01:47,510 Ég veit, það er langur. 1293 01:01:47,510 --> 01:01:50,570 1294 01:01:50,570 --> 01:01:58,880 Dynamic Memory Allocation-- svo við vitum að einn 1295 01:01:58,880 --> 01:02:01,790 af hlutum þegar við ræddum við Fyrsta kafla okkar saman, 1296 01:02:01,790 --> 01:02:04,560 við skoðuðum skiptasamning virka þar sem það var 1297 01:02:04,560 --> 01:02:08,010 utan gildissviðs helstu virka okkar. 1298 01:02:08,010 --> 01:02:14,370 Og við stóðum í þessum gildum sem voru í raun afrit. 1299 01:02:14,370 --> 01:02:20,570 >> Og einu sinni skipti lokið framkvæmd, það fór bara stafla. 1300 01:02:20,570 --> 01:02:22,830 Mundu, við erum með stafla ramma fyrir skipti. 1301 01:02:22,830 --> 01:02:26,070 Það fer og þeir gildi fara með það. 1302 01:02:26,070 --> 01:02:27,050 Og þeir voru farnir. 1303 01:02:27,050 --> 01:02:28,615 Við gátum ekki gert neitt með þeim og við vorum sorgmædd 1304 01:02:28,615 --> 01:02:29,989 vegna þess að við getum ekki skipta gildin okkar. 1305 01:02:29,989 --> 01:02:31,070 1306 01:02:31,070 --> 01:02:36,560 >> En með C, eins og ég nefndi, þú hafa mikið vald yfir minni. 1307 01:02:36,560 --> 01:02:43,310 Svo hvað þú getur gert er að þú getur úthluta hlutum á hrúgunni hér 1308 01:02:43,310 --> 01:02:46,830 sem mun vera þar þangað að segja þeim annað. 1309 01:02:46,830 --> 01:02:48,280 >> Þeir eru eins og góð börn. 1310 01:02:48,280 --> 01:02:49,150 Þeir dvelja þar. 1311 01:02:49,150 --> 01:02:50,270 Þeir skilja ekki. 1312 01:02:50,270 --> 01:02:52,750 Þeir ætla að vera þar þangað til þú ert eins, OK, þú getur farið í burtu. 1313 01:02:52,750 --> 01:02:55,920 >> En hluti á mánudaginn, who-- þeir eru eins og óþekkur börn. 1314 01:02:55,920 --> 01:02:59,160 Þeir ætla bara að keyra í burtu þegar þú vilt að vera þar og svo þeir eru farnir. 1315 01:02:59,160 --> 01:03:00,160 Þú getur ekki fá þá aftur. 1316 01:03:00,160 --> 01:03:01,350 1317 01:03:01,350 --> 01:03:07,187 >> Svo hrúga is-- við erum að fara að tala um malloc og frjáls, sem 1318 01:03:07,187 --> 01:03:08,895 Ég er viss um að ykkur heyrt um í fyrirlestri. 1319 01:03:08,895 --> 01:03:10,270 1320 01:03:10,270 --> 01:03:14,210 Og það er í grundvallaratriðum leið að hafa mjög þrávirk gögn. 1321 01:03:14,210 --> 01:03:18,920 Svo er hægt að halda gögnum kring eins lengi og þú vilt. 1322 01:03:18,920 --> 01:03:19,546 Mhm. 1323 01:03:19,546 --> 01:03:21,475 >> Áhorfendur: Getur þú skilgreina vörðu og stafla? 1324 01:03:21,475 --> 01:03:24,030 Eru þeir eins og staður til að setja hlutina? 1325 01:03:24,030 --> 01:03:26,630 >> Ræðumaður 1: Svo þeir eru grundvallaratriðum just-- þeir eru 1326 01:03:26,630 --> 01:03:29,530 hvernig við tölum bara að minni. 1327 01:03:29,530 --> 01:03:37,300 Svo hrúga er bara staði þar minni er úthlutað virk, 1328 01:03:37,300 --> 01:03:40,960 en stafla vísar meira að stafla ramma 1329 01:03:40,960 --> 01:03:45,950 sem eru meira miðpunktur aðgerðir sem eru í raun í gangi. 1330 01:03:45,950 --> 01:03:47,200 Þú gera ekki raunverulega hafa stjórn. 1331 01:03:47,200 --> 01:03:50,690 >> Stóri munurinn, hefur þú stjórn yfir hrúga ef þú vilt. 1332 01:03:50,690 --> 01:03:52,710 Þú ert með minna stjórn á stafla. 1333 01:03:52,710 --> 01:03:55,030 Stafla veltur á aðgerðir sem eru í gangi, 1334 01:03:55,030 --> 01:03:58,320 og í hvaða röð þeir eru hlaupa, og hvernig hlutirnir eru aftur. 1335 01:03:58,320 --> 01:04:01,290 En með hrúga, eins við munum sjá, þú getur sagt: 1336 01:04:01,290 --> 01:04:06,639 OK, ég vil þetta gildi til að vera kring þangað til ég segi þér annað. 1337 01:04:06,639 --> 01:04:08,180 Þú hefur ekki heimild til að fá losa af það. 1338 01:04:08,180 --> 01:04:09,300 Þú hefur ekki leyfi til að hunsa það. 1339 01:04:09,300 --> 01:04:11,675 Þú ert að fara að halda því í kring svo lengi sem ég segi þér. 1340 01:04:11,675 --> 01:04:15,780 Þú færð að vera stjóri í hrúga, EÐ stack-- Kannski ef þú 1341 01:04:15,780 --> 01:04:18,080 eins finagle leið þú getur verið stjóri. 1342 01:04:18,080 --> 01:04:19,340 En ekki alveg. 1343 01:04:19,340 --> 01:04:20,480 1344 01:04:20,480 --> 01:04:22,070 Og það er í raun bara minni. 1345 01:04:22,070 --> 01:04:24,260 Það er bara mismunandi leiðir að vísa til minni. 1346 01:04:24,260 --> 01:04:25,800 1347 01:04:25,800 --> 01:04:26,400 >> Cool. 1348 01:04:26,400 --> 01:04:28,630 Svo með því að, hvernig á að stjórna minni. 1349 01:04:28,630 --> 01:04:32,070 Það er með malloc sem þú ert að fara að fá að nota. 1350 01:04:32,070 --> 01:04:37,100 Svo það er bara stutt fyrir minni úthlutun. 1351 01:04:37,100 --> 01:04:38,459 Það er allt það er. 1352 01:04:38,459 --> 01:04:41,250 There er a búnt af annar kaldur aðgerðir sem hafa Alloc í lokin, 1353 01:04:41,250 --> 01:04:42,750 og þeir standa fyrir mismunandi hluti. 1354 01:04:42,750 --> 01:04:43,550 1355 01:04:43,550 --> 01:04:49,050 >> Svo þegar þú þarft geymslu sem þarf að outlast núverandi virka svo 1356 01:04:49,050 --> 01:04:51,010 að þegar núverandi þinn virka flýr, 1357 01:04:51,010 --> 01:04:55,774 þú ert enn gögn sem þú fékk af því, þú vilt nota malloc. 1358 01:04:55,774 --> 01:04:57,190 Það mun frumstilla hana á hrúga. 1359 01:04:57,190 --> 01:05:00,140 Og eins og ég sagði og halda segja, þú munt halda það þar 1360 01:05:00,140 --> 01:05:03,050 þar til þú segir það annars, sem er mikilvægur hlutur hér. 1361 01:05:03,050 --> 01:05:08,450 >> Svo eitt að taka eftir, og það er yfirleitt mjög mikilvægt, 1362 01:05:08,450 --> 01:05:13,620 er að þetta sizeof er frábær gagnlegt að nota 1363 01:05:13,620 --> 01:05:16,440 vegna þess að eftir því hvaða gerð vél sem þú ert að keyra, 1364 01:05:16,440 --> 01:05:22,470 það kann að hafa mismunandi magn af minni sem það tekur. 1365 01:05:22,470 --> 01:05:26,870 Svo þú vilt alltaf að nota stærð svo að þú ert ekki vél háð, 1366 01:05:26,870 --> 01:05:30,300 þannig að númerið þitt mun keyrt á hvaða vél. 1367 01:05:30,300 --> 01:05:32,360 >> Og það er bara hluti að skrifa góða númerið. 1368 01:05:32,360 --> 01:05:34,610 Ef það virkar á einni vél, en ekki einhver annar, 1369 01:05:34,610 --> 01:05:36,440 Hversu gagnleg var program? 1370 01:05:36,440 --> 01:05:38,420 Svo þú vilt alltaf ganga úr skugga um og nota sizeof. 1371 01:05:38,420 --> 01:05:41,306 >> Áhorfendur: Svo er að eins að stærð 10 cm [inaudible]? 1372 01:05:41,306 --> 01:05:43,698 >> Ræðumaður 1: Þetta er á stærð við 10 ints. 1373 01:05:43,698 --> 01:05:44,197 Já. 1374 01:05:44,197 --> 01:05:45,360 1375 01:05:45,360 --> 01:05:48,830 Svo stærð ints aftur hversu mikið er einn INT taka. 1376 01:05:48,830 --> 01:05:51,530 Eða stærð bleikju, hvernig kostar eina bleikju taka. 1377 01:05:51,530 --> 01:05:54,150 Og þá hvernig margir blokkir af því þú vilt? 1378 01:05:54,150 --> 01:05:57,590 >> Svo í þessu tilfelli, við viljum eitthvað að við getum geymt 10 ints til. 1379 01:05:57,590 --> 01:06:00,240 Og það mun virka óháð vél, sem er svalt. 1380 01:06:00,240 --> 01:06:01,720 1381 01:06:01,720 --> 01:06:04,846 En hve margir bytes mun sem raunverulega gefa þér? 1382 01:06:04,846 --> 01:06:06,190 Quick stærðfræði. 1383 01:06:06,190 --> 01:06:06,787 >> Áhorfendur: 40. 1384 01:06:06,787 --> 01:06:07,370 Ræðumaður 1: 40. 1385 01:06:07,370 --> 01:06:07,869 Einmitt. 1386 01:06:07,869 --> 01:06:09,520 1387 01:06:09,520 --> 01:06:12,030 Svo annar stór hlutur. 1388 01:06:12,030 --> 01:06:14,840 Pointer eða malloc getur skilað null. 1389 01:06:14,840 --> 01:06:17,910 >> Svo aftur, alltaf að skoða til sjá hvort það skilaði null 1390 01:06:17,910 --> 01:06:19,620 áður en þú reynir að gera neitt með það. 1391 01:06:19,620 --> 01:06:23,430 1392 01:06:23,430 --> 01:06:27,350 Ef þú reynir og dereference þetta bendi nú, 1393 01:06:27,350 --> 01:06:29,720 það er bara að fara að segfault vegna þess að þú fór og reyndi 1394 01:06:29,720 --> 01:06:31,730 að snerta null þegar þú ættir ekki að hafa. 1395 01:06:31,730 --> 01:06:34,000 Svo alltaf að skoða til null. 1396 01:06:34,000 --> 01:06:36,075 Aftur, getur allt sem þú gerir. 1397 01:06:36,075 --> 01:06:38,300 1398 01:06:38,300 --> 01:06:39,720 >> Það gæti aftur null. 1399 01:06:39,720 --> 01:06:42,740 Það verður aftur null ef þú ert annað hvort út af plássi, eða hver sem ástæðan 1400 01:06:42,740 --> 01:06:44,350 það hljóp í sumum minni galla. 1401 01:06:44,350 --> 01:06:45,890 1402 01:06:45,890 --> 01:06:47,510 Það stundum bara skilar null. 1403 01:06:47,510 --> 01:06:48,990 Svo þú verður bara að athuga það. 1404 01:06:48,990 --> 01:06:51,050 Það er allt þetta renna er að segja. 1405 01:06:51,050 --> 01:06:53,366 1406 01:06:53,366 --> 01:06:55,240 Og þá það sem við höfum hér er að hringja til að losa. 1407 01:06:55,240 --> 01:07:00,550 Svo í á sama hátt og ef þú opna skrána sem þú verður að loka skrá, 1408 01:07:00,550 --> 01:07:04,340 ef þú malloc minni, þú verður þú frjáls að minni. 1409 01:07:04,340 --> 01:07:06,530 Og þú krakkar vilja fá að gera virkilega flott efni. 1410 01:07:06,530 --> 01:07:09,624 >> Og það er a program sem þú getur keyrt til sjá hvort þú ert alltaf að leka minni. 1411 01:07:09,624 --> 01:07:11,040 En þú vilt ekki að leka minni. 1412 01:07:11,040 --> 01:07:11,820 Það er mjög slæmt. 1413 01:07:11,820 --> 01:07:13,191 1414 01:07:13,191 --> 01:07:15,020 Bara klúðrar hlutum. 1415 01:07:15,020 --> 01:07:20,939 >> Það er slæmt að gera bara eins og forritun skynsamlegt fyrir hönnun skilvirkni. 1416 01:07:20,939 --> 01:07:22,980 En það er líka bara góður af slæmur fyrir tölvuna þína. 1417 01:07:22,980 --> 01:07:26,780 Svo bara frjáls hlutur þegar þú malloc þá. 1418 01:07:26,780 --> 01:07:28,190 1419 01:07:28,190 --> 01:07:30,210 >> Þú krakkar sjá samhverfur hér. 1420 01:07:30,210 --> 01:07:31,180 Super einfalt. 1421 01:07:31,180 --> 01:07:33,010 Bara frjáls og þá hvað bendillinn þinn, 1422 01:07:33,010 --> 01:07:34,843 hvað nafn bendillinn þinn er, og það 1423 01:07:34,843 --> 01:07:36,710 mun sjá um frjáls það fyrir þig. 1424 01:07:36,710 --> 01:07:38,200 1425 01:07:38,200 --> 01:07:38,700 Cool. 1426 01:07:38,700 --> 01:07:40,410 1427 01:07:40,410 --> 01:07:42,530 >> Þá höfum þetta. 1428 01:07:42,530 --> 01:07:44,770 Þannig að við erum bara að fara að ganga í gegnum þetta forrit. 1429 01:07:44,770 --> 01:07:46,560 Og svo þú krakkar eru að gera. 1430 01:07:46,560 --> 01:07:50,240 >> Svo [inaudible] bara helstu. 1431 01:07:50,240 --> 01:07:51,690 Þannig að við höfum sumir INT * músina. 1432 01:07:51,690 --> 01:07:53,648 Þannig að við höfum bendi það er að fara að halda ints. 1433 01:07:53,648 --> 01:07:54,500 1434 01:07:54,500 --> 01:07:56,170 Og hversu margir ints er það að fara að halda? 1435 01:07:56,170 --> 01:07:57,400 1436 01:07:57,400 --> 01:07:58,170 Bara einn. 1437 01:07:58,170 --> 01:07:59,400 1438 01:07:59,400 --> 01:08:01,100 Stærð int. 1439 01:08:01,100 --> 01:08:03,900 >> Við athugum hvort bendillinn er null því það 1440 01:08:03,900 --> 01:08:06,130 er, við viljum að segja gera ekki neitt. 1441 01:08:06,130 --> 01:08:07,065 Það er slæmt. 1442 01:08:07,065 --> 01:08:08,130 1443 01:08:08,130 --> 01:08:12,130 Þannig að við að prenta nokkur villa út af minni, oftast skila 1, 1444 01:08:12,130 --> 01:08:14,260 eins og þú krakkar eru vanir. 1445 01:08:14,260 --> 01:08:17,390 >> Og þá höfum við hér, við dereference músina okkar. 1446 01:08:17,390 --> 01:08:22,840 Svo það þýðir að við erum að fara að geyma eitthvað á þeim stað gefið okkur. 1447 01:08:22,840 --> 01:08:24,350 1448 01:08:24,350 --> 01:08:30,830 Int * músina eða malloc, skilar heimilisfang þar sem það að leggja til hliðar þetta 1449 01:08:30,830 --> 01:08:31,750 minni fyrir þig. 1450 01:08:31,750 --> 01:08:32,830 1451 01:08:32,830 --> 01:08:34,800 Svo það er í rauninni gefa þér like-- ef þú 1452 01:08:34,800 --> 01:08:38,149 hugsa um fullt af hús í hverfinu 1453 01:08:38,149 --> 01:08:40,640 sem þú vilt setja húsgögn í þinn, malloc 1454 01:08:40,640 --> 01:08:43,850 er eins í lagi, þú færð að fara að hýsa þrjú. 1455 01:08:43,850 --> 01:08:45,800 Og það gefur þér heimilisfang hús þrjú. 1456 01:08:45,800 --> 01:08:48,775 >> Þannig að þetta núna, þetta Pointer verslanir tölvupóstfangi 1457 01:08:48,775 --> 01:08:50,149 geymir veffang húsi þínu. 1458 01:08:50,149 --> 01:08:51,470 1459 01:08:51,470 --> 01:08:54,640 * PTR þýðir, OK, ég er í húsi mínu. 1460 01:08:54,640 --> 01:08:55,326 Cool. 1461 01:08:55,326 --> 01:08:56,580 Ég þarf að fá einhverja heiltölu. 1462 01:08:56,580 --> 01:08:59,229 >> Svo þú ert að spyrja fyrir einhvern að gefa þér húsgögn núna. 1463 01:08:59,229 --> 01:09:00,430 Þannig að þú færð smá Int. 1464 01:09:00,430 --> 01:09:05,100 Og það setur það í músina þína þar sem það er að benda á. 1465 01:09:05,100 --> 01:09:08,670 >> Og þá er það bara prentar út, þú slóst hvar. 1466 01:09:08,670 --> 01:09:11,060 Og aftur, tilvísun. 1467 01:09:11,060 --> 01:09:15,649 Svo er þetta eins og þú fórst að þessu heimilisfang og þú sást hvað var þar. 1468 01:09:15,649 --> 01:09:17,120 1469 01:09:17,120 --> 01:09:17,630 Cool? 1470 01:09:17,630 --> 01:09:20,174 >> Og svo auðvitað að við að losa músina okkar. 1471 01:09:20,174 --> 01:09:21,590 Ekki gleyma að losa músina þína. 1472 01:09:21,590 --> 01:09:22,933 Ekki gleyma að athuga for null. 1473 01:09:22,933 --> 01:09:24,349 Ekki gleyma að losa músina þína. 1474 01:09:24,349 --> 01:09:27,270 Þú hefur tvo hluti sem þú manst frá þessu, eða að þú ættir að muna. 1475 01:09:27,270 --> 01:09:27,770 Já. 1476 01:09:27,770 --> 01:09:31,590 Áhorfendur: [inaudible] efni svona, bleikjan * s. 1477 01:09:31,590 --> 01:09:33,760 Hvernig komum við frjáls aldrei þeim? 1478 01:09:33,760 --> 01:09:34,529 >> Ræðumaður 1: Hm? 1479 01:09:34,529 --> 01:09:36,450 >> Áhorfendur: Eru þeir eins strengi? 1480 01:09:36,450 --> 01:09:39,160 Þú sagðir strengir eru bara eins char * s, ekki satt? 1481 01:09:39,160 --> 01:09:41,200 Svo hvers vegna eigum við ekki að losa strengi? 1482 01:09:41,200 --> 01:09:43,204 >> Ræðumaður 1: Þú aðeins að frjáls ef þú ert mallocing. 1483 01:09:43,204 --> 01:09:44,620 Áhorfendur: Oh, ef þú ert að mallocing. 1484 01:09:44,620 --> 01:09:47,399 Ræðumaður 1: Svo malloc og ókeypis eru tveir hlutir 1485 01:09:47,399 --> 01:09:49,000 að þú ættir alltaf að hafa saman. 1486 01:09:49,000 --> 01:09:51,630 f opinn, f loka tvennt þú ættir að hafa saman. 1487 01:09:51,630 --> 01:09:54,471 Í báðum þeim tilvikum athuga for null. 1488 01:09:54,471 --> 01:09:54,971 Já. 1489 01:09:54,971 --> 01:09:57,130 >> Áhorfendur: Svo frjáls er bara leyfa eitthvað annað 1490 01:09:57,130 --> 01:09:59,690 til að geyma þar á eftir Þetta forrit hefur notað það? 1491 01:09:59,690 --> 01:10:01,946 >> Ræðumaður 1: Það er bara að segja, OK, ég er búin með þetta. 1492 01:10:01,946 --> 01:10:03,320 Þú þarft ekki að halda því í kring. 1493 01:10:03,320 --> 01:10:05,340 1494 01:10:05,340 --> 01:10:08,190 Annars tölvan mun Rétt eins að reyna að halda það þar. 1495 01:10:08,190 --> 01:10:10,910 Og þá þú can't-- það rennur í minni málefni síðar. 1496 01:10:10,910 --> 01:10:13,660 Þú vilt alltaf að losa það því það segir tölvuna, OK, ég er 1497 01:10:13,660 --> 01:10:15,190 gert með þessum stað af minni. 1498 01:10:15,190 --> 01:10:17,190 Hægt er að hafa það aftur fyrir mig til að nota síðar. 1499 01:10:17,190 --> 01:10:19,250 1500 01:10:19,250 --> 01:10:20,500 Cool? 1501 01:10:20,500 --> 01:10:21,320 Já. 1502 01:10:21,320 --> 01:10:26,950 >> Áhorfendur: Þannig að við notuðum% d bara vegna þess að tvöfalda það er að koma til baka, 1503 01:10:26,950 --> 01:10:28,330 eða hvers vegna is-- [inaudible]. 1504 01:10:28,330 --> 01:10:30,170 1505 01:10:30,170 --> 01:10:31,620 >> Áhorfendur: Getur þú nota% i? 1506 01:10:31,620 --> 01:10:32,760 >> Ræðumaður 1: Þú mátt nota% i. 1507 01:10:32,760 --> 01:10:35,052 1508 01:10:35,052 --> 01:10:36,135 Eina mínútu í einhverja spurningar síðasta? 1509 01:10:36,135 --> 01:10:38,310 1510 01:10:38,310 --> 01:10:38,985 Fara á undan. 1511 01:10:38,985 --> 01:10:40,610 Áhorfendur: Ég hef bara fljótur spurningu. 1512 01:10:40,610 --> 01:10:50,200 Svo PTR breytu, that's-- eins, með INT * PTR = malloc, 1513 01:10:50,200 --> 01:10:54,142 það er bara að segja að það er bendir á stað í memory-- 1514 01:10:54,142 --> 01:10:55,600 Ræðumaður 1: Viltu [inaudible]? 1515 01:10:55,600 --> 01:10:58,050 Áhorfendur: --that er stærð of-- nei, er það í lagi. 1516 01:10:58,050 --> 01:11:01,292 En það er bara að benda á stað í minni sem er bara eins og fjögur bæti. 1517 01:11:01,292 --> 01:11:02,000 Ræðumaður 1: Hægri. 1518 01:11:02,000 --> 01:11:03,030 1519 01:11:03,030 --> 01:11:07,070 Svo malloc stærð af INT segir, OK, ég ætla að fara að hlaupa burt, 1520 01:11:07,070 --> 01:11:08,780 finna fjögur bæti af minni fyrir þig. 1521 01:11:08,780 --> 01:11:10,700 Þegar það finnur að fjórir bytes af minni, það 1522 01:11:10,700 --> 01:11:14,030 Veitir þér veffangi hvar það byrjar, 1523 01:11:14,030 --> 01:11:16,160 og það er það sem geymt í músina, eða PTR. 1524 01:11:16,160 --> 01:11:17,510 1525 01:11:17,510 --> 01:11:18,010 Good. 1526 01:11:18,010 --> 01:11:18,742 1527 01:11:18,742 --> 01:11:21,700 Þú krakkar líta minna ruglaður en flestir fólk þegar ég tala um músina, 1528 01:11:21,700 --> 01:11:23,670 svo ég er tilfinning nokkuð góður núna. 1529 01:11:23,670 --> 01:11:24,520 >> Allt í lagi. 1530 01:11:24,520 --> 01:11:27,960 Eins og alltaf, þú krakkar ættu að hafa alla fengið pset2 einkunnum þínum núna. 1531 01:11:27,960 --> 01:11:32,769 Ég veit að það hafa verið nokkur wonky hlutir þar sem það segir, Formúla ekki gild 1532 01:11:32,769 --> 01:11:33,310 eða eitthvað. 1533 01:11:33,310 --> 01:11:36,166 Ef þú ert að fá það, allir bekk eru í gildi á hlið. 1534 01:11:36,166 --> 01:11:38,040 Svo get ég sent þér screenshots af einkunnum þínum. 1535 01:11:38,040 --> 01:11:39,011 1536 01:11:39,011 --> 01:11:41,760 Bara láta mig vita eins vel ef þú ert vantar einhverjar einkunnir eða eitthvað 1537 01:11:41,760 --> 01:11:43,060 virðist ekki skynsamleg. 1538 01:11:43,060 --> 01:11:43,720 Komið til mín. 1539 01:11:43,720 --> 01:11:44,830 1540 01:11:44,830 --> 01:11:48,830 >> Ég hef verið frábær stolt af þér krakkar nú þegar, þannig að það upp. 1541 01:11:48,830 --> 01:11:50,640 Og hafa góða hvíld af vikuna þína. 1542 01:11:50,640 --> 01:11:53,440 Ég er viss um að ég mun sjá nokkur af þú á skrifstofutíma. 1543 01:11:53,440 --> 01:11:55,414