1 00:00:00,000 --> 00:00:02,670 >> [Тхеме Мусиц] 2 00:00:02,670 --> 00:00:11,834 3 00:00:11,834 --> 00:00:13,365 >> СПЕАКЕР 1: Здраво свима. 4 00:00:13,365 --> 00:00:14,365 Добро дошли назад у одељак. 5 00:00:14,365 --> 00:00:15,700 6 00:00:15,700 --> 00:00:18,700 Ловели даи оут-- због тога, ја сам Наравно, само четири од вас има овде 7 00:00:18,700 --> 00:00:21,180 а не наша уобичајено паковање. 8 00:00:21,180 --> 00:00:22,670 Ја сам био болестан овог викенда. 9 00:00:22,670 --> 00:00:24,294 Тако да немам прасак за вас. 10 00:00:24,294 --> 00:00:26,400 И ја могу почети кашаљ страшно кроз ово. 11 00:00:26,400 --> 00:00:27,790 Дакле, имајте са мном. 12 00:00:27,790 --> 00:00:30,624 Ја ћу да заиста и да кроз ово прво, 13 00:00:30,624 --> 00:00:32,290 Ипак, пре него што имам кашаљ напад. 14 00:00:32,290 --> 00:00:33,410 15 00:00:33,410 --> 00:00:37,390 Али само бити лако на мене а Мало бит-- то је све што тражим. 16 00:00:37,390 --> 00:00:39,370 17 00:00:39,370 --> 00:00:44,289 >> Дакле, наша агенда за данас-- само реминдер-- квизу је следеће недеље. 18 00:00:44,289 --> 00:00:46,830 Рекао сам вам ове недеље, тако да би Не би те ухватити неспремне. 19 00:00:46,830 --> 00:00:47,954 Дакле, те подсетио поново. 20 00:00:47,954 --> 00:00:49,180 Следеће недеље је твој квиз. 21 00:00:49,180 --> 00:00:52,730 У том смислу, следеће недеље је Секција ће бити много 22 00:00:52,730 --> 00:00:55,180 од-- Покушаћу и раде у неким преглед. 23 00:00:55,180 --> 00:00:58,130 Дакле, ако сте могли помози ми што ме слањем 24 00:00:58,130 --> 00:01:00,990 ствари које сте удобно са, да си забринута, 25 00:01:00,990 --> 00:01:03,530 Теме које бих да да покрије, то би било сјајно. 26 00:01:03,530 --> 00:01:05,740 Тако да можете покушати и да их раде у нашој секцији следеће недеље 27 00:01:05,740 --> 00:01:11,540 или послати вам додатни материјал или преп да не би се на другом месту. 28 00:01:11,540 --> 00:01:12,150 >> Да! 29 00:01:12,150 --> 00:01:13,520 Више људи долазе! 30 00:01:13,520 --> 00:01:17,320 Мислио сам, да ли ја то лоше прошле недеље, да нико не жели да се врати? 31 00:01:17,320 --> 00:01:18,065 Плашим се. 32 00:01:18,065 --> 00:01:18,892 33 00:01:18,892 --> 00:01:21,100 Дакле, остала три ствари да ћемо ићи преко 34 00:01:21,100 --> 00:01:24,850 су Редирецтион, Филе И / О, и онда показивачи и динамичке меморије. 35 00:01:24,850 --> 00:01:29,160 Сигуран сам да сте сви узбуђени због Супер поинтерс-- свачија омиљена тема, 36 00:01:29,160 --> 00:01:31,310 тако једноставно да разумемо. 37 00:01:31,310 --> 00:01:33,130 Сигуран сам да момци схватио, зар не? 38 00:01:33,130 --> 00:01:39,510 >> Дакле, прве ствари прво, редирецтион-- Ово је у суштини само начин 39 00:01:39,510 --> 00:01:42,920 да контролишете како унесете ствари у свој програм, 40 00:01:42,920 --> 00:01:44,606 Како да пишете ствари из вашег програма. 41 00:01:44,606 --> 00:01:46,980 Главни путеви да ви су у интеракцији са њом 42 00:01:46,980 --> 00:01:51,650 је само преко стандардног Оут са Принт сцреен овде. 43 00:01:51,650 --> 00:01:55,940 Али постоје начини да пипе-- као што овде видимо 44 00:01:55,940 --> 00:01:58,980 је једна од наших вордс-- врсте од цеви које информације 45 00:01:58,980 --> 00:02:02,850 или да су подаци у датотеку из датотеке. 46 00:02:02,850 --> 00:02:05,820 То је само различите начине узимајући ствари у свој програм 47 00:02:05,820 --> 00:02:10,681 и из свог програма, уместо само их штампање на овом екрану 48 00:02:10,681 --> 00:02:12,430 или уноса ствари из командне линије. 49 00:02:12,430 --> 00:02:13,760 50 00:02:13,760 --> 00:02:18,030 >> Дакле, прво један је мали већи од Царет. 51 00:02:18,030 --> 00:02:22,085 Дакле оутпут-- само штампа излаз у датотеку уместо екрана. 52 00:02:22,085 --> 00:02:23,620 53 00:02:23,620 --> 00:02:29,500 Дакле, ако сте имали нешто што штампани "Здраво, свете!" на екран, 54 00:02:29,500 --> 00:02:32,400 ако га ставите умјесто то оутпут.тект, тај 55 00:02:32,400 --> 00:02:35,220 ствара ову датотеку под називом оутпут.тект. 56 00:02:35,220 --> 00:02:38,550 И када га отворите, то ће кажу "Здраво, свете!" тамо. 57 00:02:38,550 --> 00:02:41,410 Ово може да буде корисно Супер Ако имате гомилу грешака 58 00:02:41,410 --> 00:02:43,430 заправо, као што видимо у овоме. 59 00:02:43,430 --> 00:02:46,810 Уколико два царет, то ће принт поруке о грешкама. 60 00:02:46,810 --> 00:02:52,090 >> Дакле, ако имате проблем са састављање, има доста грешака 61 00:02:52,090 --> 00:02:56,770 а ти се заглибљујући у покушају да се крећете кроз командну линију 62 00:02:56,770 --> 00:02:59,110 кроз све њих, можете само их одштампали у датотеку, 63 00:02:59,110 --> 00:03:02,130 отвори тај фајл тако да се крећете кроз њих лакше. 64 00:03:02,130 --> 00:03:05,160 Ја заправо користи да много када сам био дебуггинг 65 00:03:05,160 --> 00:03:07,970 Моји 181 псетс за машинског учења. 66 00:03:07,970 --> 00:03:10,000 Тако да може да буде супер корисно касније. 67 00:03:10,000 --> 00:03:18,370 Такође је корисно ако имате програм да можда се генерише библиотеку 68 00:03:18,370 --> 00:03:20,430 или генерисање неки сет жица, а ви 69 00:03:20,430 --> 00:03:22,846 треба да буду у стању да види да да их генерише исправно. 70 00:03:22,846 --> 00:03:23,860 71 00:03:23,860 --> 00:03:25,160 То је начин да то урадите. 72 00:03:25,160 --> 00:03:28,280 >> Дакле, ако сте их одштампали у датотеку, могу лакше да их испита, зар не? 73 00:03:28,280 --> 00:03:30,930 Версус покушава да померите кроз командну линију. 74 00:03:30,930 --> 00:03:32,740 75 00:03:32,740 --> 00:03:35,820 И онда једна ствар на уму је да само са веће 76 00:03:35,820 --> 00:03:40,090 него Царет, ако пишете у фајл који већ екистс-- 77 00:03:40,090 --> 00:03:44,990 па као да смо трчали ово прва време, ми га ставити на оутпут.тект, 78 00:03:44,990 --> 00:03:49,970 а онда смо имали други програм штампати ово као програм два 79 00:03:49,970 --> 00:03:54,250 и учинио већи него оутпут.тект, ће преписати то-- тако 80 00:03:54,250 --> 00:03:56,715 преписати оно што је икад у тај фајл за почетак. 81 00:03:56,715 --> 00:03:57,720 82 00:03:57,720 --> 00:04:00,750 >> Дакле, ако желите да приложи у датотеку, као што видимо овде, 83 00:04:00,750 --> 00:04:04,779 само урадите двоје веће од знакова. 84 00:04:04,779 --> 00:04:05,820 И то ће додати на то. 85 00:04:05,820 --> 00:04:06,750 То неће преписати. 86 00:04:06,750 --> 00:04:09,770 Дакле, ако желите да покренете више програми и некако задржати 87 00:04:09,770 --> 00:04:13,170 Трацк шта све њих повратак вама у датотеци, 88 00:04:13,170 --> 00:04:14,190 То је начин да се то уради. 89 00:04:14,190 --> 00:04:17,231 Ако не занима шта је у вашој датотеци и то дозвољено да се преписани, 90 00:04:17,231 --> 00:04:19,204 само да користите један већи од. 91 00:04:19,204 --> 00:04:20,600 Да ли то има смисла за све? 92 00:04:20,600 --> 00:04:23,205 93 00:04:23,205 --> 00:04:31,140 >> ПУБЛИКА: Као тачка сласх Хелло већи од производње дот текста, као и два пута, 94 00:04:31,140 --> 00:04:34,030 то ће само показати тек на излазу дот текст другог времена-- готово 95 00:04:34,030 --> 00:04:34,810 >> СПЕАКЕР 1: Добро. 96 00:04:34,810 --> 00:04:40,450 Тако да у суштини би једноставно потпуно преписати оно што је било у почетку. 97 00:04:40,450 --> 00:04:44,260 Уколико овај фајл овде, оутпут.тект Већ 98 00:04:44,260 --> 00:04:48,230 постоји, у основи год ви зовете то поново са једним Греатер 99 00:04:48,230 --> 00:04:51,920 него само да мислите о томе јер као што је заменио фајл. 100 00:04:51,920 --> 00:04:54,824 Као кад сте чувања Ворд документ и ти сачувати као, 101 00:04:54,824 --> 00:04:57,365 и задржати исто име, и потпуно то-- преписује 102 00:04:57,365 --> 00:04:58,680 Ово је иста врста ствари. 103 00:04:58,680 --> 00:05:00,380 104 00:05:00,380 --> 00:05:03,550 Свако има било каквих питања у вези Само излаза у датотеку? 105 00:05:03,550 --> 00:05:05,051 106 00:05:05,051 --> 00:05:05,550 Страва. 107 00:05:05,550 --> 00:05:11,440 >> Очигледно, ако се уназад арров правац, она може да уради улаз. 108 00:05:11,440 --> 00:05:13,090 109 00:05:13,090 --> 00:05:19,960 Дакле, када сте имали као Цезара или Висионеер 110 00:05:19,960 --> 00:05:23,195 и требало је да улазни нешто, сте имали командну линију аргумент 111 00:05:23,195 --> 00:05:24,960 да заправо улаз. 112 00:05:24,960 --> 00:05:27,410 Ово је још један начин да се то. 113 00:05:27,410 --> 00:05:30,520 Дакле, уместо да чека за командној линији, 114 00:05:30,520 --> 00:05:33,800 као кад сте тражили ваше порука у Цезара или Висионеер, 115 00:05:33,800 --> 00:05:36,490 Ако сте имали текстуалне датотеке који је имао своју поруку, 116 00:05:36,490 --> 00:05:38,280 само да га укуцајте у то. 117 00:05:38,280 --> 00:05:44,930 >> Дакле, ако је ово као ДОТ сласх Цаесар 3 мање од стрелицом унос текста, који 118 00:05:44,930 --> 00:05:47,240 је твоја порука, да ће ићи добро. 119 00:05:47,240 --> 00:05:51,310 120 00:05:51,310 --> 00:05:54,020 Када ваш Цезар програма заправо тражио улаз од корисника, 121 00:05:54,020 --> 00:05:57,360 већ би га због тога сте уписали у овом фајлу. 122 00:05:57,360 --> 00:05:58,830 То је само још један начин. 123 00:05:58,830 --> 00:06:02,445 Само супротно оутпут-- само улаз за ваше податке. 124 00:06:02,445 --> 00:06:04,570 125 00:06:04,570 --> 00:06:06,680 >> А онда последњи је цев. 126 00:06:06,680 --> 00:06:07,780 Дакле, ова је прилично кул. 127 00:06:07,780 --> 00:06:09,890 Зато што вам омогућава да узети излаз једног 128 00:06:09,890 --> 00:06:13,695 програм и ставио га као улаз у други програм. 129 00:06:13,695 --> 00:06:15,250 130 00:06:15,250 --> 00:06:18,630 Не знам да ли је неко од вас играо са Деципхер 131 00:06:18,630 --> 00:06:20,590 да можда има ЦС50 доделио, али би 132 00:06:20,590 --> 00:06:27,380 омогућавају да узмете неки узорак филе, откуцајте га у шифровање, 133 00:06:27,380 --> 00:06:30,350 а одатле типе да у свој дешифровања 134 00:06:30,350 --> 00:06:32,470 да се уверите испоставило исти. 135 00:06:32,470 --> 00:06:34,050 Дакле, то је нешто као три-ваи петље. 136 00:06:34,050 --> 00:06:38,400 137 00:06:38,400 --> 00:06:39,423 Иди за то. 138 00:06:39,423 --> 00:06:41,785 >> ПУБЛИКА: Ако програм има више улаза, 139 00:06:41,785 --> 00:06:47,646 постоји начин да га коју улаз реци да користи текстуалну датотеку или излаз за? 140 00:06:47,646 --> 00:06:49,325 >> СПЕАКЕР 1: Има више улаза. 141 00:06:49,325 --> 00:06:52,190 142 00:06:52,190 --> 00:07:00,430 Шта год поднети инпут-- када је тражећи улаз који први пут, то је 143 00:07:00,430 --> 00:07:03,240 ће претпоставити, мислим, да је то ће цев у целој фајлу. 144 00:07:03,240 --> 00:07:03,979 145 00:07:03,979 --> 00:07:07,145 Дакле, ако имате више улаза, ти си Биће цевовода у више датотека. 146 00:07:07,145 --> 00:07:08,190 147 00:07:08,190 --> 00:07:12,390 Дакле, ако питате за поруке три пута у вашем коду, 148 00:07:12,390 --> 00:07:15,230 ћеш бити стављање у три различита фајловима. 149 00:07:15,230 --> 00:07:15,980 И постаје лудо. 150 00:07:15,980 --> 00:07:18,188 А ви не би требало да бринути о томе сада. 151 00:07:18,188 --> 00:07:19,150 Али то је идеја. 152 00:07:19,150 --> 00:07:20,680 153 00:07:20,680 --> 00:07:26,822 >> Тако да, цев је само излаз једног програм користи допринос други. 154 00:07:26,822 --> 00:07:27,665 Сви добро тамо? 155 00:07:27,665 --> 00:07:28,565 156 00:07:28,565 --> 00:07:29,065 Цоол. 157 00:07:29,065 --> 00:07:30,170 158 00:07:30,170 --> 00:07:30,932 У реду. 159 00:07:30,932 --> 00:07:32,890 Ви вероватно неће имати да превише везе са њим. 160 00:07:32,890 --> 00:07:35,670 Али треба разумети начина на које можете користити. 161 00:07:35,670 --> 00:07:38,910 А постоје неки случајеви који можда ћете желети да га користите. 162 00:07:38,910 --> 00:07:44,590 >> Тако да сам филе / о-- знам шта си кажем-- смо навикли да читају из 163 00:07:44,590 --> 00:07:50,500 и писање на нашем екрану тамо, која је стандард у и стандардни напоље. 164 00:07:50,500 --> 00:07:54,370 И то је оно што сте ви били раде од почетка класе овде. 165 00:07:54,370 --> 00:07:58,220 Али такође можете читати и писати фајлове, која је све Филе И / о-- тако фајл улаз, 166 00:07:58,220 --> 00:07:59,850 излаз је све што стоји у. 167 00:07:59,850 --> 00:08:00,930 168 00:08:00,930 --> 00:08:04,360 Дакле, ово у суштини значи да можете сада складиштење података. 169 00:08:04,360 --> 00:08:08,460 >> Када се само принт то екрана, то је у основи нема, зар не? 170 00:08:08,460 --> 00:08:12,507 Чим би "Поздрав свет "и покрените" Хелло ворлд " 171 00:08:12,507 --> 00:08:14,090 она штампа "Хелло Ворлд" на екрану. 172 00:08:14,090 --> 00:08:16,370 Али ви не можете учинити ништа са тим одатле. 173 00:08:16,370 --> 00:08:18,950 Ако чувате у тексту Филе, а затим изненада 174 00:08:18,950 --> 00:08:22,789 имате ове податке које је дозвољено да манипулише или да их у фајл, 175 00:08:22,789 --> 00:08:24,080 или да га у програм касније. 176 00:08:24,080 --> 00:08:26,370 177 00:08:26,370 --> 00:08:29,290 Један од разлога Зашто радимо ово само 178 00:08:29,290 --> 00:08:31,560 као начин да се сачува податке за каснију употребу. 179 00:08:31,560 --> 00:08:34,790 180 00:08:34,790 --> 00:08:37,279 >> Имам пар корака овде Само шетњу кроз стандардна 181 00:08:37,279 --> 00:08:39,450 И / О. У кораку једном, ти Треба да направите референцу 182 00:08:39,450 --> 00:08:43,480 у фајл са свим капе фајла Стар датотеку. 183 00:08:43,480 --> 00:08:45,740 Тако да креира показивач на фајл. 184 00:08:45,740 --> 00:08:48,080 185 00:08:48,080 --> 00:08:49,650 Дакле, онда желите да га отворите. 186 00:08:49,650 --> 00:08:52,940 А ви кажете, буквално, Само фајл једнако фопен. 187 00:08:52,940 --> 00:08:57,400 И то ће да се врати показивач на датотеку коју сте управо отворили. 188 00:08:57,400 --> 00:08:59,610 189 00:08:59,610 --> 00:09:01,460 Видео сам пар вас момци из радног времена. 190 00:09:01,460 --> 00:09:07,400 >> Али једна од ствари је запамти показивачи 191 00:09:07,400 --> 00:09:10,409 може бити нека адреса или нула, зар не? 192 00:09:10,409 --> 00:09:12,700 Ако се икада имамо случај у коме нешто може да се врати нулл, 193 00:09:12,700 --> 00:09:14,990 шта морамо да урадимо пре него што смо икада користити? 194 00:09:14,990 --> 00:09:16,220 195 00:09:16,220 --> 00:09:19,000 Морамо да проверимо да ли то нула или не, зар не? 196 00:09:19,000 --> 00:09:23,600 Јер су неки од вас можда имао питање где год објекат 197 00:09:23,600 --> 00:09:26,110 Била сам враћен у пробој је нулл. 198 00:09:26,110 --> 00:09:28,170 Покушали сте да извршите неку функцију на њему. 199 00:09:28,170 --> 00:09:29,770 И ваш рачунар сајт окривио. 200 00:09:29,770 --> 00:09:30,725 Зар не? 201 00:09:30,725 --> 00:09:33,640 Кладим се пар вас можда су имали тај проблем. 202 00:09:33,640 --> 00:09:38,890 >> Тако је и са фопен, фопен или ће вратити показивач на фајл, 203 00:09:38,890 --> 00:09:41,200 или ако нешто крене наопако, да ће да се врати нулл. 204 00:09:41,200 --> 00:09:45,980 Тако да увек треба да проверите да није вратила нулл 205 00:09:45,980 --> 00:09:47,880 пре него што покушате да урадите било шта друго. 206 00:09:47,880 --> 00:09:49,110 207 00:09:49,110 --> 00:09:51,974 То је као стандардне парадигме да ћеш требати овде. 208 00:09:51,974 --> 00:09:54,390 Ако икада постоји шанса да нешто могао да се врати нулл, 209 00:09:54,390 --> 00:09:56,590 проверите да ли је не пре него што наставите. 210 00:09:56,590 --> 00:09:58,911 У супротном, идеш да грешке лепе сајт. 211 00:09:58,911 --> 00:10:00,410 А нико не воли да се бави онима. 212 00:10:00,410 --> 00:10:03,180 213 00:10:03,180 --> 00:10:06,410 >> Дакле, као што видимо овде, први аргумент је само пут до датотеке. 214 00:10:06,410 --> 00:10:09,380 Ако тај фајл не постоји, то ће створити тај фајл. 215 00:10:09,380 --> 00:10:10,713 И само ће бити празан. 216 00:10:10,713 --> 00:10:10,789 217 00:10:10,789 --> 00:10:13,080 А онда други аргумент је режим који желите. 218 00:10:13,080 --> 00:10:14,610 Да ли желе да читају са овом фајлу? 219 00:10:14,610 --> 00:10:15,560 Да ли желите да пишете из ње? 220 00:10:15,560 --> 00:10:16,476 Да ли желите да додати? 221 00:10:16,476 --> 00:10:17,600 222 00:10:17,600 --> 00:10:20,670 Дакле, у ствари оно што сам рекао-- Ако датотека не постоји 223 00:10:20,670 --> 00:10:23,400 а ви покушавате да чита то, то ће бацити грешку. 224 00:10:23,400 --> 00:10:26,890 Ако датотека име-- волео да филе.тект још увек не постоји 225 00:10:26,890 --> 00:10:29,250 и желите да пишете њему, ће створити 226 00:10:29,250 --> 00:10:33,110 Бланк Филе позвао филе.тект за вас. 227 00:10:33,110 --> 00:10:36,612 А ако желите да се додаје, треба да урадите исто. 228 00:10:36,612 --> 00:10:38,081 Да ли то има смисла? 229 00:10:38,081 --> 00:10:40,580 Ако покушавате да чита датотека која још увек не постоји, 230 00:10:40,580 --> 00:10:41,590 то ће бацити грешку. 231 00:10:41,590 --> 00:10:44,340 У супротном, то ће створити датотеку за вас оно што желите да га. 232 00:10:44,340 --> 00:10:45,970 233 00:10:45,970 --> 00:10:46,470 Цоол. 234 00:10:46,470 --> 00:10:47,510 235 00:10:47,510 --> 00:10:48,880 Сада можемо читати из датотеке. 236 00:10:48,880 --> 00:10:52,570 А ово је само мало иде кроз различите функције 237 00:10:52,570 --> 00:10:58,980 да имамо за Филе И / О. Ово ће бити неопходно у овонедељном псет, 238 00:10:58,980 --> 00:11:00,505 ако се добро сећам. 239 00:11:00,505 --> 00:11:02,880 Да, апсолутно ће бити неопходно у овонедељном псет. 240 00:11:02,880 --> 00:11:04,260 241 00:11:04,260 --> 00:11:07,010 Дакле фгетц враћа следећи карактер. 242 00:11:07,010 --> 00:11:08,350 243 00:11:08,350 --> 00:11:10,300 фгетс само враћа линију текста. 244 00:11:10,300 --> 00:11:11,790 245 00:11:11,790 --> 00:11:14,610 Он ће се вратити све до нова линија, а то ће сломити. 246 00:11:14,610 --> 00:11:15,950 247 00:11:15,950 --> 00:11:18,700 Дакле фреад чита одређени број бајтова и ставља их 248 00:11:18,700 --> 00:11:20,700 у низу, који је нешто што би 249 00:11:20,700 --> 00:11:25,485 Желим да радим са поновним сизе-- може бити корисно. 250 00:11:25,485 --> 00:11:26,550 251 00:11:26,550 --> 00:11:29,290 >> Колико људи су прочитали псет Спец, успут? 252 00:11:29,290 --> 00:11:30,980 253 00:11:30,980 --> 00:11:32,261 У реду. 254 00:11:32,261 --> 00:11:32,760 [Неразумљиво] 255 00:11:32,760 --> 00:11:35,380 256 00:11:35,380 --> 00:11:36,580 >> СПЕАКЕР 1: Добро. 257 00:11:36,580 --> 00:11:37,530 У реду. 258 00:11:37,530 --> 00:11:41,940 Дефинитивно реад то-- је забавно псет. 259 00:11:41,940 --> 00:11:51,320 Можеш да се опорави избрисане меморије цард-- заиста узбудљиво када се ради. 260 00:11:51,320 --> 00:11:54,100 Али дефинитивно, почети читање то. 261 00:11:54,100 --> 00:11:56,280 Дођи да разговарамо, ако вам имате питања о томе. 262 00:11:56,280 --> 00:11:59,290 >> У реду, тако да сам рекао, фреад чита одређени број бајтова. 263 00:11:59,290 --> 00:12:01,340 264 00:12:01,340 --> 00:12:03,590 То је неки произвољан број да идеш да подесите. 265 00:12:03,590 --> 00:12:05,990 266 00:12:05,990 --> 00:12:08,260 И онда само фсеек потезе до одређене позиције. 267 00:12:08,260 --> 00:12:11,150 Па можда не занима О наредних 10 бајтова. 268 00:12:11,150 --> 00:12:12,880 Само желите да прескочите напред. 269 00:12:12,880 --> 00:12:14,030 Ви не занима то. 270 00:12:14,030 --> 00:12:16,280 Желите да прочитате, са почетком у 11 бајту. 271 00:12:16,280 --> 00:12:18,252 фсеек вам омогућава да урадите то. 272 00:12:18,252 --> 00:12:20,710 Тако да вам омогућава да буде селективно шта читаш. 273 00:12:20,710 --> 00:12:25,880 Јер фгетц, фгетс и фреад Реад са одређеном месту у датотеци. 274 00:12:25,880 --> 00:12:27,260 275 00:12:27,260 --> 00:12:35,090 >> Начин размишљања о томе је ли ово је наш датотеке, када први пут отворите, 276 00:12:35,090 --> 00:12:41,140 имате ову позицију у датотеци који почиње на почетку. 277 00:12:41,140 --> 00:12:45,040 Кад год ви зовете фгетц, фгетф или фреад, 278 00:12:45,040 --> 00:12:48,875 да ће почети од Овај положај маркера. 279 00:12:48,875 --> 00:12:51,340 280 00:12:51,340 --> 00:12:55,245 Рецимо само желите да прочитате Овај комад меморије овде. 281 00:12:55,245 --> 00:12:56,300 282 00:12:56,300 --> 00:12:57,960 Ви не можете да позовем. 283 00:12:57,960 --> 00:13:02,430 Морате да траже овде а затим прочитајте одатле 284 00:13:02,430 --> 00:13:06,540 или прочитали, добија, или гетц, у зависности од тога шта желите. 285 00:13:06,540 --> 00:13:09,310 Дакле, траже само вам омогућава да прескочите делове меморије. 286 00:13:09,310 --> 00:13:11,590 И то је једини начин можете прескочити ствари 287 00:13:11,590 --> 00:13:14,012 без читања их у свој бафер. 288 00:13:14,012 --> 00:13:15,470 Да ли то има смисла за све? 289 00:13:15,470 --> 00:13:21,110 290 00:13:21,110 --> 00:13:24,780 >> Очигледно, ту је Много паралелног овдје-- 291 00:13:24,780 --> 00:13:27,780 наш излаз, или улаз преусмеравање, Ви сте читати и писати. 292 00:13:27,780 --> 00:13:31,800 Дакле, само пише фпутц карактер у фајл. 293 00:13:31,800 --> 00:13:33,655 фпутс пише линију. 294 00:13:33,655 --> 00:13:35,030 295 00:13:35,030 --> 00:13:37,420 Фпринтф штампа форматиран излаз. 296 00:13:37,420 --> 00:13:41,190 Дакле, ако имате картице, или простор, или шта све не. 297 00:13:41,190 --> 00:13:44,180 И онда нека пише фврите низ бајтова у фајл. 298 00:13:44,180 --> 00:13:48,860 Дакле, ово је исти начин фврите и фреад су аналогни 299 00:13:48,860 --> 00:13:57,550 оппоситес-- фгетс, фпутс, и затим фпутц и фгетц-- много 300 00:13:57,550 --> 00:14:00,710 лудо, брзе ствари. 301 00:14:00,710 --> 00:14:05,300 >> Некако да овај ханди-- имаћете различита времена 302 00:14:05,300 --> 00:14:08,680 где можда желите само један лик у једном тренутку. 303 00:14:08,680 --> 00:14:09,890 Можда желите целу линију. 304 00:14:09,890 --> 00:14:14,320 Уз свој речник псет-- који је у две псетс, 305 00:14:14,320 --> 00:14:19,690 Верујем, да вам целину Речник у текстуалном формату 306 00:14:19,690 --> 00:14:22,252 који има сваку реч раздвојене линије. 307 00:14:22,252 --> 00:14:24,210 Дакле, ако сте желели да прочитате једном речју истовремено, 308 00:14:24,210 --> 00:14:31,769 Шта би сте користили ако читате а сви су одвојили на новим линијама, 309 00:14:31,769 --> 00:14:33,310 а ви само желите једну реч по реч? 310 00:14:33,310 --> 00:14:35,320 311 00:14:35,320 --> 00:14:36,040 >> Публика: фгетс 312 00:14:36,040 --> 00:14:36,748 >> СПЕАКЕР 1: Добро. 313 00:14:36,748 --> 00:14:39,960 Фгетс-- јер враћа све што је на једној линији. 314 00:14:39,960 --> 00:14:42,750 А ако свака реч је његова властита линија, можемо да користимо фгетс. 315 00:14:42,750 --> 00:14:44,511 316 00:14:44,511 --> 00:14:45,010 Цоол. 317 00:14:45,010 --> 00:14:47,290 Да ли то има смисла, све? 318 00:14:47,290 --> 00:14:48,020 Цоол? 319 00:14:48,020 --> 00:14:50,020 Да, идемо да се забавни део са показивачима 320 00:14:50,020 --> 00:14:51,728 врло брзо, где си да да мало математику. 321 00:14:51,728 --> 00:14:52,776 И то ће бити сјајно. 322 00:14:52,776 --> 00:14:55,690 323 00:14:55,690 --> 00:14:57,740 >> Последња степ-- затворите датотеку. 324 00:14:57,740 --> 00:15:01,090 Са тако много ствари овде, један од наших парадигми 325 00:15:01,090 --> 00:15:03,550 је ако се може вратити нулл, проверите нулл. 326 00:15:03,550 --> 00:15:06,160 Ако сте нешто отворити, боље да га затворите. 327 00:15:06,160 --> 00:15:10,419 Ок, тако да ниси урадио док си урађено осим ако сте га затворили. 328 00:15:10,419 --> 00:15:12,585 Некако као да није готово док дебела дама пева. 329 00:15:12,585 --> 00:15:14,130 То је као затварање датотеку. 330 00:15:14,130 --> 00:15:16,860 331 00:15:16,860 --> 00:15:19,190 Како овде, пише само да поновимо, увек 332 00:15:19,190 --> 00:15:21,750 отворите датотеку пре него што си читање или писање на њега. 333 00:15:21,750 --> 00:15:24,450 И увек затворите ако сте га отворили. 334 00:15:24,450 --> 00:15:25,460 У реду? 335 00:15:25,460 --> 00:15:25,960 Цоол. 336 00:15:25,960 --> 00:15:26,835 >> Па, ево примера. 337 00:15:26,835 --> 00:15:29,250 338 00:15:29,250 --> 00:15:34,330 Дакле тини-- Не знам да ли си момци видим добро. 339 00:15:34,330 --> 00:15:36,805 Ако бисмо само могли да повећају осветљеност некако. 340 00:15:36,805 --> 00:15:40,430 341 00:15:40,430 --> 00:15:45,030 Пусти ме заиста учинити ако будем могао. 342 00:15:45,030 --> 00:15:48,020 343 00:15:48,020 --> 00:15:51,470 У реду, ви стварно не могу видимо да уопште, зар не? 344 00:15:51,470 --> 00:15:52,905 У реду, ми ћемо то учинити, онда. 345 00:15:52,905 --> 00:16:35,094 346 00:16:35,094 --> 00:16:35,594 [Неразумљиво] 347 00:16:35,594 --> 00:16:56,670 348 00:16:56,670 --> 00:16:58,605 >> Претпостављам да је ово много боље да види. 349 00:16:58,605 --> 00:17:17,330 350 00:17:17,330 --> 00:17:19,455 Може ли неко види где ми је миш је је питање? 351 00:17:19,455 --> 00:17:22,837 Ах, ево га је- шта бори! 352 00:17:22,837 --> 00:17:48,910 353 00:17:48,910 --> 00:17:49,520 >> У реду. 354 00:17:49,520 --> 00:17:53,845 У суштини, ви треба да имате вид идеје о чему се ради. 355 00:17:53,845 --> 00:17:56,740 356 00:17:56,740 --> 00:17:57,600 То није савршен. 357 00:17:57,600 --> 00:17:58,851 358 00:17:58,851 --> 00:18:02,425 Али радије бих да објасним него потрошити више времена покушавајући да га форматирате правилно. 359 00:18:02,425 --> 00:18:03,610 360 00:18:03,610 --> 00:18:07,280 У основи, као што видите овде, почнемо са Филе Опен. 361 00:18:07,280 --> 00:18:09,620 И ми имамо неке датотеке са да смо 362 00:18:09,620 --> 00:18:12,300 отварањем, које каже да је наши студенти. 363 00:18:12,300 --> 00:18:14,020 И ми ћемо писати у њој. 364 00:18:14,020 --> 00:18:15,060 365 00:18:15,060 --> 00:18:17,720 Дакле, наравно, вратити нулл. 366 00:18:17,720 --> 00:18:19,650 Дакле, морамо да проверите нулл. 367 00:18:19,650 --> 00:18:22,930 А онда, ако то није нулл, идемо кроз. 368 00:18:22,930 --> 00:18:25,660 И као што видите, ми смо петље овуда. 369 00:18:25,660 --> 00:18:26,960 Тхере аре студенти. 370 00:18:26,960 --> 00:18:30,520 Студентима је хасх дефинише као три. 371 00:18:30,520 --> 00:18:34,060 А шта ми радимо је да смо штампање у фајл, зар не? 372 00:18:34,060 --> 00:18:36,975 Па шта ћемо одштампа нашем датотеку? 373 00:18:36,975 --> 00:18:47,040 374 00:18:47,040 --> 00:18:48,906 >> ПУБЛИКА: резултат које су у низу? 375 00:18:48,906 --> 00:18:49,680 >> СПЕАКЕР 1: Да. 376 00:18:49,680 --> 00:18:50,980 Резултат које су у арраи-- тачно. 377 00:18:50,980 --> 00:18:53,050 Тако да се отвара ово Датабасе Филе, који 378 00:18:53,050 --> 00:18:56,040 Претпостављам је неки оцјена базе података. 379 00:18:56,040 --> 00:19:01,100 А ми смо штампања резултати сваког студента тог фајла. 380 00:19:01,100 --> 00:19:02,140 Цоол? 381 00:19:02,140 --> 00:19:02,640 Добро. 382 00:19:02,640 --> 00:19:03,811 383 00:19:03,811 --> 00:19:04,310 Страва. 384 00:19:04,310 --> 00:19:05,100 У реду. 385 00:19:05,100 --> 00:19:06,950 Вратимо да-- 386 00:19:06,950 --> 00:19:08,646 >> ПУБЛИКА: Имам кратко питање. 387 00:19:08,646 --> 00:19:11,570 Да ли иф не за петљу? 388 00:19:11,570 --> 00:19:12,870 То је само у петљи ако? 389 00:19:12,870 --> 00:19:14,370 СПЕАКЕР 1: Не, то је у за петљу. 390 00:19:14,370 --> 00:19:16,150 391 00:19:16,150 --> 00:19:18,810 Не могу да видим свој миш добро овде. 392 00:19:18,810 --> 00:19:21,359 Дакле, ја борим се формат који правилно. 393 00:19:21,359 --> 00:19:22,525 Овај носач треба да нестане. 394 00:19:22,525 --> 00:19:23,610 395 00:19:23,610 --> 00:19:25,130 Требало би да буде овде. 396 00:19:25,130 --> 00:19:26,605 То је оно што је у вашем за петљу. 397 00:19:26,605 --> 00:20:10,680 398 00:20:10,680 --> 00:20:11,180 Тамо. 399 00:20:11,180 --> 00:20:12,160 Сада је лепо. 400 00:20:12,160 --> 00:20:16,720 Дакле, то је како треба, осим бити-- за тај задњи држач који сам отпуштен. 401 00:20:16,720 --> 00:20:17,220 У реду. 402 00:20:17,220 --> 00:20:19,491 Да ли то има смисла за све? 403 00:20:19,491 --> 00:20:19,990 У реду. 404 00:20:19,990 --> 00:20:23,750 Ми ћемо прећи на на следећу ствар онда-- 405 00:20:23,750 --> 00:20:26,180 који, у ствари, идеш да треба да видимо код. 406 00:20:26,180 --> 00:20:28,370 Тако да сам само ћу Примљено преко одмах. 407 00:20:28,370 --> 00:20:31,500 408 00:20:31,500 --> 00:20:32,000 У реду. 409 00:20:32,000 --> 00:20:35,110 Дакле, ја ћу да вам покажем ово код. 410 00:20:35,110 --> 00:20:38,240 И желим ти да покушате и фигура шта би требало да уради. 411 00:20:38,240 --> 00:20:49,740 412 00:20:49,740 --> 00:20:52,480 >> Дакле, с обзиром да-- потрајати минут или тако. 413 00:20:52,480 --> 00:20:54,440 Пробајте и схватити шта се овде дешава. 414 00:20:54,440 --> 00:21:58,840 415 00:21:58,840 --> 00:21:59,570 >> Било који идеја? 416 00:21:59,570 --> 00:22:08,180 417 00:22:08,180 --> 00:22:12,470 >> Ми знамо да имамо најмање два аргументе у командној линији, зар не? 418 00:22:12,470 --> 00:22:16,270 Претпостављам од којих ће бити да [неразумљиво] нашег програма је 419 00:22:16,270 --> 00:22:17,530 и онда нешто друго. 420 00:22:17,530 --> 00:22:19,980 Јер ако [неразумљиво] је мање од два, вичемо на њих. 421 00:22:19,980 --> 00:22:21,140 Зар не? 422 00:22:21,140 --> 00:22:25,300 И из употребе, изгледа да то ће бити нека врста датотеке. 423 00:22:25,300 --> 00:22:26,260 Сви се слажемо да то? 424 00:22:26,260 --> 00:22:29,110 425 00:22:29,110 --> 00:22:31,570 Дакле, сада, шта је петља ради? 426 00:22:31,570 --> 00:22:32,570 Шта иде кроз? 427 00:22:32,570 --> 00:22:35,000 428 00:22:35,000 --> 00:22:36,449 >> ПУБЛИКА: Сви фајлови. 429 00:22:36,449 --> 00:22:37,240 СПЕАКЕР 1: Тачно. 430 00:22:37,240 --> 00:22:39,650 Иде кроз све датотеке које смо тамо улаз. 431 00:22:39,650 --> 00:22:40,720 432 00:22:40,720 --> 00:22:46,040 Дакле, за сваки фајл, то је отварање неку жицу тамо. 433 00:22:46,040 --> 00:22:47,560 То је отварајући тај фајл. 434 00:22:47,560 --> 00:22:48,060 Зар не? 435 00:22:48,060 --> 00:22:49,140 436 00:22:49,140 --> 00:22:52,380 И то је читање из ње. 437 00:22:52,380 --> 00:22:53,420 438 00:22:53,420 --> 00:22:55,540 Наравно, ако је провера нулл. 439 00:22:55,540 --> 00:22:57,220 А онда је штампање. 440 00:22:57,220 --> 00:23:01,460 Ако је нула, то је само да нам кажете да то није датотека која постоји. 441 00:23:01,460 --> 00:23:04,290 Зато што се сећате, са прочитајте наш фајл мора да постоји. 442 00:23:04,290 --> 00:23:04,810 Зар не? 443 00:23:04,810 --> 00:23:06,870 Са пишу и додати, можете извући са тим. 444 00:23:06,870 --> 00:23:08,970 Али са прочитано, наша датотека мора да постоји. 445 00:23:08,970 --> 00:23:10,430 446 00:23:10,430 --> 00:23:13,330 >> А онда, ако то не постоји, Шта радимо овде? 447 00:23:13,330 --> 00:23:14,810 448 00:23:14,810 --> 00:23:15,780 Хајде да почнемо овде. 449 00:23:15,780 --> 00:23:18,815 Шта је ово урадиш-- ово први карактер. 450 00:23:18,815 --> 00:23:20,960 451 00:23:20,960 --> 00:23:21,790 Шта он ради? 452 00:23:21,790 --> 00:23:24,100 Он добија један лик, зар не? 453 00:23:24,100 --> 00:23:25,400 Дакле, шта се ово ради? 454 00:23:25,400 --> 00:23:26,775 Постаје први карактер. 455 00:23:26,775 --> 00:23:28,860 456 00:23:28,860 --> 00:23:30,200 Да ли неко зна ЕОФ? 457 00:23:30,200 --> 00:23:31,170 >> ПУБЛИКА: Енд оф филе? 458 00:23:31,170 --> 00:23:32,680 >> СПЕАКЕР 1: Крај филе-- тачно. 459 00:23:32,680 --> 00:23:35,310 Дакле, то ће проћи цео фајл, зар не? 460 00:23:35,310 --> 00:23:36,710 461 00:23:36,710 --> 00:23:40,780 А онда ће се ажурирати од геттинг сваки следећи карактер. 462 00:23:40,780 --> 00:23:41,565 Зар не? 463 00:23:41,565 --> 00:23:43,636 А шта то ради? 464 00:23:43,636 --> 00:23:44,760 ПУБЛИКА: Путтинг то у-- 465 00:23:44,760 --> 00:23:46,741 466 00:23:46,741 --> 00:23:49,170 >> СПЕАКЕР 1: путцхар Принтс на ваш сцреенсавер. 467 00:23:49,170 --> 00:23:50,867 468 00:23:50,867 --> 00:23:51,950 [Неразумљиво] знак. 469 00:23:51,950 --> 00:23:54,300 А онда, када је [неразумљиво] Ово ће затворити датотеку. 470 00:23:54,300 --> 00:23:57,370 >> ПУБЛИКА: Зар не треба [? друго? ?] 471 00:23:57,370 --> 00:23:59,005 >> СПЕАКЕР 1: Не мора да значи. 472 00:23:59,005 --> 00:24:01,480 Мислим, то је некако подразумевало у овоме. 473 00:24:01,480 --> 00:24:06,780 Јер ово враћа, иако, док јер то не ухвати ово, ти си у реду. 474 00:24:06,780 --> 00:24:07,940 475 00:24:07,940 --> 00:24:10,250 Мислим да је то вероватно добро пракса да ураде друго. 476 00:24:10,250 --> 00:24:15,755 Али друго није увек потребно посебно 477 00:24:15,755 --> 00:24:17,610 ако имате нешто као повратак, који 478 00:24:17,610 --> 00:24:20,640 значи да у овом случају да хвата то, ваш програм ће се завршити 479 00:24:20,640 --> 00:24:21,850 и никад се на то. 480 00:24:21,850 --> 00:24:23,030 481 00:24:23,030 --> 00:24:29,190 То је више за случај где сте не нужно враћа нешто. 482 00:24:29,190 --> 00:24:31,370 Јер ако ово није повратак ништа, 483 00:24:31,370 --> 00:24:34,430 то би значило да ако је ово истина, остатак би и даље ради. 484 00:24:34,430 --> 00:24:36,138 И у том случају, би хтео лажна. 485 00:24:36,138 --> 00:24:38,240 Ако је то враћа, и Прекид програма, 486 00:24:38,240 --> 00:24:41,960 друго није потребно све време, у зависности од контекста. 487 00:24:41,960 --> 00:24:43,084 488 00:24:43,084 --> 00:24:44,375 Јацоб, да ли имате питање? 489 00:24:44,375 --> 00:24:46,100 ПУБЛИКА: Да. 490 00:24:46,100 --> 00:24:49,300 Дакле, да ли фгетц добили следећи карактер? 491 00:24:49,300 --> 00:24:50,734 Како повећати лик? 492 00:24:50,734 --> 00:24:51,400 СПЕАКЕР 1: Да. 493 00:24:51,400 --> 00:24:52,774 Дакле фгетц добија следећи карактер. 494 00:24:52,774 --> 00:24:54,140 495 00:24:54,140 --> 00:24:56,866 Можете мислити о томе као Ц ++ у смислу. 496 00:24:56,866 --> 00:24:58,350 >> ПУБЛИКА: Дакле, шта је ЕОФ? 497 00:24:58,350 --> 00:25:00,877 >> СПЕАКЕР 1: ЕОФ је крај датотеке. 498 00:25:00,877 --> 00:25:03,960 То је само знак који вам омогућава да знате да сте на крају вашег фајла. 499 00:25:03,960 --> 00:25:06,742 Дакле, ово ће штампати на ваш стандард оут. 500 00:25:06,742 --> 00:25:08,950 А онда ће се затворити Филе кад буде готово. 501 00:25:08,950 --> 00:25:10,700 А онда идемо у следећи фајл, зар не? 502 00:25:10,700 --> 00:25:12,660 Дакле све у свему, шта овај програм уради? 503 00:25:12,660 --> 00:25:15,402 504 00:25:15,402 --> 00:25:16,090 >> [Неразумљиво] 505 00:25:16,090 --> 00:25:16,900 >> СПЕАКЕР 1: Да. 506 00:25:16,900 --> 00:25:18,770 То само исписује све тамо. 507 00:25:18,770 --> 00:25:23,270 Дакле, ако сте икада користи ЦАТ а затим име неког филе-- 508 00:25:23,270 --> 00:25:26,240 Не знам да ли неко од вас има није урадио то на терминалу. 509 00:25:26,240 --> 00:25:29,630 Али ако сте икада користили команда ЦАТ-- Ц-Т-- 510 00:25:29,630 --> 00:25:31,880 а онда шта год Филе имате тамо-- ит 511 00:25:31,880 --> 00:25:37,260 исписује га на ваш терминала, који може бити супер згодно за неке ствари. 512 00:25:37,260 --> 00:25:38,746 Ја то много користи. 513 00:25:38,746 --> 00:25:40,120 Да ли то има смисла за све? 514 00:25:40,120 --> 00:25:41,480 515 00:25:41,480 --> 00:25:42,100 Цоол? 516 00:25:42,100 --> 00:25:46,530 >> ОК, ваш задатак сада-- било сами или са људима око тебе-- 517 00:25:46,530 --> 00:25:54,930 је само написати једноставан програм да ће само написати "Хелло, ворлд!" 518 00:25:54,930 --> 00:25:56,255 се у датотеку. 519 00:25:56,255 --> 00:26:00,215 >> [Неразумљиво] 520 00:26:00,215 --> 00:26:56,210 521 00:26:56,210 --> 00:26:57,040 >> [Неразумљиво] 522 00:26:57,040 --> 00:26:59,248 >> СПЕАКЕР 1: Био сам као, да ли Ја то лоше прошле недеље? 523 00:26:59,248 --> 00:27:00,201 524 00:27:00,201 --> 00:27:01,492 Нисам мислио да је то лоше. 525 00:27:01,492 --> 00:27:02,479 526 00:27:02,479 --> 00:27:03,520 Драго ми је да сте сви овде. 527 00:27:03,520 --> 00:27:04,655 Стварно ме чини срећном. 528 00:27:04,655 --> 00:27:07,565 529 00:27:07,565 --> 00:27:10,160 Ја сам девојка једноставних задовољстава. 530 00:27:10,160 --> 00:27:11,688 Само волим кад ми је секција похађа. 531 00:27:11,688 --> 00:27:13,830 532 00:27:13,830 --> 00:27:18,270 Тако да сам само добијам ово почело за момци, тако да можемо да кодирања заједно. 533 00:27:18,270 --> 00:27:22,290 Ја не волим никога стављање на Спот уколико не желите да буде. 534 00:27:22,290 --> 00:27:26,486 535 00:27:26,486 --> 00:27:30,086 >> ПУБЛИКА: За квиза, урадите морамо написати програм? 536 00:27:30,086 --> 00:27:33,260 >> СПЕАКЕР 1: Можда ћете бити упитани да напише једноставне програме ручно. 537 00:27:33,260 --> 00:27:35,940 538 00:27:35,940 --> 00:27:36,590 Аха. 539 00:27:36,590 --> 00:27:38,510 >> ПУБЛИКА: квиз је следеће недеље, зар не? 540 00:27:38,510 --> 00:27:40,108 >> СПЕАКЕР 1: квиз је следеће среде. 541 00:27:40,108 --> 00:27:40,855 542 00:27:40,855 --> 00:27:43,730 То значи да је дивно [? ЦСЕ?] оцењивање странку после, који 543 00:27:43,730 --> 00:27:50,390 значи да ћете добити своје резултате Бацк то нигхт-- у ком тренутку? 544 00:27:50,390 --> 00:27:50,890 Ко зна? 545 00:27:50,890 --> 00:27:51,973 Али то ће бити те вечери. 546 00:27:51,973 --> 00:28:02,020 547 00:28:02,020 --> 00:28:02,855 >> У реду. 548 00:28:02,855 --> 00:28:04,250 Како желимо да покренемо ово? 549 00:28:04,250 --> 00:28:07,964 550 00:28:07,964 --> 00:28:09,630 Ја ћу ти дати хинт-- почиње са овом. 551 00:28:09,630 --> 00:28:11,455 >> ПУБЛИКА: Морате да отворите датотеку. 552 00:28:11,455 --> 00:28:12,250 >> СПЕАКЕР 1: Да. 553 00:28:12,250 --> 00:28:14,060 Дакле, шта желиш да зовете? 554 00:28:14,060 --> 00:28:16,150 Да ли само желите да га назовете "Филе"? 555 00:28:16,150 --> 00:28:17,480 Хајде да га једноставно. 556 00:28:17,480 --> 00:28:26,752 Дакле, шта је наш фопен-- излаз Тест ће бити? 557 00:28:26,752 --> 00:28:36,130 Назовите то "Здраво." 558 00:28:36,130 --> 00:28:37,810 А шта је наш режим? 559 00:28:37,810 --> 00:28:39,764 560 00:28:39,764 --> 00:28:41,055 Шта радимо на овом фајлу? 561 00:28:41,055 --> 00:28:42,676 562 00:28:42,676 --> 00:28:43,500 >> ПУБЛИКА: Прочитајте. 563 00:28:43,500 --> 00:28:44,401 564 00:28:44,401 --> 00:28:44,900 Писање. 565 00:28:44,900 --> 00:28:46,191 СПЕАКЕР 1: Пишемо томе. 566 00:28:46,191 --> 00:28:47,360 567 00:28:47,360 --> 00:28:47,860 Ловели. 568 00:28:47,860 --> 00:28:50,330 569 00:28:50,330 --> 00:28:52,860 Ок, тако да сада имамо ову слику. 570 00:28:52,860 --> 00:28:54,920 571 00:28:54,920 --> 00:28:56,212 Шта треба да урадимо? 572 00:28:56,212 --> 00:28:57,420 ПУБЛИКА: Проверите да ли је нулл. 573 00:28:57,420 --> 00:28:59,820 СПЕАКЕР 1: Проверите да ли је то тачно нулл--. 574 00:28:59,820 --> 00:29:01,980 То је оно што волим да чујем. 575 00:29:01,980 --> 00:29:05,930 То би требало да буде аутоматски, посебно прилично од овог тренутка. 576 00:29:05,930 --> 00:29:07,530 577 00:29:07,530 --> 00:29:10,950 Ако почнете сегфаултинг, вероватно нису проверили нулл негде. 578 00:29:10,950 --> 00:29:12,480 Девет пута од десет, то је ће бити твој грешка. 579 00:29:12,480 --> 00:29:15,400 Дакле, ако бисте могли да у навика, увек проверите да ли је то нулл, 580 00:29:15,400 --> 00:29:18,150 Твој живот ће бити Нице и лако, или лакше. 581 00:29:18,150 --> 00:29:19,480 >> Тако да проверите да ли је то нулл. 582 00:29:19,480 --> 00:29:21,200 583 00:29:21,200 --> 00:29:24,820 Дакле, ако то није нулл, који је оно једнако Банг 584 00:29:24,820 --> 00:29:26,784 меанс-- није нулл-- је важећа. 585 00:29:26,784 --> 00:29:27,700 Шта желимо да урадимо? 586 00:29:27,700 --> 00:29:29,750 587 00:29:29,750 --> 00:29:31,570 Ми само желимо да штампате на тај фајл, зар не? 588 00:29:31,570 --> 00:29:32,923 Па шта ћемо да користимо? 589 00:29:32,923 --> 00:29:34,092 >> ПУБЛИКА: фпринтф 590 00:29:34,092 --> 00:29:36,800 >> СПЕАКЕР 1: Фпринтф-- дивно. 591 00:29:36,800 --> 00:29:38,150 592 00:29:38,150 --> 00:29:44,000 И фпринтф узима два аргументс-- где је иде и шта желимо штампати. 593 00:29:44,000 --> 00:29:45,820 Дакле, шта је први? 594 00:29:45,820 --> 00:29:46,570 Где иде? 595 00:29:46,570 --> 00:29:47,490 >> ПУБЛИКА: Филе. 596 00:29:47,490 --> 00:29:48,785 >> СПЕАКЕР 1: То ће да поднесу. 597 00:29:48,785 --> 00:29:49,784 598 00:29:49,784 --> 00:29:50,950 А шта желимо штампати? 599 00:29:50,950 --> 00:29:52,900 600 00:29:52,900 --> 00:29:58,065 "Здраво, свете!" 601 00:29:58,065 --> 00:29:58,565 У реду. 602 00:29:58,565 --> 00:30:03,670 Ми имамо једну ствар-- Још једна велика парадигма овде. 603 00:30:03,670 --> 00:30:04,479 604 00:30:04,479 --> 00:30:05,145 ПУБЛИКА: Затвори. 605 00:30:05,145 --> 00:30:05,853 СПЕАКЕР 1: Затвори. 606 00:30:05,853 --> 00:30:09,990 607 00:30:09,990 --> 00:30:10,540 Изволи. 608 00:30:10,540 --> 00:30:13,384 >> ПУБЛИКА: Да ли је ово дешава Ако је фајл нулл? 609 00:30:13,384 --> 00:30:15,050 СПЕАКЕР 1: Не, ово је ако није нулл. 610 00:30:15,050 --> 00:30:16,881 ПУБЛИКА: О, ако је то у реду није--. 611 00:30:16,881 --> 00:30:21,728 612 00:30:21,728 --> 00:30:25,410 За фопен а затим два аргумента да унутра, 613 00:30:25,410 --> 00:30:27,655 Шта значи први аргумент поново? 614 00:30:27,655 --> 00:30:30,392 >> СПЕАКЕР 1: аргумент баш као и име фајла 615 00:30:30,392 --> 00:30:31,350 да желите да идете у. 616 00:30:31,350 --> 00:30:36,020 Дакле, после тога иде, ти би има неки фајл под називом "Хелло" 617 00:30:36,020 --> 00:30:38,320 који су имали "Хелло, Ворлд" у њој. 618 00:30:38,320 --> 00:30:38,820 То је све. 619 00:30:38,820 --> 00:30:39,500 Само име. 620 00:30:39,500 --> 00:30:42,685 621 00:30:42,685 --> 00:30:48,650 >> ПУБЛИКА: А пошто је то писање, Филе не мора да већ постоји. 622 00:30:48,650 --> 00:30:49,675 Да ли је то оно што сте рекли? 623 00:30:49,675 --> 00:30:50,410 >> СПЕАКЕР 1: Добро. 624 00:30:50,410 --> 00:30:50,910 Екацтли. 625 00:30:50,910 --> 00:30:53,110 626 00:30:53,110 --> 00:30:55,839 Ако је "Здраво", као датотеку још увек не постоји, то је 627 00:30:55,839 --> 00:30:58,380 ће креирати фајл под називом Здраво "и писати за тебе. 628 00:30:58,380 --> 00:30:59,631 629 00:30:59,631 --> 00:31:03,610 >> ПУБЛИКА: Када говорите програм писао у фајл, 630 00:31:03,610 --> 00:31:08,075 зашто пишеш "Филе" уместо име фајла и фпринтф-- 631 00:31:08,075 --> 00:31:13,600 >> СПЕАКЕР 1: Зато што у овом случају, имамо да је велики ФИЛЕ-- све у цапс-- звезда, 632 00:31:13,600 --> 00:31:14,260 филе. 633 00:31:14,260 --> 00:31:17,370 Тако да је показивач на фајл да говорите. 634 00:31:17,370 --> 00:31:19,930 То је начин на који Ми само односи на њега. 635 00:31:19,930 --> 00:31:24,850 Дакле, у овом случају, могу да се сетим филе-- аха, 636 00:31:24,850 --> 00:31:31,271 можемо користити ово-- фајл овде односи се на отварању "Здраво" 637 00:31:31,271 --> 00:31:32,145 и пустити га пишем. 638 00:31:32,145 --> 00:31:34,728 >> ПУБЛИКА: Да ли смо ставили "Здраво" уместо тога [? за само?] Ф Филе? 639 00:31:34,728 --> 00:31:40,160 СПЕАКЕР 1: Не, јер је "Хелло" треба да буде отворен и за писање. 640 00:31:40,160 --> 00:31:41,820 641 00:31:41,820 --> 00:31:45,980 Филе Овде је као ознака која каже ОК, 642 00:31:45,980 --> 00:31:49,190 хаве тхис филе-- хелло-- да гледамо. 643 00:31:49,190 --> 00:31:50,680 Она је отворена. 644 00:31:50,680 --> 00:31:52,140 И ми ћемо писати у њој. 645 00:31:52,140 --> 00:31:55,130 Ако користите само "Здраво", која је инкапсулиран у њему. 646 00:31:55,130 --> 00:31:56,846 Тако да ће полудети. 647 00:31:56,846 --> 00:31:58,590 648 00:31:58,590 --> 00:32:00,300 Мислим, могао си да га зове. 649 00:32:00,300 --> 00:32:03,960 Могао си да уради слику, звезда, "Здраво", једнако то. 650 00:32:03,960 --> 00:32:07,840 Али поента је да ти треба фајла Стар показивач како би 651 00:32:07,840 --> 00:32:09,281 да бисте могли да користите ове функције. 652 00:32:09,281 --> 00:32:11,280 ПУБЛИКА: Можете ли да урадите Филе, звезда, Филе, "Хелло" 653 00:32:11,280 --> 00:32:13,113 или имате да ставите филе звезду, датотеку њиме? 654 00:32:13,113 --> 00:32:16,330 СПЕАКЕР 1: Могао би урадите датотеке, звезда, "Здраво." 655 00:32:16,330 --> 00:32:19,790 Можете променити ово год име хоћеш. 656 00:32:19,790 --> 00:32:22,114 Потпуно је произвољна како то име се. 657 00:32:22,114 --> 00:32:23,179 658 00:32:23,179 --> 00:32:24,220 Можете реци ништа. 659 00:32:24,220 --> 00:32:25,501 660 00:32:25,501 --> 00:32:28,020 Наме ит Флиинг Спагхетти, ако желиш. 661 00:32:28,020 --> 00:32:29,690 >> ПУБЛИКА: Шта је "В" у наводницима за? 662 00:32:29,690 --> 00:32:31,540 >> СПЕАКЕР 1: "В" је само режим. 663 00:32:31,540 --> 00:32:33,170 Дакле, пишемо на ову датотеку. 664 00:32:33,170 --> 00:32:34,410 665 00:32:34,410 --> 00:32:35,320 Сви добро? 666 00:32:35,320 --> 00:32:36,227 Јасно? 667 00:32:36,227 --> 00:32:36,981 Да. 668 00:32:36,981 --> 00:32:40,365 >> ПУБЛИКА: Дакле, када се пише ово филе, где ћемо онда наћи тај фајл? 669 00:32:40,365 --> 00:32:43,820 >> СПЕАКЕР 1: То ће бити у истом директоријум који сте тренутно у си. 670 00:32:43,820 --> 00:32:45,650 671 00:32:45,650 --> 00:32:48,880 Ако сте у псет три и наиђете ово, у вашој псет 672 00:32:48,880 --> 00:32:52,600 три фасцикла ће бити овај фајл под називом "Здраво." 673 00:32:52,600 --> 00:32:53,160 Цоол? 674 00:32:53,160 --> 00:32:53,757 Сви добро? 675 00:32:53,757 --> 00:32:55,840 Осећам се као да сте сви узимајући га, што је одлично. 676 00:32:55,840 --> 00:32:57,290 677 00:32:57,290 --> 00:32:57,790 У реду. 678 00:32:57,790 --> 00:33:05,960 Вратимо се Слиде схов-- Волим када се ствари раде. 679 00:33:05,960 --> 00:33:08,674 У реду, поинтерс-- Јесте ли узбуђени? 680 00:33:08,674 --> 00:33:09,465 Показивачи су супер. 681 00:33:09,465 --> 00:33:11,581 682 00:33:11,581 --> 00:33:13,580 Они узимају мало да ће завршити своју главу около. 683 00:33:13,580 --> 00:33:15,288 Ово је моја друга година настава показивача. 684 00:33:15,288 --> 00:33:16,850 И мислим да сам коначно добила. 685 00:33:16,850 --> 00:33:18,650 Дакле, ако се борите, то је у реду. 686 00:33:18,650 --> 00:33:19,940 687 00:33:19,940 --> 00:33:24,070 Као што сам раније рекао, цртање доста помаже са стварима у ЦС, 688 00:33:24,070 --> 00:33:27,400 колико ја мислим да људи имају тенденцију мислити Ох, ми смо на компјутеру. 689 00:33:27,400 --> 00:33:28,399 Ми треба само код. 690 00:33:28,399 --> 00:33:30,190 Не-- цртање Заиста ће вам помоћи. 691 00:33:30,190 --> 00:33:32,773 И стварно вам и да кликните на своју страну киндергартнер 692 00:33:32,773 --> 00:33:35,010 и извући бојице или маркери и реми. 693 00:33:35,010 --> 00:33:36,110 Јер ће вам помоћи. 694 00:33:36,110 --> 00:33:39,380 И ако ме видиш у радног времена, ја носиће око гомиле папира 695 00:33:39,380 --> 00:33:41,580 са оловке цртање ствари. 696 00:33:41,580 --> 00:33:44,370 >> Тако посебно са поинтерс-- цртају слике. 697 00:33:44,370 --> 00:33:47,970 И ја сам сигуран да ћемо заправо да бити цртеж неке слике овде. 698 00:33:47,970 --> 00:33:51,270 >> Дакле, ви сте све ово да видите Бинки, Ово кул Цлаиматион ствар. 699 00:33:51,270 --> 00:33:54,720 И ми мислимо да је то веома смешно када Он експлодира у гомилу комада. 700 00:33:54,720 --> 00:33:56,280 701 00:33:56,280 --> 00:33:57,755 То је нека Цомиц Релиеф за класу. 702 00:33:57,755 --> 00:34:02,140 703 00:34:02,140 --> 00:34:05,900 Ц [неразумљиво] овај велики способност бити у стању да контролише меморију. 704 00:34:05,900 --> 00:34:10,090 И то је једна од ствари које заиста чини тако моћан језик. 705 00:34:10,090 --> 00:34:13,469 Али са великим моћ долази велика одговорност. 706 00:34:13,469 --> 00:34:16,230 А луде ствари може да се деси ако нисте пажљиви. 707 00:34:16,230 --> 00:34:18,560 Дакле, када користите Поинтерс, желите да се 708 00:34:18,560 --> 00:34:21,440 да ли заиста разумете тачно шта радите. 709 00:34:21,440 --> 00:34:25,530 Надамо се да следећа мало Време ће вам помоћи да разумете заиста 710 00:34:25,530 --> 00:34:27,850 показивачи, како да их користе, и како да их манипулишу. 711 00:34:27,850 --> 00:34:29,170 712 00:34:29,170 --> 00:34:33,460 >> Дакле мемори-- Сигуран сам да сам раније овај дијаграм. 713 00:34:33,460 --> 00:34:38,540 Дакле, ово је само једноставан дијаграм Како би се ствари могу чувати сећање. 714 00:34:38,540 --> 00:34:43,145 Тако да у основи имају ово велики низови од један бајт блокова 715 00:34:43,145 --> 00:34:46,000 је оно што имамо овде- блага увећава се за по један сваки пут. 716 00:34:46,000 --> 00:34:51,810 То је у Хек [неразумљиво] тако осам-битне блокове. 717 00:34:51,810 --> 00:34:55,510 И сваки блок је повезан са неким хексадецималном адресу. 718 00:34:55,510 --> 00:34:58,750 Дакле, ако сте икада видели 0к, то је само нотатинг 719 00:34:58,750 --> 00:35:00,670 да је хексадецимална адреса. 720 00:35:00,670 --> 00:35:03,970 Можете претпоставити ово значи нека адреса у меморији. 721 00:35:03,970 --> 00:35:06,935 Говоримо о меморијске адресе кад год видиш хексадецималном. 722 00:35:06,935 --> 00:35:10,420 723 00:35:10,420 --> 00:35:14,630 >> Имамо интс смо варијабле, пловци су варијабле које чувају. 724 00:35:14,630 --> 00:35:16,260 Дакле интс сторе интс. 725 00:35:16,260 --> 00:35:17,430 Пловци Сторе плута. 726 00:35:17,430 --> 00:35:20,260 Дакле, имамо и показиваче које чувају меморијске адресе. 727 00:35:20,260 --> 00:35:21,660 То је врста мапирања. 728 00:35:21,660 --> 00:35:24,240 Показивачи су искључиво за меморијске адресе. 729 00:35:24,240 --> 00:35:25,780 730 00:35:25,780 --> 00:35:27,292 Дакле, то је као ваш тип тамо. 731 00:35:27,292 --> 00:35:29,550 732 00:35:29,550 --> 00:35:34,470 Ваш апарат је 32-битни, што значи да ваша меморијска адреса је четири бајта. 733 00:35:34,470 --> 00:35:37,830 Тако да било Поинтер да имате такође ће бити четири бајта. 734 00:35:37,830 --> 00:35:43,200 Или ако је четири бајта, Меморија је четири бајта. 735 00:35:43,200 --> 00:35:44,790 Показивачи Сторе меморије. 736 00:35:44,790 --> 00:35:46,430 Дакле, они су четири бајтова. 737 00:35:46,430 --> 00:35:48,460 Цоол-- само желим да појача тим. 738 00:35:48,460 --> 00:35:50,120 739 00:35:50,120 --> 00:35:52,220 >> Сада треба добити овај стрип. 740 00:35:52,220 --> 00:35:55,040 Ја не знам колико вас су ккцд фанови, али ја волим ккцд. 741 00:35:55,040 --> 00:35:55,780 То је сјајно. 742 00:35:55,780 --> 00:35:57,290 743 00:35:57,290 --> 00:35:57,790 >> У реду. 744 00:35:57,790 --> 00:36:01,640 Дакле, стварање поинтерс-- као што сам рекао, то је прилично исто као било шта друго. 745 00:36:01,640 --> 00:36:02,930 Имате тип. 746 00:36:02,930 --> 00:36:04,050 Имаш име. 747 00:36:04,050 --> 00:36:04,810 Зар не? 748 00:36:04,810 --> 00:36:10,410 То је оно што смо тамо имамо. [? Хек?] Стар значи да је показивач, 749 00:36:10,410 --> 00:36:12,250 и онда шта год желите да га зову. 750 00:36:12,250 --> 00:36:15,770 Дакле, тип представља шта можете да сачувате. 751 00:36:15,770 --> 00:36:16,850 752 00:36:16,850 --> 00:36:17,990 У реду? 753 00:36:17,990 --> 00:36:24,350 На исти начин на који радимо, ако интс, знамо да тамо чување инт. 754 00:36:24,350 --> 00:36:25,990 755 00:36:25,990 --> 00:36:30,280 Са показивачем, ит има меморијску адресу. 756 00:36:30,280 --> 00:36:34,240 Али шта то значи је то-- ево где цртеж ће доћи. 757 00:36:34,240 --> 00:36:36,170 758 00:36:36,170 --> 00:36:45,980 Дакле, у овом случају, имамо неки валуе-- рецимо четири. 759 00:36:45,980 --> 00:36:49,306 Четири је на адреси једном. 760 00:36:49,306 --> 00:36:49,805 У реду? 761 00:36:49,805 --> 00:36:51,550 762 00:36:51,550 --> 00:36:56,170 >> Овај први овдје значи да је показивач 2к. 763 00:36:56,170 --> 00:36:56,740 Зар не? 764 00:36:56,740 --> 00:36:57,628 То је нека Поинтер х. 765 00:36:57,628 --> 00:36:58,852 766 00:36:58,852 --> 00:37:00,940 Кс може бити нешто, било шта. 767 00:37:00,940 --> 00:37:01,960 768 00:37:01,960 --> 00:37:05,130 Шта год к је-- рећи к је четири. 769 00:37:05,130 --> 00:37:07,280 То ће за складиштење Меморија адресу овде. 770 00:37:07,280 --> 00:37:12,260 Дакле инт, звезда, ово је к-- неки други слот мемори-- 771 00:37:12,260 --> 00:37:13,590 ко зна шта је то. 772 00:37:13,590 --> 00:37:15,430 Али то ће се похранити адресу овде. 773 00:37:15,430 --> 00:37:27,040 Дакле, то би било као-- у овом случају, год, 774 00:37:27,040 --> 00:37:32,630 се складишти на 0к1-- год је сачувана на адресу коју је наш Поинтер држи, 775 00:37:32,630 --> 00:37:35,280 мора да се поклапа са шта смо означен. 776 00:37:35,280 --> 00:37:40,330 Дакле, у 0к1, у овом случају, то је х. 777 00:37:40,330 --> 00:37:42,500 778 00:37:42,500 --> 00:37:49,340 То може само икада бити инт док користите ово. 779 00:37:49,340 --> 00:37:52,950 >> Слично томе, ако имамо други 1и, без обзира 780 00:37:52,950 --> 00:37:59,130 адреса се чувају са И има да буде цхар-- Иста ствар са з. 781 00:37:59,130 --> 00:38:05,840 На исти начин, те кад год покушати учинити ИНТКС износи 0,4, 782 00:38:05,840 --> 00:38:09,275 то ће викати на тебе и бити као што не, рекао си да желиш инт. 783 00:38:09,275 --> 00:38:10,525 То је требало да буде Инт. 784 00:38:10,525 --> 00:38:11,900 Престани да га направи пловак. 785 00:38:11,900 --> 00:38:14,150 >> Тако да ствари буду оно што желе да буду. 786 00:38:14,150 --> 00:38:15,159 787 00:38:15,159 --> 00:38:16,200 Пустите ствари сами бити. 788 00:38:16,200 --> 00:38:19,380 789 00:38:19,380 --> 00:38:23,450 Дакле, велика ствар је само без обзира на врсту показивача 790 00:38:23,450 --> 00:38:26,101 је, то је једини ствар коју можете похранити тамо. 791 00:38:26,101 --> 00:38:26,600 У реду? 792 00:38:26,600 --> 00:38:27,910 793 00:38:27,910 --> 00:38:31,160 Са праксом, као и са прошле недеље, све 794 00:38:31,160 --> 00:38:32,817 Изгледа стварно некако апстрактно. 795 00:38:32,817 --> 00:38:34,150 Ми ћемо да радимо мало вежбе. 796 00:38:34,150 --> 00:38:36,760 То би требало да има више смисла. 797 00:38:36,760 --> 00:38:44,580 >> Дакле, упућује и дереференцинг-- је веома важно да се ово право. 798 00:38:44,580 --> 00:38:46,630 Још увек имам то рефресх сваки сада и онда. 799 00:38:46,630 --> 00:38:48,450 И ја сам као чекања, који је један желим? 800 00:38:48,450 --> 00:38:56,080 Дакле амперсендом ће заиста дати Ви референца или адреса. 801 00:38:56,080 --> 00:39:00,100 Тако да враћа адресу у Меморија од којих променљива је сачувана. 802 00:39:00,100 --> 00:39:01,170 803 00:39:01,170 --> 00:39:07,020 Дакле, то ће заиста вратити вама хексадецимална, док је дереференцинг 804 00:39:07,020 --> 00:39:10,641 заправо ће вам дати подаци који се чувају тамо. 805 00:39:10,641 --> 00:39:11,140 У реду? 806 00:39:11,140 --> 00:39:12,680 807 00:39:12,680 --> 00:39:16,060 Тако да ћемо да погледамо пример веома брзо, или стварно се поред. 808 00:39:16,060 --> 00:39:18,050 809 00:39:18,050 --> 00:39:19,150 >> У реду. 810 00:39:19,150 --> 00:39:21,790 Дакле, морамо да стварно мислите пажљиво о томе. 811 00:39:21,790 --> 00:39:23,860 Дакле, овде имамо цјелину к. 812 00:39:23,860 --> 00:39:26,485 Ја ћу покушати и нацртао како би најбоље моје способности. 813 00:39:26,485 --> 00:39:30,230 814 00:39:30,230 --> 00:39:32,410 Тако да ћемо имати тај слот к. 815 00:39:32,410 --> 00:39:35,850 816 00:39:35,850 --> 00:39:37,315 И то је чување пет. 817 00:39:37,315 --> 00:39:38,640 818 00:39:38,640 --> 00:39:40,090 Његова адреса је 0к4. 819 00:39:40,090 --> 00:39:41,920 820 00:39:41,920 --> 00:39:43,160 Цоол? 821 00:39:43,160 --> 00:39:44,100 Све је добро. 822 00:39:44,100 --> 00:39:45,470 >> Тако да сада имамо ову показивач. 823 00:39:45,470 --> 00:39:46,916 824 00:39:46,916 --> 00:39:47,990 Била је овде. 825 00:39:47,990 --> 00:39:52,130 826 00:39:52,130 --> 00:39:57,560 И амперсендом нам даје адреса нечега. 827 00:39:57,560 --> 00:40:00,780 Дакле, у овом случају, то је адреса од к. 828 00:40:00,780 --> 00:40:01,875 Која је адреса Кс? 829 00:40:01,875 --> 00:40:05,660 830 00:40:05,660 --> 00:40:12,590 04-- а овај показивач је на 0к08. 831 00:40:12,590 --> 00:40:14,490 832 00:40:14,490 --> 00:40:14,990 Цоол? 833 00:40:14,990 --> 00:40:16,570 834 00:40:16,570 --> 00:40:21,570 Тако да можете да мислите о томе Поинтер, 04, само указује овамо. 835 00:40:21,570 --> 00:40:22,840 836 00:40:22,840 --> 00:40:25,740 И они звали показиваче јер као што смо добили више у ово, 837 00:40:25,740 --> 00:40:28,450 ћеш видети указује на ствари. 838 00:40:28,450 --> 00:40:31,470 И један блок указује на другу блок ће много више смисла. 839 00:40:31,470 --> 00:40:32,760 840 00:40:32,760 --> 00:40:33,890 Дакле овде су два. 841 00:40:33,890 --> 00:40:38,230 И онда имамо мало Цопи, која је шта-- 0к0Ц. 842 00:40:38,230 --> 00:40:41,290 843 00:40:41,290 --> 00:40:43,420 И то ће дереференце нашем показивача. 844 00:40:43,420 --> 00:40:46,790 >> Дакле, шта је то говорио је У реду, овде је наша Поинтер. 845 00:40:46,790 --> 00:40:53,090 Вредност чува је 0к04, а шта она каже се ићи на ову адресу 846 00:40:53,090 --> 00:40:54,300 и реци ми шта је у њему. 847 00:40:54,300 --> 00:40:55,520 848 00:40:55,520 --> 00:40:57,710 Тако да је ефикасно Шта ова стрелица ради. 849 00:40:57,710 --> 00:40:58,750 850 00:40:58,750 --> 00:41:01,280 Можете мислити о овоме као твој звезда. 851 00:41:01,280 --> 00:41:05,410 Дакле реду, кад радимо звезду, то значи прати. 852 00:41:05,410 --> 00:41:06,810 Иди на ову адресу. 853 00:41:06,810 --> 00:41:11,430 И то је у суштини само следи Ова стрелица на овај комад меморије. 854 00:41:11,430 --> 00:41:15,380 И дај нам шта је у њему, што је 5. 855 00:41:15,380 --> 00:41:18,840 Зато је наш примерак је једнака 5. 856 00:41:18,840 --> 00:41:20,120 Да ли то има смисла? 857 00:41:20,120 --> 00:41:22,769 Да ли ме неко треба да прође кроз поново, или спорије? 858 00:41:22,769 --> 00:41:24,560 Хоћеш да идем кроз још једном? 859 00:41:24,560 --> 00:41:25,060 У реду. 860 00:41:25,060 --> 00:41:27,549 861 00:41:27,549 --> 00:41:28,840 Ми ћемо опет да исцрта. 862 00:41:28,840 --> 00:41:31,930 863 00:41:31,930 --> 00:41:37,205 Када почнемо, сви се слажемо да имамо неки комад меморије то је променљива 864 00:41:37,205 --> 00:41:40,890 к да смо поставили једнака 5. 865 00:41:40,890 --> 00:41:42,910 Ми не контролишемо, где је у меморији. 866 00:41:42,910 --> 00:41:45,520 Дакле, ово место је само произвољно додељен. 867 00:41:45,520 --> 00:41:47,770 868 00:41:47,770 --> 00:41:48,731 Добро тамо? 869 00:41:48,731 --> 00:41:49,230 У реду. 870 00:41:49,230 --> 00:41:50,420 871 00:41:50,420 --> 00:41:53,330 Онда смо иницијализујемо показивач на инт. 872 00:41:53,330 --> 00:41:56,900 То је разлог зашто је дозвољено да се укаже на к јер имамо инт овде. 873 00:41:56,900 --> 00:42:00,840 Имамо још један комад Меморија јер ово Поинтер 874 00:42:00,840 --> 00:42:03,485 је променљива као и било шта друго. 875 00:42:03,485 --> 00:42:06,615 То је произвољно додељује неки простор у меморији. 876 00:42:06,615 --> 00:42:07,630 877 00:42:07,630 --> 00:42:10,830 А шта је то продавница је адреса к. 878 00:42:10,830 --> 00:42:13,200 Амперсанд значи адресу к. 879 00:42:13,200 --> 00:42:14,575 Дакле, шта је адреса Кс? 880 00:42:14,575 --> 00:42:19,179 881 00:42:19,179 --> 00:42:20,614 >> ПУБЛИКА: То је зеро-- 882 00:42:20,614 --> 00:42:21,280 СПЕАКЕР 1: 0к04. 883 00:42:21,280 --> 00:42:24,350 884 00:42:24,350 --> 00:42:25,940 Дакле онда-- последњи. 885 00:42:25,940 --> 00:42:30,650 Поново смо се мало цопи-- само једна променљива. 886 00:42:30,650 --> 00:42:32,520 Па хајде да додели неко произвољно место. 887 00:42:32,520 --> 00:42:35,260 888 00:42:35,260 --> 00:42:38,080 И ми дереференце наше показивача. 889 00:42:38,080 --> 00:42:42,490 Звезда значи ићи у адреса чувају у мојој показивача. 890 00:42:42,490 --> 00:42:44,480 Реци ми шта је тамо. 891 00:42:44,480 --> 00:42:47,290 Дакле, адреса чува у нашој показивач 0к04. 892 00:42:47,290 --> 00:42:49,070 893 00:42:49,070 --> 00:42:51,310 Дакле, идемо на ту адресу. 894 00:42:51,310 --> 00:42:52,402 895 00:42:52,402 --> 00:42:54,590 То показује да се ту адресу. 896 00:42:54,590 --> 00:42:57,481 Шта је унутра меморијском блоку? 897 00:42:57,481 --> 00:42:57,980 То је пет. 898 00:42:57,980 --> 00:42:59,210 899 00:42:59,210 --> 00:43:01,650 Дакле, то је оно што смо доделили наш примерак. 900 00:43:01,650 --> 00:43:03,430 901 00:43:03,430 --> 00:43:04,860 Сви добро? 902 00:43:04,860 --> 00:43:05,360 Цоол. 903 00:43:05,360 --> 00:43:07,010 904 00:43:07,010 --> 00:43:08,330 Поново: слике. 905 00:43:08,330 --> 00:43:19,750 906 00:43:19,750 --> 00:43:25,200 >> Дакле, праћење вредности овдје-- сам допустити ви мислите о томе. 907 00:43:25,200 --> 00:43:26,550 908 00:43:26,550 --> 00:43:27,750 Можемо извући још једну слику. 909 00:43:27,750 --> 00:43:31,260 Али желим да покушате и разлог кроз ово сами на тренутак. 910 00:43:31,260 --> 00:44:01,430 911 00:44:01,430 --> 00:44:04,149 >> Пошто они нису дали САД пример адреса, 912 00:44:04,149 --> 00:44:06,940 Само ћу да урадим амперсанд к-- који би требало да помогне возити га кући. 913 00:44:06,940 --> 00:44:07,950 Амперсанд значи адресу. 914 00:44:07,950 --> 00:44:09,540 915 00:44:09,540 --> 00:44:12,360 >> Дакле, у првом, свима иди са прве линије. 916 00:44:12,360 --> 00:44:15,690 Неки Кс сет је фиве-- мало Рандом слот у меморији. 917 00:44:15,690 --> 00:44:17,660 918 00:44:17,660 --> 00:44:23,200 Инт звезда Поинтер једнак на адресу Кс, зар не? 919 00:44:23,200 --> 00:44:28,180 Инт звездице Поинтер ствара Овај блок, то назива поинтер, 920 00:44:28,180 --> 00:44:30,650 и га додељује на адресу Кс. 921 00:44:30,650 --> 00:44:32,750 922 00:44:32,750 --> 00:44:34,230 Ја сам ужасно у амперсандс. 923 00:44:34,230 --> 00:44:36,460 924 00:44:36,460 --> 00:44:40,550 >> Сада оно што радимо је да кажемо У реду, дереференце нашем показивача. 925 00:44:40,550 --> 00:44:42,760 Дакле, идемо у реду, шта је у нашем показивача? 926 00:44:42,760 --> 00:44:44,820 То је Амперсанд х. 927 00:44:44,820 --> 00:44:49,400 Иди на амперсанд Кс и пренесете га. 928 00:44:49,400 --> 00:44:51,620 929 00:44:51,620 --> 00:44:57,480 >> Тако да сада, Амперсанд х ће бити 35. 930 00:44:57,480 --> 00:45:01,540 931 00:45:01,540 --> 00:45:05,174 Дакле, у основи, када сте дереференцинг, иди у реду. 932 00:45:05,174 --> 00:45:07,090 Идеш да цртеж фото лике тхис. 933 00:45:07,090 --> 00:45:09,423 Идеш да цртеж стреле преко где је. 934 00:45:09,423 --> 00:45:16,030 Дакле, идите на овај слот у меморији и било дај ми ту вредност назад, или изменити га. 935 00:45:16,030 --> 00:45:21,620 У овом случају, јер смо у томе вредност, ми га додели да буде 35. 936 00:45:21,620 --> 00:45:24,700 Док је у последњи један, ако приметите, ми 937 00:45:24,700 --> 00:45:27,680 су оно што је додела овде на нешто друго. 938 00:45:27,680 --> 00:45:30,450 939 00:45:30,450 --> 00:45:32,245 >> Дакле, они имају овај страшан табелу. 940 00:45:32,245 --> 00:45:35,000 941 00:45:35,000 --> 00:45:36,890 То није тако лоше. 942 00:45:36,890 --> 00:45:37,970 Ви радите на томе. 943 00:45:37,970 --> 00:45:39,640 Ја ћу да га извуче на табли. 944 00:45:39,640 --> 00:45:41,306 Идемо да га попуните заједно, у реду? 945 00:45:41,306 --> 00:45:42,290 946 00:45:42,290 --> 00:45:45,530 Дакле, зграби неки папир, зграби партнер, почети са радом. 947 00:45:45,530 --> 00:45:53,897 948 00:45:53,897 --> 00:45:55,605 Идем да већи комад креде. 949 00:45:55,605 --> 00:45:56,624 950 00:45:56,624 --> 00:45:58,150 Зато што ће бити много. 951 00:45:58,150 --> 00:45:59,410 952 00:45:59,410 --> 00:45:59,910 У реду. 953 00:45:59,910 --> 00:48:08,567 954 00:48:08,567 --> 00:48:09,150 ПРОФЕСОР: У реду. 955 00:48:09,150 --> 00:48:11,599 956 00:48:11,599 --> 00:48:12,890 Почнимо са првом реду. 957 00:48:12,890 --> 00:48:14,070 958 00:48:14,070 --> 00:48:16,970 Ми ћемо тамо почети, онда момци Можда могу да раде кроз још. 959 00:48:16,970 --> 00:48:17,870 У реду. 960 00:48:17,870 --> 00:48:19,810 једнако б пута Ц па шта је? 961 00:48:19,810 --> 00:48:21,420 962 00:48:21,420 --> 00:48:23,260 То није трик питање, обећавам. 963 00:48:23,260 --> 00:48:24,440 >> СТУДЕНТ: 4 пута 5. 964 00:48:24,440 --> 00:48:25,420 >> ПРОФЕСОР: 4 пута 5. 965 00:48:25,420 --> 00:48:25,920 20. 966 00:48:25,920 --> 00:48:26,730 Дакле, шта је Б? 967 00:48:26,730 --> 00:48:27,921 968 00:48:27,921 --> 00:48:28,420 СТУДЕНТ: 4. 969 00:48:28,420 --> 00:48:30,204 970 00:48:30,204 --> 00:48:31,043 >> ПРОФЕСОР: А Ц? 971 00:48:31,043 --> 00:48:31,542 СТУДЕНТ: 5. 972 00:48:31,542 --> 00:48:32,083 ПРОФЕСОР: 5. 973 00:48:32,083 --> 00:48:35,960 А онда је само да се амперсанд а, Амперсанд б, 974 00:48:35,960 --> 00:48:38,575 Амперсанд Ц, зар не? 975 00:48:38,575 --> 00:48:39,728 976 00:48:39,728 --> 00:48:40,596 Није лоше. 977 00:48:40,596 --> 00:48:42,081 Довољно је једноставно. 978 00:48:42,081 --> 00:48:42,580 У реду. 979 00:48:42,580 --> 00:48:44,300 Дакле, следећи. 980 00:48:44,300 --> 00:48:48,725 Једнако пута Ц, у случају ко је био упознат са тим. 981 00:48:48,725 --> 00:48:49,812 982 00:48:49,812 --> 00:48:53,300 Да ли су сви упознати са временом једнако? 983 00:48:53,300 --> 00:49:00,105 Ок, све то меанс-- ово скраћеница за једнако пута ц. 984 00:49:00,105 --> 00:49:04,840 Такође можете да урадите са поделом, уз додатак, са одузимањем. 985 00:49:04,840 --> 00:49:12,130 Можете обавити једнака или плус једнако Ц значи једнако плус Ц, минус једнак 986 00:49:12,130 --> 00:49:15,190 Ц би једнако минус Ц. 987 00:49:15,190 --> 00:49:16,690 То је само синтаксичких шећер. 988 00:49:16,690 --> 00:49:19,380 989 00:49:19,380 --> 00:49:24,140 >> Дакле, у овом случају, једнак А раз Ц би нам шта дао? 990 00:49:24,140 --> 00:49:25,910 991 00:49:25,910 --> 00:49:28,186 Опет, није трик питање. 992 00:49:28,186 --> 00:49:28,965 >> СТУДЕНТ: 100. 993 00:49:28,965 --> 00:49:29,300 >> ПРОФЕСОР: 100. 994 00:49:29,300 --> 00:49:30,383 Да ли нешто друго мења? 995 00:49:30,383 --> 00:49:31,790 996 00:49:31,790 --> 00:49:32,290 Не. 997 00:49:32,290 --> 00:49:37,380 998 00:49:37,380 --> 00:49:39,850 Можда ћу коначно добити бољи у моје амперсандс. 999 00:49:39,850 --> 00:49:42,047 >> СТУДЕНТ: Ок, извини, како си 100? 1000 00:49:42,047 --> 00:49:42,630 ПРОФЕСОР: У реду. 1001 00:49:42,630 --> 00:49:46,594 Дакле, једнак пута Ц, тако да Ц пута. 1002 00:49:46,594 --> 00:49:48,510 СТУДЕНТ: О, ви користите за превиоус-- 1003 00:49:48,510 --> 00:49:49,135 ПРОФЕСОР: Да. 1004 00:49:49,135 --> 00:49:51,450 Дакле, то су наши најновији вредности. 1005 00:49:51,450 --> 00:49:53,990 То су оно што би требало да буде користећи као крећемо се, ОК. 1006 00:49:53,990 --> 00:49:57,290 1007 00:49:57,290 --> 00:50:01,520 Дакле, б је једина ствар промена, зар не? 1008 00:50:01,520 --> 00:50:02,910 Па хајде да попуните у свему осталом. 1009 00:50:02,910 --> 00:50:09,110 1010 00:50:09,110 --> 00:50:11,330 Б. Шта је Б ће бити? 1011 00:50:11,330 --> 00:50:13,020 1012 00:50:13,020 --> 00:50:14,140 Бити или не бити. 1013 00:50:14,140 --> 00:50:18,680 1014 00:50:18,680 --> 00:50:20,240 Дакле, шта се ово ради? 1015 00:50:20,240 --> 00:50:21,605 Шта је звезда ПА ради? 1016 00:50:21,605 --> 00:50:23,280 1017 00:50:23,280 --> 00:50:25,350 >> СТУДЕНТ: Код за локације на годишњем нивоу. 1018 00:50:25,350 --> 00:50:26,390 1019 00:50:26,390 --> 00:50:27,480 >> СТУДЕНТ: Не, не сасвим. 1020 00:50:27,480 --> 00:50:29,470 Дакле, ово је ум референца. 1021 00:50:29,470 --> 00:50:31,580 >> СТУДЕНТ: Дакле, б је руком вредност на годишњем нивоу. 1022 00:50:31,580 --> 00:50:37,340 >> ПРОФЕСОР: Да, тако је ПА адреса, зар не? 1023 00:50:37,340 --> 00:50:42,430 Тако да каже појдите к е складишти и дати му ту вредност. 1024 00:50:42,430 --> 00:50:43,884 Дакле, шта је Б? 1025 00:50:43,884 --> 00:50:44,425 СТУДЕНТ: 100. 1026 00:50:44,425 --> 00:50:46,534 ПРОФЕСОР: 100. 1027 00:50:46,534 --> 00:50:47,450 Савршено. 1028 00:50:47,450 --> 00:50:49,879 У реду, тако да је оно што је ПЦ мења. 1029 00:50:49,879 --> 00:50:51,170 Све остало остаје исто. 1030 00:50:51,170 --> 00:50:57,160 1031 00:50:57,160 --> 00:50:58,620 Шта је ПЦ ће бити? 1032 00:50:58,620 --> 00:51:00,770 1033 00:51:00,770 --> 00:51:01,580 Једноставан задатак. 1034 00:51:01,580 --> 00:51:03,520 1035 00:51:03,520 --> 00:51:05,990 ПЦ је једнак ПА, а шта је тата? 1036 00:51:05,990 --> 00:51:07,049 >> СТУДЕНТ: амперсанд. 1037 00:51:07,049 --> 00:51:07,840 ПРОФЕСОР: Савршено. 1038 00:51:07,840 --> 00:51:09,490 1039 00:51:09,490 --> 00:51:10,740 Сада смо постаје интересантно. 1040 00:51:10,740 --> 00:51:12,310 1041 00:51:12,310 --> 00:51:15,230 У реду, хајде да разбије ову доле. 1042 00:51:15,230 --> 00:51:21,110 Прво, шта је Б пута ц, јер је то једноставно део овога, зар не? 1043 00:51:21,110 --> 00:51:22,360 Б пута Ц је-- 1044 00:51:22,360 --> 00:51:23,320 >> СТУДЕНТ: 500. 1045 00:51:23,320 --> 00:51:28,880 >> ПРОФЕСОР: Да, па Шта је ово једно ради, 1046 00:51:28,880 --> 00:51:33,705 Ако је стар ПБ, шта мења? 1047 00:51:33,705 --> 00:51:35,320 1048 00:51:35,320 --> 00:51:37,242 >> СТУДЕНТ: Шта је у до-- 1049 00:51:37,242 --> 00:51:38,200 ПРОФЕСОР: Шта је у Б? 1050 00:51:38,200 --> 00:51:41,340 СТУДЕНТ: Шта је у простору да ПБ указује на. 1051 00:51:41,340 --> 00:51:43,406 ПРОФЕСОР: А ПБ указује да-- 1052 00:51:43,406 --> 00:51:43,905 СТУДЕНТ: Б. 1053 00:51:43,905 --> 00:51:46,740 ПРОФЕСОР: Б. Дакле једини ствар је мењање Б, у праву. 1054 00:51:46,740 --> 00:51:50,800 Дакле, Б, Ц, 500 пута. 1055 00:51:50,800 --> 00:51:52,367 Дакле, то је оно што се сада мења. 1056 00:51:52,367 --> 00:51:59,091 1057 00:51:59,091 --> 00:51:59,590 Цоол. 1058 00:51:59,590 --> 00:52:00,340 1059 00:52:00,340 --> 00:52:00,840 Ловели. 1060 00:52:00,840 --> 00:52:01,905 Ви се иде. 1061 00:52:01,905 --> 00:52:03,650 1062 00:52:03,650 --> 00:52:06,740 У реду, разбијање ову једну доле. 1063 00:52:06,740 --> 00:52:08,050 1064 00:52:08,050 --> 00:52:09,630 Ц се мења, зар не? 1065 00:52:09,630 --> 00:52:11,530 Тако да може да попуни у свему осталом. 1066 00:52:11,530 --> 00:52:12,540 1067 00:52:12,540 --> 00:52:13,205 Хајде да видимо. 1068 00:52:13,205 --> 00:52:19,125 1069 00:52:19,125 --> 00:52:19,625 У реду. 1070 00:52:19,625 --> 00:52:21,420 1071 00:52:21,420 --> 00:52:24,740 Ми знамо да је Ц ће бити производ два броја, зар не? 1072 00:52:24,740 --> 00:52:26,290 1073 00:52:26,290 --> 00:52:27,980 Шта два броја, иако? 1074 00:52:27,980 --> 00:52:28,970 >> СТУДЕНТ: и Ц? 1075 00:52:28,970 --> 00:52:31,930 >> ПРОФЕСОР: Па је право на првом. 1076 00:52:31,930 --> 00:52:34,385 Дакле, ми д упућује п о, зар не? 1077 00:52:34,385 --> 00:52:35,390 1078 00:52:35,390 --> 00:52:42,870 П од само указује на, тако да знамо да је Ово ће бити 100 пута Шта? 1079 00:52:42,870 --> 00:52:46,232 Посетилаца Какве пц тачку на? 1080 00:52:46,232 --> 00:52:47,410 1081 00:52:47,410 --> 00:52:48,740 Указује на. 1082 00:52:48,740 --> 00:52:55,038 Дакле, 100 пута 100 је 10.000. 1083 00:52:55,038 --> 00:52:56,170 Да ли то има смисла? 1084 00:52:56,170 --> 00:52:57,640 1085 00:52:57,640 --> 00:52:58,200 Цоол. 1086 00:52:58,200 --> 00:53:00,500 Хоме стретцх, момци, последњи ред. 1087 00:53:00,500 --> 00:53:01,190 У реду. 1088 00:53:01,190 --> 00:53:02,160 Шта се мења овде? 1089 00:53:02,160 --> 00:53:05,640 1090 00:53:05,640 --> 00:53:06,935 >> СТУДЕНТ: А. 1091 00:53:06,935 --> 00:53:09,435 ПРОФЕСОР: А. Савршено, тако Све остало може да остане исти. 1092 00:53:09,435 --> 00:53:16,210 1093 00:53:16,210 --> 00:53:16,710 У реду. 1094 00:53:16,710 --> 00:53:17,970 А шта је? 1095 00:53:17,970 --> 00:53:23,610 1096 00:53:23,610 --> 00:53:26,060 Тако да је оно пута? 1097 00:53:26,060 --> 00:53:27,120 То је звезда ПБ. 1098 00:53:27,120 --> 00:53:29,750 1099 00:53:29,750 --> 00:53:34,490 Дакле, са ПБ значи ево ПБ, ПБ поена на б. 1100 00:53:34,490 --> 00:53:35,370 >> СТУДЕНТ: 500. 1101 00:53:35,370 --> 00:53:36,230 >> ПРОФЕСОР: 500. 1102 00:53:36,230 --> 00:53:39,236 Дакле, имамо 500 пута 100. 1103 00:53:39,236 --> 00:53:41,758 То је 50.000. 1104 00:53:41,758 --> 00:53:43,216 Ух! 1105 00:53:43,216 --> 00:53:45,646 Погледајте то. 1106 00:53:45,646 --> 00:53:47,982 >> СТУДЕНТ: Зашто имамо & Ц за ласт-- 1107 00:53:47,982 --> 00:53:48,690 ПРОФЕСОР: Извини. 1108 00:53:48,690 --> 00:53:50,080 СТУДЕНТ: О, у реду. 1109 00:53:50,080 --> 00:53:51,600 ПРОФЕСОР: Моја грешка. 1110 00:53:51,600 --> 00:53:52,890 Много писања. 1111 00:53:52,890 --> 00:53:53,917 1112 00:53:53,917 --> 00:53:54,500 Сви добро? 1113 00:53:54,500 --> 00:53:55,630 1114 00:53:55,630 --> 00:53:56,660 Није лоше, зар не? 1115 00:53:56,660 --> 00:53:58,490 Само треба мало док на посао преко. 1116 00:53:58,490 --> 00:54:01,080 Ако га разбити, разумеју шта Сваки део 1117 00:54:01,080 --> 00:54:03,197 говори као да-- са свиме што је, 1118 00:54:03,197 --> 00:54:05,780 Да-- га разбити на мало Проблеми и онда рекомбинују, 1119 00:54:05,780 --> 00:54:07,345 и можете да урадите неке ствари страва. 1120 00:54:07,345 --> 00:54:08,970 Постоје одговори, али смо то урадили. 1121 00:54:08,970 --> 00:54:10,324 1122 00:54:10,324 --> 00:54:11,115 Поинтер аритметика. 1123 00:54:11,115 --> 00:54:13,961 1124 00:54:13,961 --> 00:54:14,460 Ах. 1125 00:54:14,460 --> 00:54:15,510 Моје руке су све кредаст. 1126 00:54:15,510 --> 00:54:17,970 Дакле, додајући или одузимајући Инт подешава показивача 1127 00:54:17,970 --> 00:54:21,890 по величини врсте показивача. 1128 00:54:21,890 --> 00:54:22,940 1129 00:54:22,940 --> 00:54:28,390 Сећаш се како сваки тип има другачију величину? 1130 00:54:28,390 --> 00:54:34,890 Дакле, као двострука или дуго дуго траје осам и Инт је четири, али Чар је један. 1131 00:54:34,890 --> 00:54:38,360 >> Дакле, оно што желите да урадите је-- једну ствар за памћење 1132 00:54:38,360 --> 00:54:44,080 је само да се колико твој Поинтер вредност заправо мења 1133 00:54:44,080 --> 00:54:46,550 ће зависити од тип поинтера је. 1134 00:54:46,550 --> 00:54:50,820 1135 00:54:50,820 --> 00:54:51,820 Свако добро са овим? 1136 00:54:51,820 --> 00:54:52,760 Могу ли га избрисати? 1137 00:54:52,760 --> 00:54:53,440 Ми смо добри? 1138 00:54:53,440 --> 00:54:53,940 Страва. 1139 00:54:53,940 --> 00:55:01,020 1140 00:55:01,020 --> 00:55:07,501 >> Дакле, ако имамо неке Поинтер да-- ће ово бити-- сам 1141 00:55:07,501 --> 00:55:08,834 ће то Инт Поинтер направи. 1142 00:55:08,834 --> 00:55:10,610 1143 00:55:10,610 --> 00:55:12,760 Она чува ово. 1144 00:55:12,760 --> 00:55:14,210 1145 00:55:14,210 --> 00:55:20,170 Ако сте били да кажете показивач плус један, шта ће да уради 1146 00:55:20,170 --> 00:55:23,420 се да ће ажурирати га по величини инт 1147 00:55:23,420 --> 00:55:25,950 јер је то тип поинтера је. 1148 00:55:25,950 --> 00:55:28,260 >> Са Ц, све је врло строга и уређена. 1149 00:55:28,260 --> 00:55:29,440 1150 00:55:29,440 --> 00:55:35,260 Инт показивач ће Упдате би количина простора Инт ће узети. 1151 00:55:35,260 --> 00:55:36,260 Инт је четири бајта. 1152 00:55:36,260 --> 00:55:37,650 1153 00:55:37,650 --> 00:55:39,060 >> Дакле, шта би то претворити у? 1154 00:55:39,060 --> 00:55:40,876 1155 00:55:40,876 --> 00:55:44,390 Ти само додао четири на ову. 1156 00:55:44,390 --> 00:55:50,040 Сада показивач ће бити-- реду. 1157 00:55:50,040 --> 00:55:51,820 1158 00:55:51,820 --> 00:55:55,380 >> Дакле, ако је Чар и јесмо поинтер плус један, шта би то сад било? 1159 00:55:55,380 --> 00:56:00,300 1160 00:56:00,300 --> 00:56:03,330 Ако се претварамо да стартед-- стартед-- сада је 0к08. 1161 00:56:03,330 --> 00:56:04,850 1162 00:56:04,850 --> 00:56:10,850 Хајде сада кажу да је то био цхар показивач, и ми смо додали. 1163 00:56:10,850 --> 00:56:11,850 Шта би то променити? 1164 00:56:11,850 --> 00:56:14,989 1165 00:56:14,989 --> 00:56:16,030 Колико бајтова је Чар? 1166 00:56:16,030 --> 00:56:16,680 >> ПУБЛИКА: Један. 1167 00:56:16,680 --> 00:56:17,304 >> СПЕАКЕР 1: Један. 1168 00:56:17,304 --> 00:56:18,309 ПУБЛИКА: Тако 0к09. 1169 00:56:18,309 --> 00:56:19,600 СПЕАКЕР 1: Па било би девет. 1170 00:56:19,600 --> 00:56:22,571 1171 00:56:22,571 --> 00:56:23,820 Дакле, само нешто да се сетим. 1172 00:56:23,820 --> 00:56:28,340 Само када додате један, то није додавањем једног осим ако је цхар. 1173 00:56:28,340 --> 00:56:34,190 То је додајући колико бајтова тип који је то, 1174 00:56:34,190 --> 00:56:36,960 због чега имамо Ова једначина овде. 1175 00:56:36,960 --> 00:56:40,190 Тако да је инт пута величина од врсте показивача. 1176 00:56:40,190 --> 00:56:42,850 1177 00:56:42,850 --> 00:56:44,730 >> Дакле, имамо овде пример. 1178 00:56:44,730 --> 00:56:47,250 1179 00:56:47,250 --> 00:56:54,430 година је добио ту вредност, 0к4, Када смо пре, плус један једнако. 1180 00:56:54,430 --> 00:56:56,830 Шта је у њој, шта је у Кс, не мења. 1181 00:56:56,830 --> 00:56:58,610 Оно што се мења је оно што је у и. 1182 00:56:58,610 --> 00:57:04,980 Адреса чувају у лет ажурирање четири јер постоје четири бајта у инт 1183 00:57:04,980 --> 00:57:06,097 и то је Инт Поинтер. 1184 00:57:06,097 --> 00:57:07,290 1185 00:57:07,290 --> 00:57:07,790 >> У реду. 1186 00:57:07,790 --> 00:57:09,123 Тако да сада имамо још једну вежбу. 1187 00:57:09,123 --> 00:57:11,140 1188 00:57:11,140 --> 00:57:13,500 Дакле, питање је шта ће се штампати. 1189 00:57:13,500 --> 00:57:36,710 1190 00:57:36,710 --> 00:57:37,650 Било који идеја? 1191 00:57:37,650 --> 00:57:41,690 1192 00:57:41,690 --> 00:57:43,699 >> ПУБЛИКА: број ликови у Хаппи Цат? 1193 00:57:43,699 --> 00:57:44,490 СПЕАКЕР 1: Тачно. 1194 00:57:44,490 --> 00:57:45,531 Дакле, са твојом стринг. 1195 00:57:45,531 --> 00:57:47,302 1196 00:57:47,302 --> 00:57:48,260 Да ли сви то? 1197 00:57:48,260 --> 00:57:49,509 Да ли желимо да прође кроз њу? 1198 00:57:49,509 --> 00:57:50,300 1199 00:57:50,300 --> 00:57:52,010 >> Да, у реду. 1200 00:57:52,010 --> 00:57:57,385 Дакле, оно што имамо и овдје-- овако много више. 1201 00:57:57,385 --> 00:57:59,340 Ја не морам да [Неразумљиво] смешно. 1202 00:57:59,340 --> 00:58:01,690 >> Дакле, имамо стринг, Хаппи Цат. 1203 00:58:01,690 --> 00:58:02,950 Ловели. 1204 00:58:02,950 --> 00:58:05,080 Ми имамо неке цоунтер то смо праћење. 1205 00:58:05,080 --> 00:58:11,430 Дакле, имамо неку цхар * поинтер да само се поставља једнака Стр. 1206 00:58:11,430 --> 00:58:14,320 Шта ово ради је да је додела мало показивач 1207 00:58:14,320 --> 00:58:16,380 на почетку низа. 1208 00:58:16,380 --> 00:58:19,840 Јер сам сигуран, јер помиње у предавању, 1209 00:58:19,840 --> 00:58:22,290 ми смо вам дали момци ово тип података звао низ. 1210 00:58:22,290 --> 00:58:29,070 >> Али стварно жице су само Арраи од-- као цхар *. 1211 00:58:29,070 --> 00:58:32,330 То је показивач на гомили ликова који су суседни у меморији. 1212 00:58:32,330 --> 00:58:33,680 1213 00:58:33,680 --> 00:58:36,280 Дакле, ово само сетс једнак сваком стринг је 1214 00:58:36,280 --> 00:58:38,980 препознаје се по где њен први знак је. 1215 00:58:38,980 --> 00:58:42,710 Дакле, ово је само постављање неку тачку једнак почетку низа. 1216 00:58:42,710 --> 00:58:44,130 Сви добро тамо? 1217 00:58:44,130 --> 00:58:44,960 Цоол. 1218 00:58:44,960 --> 00:58:49,840 >> Дакле, ово је наш дереференцинг показивач. 1219 00:58:49,840 --> 00:58:53,760 Тако да је у ствари иде у дај нам неку вредност овде, 1220 00:58:53,760 --> 00:58:55,610 у нашем низу да говоримо о. 1221 00:58:55,610 --> 00:58:58,342 И ми кажеш колико није нулл терминатор. 1222 00:58:58,342 --> 00:59:00,550 Тако настави док се не до краја стринга. 1223 00:59:00,550 --> 00:59:02,180 1224 00:59:02,180 --> 00:59:04,190 Ажурирајте показивач за један. 1225 00:59:04,190 --> 00:59:09,250 Дакле Р, заправо ће ажурирати по један Сваки пут јер је ово знак, 1226 00:59:09,250 --> 00:59:09,820 цхар *. 1227 00:59:09,820 --> 00:59:10,930 1228 00:59:10,930 --> 00:59:12,340 >> Дакле, то ће проћи. 1229 00:59:12,340 --> 00:59:13,290 То ће се ажурирати. 1230 00:59:13,290 --> 00:59:16,705 Дакле, први пут ове води, то ће бити овде у х. 1231 00:59:16,705 --> 00:59:17,590 То ће се ажурирати. 1232 00:59:17,590 --> 00:59:18,185 >> То ће бити. 1233 00:59:18,185 --> 00:59:21,310 То ће бити п, И, и тако даље и тако даље. 1234 00:59:21,310 --> 00:59:22,300 Ми ћемо ажурирати цоунтер. 1235 00:59:22,300 --> 00:59:26,160 Када стигне на крају, Само исписује колико то стечен. 1236 00:59:26,160 --> 00:59:27,550 1237 00:59:27,550 --> 00:59:28,050 Да. 1238 00:59:28,050 --> 00:59:31,475 >> ПУБЛИКА: Дакле Броји простор као један, зар не? 1239 00:59:31,475 --> 00:59:31,974 У реду. 1240 00:59:31,974 --> 00:59:34,294 1241 00:59:34,294 --> 00:59:35,222 >> СПЕАКЕР 1: Мислим да јесам. 1242 00:59:35,222 --> 00:59:36,830 Да ли је то куестион-- 1243 00:59:36,830 --> 00:59:37,746 >> ПУБЛИКА: [неразумљиво]. 1244 00:59:37,746 --> 00:59:37,968 1245 00:59:37,968 --> 00:59:38,884 >> СПЕАКЕР 1: Без бриге. 1246 00:59:38,884 --> 00:59:39,720 1247 00:59:39,720 --> 00:59:42,736 То сам урадио. 1248 00:59:42,736 --> 00:59:47,710 У реду, тако да се сам ствар разуме се да са низа, 1249 00:59:47,710 --> 00:59:51,736 можете третирати као Поинтер јер низови су само 1250 00:59:51,736 --> 00:59:52,860 континуиране мрље меморије. 1251 00:59:52,860 --> 00:59:53,970 1252 00:59:53,970 --> 00:59:56,380 >> Тако да може да се користи на исти начин. 1253 00:59:56,380 --> 00:59:59,000 Можете их манипулисати са показивачима, такође. 1254 00:59:59,000 --> 01:00:04,770 Дакле, уместо да ради, у овом Цасе, аналогна ствар 1255 01:00:04,770 --> 01:00:07,490 би Арраи 0 једнако 1. 1256 01:00:07,490 --> 01:00:08,760 1257 01:00:08,760 --> 01:00:15,210 >> Али исти начин на који стринг се утврђује 1258 01:00:15,210 --> 01:00:18,740 до почетка, где њен први знак је, 1259 01:00:18,740 --> 01:00:22,270 низ је одређена где је први елемент је. 1260 01:00:22,270 --> 01:00:25,120 Јер знамо, да смо загарантована, да су 1261 01:00:25,120 --> 01:00:27,985 ће бити континуирано блокови меморије. 1262 01:00:27,985 --> 01:00:29,360 То је оно што нам омогућава да урадимо ово. 1263 01:00:29,360 --> 01:00:31,193 Ми знамо да су континуирано блокови меморије. 1264 01:00:31,193 --> 01:00:32,230 1265 01:00:32,230 --> 01:00:36,500 >> Дакле, у овом случају, дереференцинг Само Арраи, то нам говори, 1266 01:00:36,500 --> 01:00:40,800 У реду, иди на почетак Ваша низ, који је овде. 1267 01:00:40,800 --> 01:00:42,640 Тако да можете подесити да једнако један. 1268 01:00:42,640 --> 01:00:48,610 И у овом случају, шта год ти Арраи тип је, када га ажурирате по један, 1269 01:00:48,610 --> 01:00:50,830 то је исто као ажурирање га на следеци индекс. 1270 01:00:50,830 --> 01:00:52,760 1271 01:00:52,760 --> 01:00:56,360 То можете да урадите јер сте Знам шта је у вашем низу. 1272 01:00:56,360 --> 01:00:59,770 Тако да не зна колико се ажурирате свој показивач, 1273 01:00:59,770 --> 01:01:02,925 Коју адресу да га да то упдате да сте на следећем слот. 1274 01:01:02,925 --> 01:01:04,740 1275 01:01:04,740 --> 01:01:09,400 >> Дакле, ово је само другачији начин писања Арраи 0 једнако 1, 1276 01:01:09,400 --> 01:01:15,114 Арраи 1 једнако 2, арраи носач 2 једнако 3. 1277 01:01:15,114 --> 01:01:16,780 То је само још један начин да се размисли о томе. 1278 01:01:16,780 --> 01:01:19,600 Зато што су континуирано блокови у меморији, 1279 01:01:19,600 --> 01:01:21,830 можете упутити на њих ни од низа нотатион-- 1280 01:01:21,830 --> 01:01:24,390 које сам лично финд еасиер-- али можда 1281 01:01:24,390 --> 01:01:27,347 морате да га манипулишу строго по меморијским адресама. 1282 01:01:27,347 --> 01:01:28,930 И то је начин на који би то урадила. 1283 01:01:28,930 --> 01:01:30,630 1284 01:01:30,630 --> 01:01:32,630 Некако више као добра ствар можете да урадите 1285 01:01:32,630 --> 01:01:35,213 Можда не у односу на нешто што си заправо ће имплементирати. 1286 01:01:35,213 --> 01:01:36,960 1287 01:01:36,960 --> 01:01:38,630 >> Ја га користим у 61. 1288 01:01:38,630 --> 01:01:41,710 Ви вероватно не треба да брине о томе превише. 1289 01:01:41,710 --> 01:01:43,693 Али ако сте заинтересовани, узети 61 наредне године. 1290 01:01:43,693 --> 01:01:45,269 1291 01:01:45,269 --> 01:01:46,560 Ми смо у кући стреч момцима. 1292 01:01:46,560 --> 01:01:47,510 Знам, то је дуга. 1293 01:01:47,510 --> 01:01:50,570 1294 01:01:50,570 --> 01:01:58,880 Динамичка меморија од Аллоцатион-- тако да знамо да један 1295 01:01:58,880 --> 01:02:01,790 ствари када смо разговарали током наша прва секција заједно, 1296 01:02:01,790 --> 01:02:04,560 смо гледали свап Функција где је 1297 01:02:04,560 --> 01:02:08,010 изван оквира нашег главног функције. 1298 01:02:08,010 --> 01:02:14,370 И смо пролазили у тим вредностима које су биле ефективно копије. 1299 01:02:14,370 --> 01:02:20,570 >> И када свап завршен извршавање, само оставила гомилу. 1300 01:02:20,570 --> 01:02:22,830 Запамтите, имамо стацк оквир за свап. 1301 01:02:22,830 --> 01:02:26,070 Она оставља и оних Вредности оставити са њим. 1302 01:02:26,070 --> 01:02:27,050 И они су отишли. 1303 01:02:27,050 --> 01:02:28,615 Нисмо могли ништа са њима и ми били тужни 1304 01:02:28,615 --> 01:02:29,989 јер не могу заменити наше вредности. 1305 01:02:29,989 --> 01:02:31,070 1306 01:02:31,070 --> 01:02:36,560 >> Али са Ц, као што сам поменуо, те имају доста моћи над меморије. 1307 01:02:36,560 --> 01:02:43,310 Дакле, шта можете да урадите је да ли додели ствари на гомилу овде 1308 01:02:43,310 --> 01:02:46,830 да ће тамо остати до реци им другачије. 1309 01:02:46,830 --> 01:02:48,280 >> Они су као добра деца. 1310 01:02:48,280 --> 01:02:49,150 Они су тамо остали. 1311 01:02:49,150 --> 01:02:50,270 Они не остављају. 1312 01:02:50,270 --> 01:02:52,750 Они ће остати тамо док си као, у реду, можеш отићи. 1313 01:02:52,750 --> 01:02:55,920 >> Док ствари на стек, ко-- они су као деца несташним. 1314 01:02:55,920 --> 01:02:59,160 Само ће побегнемо када желите да се тамо и онда су нестали. 1315 01:02:59,160 --> 01:03:00,160 Ви не можете да их вратимо. 1316 01:03:00,160 --> 01:03:01,350 1317 01:03:01,350 --> 01:03:07,187 >> Тако да гомила је-- ћемо говорити о маллоц и фрее, који 1318 01:03:07,187 --> 01:03:08,895 Сигуран сам да момци чуо у предавању. 1319 01:03:08,895 --> 01:03:10,270 1320 01:03:10,270 --> 01:03:14,210 И то је у суштини начин да имају веома упорни подацима. 1321 01:03:14,210 --> 01:03:18,920 Тако да можете држати податке око колико желите. 1322 01:03:18,920 --> 01:03:19,546 Мхм. 1323 01:03:19,546 --> 01:03:21,475 >> ПУБЛИКА: Можете ли дефинисати гомилу и стацк? 1324 01:03:21,475 --> 01:03:24,030 Да ли они воле места да ставимо ствари? 1325 01:03:24,030 --> 01:03:26,630 >> СПЕАКЕР 1: Па они су у основи су само-- 1326 01:03:26,630 --> 01:03:29,530 начин на који смо се односе само на меморију. 1327 01:03:29,530 --> 01:03:37,300 Дакле, гомила је само места где Меморија је динамички додељује, 1328 01:03:37,300 --> 01:03:40,960 док Стацк односи више стацк оквире 1329 01:03:40,960 --> 01:03:45,950 да су од централног значаја за функције које су заправо ради. 1330 01:03:45,950 --> 01:03:47,200 Ти стварно немам контролу. 1331 01:03:47,200 --> 01:03:50,690 >> Велика разлика, имате контролу преко гомиле ако желите. 1332 01:03:50,690 --> 01:03:52,710 Имате мање контролу над стека. 1333 01:03:52,710 --> 01:03:55,030 Стацк зависи функције које се ради, 1334 01:03:55,030 --> 01:03:58,320 и редослед којим су рун, а како се ствари вратио. 1335 01:03:58,320 --> 01:04:01,290 Док са гомиле, као ћемо видети, можете рећи, 1336 01:04:01,290 --> 01:04:06,639 У реду, желим ова вредност буде около док ти не кажем другачије. 1337 01:04:06,639 --> 01:04:08,180 Нисте дозвољено да се ослободи тога. 1338 01:04:08,180 --> 01:04:09,300 Ви не смете да га замените. 1339 01:04:09,300 --> 01:04:11,675 Ти ћеш да га задржим око док сам ти рекао. 1340 01:04:11,675 --> 01:04:15,780 Можеш да се газда у гомили, док стацк-- Можда ако 1341 01:04:15,780 --> 01:04:18,080 Као издејствовати свој пут можете бити шеф. 1342 01:04:18,080 --> 01:04:19,340 Али не сасвим. 1343 01:04:19,340 --> 01:04:20,480 1344 01:04:20,480 --> 01:04:22,070 И то је заиста само сећање. 1345 01:04:22,070 --> 01:04:24,260 То је само на различите начине упућивања у меморију. 1346 01:04:24,260 --> 01:04:25,800 1347 01:04:25,800 --> 01:04:26,400 >> Цоол. 1348 01:04:26,400 --> 01:04:28,630 Дакле са тим, како да контролишете своју меморију. 1349 01:04:28,630 --> 01:04:32,070 То је са маллоц, који ћеш добити за коришћење. 1350 01:04:32,070 --> 01:04:37,100 Дакле, то је само кратко за додјелу меморије. 1351 01:04:37,100 --> 01:04:38,459 То је све што је. 1352 01:04:38,459 --> 01:04:41,250 Постоји гомила друге кул Функције које имају аллоц на крају, 1353 01:04:41,250 --> 01:04:42,750 и они стоје за различите ствари. 1354 01:04:42,750 --> 01:04:43,550 1355 01:04:43,550 --> 01:04:49,050 >> Дакле, када вам је потребна за складиштење који треба да наџиви тако тренутну функцију 1356 01:04:49,050 --> 01:04:51,010 да кад ваш тренутни функција бежи, 1357 01:04:51,010 --> 01:04:55,774 и даље имате податке који вас добили од њега, желите да користите маллоц. 1358 01:04:55,774 --> 01:04:57,190 То ће га иницијализујете на гомиле. 1359 01:04:57,190 --> 01:05:00,140 И као што рекох и задржати говорећи ћете га задржати тамо 1360 01:05:00,140 --> 01:05:03,050 док га на нешто, што је важна ствар овде. 1361 01:05:03,050 --> 01:05:08,450 >> Дакле, једна ствар приметити, и То је типично заиста важно, 1362 01:05:08,450 --> 01:05:13,620 је да је овај сизеоф је супер корисно користити 1363 01:05:13,620 --> 01:05:16,440 јер зависно од типа машине да трчиш, 1364 01:05:16,440 --> 01:05:22,470 она може имати различите количине меморије која је потребно. 1365 01:05:22,470 --> 01:05:26,870 Тако да увек желите да користите величину тако да ниси машина зависи, 1366 01:05:26,870 --> 01:05:30,300 тако да је ваш код ће ради на свакој машини. 1367 01:05:30,300 --> 01:05:32,360 >> И то је само део писања доброг кода. 1368 01:05:32,360 --> 01:05:34,610 Ако се ради о једној машини, али не било од других, 1369 01:05:34,610 --> 01:05:36,440 Како корисно је ваш програм? 1370 01:05:36,440 --> 01:05:38,420 Тако да увек желе да уверите се и користе сизеоф. 1371 01:05:38,420 --> 01:05:41,306 >> ПУБЛИКА: Да ли је то као величина 10 инча [неразумљиво]? 1372 01:05:41,306 --> 01:05:43,698 >> СПЕАКЕР 1: Ово је величине 10 интс. 1373 01:05:43,698 --> 01:05:44,197 Да. 1374 01:05:44,197 --> 01:05:45,360 1375 01:05:45,360 --> 01:05:48,830 Дакле, величина интс ће се вратити колико неко узме Инт. 1376 01:05:48,830 --> 01:05:51,530 Или величина цхар, како кошта један цхар Таке. 1377 01:05:51,530 --> 01:05:54,150 И онда колико блокови то хоћеш? 1378 01:05:54,150 --> 01:05:57,590 >> Дакле, у овом случају, желимо нешто да може да ускладишти 10 интс то. 1379 01:05:57,590 --> 01:06:00,240 И то ће радити независно машине, која је кул. 1380 01:06:00,240 --> 01:06:01,720 1381 01:06:01,720 --> 01:06:04,846 Колико ће бајтова да заправо ти дам? 1382 01:06:04,846 --> 01:06:06,190 Брзо математике. 1383 01:06:06,190 --> 01:06:06,787 >> ПУБЛИКА: 40. 1384 01:06:06,787 --> 01:06:07,370 СПЕАКЕР 1: 40. 1385 01:06:07,370 --> 01:06:07,869 Екацтли. 1386 01:06:07,869 --> 01:06:09,520 1387 01:06:09,520 --> 01:06:12,030 Дакле, још једна велика ствар. 1388 01:06:12,030 --> 01:06:14,840 Поинтер или маллоц могу вратити нулл. 1389 01:06:14,840 --> 01:06:17,910 >> Дакле, опет, увек проверите да видите да ли нулл враћен 1390 01:06:17,910 --> 01:06:19,620 пре него што покушате да урадите нешто са њим. 1391 01:06:19,620 --> 01:06:23,430 1392 01:06:23,430 --> 01:06:27,350 Ако покушате и дереференце Ово Поинтер сада, 1393 01:06:27,350 --> 01:06:29,720 Управо ће Сегфаулт јер сте отишли ​​и покушали 1394 01:06:29,720 --> 01:06:31,730 на додир нулл када не би требало да имате. 1395 01:06:31,730 --> 01:06:34,000 Дакле, увек проверите нулл. 1396 01:06:34,000 --> 01:06:36,075 Опет, све можете да урадите. 1397 01:06:36,075 --> 01:06:38,300 1398 01:06:38,300 --> 01:06:39,720 >> Можда ће се вратити нулл. 1399 01:06:39,720 --> 01:06:42,740 То ће се вратити нулл ако или си из простора, или из било ког разлога 1400 01:06:42,740 --> 01:06:44,350 то налетео неки буг меморије. 1401 01:06:44,350 --> 01:06:45,890 1402 01:06:45,890 --> 01:06:47,510 Понекад се само враћа нулл. 1403 01:06:47,510 --> 01:06:48,990 Дакле, потребно је само да проверим за то. 1404 01:06:48,990 --> 01:06:51,050 То је све ово слајд говори. 1405 01:06:51,050 --> 01:06:53,366 1406 01:06:53,366 --> 01:06:55,240 А онда оно што имамо Овде је позив да се ослободи. 1407 01:06:55,240 --> 01:07:00,550 Дакле, на исти начин да, ако отворите датотеку морате затворити датотеку, 1408 01:07:00,550 --> 01:07:04,340 Ако вам маллоц меморије, ви морате ослободити ту меморију. 1409 01:07:04,340 --> 01:07:06,530 И ви ћете добити да радим стварно кул ствари. 1410 01:07:06,530 --> 01:07:09,624 >> И ту је програм који може покренути у видите да ли икада цури меморију. 1411 01:07:09,624 --> 01:07:11,040 Али ви не желите да цури меморију. 1412 01:07:11,040 --> 01:07:11,820 То је стварно лоше. 1413 01:07:11,820 --> 01:07:13,191 1414 01:07:13,191 --> 01:07:15,020 Само неред ствари. 1415 01:07:15,020 --> 01:07:20,939 >> То је лоше да урадите као програмирање мудри за ефикасност дизајна. 1416 01:07:20,939 --> 01:07:22,980 Али то је такође некако Бад рачунара. 1417 01:07:22,980 --> 01:07:26,780 Па само фрее ствари када их маллоц. 1418 01:07:26,780 --> 01:07:28,190 1419 01:07:28,190 --> 01:07:30,210 >> Ви видите овде симетрије. 1420 01:07:30,210 --> 01:07:31,180 Супер једноставно. 1421 01:07:31,180 --> 01:07:33,010 Само слободни и онда год показивач, 1422 01:07:33,010 --> 01:07:34,843 год име показивач је, и то 1423 01:07:34,843 --> 01:07:36,710 ће се побринути за то ослободи за вас. 1424 01:07:36,710 --> 01:07:38,200 1425 01:07:38,200 --> 01:07:38,700 Цоол. 1426 01:07:38,700 --> 01:07:40,410 1427 01:07:40,410 --> 01:07:42,530 >> Онда имамо ово. 1428 01:07:42,530 --> 01:07:44,770 Дакле, ми ћемо само да се проћи кроз овај програм. 1429 01:07:44,770 --> 01:07:46,560 И онда ви се уради. 1430 01:07:46,560 --> 01:07:50,240 >> Дакле, [неразумљиво] само главни. 1431 01:07:50,240 --> 01:07:51,690 Дакле, имамо неку инт * поинтер. 1432 01:07:51,690 --> 01:07:53,648 Дакле, имамо показивач који ће држати Интс. 1433 01:07:53,648 --> 01:07:54,500 1434 01:07:54,500 --> 01:07:56,170 И колико интс иде да одржи? 1435 01:07:56,170 --> 01:07:57,400 1436 01:07:57,400 --> 01:07:58,170 Само један. 1437 01:07:58,170 --> 01:07:59,400 1438 01:07:59,400 --> 01:08:01,100 Величина инт. 1439 01:08:01,100 --> 01:08:03,900 >> Ми проверите да ли показивач нулл због тога 1440 01:08:03,900 --> 01:08:06,130 је, желимо да кажемо не ради ништа. 1441 01:08:06,130 --> 01:08:07,065 То је лоше. 1442 01:08:07,065 --> 01:08:08,130 1443 01:08:08,130 --> 01:08:12,130 Тако да штампамо неку грешку оут оф Меморија, најчешће врате 1, 1444 01:08:12,130 --> 01:08:14,260 Као што сте ви навикли. 1445 01:08:14,260 --> 01:08:17,390 >> И онда имамо овде, ми дереференце нашем показивача. 1446 01:08:17,390 --> 01:08:22,840 То значи да ћемо за складиштење нешто на датој локацији за нас. 1447 01:08:22,840 --> 01:08:24,350 1448 01:08:24,350 --> 01:08:30,830 Инт * поинтер, или маллоц, враћа адреса где је издвојила ово 1449 01:08:30,830 --> 01:08:31,750 Меморија за вас. 1450 01:08:31,750 --> 01:08:32,830 1451 01:08:32,830 --> 01:08:34,800 Дакле, то је у основи дајући вам као-- ако вас 1452 01:08:34,800 --> 01:08:38,149 размислите о гомили кућа у комшилуку 1453 01:08:38,149 --> 01:08:40,640 да желите да ставите Ваш намештај у, маллоц 1454 01:08:40,640 --> 01:08:43,850 је као у реду, ти да иду у куће три. 1455 01:08:43,850 --> 01:08:45,800 И то вам је даје адреса куће три. 1456 01:08:45,800 --> 01:08:48,775 >> Тако да сада, ово Показивач продавнице адреса, 1457 01:08:48,775 --> 01:08:50,149 складишти адресу ваше куће. 1458 01:08:50,149 --> 01:08:51,470 1459 01:08:51,470 --> 01:08:54,640 * птр значи, у реду, ја сам у мојој кући. 1460 01:08:54,640 --> 01:08:55,326 Цоол. 1461 01:08:55,326 --> 01:08:56,580 Морам да цјелину. 1462 01:08:56,580 --> 01:08:59,229 >> Дакле, ви питате некога да вам дам намештај сада. 1463 01:08:59,229 --> 01:09:00,430 Тако да мало инт. 1464 01:09:00,430 --> 01:09:05,100 И то га ставља на показивач где је указујући на. 1465 01:09:05,100 --> 01:09:08,670 >> И онда је она Принтс напоље, ушао си где год. 1466 01:09:08,670 --> 01:09:11,060 И опет, референца. 1467 01:09:11,060 --> 01:09:15,649 Дакле, ово је као да је у ово адреса и видели шта је тамо. 1468 01:09:15,649 --> 01:09:17,120 1469 01:09:17,120 --> 01:09:17,630 Цоол? 1470 01:09:17,630 --> 01:09:20,174 >> И онда наравно да ослободимо наше показивач. 1471 01:09:20,174 --> 01:09:21,590 Не заборавите да ослободи показивач. 1472 01:09:21,590 --> 01:09:22,933 Не заборавите да проверите нулл. 1473 01:09:22,933 --> 01:09:24,349 Не заборавите да ослободи показивач. 1474 01:09:24,349 --> 01:09:27,270 Имате две ствари те се из Ово, или да треба имати у виду. 1475 01:09:27,270 --> 01:09:27,770 Да. 1476 01:09:27,770 --> 01:09:31,590 ПУБЛИКА: [неразумљиво] ствари тако, цхар * с. 1477 01:09:31,590 --> 01:09:33,760 Како то да никада ослободити оне? 1478 01:09:33,760 --> 01:09:34,529 >> СПЕАКЕР 1: Хм? 1479 01:09:34,529 --> 01:09:36,450 >> ПУБЛИКА: Да ли су они попут жица? 1480 01:09:36,450 --> 01:09:39,160 Рекли сте жице су као цхар * с, зар не? 1481 01:09:39,160 --> 01:09:41,200 Па зашто не бисмо ослободили жице? 1482 01:09:41,200 --> 01:09:43,204 >> СПЕАКЕР 1: само вама слободан ако маллоцинг. 1483 01:09:43,204 --> 01:09:44,620 ПУБЛИКА: О, ако маллоцинг. 1484 01:09:44,620 --> 01:09:47,399 СПЕАКЕР 1: Па маллоц и бесплатно су две ствари 1485 01:09:47,399 --> 01:09:49,000 да увек треба да заједно. 1486 01:09:49,000 --> 01:09:51,630 Ф Отворите, м близу, две ствари Ви треба да заједно. 1487 01:09:51,630 --> 01:09:54,471 У оба тим случајевима, проверите нулл. 1488 01:09:54,471 --> 01:09:54,971 Да. 1489 01:09:54,971 --> 01:09:57,130 >> ПУБЛИКА: Дакле, слободан је само дозвољавајући нешто друго 1490 01:09:57,130 --> 01:09:59,690 да се тамо чува после Овај програм је користи? 1491 01:09:59,690 --> 01:10:01,946 >> СПЕАКЕР 1: То је само рекао: Ок, ја сам завршио са овим. 1492 01:10:01,946 --> 01:10:03,320 Ви не треба да га задржи око. 1493 01:10:03,320 --> 01:10:05,340 1494 01:10:05,340 --> 01:10:08,190 У супротном ваш рачунар ће Баш као покушајте да га тамо. 1495 01:10:08,190 --> 01:10:10,910 А онда га води могу-- у питањима касније меморијске. 1496 01:10:10,910 --> 01:10:13,660 Сте одувек желели да га ослободи, јер то говори рачунар, у реду, ја сам 1497 01:10:13,660 --> 01:10:15,190 завршио са том месту меморије. 1498 01:10:15,190 --> 01:10:17,190 Можете га добити назад за мене да користе касније. 1499 01:10:17,190 --> 01:10:19,250 1500 01:10:19,250 --> 01:10:20,500 Цоол? 1501 01:10:20,500 --> 01:10:21,320 Да. 1502 01:10:21,320 --> 01:10:26,950 >> ПУБЛИКА: Тако смо користили само% д јер који је двоструко враћа, 1503 01:10:26,950 --> 01:10:28,330 или зашто је-- [неразумљиво]. 1504 01:10:28,330 --> 01:10:30,170 1505 01:10:30,170 --> 01:10:31,620 >> ПУБЛИКА: Да ли користите% и? 1506 01:10:31,620 --> 01:10:32,760 >> СПЕАКЕР 1: Можете да користим%. 1507 01:10:32,760 --> 01:10:35,052 1508 01:10:35,052 --> 01:10:36,135 Ани ласт минуте питања? 1509 01:10:36,135 --> 01:10:38,310 1510 01:10:38,310 --> 01:10:38,985 Само напред. 1511 01:10:38,985 --> 01:10:40,610 ПУБЛИКА: Имам само једно кратко питање. 1512 01:10:40,610 --> 01:10:50,200 Дакле, ПТР променљива, то је-- као, са инт * птр = маллоц, 1513 01:10:50,200 --> 01:10:54,142 то је само кажем да је указујући на место у мемори-- 1514 01:10:54,142 --> 01:10:55,600 СПЕАКЕР 1: Да ли желите [неразумљиво]? 1515 01:10:55,600 --> 01:10:58,050 ПУБЛИКА: --тхат је величина од-- не, то је у реду. 1516 01:10:58,050 --> 01:11:01,292 Али то је само указује на место у меморија која је као четири бајта. 1517 01:11:01,292 --> 01:11:02,000 СПЕАКЕР 1: Добро. 1518 01:11:02,000 --> 01:11:03,030 1519 01:11:03,030 --> 01:11:07,070 Дакле маллоц величину Инт каже, У реду, ја ћу да идем побегао, 1520 01:11:07,070 --> 01:11:08,780 наћи четири бајта меморије за вас. 1521 01:11:08,780 --> 01:11:10,700 Када утврди да је четири бајтова меморије је, 1522 01:11:10,700 --> 01:11:14,030 ти врати адресу где почиње, 1523 01:11:14,030 --> 01:11:16,160 и то је оно што чува у Поинтер, или ПТР. 1524 01:11:16,160 --> 01:11:17,510 1525 01:11:17,510 --> 01:11:18,010 Добро. 1526 01:11:18,010 --> 01:11:18,742 1527 01:11:18,742 --> 01:11:21,700 Ви изгледа мање збуњено него већина Људи кад говорим о поинтер, 1528 01:11:21,700 --> 01:11:23,670 тако да се осећам прилично добро сада. 1529 01:11:23,670 --> 01:11:24,520 >> У реду. 1530 01:11:24,520 --> 01:11:27,960 Као и увек, ви треба да имају све стечен своје псет2 оцене сада. 1531 01:11:27,960 --> 01:11:32,769 Знам да је било неких Несигуран ствари где се каже, формула није важећа 1532 01:11:32,769 --> 01:11:33,310 или нешто. 1533 01:11:33,310 --> 01:11:36,166 Ако добијате то, сви Ваши оцене важе на мојој страни. 1534 01:11:36,166 --> 01:11:38,040 Тако да могу да те послати Сцреенсхотс ваших разреда. 1535 01:11:38,040 --> 01:11:39,011 1536 01:11:39,011 --> 01:11:41,760 Само да ми, као да си недостаје све оцене или нешто 1537 01:11:41,760 --> 01:11:43,060 не изгледа да има смисла. 1538 01:11:43,060 --> 01:11:43,720 Дођи код мене. 1539 01:11:43,720 --> 01:11:44,830 1540 01:11:44,830 --> 01:11:48,830 >> Ја сам супер поносан на тебе момци већ тако наставимо тако. 1541 01:11:48,830 --> 01:11:50,640 И имају добар остатак недеље. 1542 01:11:50,640 --> 01:11:53,440 Сигуран сам да ћу видети неке од вас у радног времена. 1543 01:11:53,440 --> 01:11:55,414