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 Выдатны дзень out-- таму, я Безумоўна, ёсць толькі чатыры з вас тут 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 Так у мяне няма Starburst для вас, хлопцы. 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 Але проста быць лёгка на мяне ў трохі bit-- што ўсё, што я прашу. 16 00:00:37,390 --> 00:00:39,370 17 00:00:39,370 --> 00:00:44,289 >> Такім чынам, наша позва дня раз сёння проста reminder-- ваш тэст на наступным тыдні. 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 of-- я паспрабую і праца ў нейкі агляд. 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 Я ўпэўнены, што вы ўсё супер ўсхваляваныя pointers-- любімая тэма кожнага, 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 >> Так пра ўсё па парадку, redirection-- гэта ў асноўным проста спосаб 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 Але ёсць спосабы pipe-- як мы бачым тут 44 00:01:55,940 --> 00:01:58,980 з'яўляецца адным з нашых words-- роду з трубы, што інфармацыя 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 Так output-- ён проста друкуе выснову у файл замест экрана. 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 калі вы змесціце яго замест у output.text, што 55 00:02:32,400 --> 00:02:35,220 стварае гэты файл з імем output.text. 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 psets для машыннага навучання. 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 чым карэткі, калі вы пішаце у файл, які ўжо exists-- 77 00:03:40,090 --> 00:03:44,990 бо калі мы пабеглі гэта першы Час, мы паклалі яго ў output.text, 78 00:03:44,990 --> 00:03:49,970 а затым у нас быў другі праграмы што надрукавана гэта як праграмы два 79 00:03:49,970 --> 00:03:54,250 і зрабіў больш, чым у output.text, ён перапіша that-- так 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 гэта проста паказваць толькі на выхадзе Кропка тэкст другі time-- 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 Калі гэты файл тут, output.text ўжо 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 і вы захаваннем імя, і ён цалкам перапісвае it-- 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 Таму, калі вы, хлопцы, былі як Цэзар або Visioneer 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 як і калі вы папрасілі вашага паведамленне Цэзара або Visioneer, 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 Проста зваротная output-- проста ўваход для вашых дадзеных. 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 што CS50 могуць мець даў вам, але гэта было б 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 Што б падаць input-- калі гэта задаеце пытанне, што першы раз, гэта 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 >> Так падаць I / O-, я ведаю, што ты saying-- мы прывыклі чытаць з 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 Але вы таксама можаце чытаць і запісваць файлы, які ўсё-файл I / O-, так ўваход падаць, 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 Як толькі вы зробіце "Hello Свет "і запусціць" Прывітанне, свет " 171 00:08:12,507 --> 00:08:14,090 ён друкуе "Hello World" на экран. 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 I / O. На першым этапе, вы трэба стварыць спасылку 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 А вы кажаце, у літаральным сэнсе, проста файл роўны FOPEN. 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 >> Але адна з рэчаў, з'яўляецца remember-- паказальнікі 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 >> Так з FOPEN, FOPEN будзе альбо вяртае паказальнік на файл, 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 Так на самой справе тое, што я проста said-- калі файл не існуе 223 00:10:20,670 --> 00:10:23,400 і вы спрабуеце чытаць з гэта, ён збіраецца кінуць памылку. 224 00:10:23,400 --> 00:10:26,890 Калі файл name-- падабаецца, калі file.text яшчэ не існуе 225 00:10:26,890 --> 00:10:29,250 і вы хочаце напісаць да яго, гэта створыць 226 00:10:29,250 --> 00:10:33,110 пусты файл з імем file.text для вас. 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 што ў нас ёсць для файла I / O. Гэта воля неабходна ў PSET на гэтым тыдні, 238 00:10:58,980 --> 00:11:00,505 калі я правільна памятаю. 239 00:11:00,505 --> 00:11:02,880 Так, гэта абсалютна будзе неабходна ў PSET на гэтым тыдні. 240 00:11:02,880 --> 00:11:04,260 241 00:11:04,260 --> 00:11:07,010 Так fgetc вяртае наступны знак. 242 00:11:07,010 --> 00:11:08,350 243 00:11:08,350 --> 00:11:10,300 fgets проста вяртае радок тэксту. 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 Так FREAD чытае пэўны колькасць байт і змяшчае іх 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 >> Колькі людзей чытаць PSET спецыфікацыі, дарэчы? 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 Вызначана чытаць that-- гэта весела PSET. 259 00:11:41,940 --> 00:11:51,320 Вы дабіраецеся, каб аднавіць аддалены памяць card-- вельмі цікава, калі ён працуе. 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 >> Такім чынам, як я ўжо казаў, FREAD счытвае пэўную колькасць байтаў. 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 А потым FSEEK усяго руху ў вызначаным становішчы. 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 FSEEK дазваляе зрабіць гэта. 272 00:12:18,252 --> 00:12:20,710 Так што дазваляе выбарча аб тым, што вы чытаеце. 273 00:12:20,710 --> 00:12:25,880 Таму fgetc, fgets і FREAD чытання з пэўнага месца ў файле. 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 Кожны раз, калі вы тэлефануеце fgetc, fgetf або FREAD, 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 >> Відавочна, што ёсць Шмат паралельных here-- 291 00:13:24,780 --> 00:13:27,780 наш выхад, ці ўваход перанакіраванне, Вы чытаць і пісаць. 292 00:13:27,780 --> 00:13:31,800 Так fputc проста піша характар ​​у файл. 293 00:13:31,800 --> 00:13:33,655 fputs піша лінію. 294 00:13:33,655 --> 00:13:35,030 295 00:13:35,030 --> 00:13:37,420 Fprintf друкуе фармату вываду. 296 00:13:37,420 --> 00:13:41,190 Так што калі ў вас ёсць ўкладкі, або прастору, ці яшчэ шмат чаго. 297 00:13:41,190 --> 00:13:44,180 А потым FWRITE піша некаторыя Масіў байтаў ў файл. 298 00:13:44,180 --> 00:13:48,860 Так што гэта той жа самы шлях FWRITE і FREAD аналагічныя 299 00:13:48,860 --> 00:13:57,550 opposites-- fgets, fputs, і затым fputc і fgetc-- шмат 300 00:13:57,550 --> 00:14:00,710 з вар'ятаў, хуткія рэчы. 301 00:14:00,710 --> 00:14:05,300 >> Проста выгляд захаваць гэты handy-- Вы будзеце мець розныя часы 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 З вашай слоўніку pset-- які знаходзіцца ў двух psets, 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 >> Аўдыторыя: Fgets 312 00:14:36,040 --> 00:14:36,748 >> СПІКЕР 1: Права. 313 00:14:36,748 --> 00:14:39,960 Fgets-- таму што вяртае усё, што знаходзіцца на адной лініі. 314 00:14:39,960 --> 00:14:42,750 І калі кожнае слова з'яўляецца яе ўласная лінія, мы можам выкарыстоўваць fgets. 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 >> Апошняе step-- зачыніць файл. 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 Так tiny-- Я не ведаю, калі вы Хлопцы відаць, што вельмі добра. 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 Ах, вось яно is-- што змагаецца! 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 Балы, якія ў array-- дакладна. 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 Давайце вернемся to-- 386 00:19:06,950 --> 00:19:08,646 >> Залы: У мяне кароткі пытанне. 387 00:19:08,646 --> 00:19:11,570 З'яўляецца Printf не ў працягу цыкла? 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 Дык вось, як гэта павінна be-- выключэннем для гэтага апошняга кранштэйна, што я звольнены. 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 Мы збіраемся рухацца далей да наступнай рэчы then-- 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 >> Таму, улічваючы, that-- заняць хвіліну ці каля таго. 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 Што гэта do-- гэты першы знак. 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 Хто-небудзь ведае EOF? 457 00:23:30,200 --> 00:23:31,170 >> АЎДЫТОРЫЯ: Канец файла? 458 00:23:31,170 --> 00:23:32,680 >> СПІКЕР 1: Канец file-- дакладна. 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 АЎДЫТОРЫЯ: Увод што in-- 465 00:23:44,760 --> 00:23:46,741 466 00:23:46,741 --> 00:23:49,170 >> СПІКЕР 1: Putchar прынты у застаўку. 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 Гэтак жа fgetc атрымаць наступны сімвал? 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 Так fgetc атрымлівае наступны знак. 494 00:24:52,774 --> 00:24:54,140 495 00:24:54,140 --> 00:24:56,866 Вы можаце думаць пра гэта як C ++, у пэўным сэнсе. 496 00:24:56,866 --> 00:24:58,350 >> АЎДЫТОРЫЯ: Дык што ж EOF? 497 00:24:58,350 --> 00:25:00,877 >> СПІКЕР 1: EOF з'яўляецца канец файла. 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 Так што, калі вы, хлопцы, калі-небудзь выкарыстаў КПП а затым імя нейкай file-- 508 00:25:23,270 --> 00:25:26,240 Я не ведаю, калі любы з вас ёсць калі-небудзь рабіў, што на вашым тэрмінале. 509 00:25:26,240 --> 00:25:29,630 Але калі вы калі-небудзь выкарыстоўваць Каманда CAT-- C-A-T-- 510 00:25:29,630 --> 00:25:31,880 а затым усё, што файл ў вас ёсць there-- яго 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 >> ОК так што ваша задача now-- альбо самастойна або з людзьмі вакол you-- 517 00:25:46,530 --> 00:25:54,930 гэта проста напісаць простую праграму што будзе проста напісаць "Hello, World!" 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 Гэта азначае, што ёсць выдатны [? CSE?] сартаванне партыю пасля гэтага, які 543 00:27:43,730 --> 00:27:50,390 значыць вы атрымаеце свае вынікі таму, што night-- у які час? 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 Я дам вам hint-- пачынаецца з гэтага. 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 Так fopen-- што наш Выхад тэст будзе? 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: Праверце, калі гэта null-- дакладна. 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 Калі вы пачынаеце segfaulting, вы, верагодна, не правяраў на нуль недзе. 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 Ваша жыццё будзе добры і easy-- або прасцей. 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 азначае: ня null-- гэта дзейнічае. 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 >> АЎДЫТОРЫЯ: Fprintf 590 00:29:34,092 --> 00:29:36,800 >> СПІКЕР 1: Fprintf-- выдатны. 591 00:29:36,800 --> 00:29:38,150 592 00:29:38,150 --> 00:29:44,000 І fprintf прымае два arguments-- дзе гэта гэта адбываецца і што мы хочам раздрукаваць. 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 У нас ёсць адзін апошні thing-- яшчэ адзін вялікі парадыгма тут. 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 Для FOPEN а затым два аргументу, якія ідуць ўнутры, 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 што было "Hello, World" ў ім. 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 Калі "Hello" у выглядзе файла яшчэ не існуе, гэта 627 00:30:55,839 --> 00:30:58,380 збіраецца стварыць файл з імем Hello "і пісаць у яго для вас. 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 чаму ты пішаш "файл", а не Імя файла і fprintf-- 631 00:31:08,075 --> 00:31:13,600 >> СПІКЕР 1: Таму што ў гэтым выпадку ў нас ёсць што вялікая FILE-- усё ў caps-- зоркі, 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 Такім чынам, у гэтым выпадку, вы можа думаць аб file-- ага, 636 00:31:24,850 --> 00:31:31,271 мы можам выкарыстоўваць this-- файл тут ставіцца да адкрыцця "Прывітанне" 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 ёсць гэтая file-- hello-- што мы глядзім на. 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 Калі вы знаходзіцеся ў PSET трох і запуску гэтага, у вашым PSET 672 00:32:48,880 --> 00:32:52,600 тры тэчкі будзе гэты файл называецца "Hello". 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 Такім чынам, вернемся да маёй слайд show-- Я люблю, калі ўсё працуе. 679 00:33:05,960 --> 00:33:08,674 ОК, pointers-- Ці вы, хлопцы, рады? 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 Як я ўжо казаў, малявання вельмі дапамагае з рэчамі ў CS, 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 No-- карцінкі малявання сапраўды дапаможа вам. 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 >> Так, асабліва з pointers-- маляваць карцінкі. 697 00:33:44,370 --> 00:33:47,970 І я ўпэўнены, што мы на самай справе збіраемся быць малюнак некалькі фатаграфій тут таксама. 698 00:33:47,970 --> 00:33:51,270 >> Так вы, хлопцы, усе ўбачылі Бинки, гэта крута claymation рэч. 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 >> Так memory-- я ўпэўнены, што мы раней не бачыў гэтую схему. 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 з'яўляецца тое, што ў нас ёсць here-- невялікае павялічваецца на адзінку кожны раз. 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 Так што, калі вы калі-небудзь бачылі 0x, вось толькі notating 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 Cool-- проста хачу, каб умацаваць гэта. 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 Я не ведаю, як многія з вас з'яўляюцца XKCD прыхільнікі, але я люблю XKCD. 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 Так стварэння pointers-- як я ўжо сказаў, гэта у значнай ступені гэтак жа, як што-небудзь яшчэ. 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 Гэта тое, што ў нас там. [? Hex?] Зорка азначае, што гэта паказальнік, 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 Такім жа чынам, што, калі мы робім цэлымі, мы ведаем, што мы запамінання Int ёсць. 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 Але што гэта азначае, that-- вось дзе малюнак збіраецца спатрэбіцца. 757 00:36:34,240 --> 00:36:36,170 758 00:36:36,170 --> 00:36:45,980 Такім чынам, у дадзеным выпадку, мы маем некаторыя value-- скажам чатыры. 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 >> Гэта першая ў дадзеным выпадку азначае што гэта паказальнік 2x. 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 Што б ні х is-- сказаць х чатыры. 769 00:37:05,130 --> 00:37:07,280 Гэта збіраецца захоўваць адрас тут памяць. 770 00:37:07,280 --> 00:37:12,260 Так INT, зорка, x-- гэта некаторыя іншыя слот ў memory-- 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 Дык гэта будзе like-- у гэтым выпадку, што б, 774 00:37:27,040 --> 00:37:32,630 захоўваецца ў 0x1-- незалежна захоўваюцца па адрасе, які ўтрымлівае наш паказальнік, 775 00:37:32,630 --> 00:37:35,280 павінен супадаць з Тое, што мы прызначаныя. 776 00:37:35,280 --> 00:37:40,330 Такім чынам, на 0x1, у дадзеным выпадку, гэта х. 777 00:37:40,330 --> 00:37:42,500 778 00:37:42,500 --> 00:37:49,340 Гэта можа быць як ніколі INT а мы выкарыстоўваем гэта. 779 00:37:49,340 --> 00:37:52,950 >> Сапраўды гэтак жа, калі ў нас ёсць іншы 1г, незалежна 780 00:37:52,950 --> 00:37:59,130 адрас захоўваецца з ў ёсць быць char-- ж самае з г. 781 00:37:59,130 --> 00:38:05,840 Такім жа чынам, калі вы паспрабаваць зрабіць intx роўная 0,4, 782 00:38:05,840 --> 00:38:09,275 гэта будзе крычаць на вас і быць накшталт няма, вы сказалі, што вы хацелі Int. 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 >> Так спасылкі і dereferencing-- гэта Вельмі важна, каб гэтыя прамыя. 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 Яго адрас 0x4. 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-- і гэты паказальнік знаходзіцца на 0x08. 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 А то ў нас некаторыя копія, якая з'яўляецца што-0x0c. 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 Значэнне ён захоўвае гэта 0x04, І што гэта кажа, гэта зайсці на гэты адрас 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 Вось чаму ён дазволіў, каб паказаць на х, таму што ў нас ёсць Int ў тут. 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 Ampersand азначае адрас х. 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 >> АЎДЫТОРЫЯ: Гэта zero-- 882 00:42:20,614 --> 00:42:21,280 СПІКЕР 1: 0x04. 883 00:42:21,280 --> 00:42:24,350 884 00:42:24,350 --> 00:42:25,940 Так then-- апошнім. 885 00:42:25,940 --> 00:42:30,650 У нас ёсць некаторыя copy-- зноў проста яшчэ адна пераменная. 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 Так адрас, захаваны у нашым паказальніка з'яўляецца 0x04. 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 Again-- фатаграфій. 905 00:43:08,330 --> 00:43:19,750 906 00:43:19,750 --> 00:43:25,200 >> Так адсочвання значэння here-- Я дазволю вы, хлопцы, думаеце аб гэтым. 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 Я проста хачу зрабіць Ампэрсанд x-- якія павінны дапамагчы весці яго дадому. 913 00:44:06,940 --> 00:44:07,950 Ampersand азначае адрас. 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 Некаторыя х Сэта five-- некаторыя выпадковы слот ў памяці. 917 00:44:15,690 --> 00:44:17,660 918 00:44:17,660 --> 00:44:23,200 Int зорка паказальнік роўны па адрасе х, ці не так? 919 00:44:23,200 --> 00:44:28,180 Стварае Int зорка паказальнік гэты блок, называе гэта паказальнік, 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 C будзе роўная мінус C. 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 СТУДЕНТ: О, вы карыстаецеся для previous-- 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 B. Што б будзе? 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 Такім чынам, гэта з'яўляецца спасылкай d. 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 B раз з is-- 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 >> СТУДЕНТ: Што ў the-- 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 ПРАФЕСАР: І рь паказвае to-- 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 Такім чынам, мы D спасылак Р, ці не так? 1077 00:52:34,385 --> 00:52:35,390 1078 00:52:35,390 --> 00:52:42,870 P з кропак да, так што мы ведаем, што гэта будзе ў 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 10000. 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 Так зорка рь азначае вось рь, Pb пункту б. 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 Гэта 50000. 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 >> СТУДЕНТ: Чаму мы павінны & C для last-- 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 мае на ўвазе to-- як з усім, што гэта, 1118 00:54:03,197 --> 00:54:05,780 yes-- разбіць яго на некалькі праблемы, а затым рекомбинировать, 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 Так складання або аднімання INT рэгулюе паказальнік 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 >> Так што вы хочаце зрабіць, is-- адну рэч, каб памятаць 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 >> Так што, калі ў нас ёсць некаторыя паказальнік that-- гэта будзе be-- Я 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 Паказальнік INT збіраецца абнавіць шляхам аб'ём прасторы INT б. 1151 00:55:35,260 --> 00:55:36,260 INT чатыры байта. 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 Цяпер паказальнік будзе be-- ОК. 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 Калі гэта started-- прыкідваючыся мы started-- цяпер гэта 0x08. 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 АЎДЫТОРЫЯ: Так 0x09. 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 Так што гэта INT разы больш ад тыпу паказальніка. 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 у быў прызначаны на гэтую кошт, 0x4, калі мы зрабілі ў плюс роўны адзінцы. 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 Такім чынам, што мы маем here-- я як гэта значна больш. 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 >> Але на самай справе струны проста Масіў of-- як сімвал *. 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 Гэта што, question-- 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 Вы можаце звярнуцца да іх альбо масівам notation-- 1280 01:01:21,830 --> 01:01:24,390 які я асабіста знайсці easier-- але, можа быць, 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 Дынамічны Allocation-- памяці таму мы ведаем, што адзін 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 >> Але з C, як я ўжо казаў, вам ёсць шмат улады над памяццю. 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 >> У той час як рэчы ў стэку, who-- яны, як непаслухмяных дзяцей. 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 >> Так куча is-- мы збіраемся казаць аб Таноса і бясплатна, што 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 Вы дабіраецеся, каб быць босам у кучы, у той час як stack-- Магчыма, калі вы 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 Там куча іншы халаднавата Функцыі, якія маюць Alloc ў канцы, 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 з'яўляецца тое, што гэта SIZEOF гэта супер карысна выкарыстоўваць 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 Такім чынам, вы заўсёды хочаце пераканайцеся, што і выкарыстоўваць SizeOf. 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 Так што свабодныя рэчы калі вы Malloc іх. 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 Такім чынам, мы маем некаторую INT * паказальнік. 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 Int * паказальнік, або Таноса, вяртае адрас, дзе ён усталяваны ў баку гэта 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 Так што гэта ў асноўным даючы вам like-- калі вас 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 * PTR сродкі, ОК, я ў маім доме. 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 Такім чынам, вы атрымліваеце некаторы Int. 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: Вы толькі бясплатна, калі вы mallocing. 1483 01:09:43,204 --> 01:09:44,620 АЎДЫТОРЫЯ: О, калі вы mallocing. 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 І тады вы can't-- гэта працуе ў памяці пытанні пазней. 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 >> АЎДЫТОРЫЯ: Такім чынам, мы выкарыстоўвалі% D проста таму што ўдвая больш, чым вяртаецца, 1503 01:10:26,950 --> 01:10:28,330 або чаму is-- [неразборліва]. 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 Так пераменная PTR, that's-- як, з INT * PTR = Таноса, 1513 01:10:50,200 --> 01:10:54,142 вось толькі кажу, што гэта паказваючы на ​​месца ў memory-- 1514 01:10:54,142 --> 01:10:55,600 СПІКЕР 1: Вы хочаце [неразборліва]? 1515 01:10:55,600 --> 01:10:58,050 АЎДЫТОРЫЯ: --that гэта Памер of-- няма, усё ў парадку. 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 Так Malloc, памер INT кажа, ОК, я збіраюся пайсці бегчы, 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 і вось што захоўваецца у паказальнік, або PTR. 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 Як заўсёды, вы, хлопцы, павінны мець усе атрымалі свае ацэнкі pset2 цяпер. 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