1 00:00:00,000 --> 00:00:00,960 2 00:00:00,960 --> 00:00:03,360 >> [Музыка, якая іграе] 3 00:00:03,360 --> 00:00:11,050 4 00:00:11,050 --> 00:00:12,065 >> DAVIN: Добра, хлопцы. 5 00:00:12,065 --> 00:00:13,642 6 00:00:13,642 --> 00:00:15,350 Так што гэта агляд у першы віктарыны. 7 00:00:15,350 --> 00:00:17,751 Усе гатовыя да віктарына ў сераду? 8 00:00:17,751 --> 00:00:18,292 Элісан: Woo! 9 00:00:18,292 --> 00:00:18,743 СТУДЕНТ: Woo! 10 00:00:18,743 --> 00:00:19,242 DAVIN: Так. 11 00:00:19,242 --> 00:00:19,920 Элісан: Так! 12 00:00:19,920 --> 00:00:20,920 DAVIN: Гэты хлопец гатовы. 13 00:00:20,920 --> 00:00:22,200 Гэты хлопец, дзве рукі, прыемна. 14 00:00:22,200 --> 00:00:23,234 15 00:00:23,234 --> 00:00:25,900 Так віктарына агляд сёння, гэта будзе быць каля гадзіны-паўтара. 16 00:00:25,900 --> 00:00:27,940 Мы збіраемся перайсці ўсе асноўныя Паняцці, вы павінны ведаць для віктарыны. 17 00:00:27,940 --> 00:00:31,434 Мы збіраемся пайсці на працягу некаторага кадавання па прыклады рук, якія на кожным віктарыны. 18 00:00:31,434 --> 00:00:34,350 І калі ў вас ёсць пытанні, не саромейцеся падняць руку і ўсё 19 00:00:34,350 --> 00:00:34,945 як што. 20 00:00:34,945 --> 00:00:36,695 Ну, лагістыка каля віктарына онлайн. 21 00:00:36,695 --> 00:00:38,450 Такім чынам, мы збіраемся падзяліць людзей на розныя нумары. 22 00:00:38,450 --> 00:00:39,491 Ён заснаваны на іх імя. 23 00:00:39,491 --> 00:00:43,630 Так што калі ў вас ёсць якія-небудзь пытанні аб тым, дзе ісці ці пра тое, што матэрыял, як, 24 00:00:43,630 --> 00:00:46,810 афіцыйнае слова на тым, што адбываецца каб быць на віктарыне, праверыць у Інтэрнэце. 25 00:00:46,810 --> 00:00:48,420 І гэта ўсё ў курсе. 26 00:00:48,420 --> 00:00:51,280 Так што, калі няма пытанняў да Пачнем з таго, што мы збіраемся пачаць. 27 00:00:51,280 --> 00:00:52,790 28 00:00:52,790 --> 00:00:53,710 І вось Элісан. 29 00:00:53,710 --> 00:00:56,060 30 00:00:56,060 --> 00:00:57,000 >> [Пляскае] 31 00:00:57,000 --> 00:00:59,300 >> Элісан: ОК, дзякуй, Роб. 32 00:00:59,300 --> 00:01:00,280 Шануеце гэта. 33 00:01:00,280 --> 00:01:01,350 34 00:01:01,350 --> 00:01:03,050 Дэвин павінен перавярнуўся на гэта. 35 00:01:03,050 --> 00:01:07,240 Гэта не вычарпальны спіс Тэмы, як заўсёды, як Дэвин толькі што сказаў. 36 00:01:07,240 --> 00:01:10,860 Звярніцеся да дакументацыі онлайн аб віктарыне нулявы. 37 00:01:10,860 --> 00:01:13,680 Але гэта даволі much-- гэта на вучэбнай 38 00:01:13,680 --> 00:01:15,550 гэта ўсё, што мы перайшлі да цяперашняга часу. 39 00:01:15,550 --> 00:01:18,290 Усё тут сумленная гульня, а таксама што-небудзь яшчэ 40 00:01:18,290 --> 00:01:21,380 што, магчыма, былі згаданыя ў дакладзе. 41 00:01:21,380 --> 00:01:25,070 >> Мой раздзел, тут, з'яўляецца проста шмат агляду. 42 00:01:25,070 --> 00:01:27,775 Ёсць пара практыкаванняў што вы, хлопцы, маглі б працаваць. 43 00:01:27,775 --> 00:01:30,650 Але па большай частцы, мы сапраўды хачу, каб дабрацца да Дэвин з тых кода 44 00:01:30,650 --> 00:01:31,710 ручнымі практыкаванняў. 45 00:01:31,710 --> 00:01:33,940 >> Таму я збіраюся ляцець праз гэта. 46 00:01:33,940 --> 00:01:36,330 Калі ў вас ёсць якія-небудзь пытанні, спыніць мяне. 47 00:01:36,330 --> 00:01:37,270 Падніміце руку. 48 00:01:37,270 --> 00:01:39,250 Я абяцаю, што я, верагодна, бачыць вас. 49 00:01:39,250 --> 00:01:41,042 Калі не, то проста махнуць яго вакол. 50 00:01:41,042 --> 00:01:42,250 Я буду казаць хутка. 51 00:01:42,250 --> 00:01:43,950 Я спадзяюся, што ўсё ў парадку з гэтым. 52 00:01:43,950 --> 00:01:48,020 >> ОК, спецыяльнае слова, Дэвин, відавочна, забыўся прагортваць гэтыя слайды. 53 00:01:48,020 --> 00:01:51,880 [Смяецца] Ты ў бядзе, чалавек. 54 00:01:51,880 --> 00:01:55,770 Так саветаў для віктарыны нулявы, практыцы кадавання на паперы. 55 00:01:55,770 --> 00:01:58,950 Вы, хлопцы, збіраецеся атрымаць некаторыя практыкаваць с, што ў цяперашні час з Дэвин, 56 00:01:58,950 --> 00:02:00,655 так што вы не будзеце цалкам самастойна. 57 00:02:00,655 --> 00:02:03,030 Я думаю, што мы на самай справе адбываецца праз гэтых двух функцый. 58 00:02:03,030 --> 00:02:04,500 Такім чынам, вы будзеце добра падрыхтаваны ёсць. 59 00:02:04,500 --> 00:02:05,958 >> Азнаёміцца ​​са сваімі праблемнымі набораў. 60 00:02:05,958 --> 00:02:08,150 Там былі пытанні на папярэдніх апытанняў 61 00:02:08,150 --> 00:02:12,680 што будзе прасіць вас, напрыклад, для кадавання да чаго-то вельмі падобнае на Марыё. 62 00:02:12,680 --> 00:02:15,060 Так быўшы добра знаёмы з Ваша праблема ўсталёўвае, а таксама 63 00:02:15,060 --> 00:02:17,827 як пытанні, якія мы просім Вас у пачатку на форме 64 00:02:17,827 --> 00:02:19,660 што вы запаўняеце, будзе служыць вам вельмі добра. 65 00:02:19,660 --> 00:02:20,940 66 00:02:20,940 --> 00:02:23,380 >> У папярэдняга віктарыну пад часовыя абмежаванні. 67 00:02:23,380 --> 00:02:25,430 Гэтыя віктарыны доўгія. 68 00:02:25,430 --> 00:02:26,850 Час ідзе вельмі хутка. 69 00:02:26,850 --> 00:02:30,480 І часта, вы не разумееце, як хутка ён ідзе да вас на самай справе 70 00:02:30,480 --> 00:02:32,180 паставіць сябе ў адпаведнасці з гэтымі абмежаваннямі. 71 00:02:32,180 --> 00:02:36,500 Так што, калі вы можаце проста выразаць, вы ведаеце, 75 хвілін, альбо сёння ўвечары, або заўтра 72 00:02:36,500 --> 00:02:41,020 ўзяць адзін з гэтых віктарынах пад што, вы будзеце ў значна лепшай форме. 73 00:02:41,020 --> 00:02:43,060 >> А таксама, ствараючы свой апорны ліст. 74 00:02:43,060 --> 00:02:45,290 Памятаеце, вы атрымліваеце адзін старонка спераду і ззаду 75 00:02:45,290 --> 00:02:47,040 у якасці спасылкі для вашага віктарыны ў сераду. 76 00:02:47,040 --> 00:02:49,074 Стварэнне, што гэта выдатны спосаб для вывучэння. 77 00:02:49,074 --> 00:02:51,990 Усё, што ў вас узніклі праблемы з вы хочаце ўключыць там. 78 00:02:51,990 --> 00:02:55,627 Усё, што вашы ТФ былі, як, гэта сапраўды важна. 79 00:02:55,627 --> 00:02:57,960 Вы павінны гэта ведаць, з'яўляюцца можа быць, усё ў вас там 80 00:02:57,960 --> 00:02:59,931 калі ў вас няма іх запомніў. 81 00:02:59,931 --> 00:03:02,680 Нават калі вы ведаеце іх сапраўды добра, часам маючы яго на ёсць 82 00:03:02,680 --> 00:03:07,030 гэта проста нейкая камфорту для вас, якія я ведаю, віктарыны выклікаюць стрэс. 83 00:03:07,030 --> 00:03:09,260 Такім чынам, любы камфорт вы атрымаеце можа дапамагчы. 84 00:03:09,260 --> 00:03:13,072 Добра, таксама, выспацца і ядуць і як нармальныя рэчы 85 00:03:13,072 --> 00:03:14,280 што мы кажам вам, для віктарыны. 86 00:03:14,280 --> 00:03:16,320 87 00:03:16,320 --> 00:03:18,890 >> Так, пачынаючы з простага, тыпы дадзеных і памеры. 88 00:03:18,890 --> 00:03:22,720 Як я ўжо сказаў, гэта проста будзе каб быць мне кідаць шмат матэрыялу 89 00:03:22,720 --> 00:03:24,320 тут, што вы павінны ведаць. 90 00:03:24,320 --> 00:03:27,600 Таму ў нас ёсць нашы сімвалы якія адзін байт, Інтс 91 00:03:27,600 --> 00:03:30,390 што чатыры байта, доўга доўга, што восем байт. 92 00:03:30,390 --> 00:03:33,280 У асноўным, гэта проста вы хачу трымаць вялікія цэлыя лікі. 93 00:03:33,280 --> 00:03:35,490 Плыве, якія з'яўляюцца чатыры, падвойваецца, якія восем. 94 00:03:35,490 --> 00:03:38,150 Зноў жа, проста дае вам больш прастору для вашых паплаўкоў. 95 00:03:38,150 --> 00:03:41,290 І затым увядзіце зорку, так што любы паказальнік на 32-бітнай машыне, 96 00:03:41,290 --> 00:03:44,650 які ўсё вы, хлопцы, павінны ведаць, на чатыры байта. 97 00:03:44,650 --> 00:03:46,542 >> Такім чынам, усе рэчы, якія вы павінны ведаю, можа быць, рэчы 98 00:03:46,542 --> 00:03:48,250 Вы хочаце, каб на Ваша спасылка ліст. 99 00:03:48,250 --> 00:03:50,350 100 00:03:50,350 --> 00:03:53,520 ОК, двайковы пераўтварэнні у двайковы, пераўтварэння 101 00:03:53,520 --> 00:03:56,860 у шаснаццатковае, назад і наперад, усе рэчы, якія вы павінны ведаць. 102 00:03:56,860 --> 00:03:59,480 Так з двайковай сістэмы злічэння ў дзесятковы. 103 00:03:59,480 --> 00:04:03,309 Вы, хлопцы, жадаеце, каб узяць хуткі хвіліну і паспрабаваць высветліць, кожны з іх 104 00:04:03,309 --> 00:04:04,600 а затым скажыце мне, што яны? 105 00:04:04,600 --> 00:04:06,500 106 00:04:06,500 --> 00:04:10,240 >> У мяне таксама ёсць цукеркі ў маёй сумцы, так што любы хто адказвае атрымлівае цукеркі, дарэчы. 107 00:04:10,240 --> 00:04:13,560 108 00:04:13,560 --> 00:04:14,480 І ў мяне ёсць многае з яго. 109 00:04:14,480 --> 00:04:15,760 110 00:04:15,760 --> 00:04:16,870 Дазвольце мне ўзяць гэта. 111 00:04:16,870 --> 00:04:18,480 Я збіраюся даць гэта Гейб. 112 00:04:18,480 --> 00:04:21,829 Такім чынам, вы можаце раздаваць цукеркі хто добра і кааператыў. 113 00:04:21,829 --> 00:04:23,490 >> ОК, я ўбачыў руку там у спіну. 114 00:04:23,490 --> 00:04:26,418 115 00:04:26,418 --> 00:04:28,370 >> СТУДЕНТ: Так, першы з іх 42. 116 00:04:28,370 --> 00:04:30,280 >> Элісан: Так, першы 42, правільна. 117 00:04:30,280 --> 00:04:31,163 118 00:04:31,163 --> 00:04:32,038 СТУДЕНТ: [неразборліва]. 119 00:04:32,038 --> 00:04:34,810 [Смех] 120 00:04:34,810 --> 00:04:37,030 Элісан: другі, Ёсць яшчэ ў жоўты? 121 00:04:37,030 --> 00:04:38,910 СТУДЕНТ: 110010. 122 00:04:38,910 --> 00:04:43,410 Элісан: Правільна, і гэта Апошні, тут, на дне? 123 00:04:43,410 --> 00:04:44,570 Акрамя таго, так, вы ведаеце, хочаце? 124 00:04:44,570 --> 00:04:45,550 Проста выкінуць цукеркі. 125 00:04:45,550 --> 00:04:46,483 Як наконт цукерак для ўсіх? 126 00:04:46,483 --> 00:04:47,510 >> СТУДЕНТ: [неразборліва], калі мы скончым. 127 00:04:47,510 --> 00:04:48,051 >> Элісан: Цыц. 128 00:04:48,051 --> 00:04:49,380 129 00:04:49,380 --> 00:04:50,910 І тады апошні. 130 00:04:50,910 --> 00:04:52,000 Хто хоча адказаць? 131 00:04:52,000 --> 00:04:52,744 Прама там. 132 00:04:52,744 --> 00:04:54,480 >> СТУДЕНТ: 11100. 133 00:04:54,480 --> 00:04:56,820 >> Элісан: 11100, паглядзіце на гэта. 134 00:04:56,820 --> 00:04:58,790 Віншую, выдатная праца, усё. 135 00:04:58,790 --> 00:05:03,370 ОК, усё накшталт разумею працэс для гэтага? 136 00:05:03,370 --> 00:05:08,700 Вы, ідучы з двайковай сістэмы злічэння ў дзесятковую так я, як правіла, робяць гэта, як выпісваючы 137 00:05:08,700 --> 00:05:09,920 паўнамоцтвы 2. 138 00:05:09,920 --> 00:05:18,350 Таму я кажу, добра, 0 разы 2 у 0, так гэта 0, 1 раз 2 у першы, 139 00:05:18,350 --> 00:05:21,400 2 збіраецца і далей такім чынам. 140 00:05:21,400 --> 00:05:25,790 Хто-небудзь хоча, каб я відавочна Ці прайсці прыкладу двайковы? 141 00:05:25,790 --> 00:05:26,840 142 00:05:26,840 --> 00:05:28,140 Добра, прахалодна. 143 00:05:28,140 --> 00:05:30,390 >> Дзесятковая двайковы вельмі падобны. 144 00:05:30,390 --> 00:05:31,550 145 00:05:31,550 --> 00:05:33,630 Я, як правіла, выпісваюць паўнамоцтвы 2. 146 00:05:33,630 --> 00:05:38,660 Пачніце з таго, які з'яўляецца найвялікшым, але не прайсці дзесятковай 147 00:05:38,660 --> 00:05:39,710 што вы шукаеце. 148 00:05:39,710 --> 00:05:42,870 А потым накшталт працаваць ваш шлях назад дадаўшы рэчы па меры неабходнасці. 149 00:05:42,870 --> 00:05:45,200 >> А затым з таго, што гэта гэтак жа, як звычайнай таго. 150 00:05:45,200 --> 00:05:51,110 Калі вы калі-небудзь выпадак, калі вы знаходзіцеся дадаўшы два 1с, гэта, відавочна, становіцца 2. 151 00:05:51,110 --> 00:05:56,875 2 у двайковай цяпер 1 0, так што вы павінны несці свой 1 у наступнай калонцы. 152 00:05:56,875 --> 00:05:57,375 Прахладны. 153 00:05:57,375 --> 00:05:59,220 154 00:05:59,220 --> 00:06:03,240 >> Hexadecimal, гэта можа быць што-то што крыху менш знаёмыя. 155 00:06:03,240 --> 00:06:06,600 Так як Роб быў проста кажа мне, загадзя, яго трук для гэтага 156 00:06:06,600 --> 00:06:10,210 гэта проста падзяліць яго на чатыры байта кавалкі, ОК? 157 00:06:10,210 --> 00:06:11,050 Біты, прабачце. 158 00:06:11,050 --> 00:06:11,720 Бачыць? 159 00:06:11,720 --> 00:06:12,220 Дзякуючы Роб. 160 00:06:12,220 --> 00:06:15,874 Вось чаму вы тут. [Шумана] ОК, так што мы проста разбіць яго 161 00:06:15,874 --> 00:06:16,790 на чатыры біта кавалкі. 162 00:06:16,790 --> 00:06:21,570 Так з двайковых файлаў у шаснаццатковым, мы глядзім на першы 4, 163 00:06:21,570 --> 00:06:25,573 які, калі ў нас ёсць чатыры 1с ў радок, што лік Ці гэта сімвалізуе? 164 00:06:25,573 --> 00:06:26,540 >> СТУДЕНТ: Ф. 165 00:06:26,540 --> 00:06:32,751 >> Элісан: Так што ў гэтым выпадку, што 11111111 или-- так? 166 00:06:32,751 --> 00:06:33,250 СТУДЕНТ: FF. 167 00:06:33,250 --> 00:06:34,600 Элісан: Выдатна, FF. 168 00:06:34,600 --> 00:06:36,900 Так выдатна, цукеркі для вас. 169 00:06:36,900 --> 00:06:41,100 Зараз, для таго, як шаснаццатковае ў двойкавую сістэму, мы проста думаць пра гэта збольшага ў зваротным кірунку. 170 00:06:41,100 --> 00:06:46,420 Для кожнага нумара або літары гэтага у нас у шаснаццатковым, 171 00:06:46,420 --> 00:06:53,930 проста пераўтварыць яго ў яго чатырох біт [Смяецца], каб яе чатыры бітнай пераўтварэнні. 172 00:06:53,930 --> 00:06:58,696 Так 5, у дадзеным выпадку, што калі 5 мы прадстаўляе яго з чатырма бітамі? 173 00:06:58,696 --> 00:06:59,608 >> СТУДЕНТ: 010? 174 00:06:59,608 --> 00:07:00,520 Мм-хм. 175 00:07:00,520 --> 00:07:03,605 А потым, што на самай справе 10, будзе? 176 00:07:03,605 --> 00:07:06,230 177 00:07:06,230 --> 00:07:08,040 1010. 178 00:07:08,040 --> 00:07:09,670 Такім чынам, мы маем, што, тут. 179 00:07:09,670 --> 00:07:13,990 Так канвертацыі паміж шаснаццатковай і бінарны самай справе не так ужо дрэнна. 180 00:07:13,990 --> 00:07:16,565 Калі вы паглядзіце на яго ў чатыры біта кавалкі, будзе залаты. 181 00:07:16,565 --> 00:07:18,330 182 00:07:18,330 --> 00:07:19,300 Everyone-- так? 183 00:07:19,300 --> 00:07:21,903 >> ROB: Гэта глупства, але я заўсёды памятаю, 184 00:07:21,903 --> 00:07:23,500 , Так як мяркуецца, 10. 185 00:07:23,500 --> 00:07:26,230 І бінарны проста Кастрычнік 10, so-- 186 00:07:26,230 --> 00:07:27,310 >> Элісан: А, вось мы ідзем. 187 00:07:27,310 --> 00:07:28,615 >> ROB: Гэй. 188 00:07:28,615 --> 00:07:30,020 >> Элісан: Гэй, цукеркі для Роба. 189 00:07:30,020 --> 00:07:31,707 190 00:07:31,707 --> 00:07:33,290 Існуе не-шакаладны матэрыял у там. 191 00:07:33,290 --> 00:07:34,180 Такім чынам, вы можаце мець некаторыя. 192 00:07:34,180 --> 00:07:35,790 193 00:07:35,790 --> 00:07:36,760 Так ASCII матэматыцы. 194 00:07:36,760 --> 00:07:38,206 195 00:07:38,206 --> 00:07:38,705 Вядзіце сябе. 196 00:07:38,705 --> 00:07:40,630 197 00:07:40,630 --> 00:07:44,720 Так ASCII матэматыцы, як вы, хлопцы, верагодна, добра памятаю 198 00:07:44,720 --> 00:07:48,480 р ўстаноўлена 2 з Visioneer і Цэзар, ты шмат гэта зрабіў. 199 00:07:48,480 --> 00:07:49,610 200 00:07:49,610 --> 00:07:51,980 Памятаеце, персанажы прынцыпова проста лічбы. 201 00:07:51,980 --> 00:07:54,780 Такім чынам, мы можам зрабіць матэматыку з імі, гэтак жа, як мы робім матэматыку з цэлых лікаў. 202 00:07:54,780 --> 00:07:58,090 >> Таму ў нас ёсць трохі простая рэч тут. 203 00:07:58,090 --> 00:08:00,940 У нас ёсць некаторыя ў гэта ініцыялізацыі да 65. 204 00:08:00,940 --> 00:08:07,440 І B роўна значэнню ASCII А плюс 1, сімвал C роўная D мінус 1, 205 00:08:07,440 --> 00:08:09,060 і сімвал D роўны 68. 206 00:08:09,060 --> 00:08:13,130 Такім чынам, мы збіраемся друку усе яны, як мы бачым тут. 207 00:08:13,130 --> 00:08:15,650 І хто можа сказаць мне, што гэта будзе раздрукаваць? 208 00:08:15,650 --> 00:08:17,335 209 00:08:17,335 --> 00:08:18,210 СТУДЕНТ: [неразборліва]. 210 00:08:18,210 --> 00:08:20,540 Элісан: Роўна, так Адна справа заўважыць гэта 211 00:08:20,540 --> 00:08:22,900 што мы раздрукоўкі персанажы кожны раз, тут. 212 00:08:22,900 --> 00:08:28,290 Мы пазначае хоць А і В з'яўляюцца Інтс, калі мы абвясцілі іх вышэй. 213 00:08:28,290 --> 00:08:32,870 Мы друку іх як герояў па адсоткаў C і наша Printf заяву, 214 00:08:32,870 --> 00:08:34,610 такім чынам, яны будуць усё друкаваць, як герояў. 215 00:08:34,610 --> 00:08:40,730 І, вядома, значэнне ASCII 65 Воля друкаваць як А. Значэнне ASCII з плюс 1 216 00:08:40,730 --> 00:08:43,669 будзе 66, які будзе з гонарам В. Такім чынам, на самай справе, мы 217 00:08:43,669 --> 00:08:49,107 атрымаць A B C D. Усё там добра? 218 00:08:49,107 --> 00:08:49,690 Ёсць пытанні? 219 00:08:49,690 --> 00:08:50,721 220 00:08:50,721 --> 00:08:51,220 Дзіўны. 221 00:08:51,220 --> 00:08:52,500 222 00:08:52,500 --> 00:08:53,455 >> ОК, сфера. 223 00:08:53,455 --> 00:08:55,090 224 00:08:55,090 --> 00:08:59,950 Так сфера, відавочна, вельмі Важна разумець, тут. 225 00:08:59,950 --> 00:09:03,250 Многія з вас, калі вы ёсць кампіляцыі памылкі, 226 00:09:03,250 --> 00:09:06,085 і гэта кажа, што вы не павінны доступ да якой-небудзь зменнай, 227 00:09:06,085 --> 00:09:08,540 гэта, верагодна, таму, што вы вызначаецца яго ў цыкле 228 00:09:08,540 --> 00:09:12,210 а затым паспрабаваў атрымаць доступ да яго з яго, ці наадварот. 229 00:09:12,210 --> 00:09:16,410 >> Так сфера па сваёй сутнасці, ён проста вызначае, дзе 230 00:09:16,410 --> 00:09:20,800 мы кажам, пераменная існуе, дзе мы можаце яго змяніць, дзе мы можам атрымаць да яго доступ. 231 00:09:20,800 --> 00:09:24,550 Гэта проста нейкая казаў гэта адзіныя месцы, дзе ў вас ёсць доступ 232 00:09:24,550 --> 00:09:26,060 ў гэтай зменнай. 233 00:09:26,060 --> 00:09:30,080 >> Так два абласцей, што мы гаворым пра падчас заняткаў з'яўляюцца глабальныя і лакальныя. 234 00:09:30,080 --> 00:09:35,080 Так глабальныя зменныя мы гаворым пра калі вы вызначаеце іх вышэй асноўнай. 235 00:09:35,080 --> 00:09:38,390 Гэта азначае, што ваш ўвесь Праграма мае доступ да яе, 236 00:09:38,390 --> 00:09:42,090 і ён існуе да таго часу, як праграма працуе, добра? 237 00:09:42,090 --> 00:09:45,100 Мясцовае азначае, што гэта больш абмежаваны вобласцю. 238 00:09:45,100 --> 00:09:50,520 Таму, калі ў вас ёсць пэўныя функцыі як своп, мы заўсёды кажам пра. 239 00:09:50,520 --> 00:09:54,380 Мы заўсёды кажам пра свопе з А і Б. А і У існуюць у гэтай функцыі. 240 00:09:54,380 --> 00:09:55,690 Яны не існуюць нідзе. 241 00:09:55,690 --> 00:09:56,860 242 00:09:56,860 --> 00:10:00,610 >> Як добра, калі ў вас ёсць, калі заявы або для завес. 243 00:10:00,610 --> 00:10:04,670 Кожны раз, калі мы маем, напрыклад, у цыкл у нас ёсць інтэрвал я роўная 0. 244 00:10:04,670 --> 00:10:06,630 У нас ёсць некаторыя ўмовы, і мы абнаўляць яго. 245 00:10:06,630 --> 00:10:10,270 Я існуе толькі ў падцяжкі, што для цыклу. 246 00:10:10,270 --> 00:10:13,270 Пры спробе доступу да яго ў іншым месцы, кампілятар будзе крычаць на вас. 247 00:10:13,270 --> 00:10:14,560 Гэта было б, як, што вы спрабуеце зрабіць? 248 00:10:14,560 --> 00:10:15,400 Гэта не існуе. 249 00:10:15,400 --> 00:10:16,644 250 00:10:16,644 --> 00:10:18,435 Дык вось два розныя тыпы рамкі. 251 00:10:18,435 --> 00:10:19,486 252 00:10:19,486 --> 00:10:20,860 Ці мае гэта сэнс для ўсіх? 253 00:10:20,860 --> 00:10:23,870 254 00:10:23,870 --> 00:10:27,890 >> Так, напрыклад, тут, у гэтым гэта толькі некаторыя простыя праграмы. 255 00:10:27,890 --> 00:10:29,120 256 00:10:29,120 --> 00:10:32,890 Што вы, хлопцы, думаеце гэта адбудзецца ў кожным пункце 257 00:10:32,890 --> 00:10:34,210 што мы стараемся друкаваць? 258 00:10:34,210 --> 00:10:40,150 Так што гэта адзін тут, што адбудзецца? 259 00:10:40,150 --> 00:10:43,047 260 00:10:43,047 --> 00:10:44,255 СТУДЕНТ: Гэта будзе друкаваць тры. 261 00:10:44,255 --> 00:10:44,880 АЛЛИСОН: справа. 262 00:10:44,880 --> 00:10:45,930 Гэта будзе друкаваць тры. 263 00:10:45,930 --> 00:10:47,272 Што тут? 264 00:10:47,272 --> 00:10:48,230 СТУДЕНТ: Гэта не будзе працаваць. 265 00:10:48,230 --> 00:10:48,910 Элісан: Гэта не будзе працаваць. 266 00:10:48,910 --> 00:10:50,290 Ты з вобласці бачнасці, ці не так? 267 00:10:50,290 --> 00:10:55,160 Лакальная пераменная не існуе па-за гэтымі дужак, усё ў парадку? 268 00:10:55,160 --> 00:10:56,462 І тады тое, што тут? 269 00:10:56,462 --> 00:10:57,850 >> СТУДЕНТ: [неразборліва]. 270 00:10:57,850 --> 00:10:59,210 >> Элісан: Што? 271 00:10:59,210 --> 00:10:59,900 Роб, ідуць. 272 00:10:59,900 --> 00:11:00,854 >> ROB: Я толькі што сказаў. 273 00:11:00,854 --> 00:11:04,200 Глабальныя зменныя павінны быць Глабальная пераменная падкрэслення. 274 00:11:04,200 --> 00:11:05,660 >> Элісан: Ах, так, прабачце. 275 00:11:05,660 --> 00:11:06,200 Дзякуй, Роб. 276 00:11:06,200 --> 00:11:07,480 277 00:11:07,480 --> 00:11:10,170 Роб, як наш рэзідэнт кампілятара. 278 00:11:10,170 --> 00:11:12,684 Ён проста крычаць на нас, калі мы гэта трэба. [Смяецца] Так, 279 00:11:12,684 --> 00:11:14,225 павінна быць глабальная пераменная падкрэслення. 280 00:11:14,225 --> 00:11:15,760 281 00:11:15,760 --> 00:11:18,430 Так калі выказаць здагадку, што што быў глабальны падкрэслення 282 00:11:18,430 --> 00:11:20,260 Зменная, што адбудзецца тут? 283 00:11:20,260 --> 00:11:21,260 СТУДЕНТ: Гэта будзе працаваць. 284 00:11:21,260 --> 00:11:22,093 АЛЛИСОН: Гэта будзе працаваць. 285 00:11:22,093 --> 00:11:24,655 Так што будзем друкаваць, так што проста вельмі просты прыклад. 286 00:11:24,655 --> 00:11:27,650 287 00:11:27,650 --> 00:11:29,870 ОК, прататыпы. 288 00:11:29,870 --> 00:11:33,680 Так, відавочна, мы сапраўды падкрэсліць для вас, хлопцы 289 00:11:33,680 --> 00:11:36,460 зрабіць функцыі, калі ён сэнс у вашых праграмах. 290 00:11:36,460 --> 00:11:38,460 Але, вядома, калі цябе зрабіць свае ўласныя функцыі, 291 00:11:38,460 --> 00:11:40,930 як правіла, вы будзеце вызначаць іх пасля асноўнай. 292 00:11:40,930 --> 00:11:42,430 І вы будзеце спрабаваць выклікаць іх у асноўны. 293 00:11:42,430 --> 00:11:46,030 І калі вы не карыстаецеся прататып, кампілятар будзе крычаць на вас. 294 00:11:46,030 --> 00:11:49,590 >> Прататып у асноўным проста кажу кампілятара 295 00:11:49,590 --> 00:11:52,400 што ў мяне ёсць гэтая функцыя ніжэй асноўнай. 296 00:11:52,400 --> 00:11:54,970 Я буду называць яго, перш чым я яго вызначэння. 297 00:11:54,970 --> 00:11:56,360 Толькі трымайся. 298 00:11:56,360 --> 00:12:00,660 Я абяцаю, што гэта вызначаецца, і вы будзе мець усё, што вам трэба. 299 00:12:00,660 --> 00:12:05,900 >> Так як мы робім гэта толькі ваша вяртанне тып, імя функцыі, ваш ўваход 300 00:12:05,900 --> 00:12:06,400 Спіс. 301 00:12:06,400 --> 00:12:09,760 Гэта ў асноўным першая лінія Вашай аб'яве функцыі. 302 00:12:09,760 --> 00:12:11,510 Гэта сапраўды ўсё гэта. 303 00:12:11,510 --> 00:12:14,440 Але гэта ўсяго толькі Наогул-то фармат. 304 00:12:14,440 --> 00:12:17,220 >> Такім чынам, у нашым прыкладзе, якія вы, хлопцы, павінны 305 00:12:17,220 --> 00:12:19,700 бачылі ў раздзеле у нейкі момант, у нас ёсць 306 00:12:19,700 --> 00:12:23,220 некаторыя INT куб, займае некаторы Int ўводу. 307 00:12:23,220 --> 00:12:25,870 І ў нас ёсць наша галоўная Функцыя, якая называе куб. 308 00:12:25,870 --> 00:12:28,670 І куб вызначаецца постфактум. 309 00:12:28,670 --> 00:12:34,450 >> Так што, калі ў нас не было ўводу INT куба у верхняй частцы, калі мы патэлефанавалі куб 310 00:12:34,450 --> 00:12:36,620 у галоўным, нашага кампілятара будзе злавацца на нас. 311 00:12:36,620 --> 00:12:38,890 Гэта было б, як, што вы кажаце? 312 00:12:38,890 --> 00:12:40,360 Куб не існуе. 313 00:12:40,360 --> 00:12:41,910 Я не ведаю, што вы просіце. 314 00:12:41,910 --> 00:12:43,490 І я проста хачу, стоп. 315 00:12:43,490 --> 00:12:47,330 >> Але таму, што мы зрабілі наш прататып у верхняй частцы, мы ўжо казалі, 316 00:12:47,330 --> 00:12:49,800 Вы ведаеце, калі вы бачыце куб, не хвалюйцеся пра гэта. 317 00:12:49,800 --> 00:12:51,990 Я абяцаю, што гэта вызначана пазней. 318 00:12:51,990 --> 00:12:53,750 І гэта дам вам рабіць тое, што вы хочаце. 319 00:12:53,750 --> 00:12:57,750 Так што, калі вы калі-небудзь мець функцыю які абвешчаны пасля выкліку яго 320 00:12:57,750 --> 00:13:00,570 ўпершыню, неабходна ёсць гэта прататып на самым версе. 321 00:13:00,570 --> 00:13:01,640 322 00:13:01,640 --> 00:13:02,720 >> Так? 323 00:13:02,720 --> 00:13:04,412 >> ROB: Гэта квадрат, ня кубатуры. 324 00:13:04,412 --> 00:13:05,855 >> Элісан: О, мой Бог. 325 00:13:05,855 --> 00:13:09,435 Я не have-- Гейб, я думаў, Вы былі нашым карэктарам. 326 00:13:09,435 --> 00:13:10,740 327 00:13:10,740 --> 00:13:12,760 ОК, хлопцы, пацярпіце мяне, тут. 328 00:13:12,760 --> 00:13:14,440 Я спадзяюся, што кожны атрымлівае ідэю. 329 00:13:14,440 --> 00:13:15,560 330 00:13:15,560 --> 00:13:20,380 ОК, так што гэта павінна быць быў квадрат, не ў кубе. 331 00:13:20,380 --> 00:13:22,700 Але ідэя застаецца той жа. 332 00:13:22,700 --> 00:13:23,702 333 00:13:23,702 --> 00:13:26,660 Любая функцыя, якая мы называем пасля Тое, павінны мець прататып. 334 00:13:26,660 --> 00:13:27,730 335 00:13:27,730 --> 00:13:28,970 Усё добра з гэтым? 336 00:13:28,970 --> 00:13:30,730 337 00:13:30,730 --> 00:13:32,310 Любыя іншыя памылкі друку? 338 00:13:32,310 --> 00:13:32,810 Добра. 339 00:13:32,810 --> 00:13:34,730 340 00:13:34,730 --> 00:13:36,230 Памылкі друку тут, перш чым пачаць, Роб? 341 00:13:36,230 --> 00:13:37,356 342 00:13:37,356 --> 00:13:42,380 [Смяецца] Такім чынам, структур. 343 00:13:42,380 --> 00:13:45,040 У асноўным, структуры дазваляюць Вам стварыць свой уласны тып дадзеных. 344 00:13:45,040 --> 00:13:49,264 Так як міжнар або гольца або Паплавок, гэта проста яшчэ адзін тып. 345 00:13:49,264 --> 00:13:51,680 Мне падабаецца думаць пра яго, як, як, стварыць свой уласны тып дадзеных. 346 00:13:51,680 --> 00:13:53,740 Так ён дазваляе гэта зрабіць. 347 00:13:53,740 --> 00:13:56,160 І ён трымае розныя тыпы дадзеных. 348 00:13:56,160 --> 00:14:01,030 >> Так што, калі вы памятаеце, у масіве, мы можа толькі трымаць рэчы падобнага тыпу. 349 00:14:01,030 --> 00:14:04,660 Структуры дазваляюць нам трымаць кратнае рэчы з розных тыпаў. 350 00:14:04,660 --> 00:14:08,944 Такім чынам, у гэтым выпадку тут мы ёсць-структуру пад назвай Student, 351 00:14:08,944 --> 00:14:10,650 названыя тут у ніжняй часткі. 352 00:14:10,650 --> 00:14:13,540 І ў нас ёсць некаторыя Int ідэнтыфікатар і некаторыя радок імя. 353 00:14:13,540 --> 00:14:14,620 354 00:14:14,620 --> 00:14:17,300 Так што гэта проста яшчэ адзін тып дадзеных. 355 00:14:17,300 --> 00:14:18,950 Цяпер у нас ёсць тып дадзеных пад назвай Student. 356 00:14:18,950 --> 00:14:20,330 357 00:14:20,330 --> 00:14:24,750 >> Так што мы можам думаць аб гэта як яшчэ адзін тып дадзеных, 358 00:14:24,750 --> 00:14:27,760 мы можам абвясціць зменныя як мы і любы іншы. 359 00:14:27,760 --> 00:14:32,680 Такім чынам, замест таго, каб проста маючы, як, INT студэнт, у нас проста ёсць студэнт, 360 00:14:32,680 --> 00:14:33,390 студэнт 1. 361 00:14:33,390 --> 00:14:33,560 О, глядзіце. 362 00:14:33,560 --> 00:14:34,059 Гэта Роб. 363 00:14:34,059 --> 00:14:35,750 364 00:14:35,750 --> 00:14:38,880 Дык вось мы аб'яўленні структуры або пераменная 365 00:14:38,880 --> 00:14:40,940 называецца студэнт 1 тыпу студэнта. 366 00:14:40,940 --> 00:14:45,370 Так што гэта будзе мець ідэнтыфікатар і імя, звязанае з ім. 367 00:14:45,370 --> 00:14:48,430 >> І тое, як мы да іх доступ элементы ўнутры нашай структуры 368 00:14:48,430 --> 00:14:50,100 З дапамогай аператара кропка, тут. 369 00:14:50,100 --> 00:14:51,910 370 00:14:51,910 --> 00:14:54,660 Такім чынам, у дадзеным выпадку, мы заявіў некаторы студэнт 1. 371 00:14:54,660 --> 00:14:57,080 Мы прызначаны ідэнтыфікатар, каб быць 1. 372 00:14:57,080 --> 00:14:58,840 І мы прысвоілі імя будзе Роб. 373 00:14:58,840 --> 00:15:03,010 374 00:15:03,010 --> 00:15:04,960 ОК, усё добра з гэтым? 375 00:15:04,960 --> 00:15:06,787 Выкарыстоўвайце гэта проста like-- так? 376 00:15:06,787 --> 00:15:09,530 >> СТУДЕНТ: Так, typedef-- калі мы павінны выкарыстоўваць ЬурейеЕ? 377 00:15:09,530 --> 00:15:13,190 >> Элісан: Так ЬурейеЕ проста кажа that-- Роб, ты 378 00:15:13,190 --> 00:15:16,990 можа выправіць мяне на гэта, калі я wrong-- але ЬурейеЕ проста на самай справе аб'яўленні 379 00:15:16,990 --> 00:15:19,330 гэта як тыпу, якія можна выкарыстоўваць, ці не так? 380 00:15:19,330 --> 00:15:22,550 >> ROB: Так, гэта ў асноўным, так што гэта проста стварэнне 381 00:15:22,550 --> 00:15:24,215 псеўданім або мянушка тыпу. 382 00:15:24,215 --> 00:15:25,590 Такім чынам, вы можаце ўвесці, што [неразборліва]. 383 00:15:25,590 --> 00:15:27,140 384 00:15:27,140 --> 00:15:30,350 Так [неразборліва] існуе, і зараз мы проста павінны 385 00:15:30,350 --> 00:15:32,090 [Неразборліва] сродкі роўна тое ж самае. 386 00:15:32,090 --> 00:15:37,210 І вось, мы набралі, я думаю, некаторыя структура тыпу 2 [неразборліва]. 387 00:15:37,210 --> 00:15:40,680 Так што гэта проста псеўданім Для дадзенага тыпу. 388 00:15:40,680 --> 00:15:44,344 >> СТУДЕНТ: String [неразборліва] бібліятэка набралася да як паўкокс зоркі. 389 00:15:44,344 --> 00:15:51,380 390 00:15:51,380 --> 00:15:54,390 >> Элісан: Для нашых мэтаў тут, калі вы абвяшчэнні-структуру, 391 00:15:54,390 --> 00:15:55,600 проста зрабіць ЬурейеЕ-структуру. 392 00:15:55,600 --> 00:15:57,680 393 00:15:57,680 --> 00:16:04,490 Такім чынам, загадзя, гэта проста нармальны пераменная тут. 394 00:16:04,490 --> 00:16:06,390 Мы да яго доступ з кропкі. 395 00:16:06,390 --> 00:16:08,580 калі ў нас ёсць паказальнік на структура, мы можам на самай справе 396 00:16:08,580 --> 00:16:10,700 выкарыстоўваць стралу, якая даволі халаднавата. 397 00:16:10,700 --> 00:16:17,130 >> Такім чынам, у дадзеным выпадку, у нас ёсць паказальнік на студэнт 1, што мае тып студэнта. 398 00:16:17,130 --> 00:16:19,020 Памятаеце, з вашай Будаўніцтва паказальнік, 399 00:16:19,020 --> 00:16:23,710 Вы хочаце што б ні увядзіце паказальнік паказвае на быць у пачатку. 400 00:16:23,710 --> 00:16:25,960 Такім чынам, мы маем некаторую студэнта 1, тут. 401 00:16:25,960 --> 00:16:27,370 402 00:16:27,370 --> 00:16:31,050 І з гэтага студэнта 1 зараз завостраны, 403 00:16:31,050 --> 00:16:36,520 мы можам на самай справе ісці студэнцкі імя 1 стрэлкай замест кропкі, таму што гэта паказальнік, 404 00:16:36,520 --> 00:16:37,640 і прызначыць Роба. 405 00:16:37,640 --> 00:16:40,720 І зараз, калі мы хочам, каб змяніць Роб Дэвин, 406 00:16:40,720 --> 00:16:43,570 гэта проста паказваючы вам, Іншы спосаб зрабіць гэта. 407 00:16:43,570 --> 00:16:48,850 >> Такім чынам, замест таго, каб выкарыстоўваць стрэлку, вы можа also-- я скончу гэта, а затым 408 00:16:48,850 --> 00:16:52,860 прыняць, што question-- вы маглі Таксама зрабіць апорную студэнт 1. 409 00:16:52,860 --> 00:16:56,170 Гэта кажа, як перайсці да усё, што на студэнта 1, 410 00:16:56,170 --> 00:16:58,840 будзе наш студэнт структура. 411 00:16:58,840 --> 00:17:03,910 Доступ яе з кропкай і элементам што вы хочаце, а затым перадаць яго. 412 00:17:03,910 --> 00:17:05,326 Было пытанне. 413 00:17:05,326 --> 00:17:08,034 СТУДЕНТ: Так, так як жа ў вас ёсць выкарыстоўваць [неразборліва], калі ты 414 00:17:08,034 --> 00:17:10,367 робіць студэнцкую зорку без [Неразборліва] студэнт? 415 00:17:10,367 --> 00:17:12,200 Элісан: Таму што гэта стварае паказальнік. 416 00:17:12,200 --> 00:17:13,616 ROB: Мы збіраемся казаць пра гэта. 417 00:17:13,616 --> 00:17:16,119 Элісан: Мы збіраемся казаць аб тым, што ў канцы агляду. 418 00:17:16,119 --> 00:17:17,660 Так што проста ўтрымаць гэтую думку. 419 00:17:17,660 --> 00:17:20,560 Калі ён па-ранейшаму турбуе вас у канец, прыйшоў пагаварыць з адным з нас. 420 00:17:20,560 --> 00:17:23,380 >> Такім чынам, гэтыя робяць роўна тое ж самае. 421 00:17:23,380 --> 00:17:25,579 Мы проста паказваю вам два розныя спосабы, каб зрабіць гэта. 422 00:17:25,579 --> 00:17:29,470 Студэнт 1 зараз паказальнік, так Вы можаце атрымаць доступ да імя элемента 423 00:17:29,470 --> 00:17:30,960 ў структуры са стрэлкай. 424 00:17:30,960 --> 00:17:36,440 Ці вы можаце разнаймення паказальніка, і звяртацца да яго, як звычайна. 425 00:17:36,440 --> 00:17:38,430 Ці значыць гэта, мае сэнс кожнаму? 426 00:17:38,430 --> 00:17:39,480 427 00:17:39,480 --> 00:17:43,890 Калі цэлыя паказальнік рэчы трохі заблытанай, Гейб будзе казаць пра тое, што, 428 00:17:43,890 --> 00:17:45,740 і тады, магчыма, гэта будзе мець больш сэнсу. 429 00:17:45,740 --> 00:17:46,240 Так? 430 00:17:46,240 --> 00:17:48,387 >> СТУДЕНТ: Так, так як гэта гэта адрозніваецца ад? 431 00:17:48,387 --> 00:17:49,470 Элісан: папярэдні? 432 00:17:49,470 --> 00:17:52,330 Так студэнт 1 у гэтым справа не паказальнік. 433 00:17:52,330 --> 00:17:54,380 Гэта проста ваша бягучая структура. 434 00:17:54,380 --> 00:17:55,400 >> СТУДЕНТ: ОК. 435 00:17:55,400 --> 00:17:57,645 >> Элісан: У той час як гэты з'яўляецца паказальнікам на структуру. 436 00:17:57,645 --> 00:17:58,910 437 00:17:58,910 --> 00:18:02,060 >> СТУДЕНТ: ОК, але робіць гэта выгляд ў канчатковым выніку працуе адзін і той жа [неразборліва]. 438 00:18:02,060 --> 00:18:03,310 >> Элісан: Ён эфектыўна працуе так жа. 439 00:18:03,310 --> 00:18:04,560 Ваш сінтаксіс проста розныя. 440 00:18:04,560 --> 00:18:05,185 СТУДЕНТ: ОК. 441 00:18:05,185 --> 00:18:07,600 >> Элісан: Так, яны фактычна тое ж самае. 442 00:18:07,600 --> 00:18:11,321 Гэта проста ў залежнасці ад кантэксту, Вы можаце адзін над іншым. 443 00:18:11,321 --> 00:18:11,820 Так? 444 00:18:11,820 --> 00:18:13,956 >> СТУДЕНТ: Калі вы робіце спасылкі на 1-- 445 00:18:13,956 --> 00:18:14,580 Элісан: Мм-хм? 446 00:18:14,580 --> 00:18:16,880 СТУДЕНТ: Чаму вас ёсць дужкі? 447 00:18:16,880 --> 00:18:19,575 Элісан: Таму што студэнт 1 з'яўляецца паказальнікам. 448 00:18:19,575 --> 00:18:22,200 Такім чынам, вы павінны пераканацца, што вы проста разнаймення паказальніка. 449 00:18:22,200 --> 00:18:23,380 >> СТУДЕНТ: ОК. 450 00:18:23,380 --> 00:18:26,700 >> Элісан: Так што ў гэтым выпадку тут, дужкі вакол яго 451 00:18:26,700 --> 00:18:29,875 азначае, што вы разнаймення студэнт 1. 452 00:18:29,875 --> 00:18:35,390 Такім чынам, вы будзеце дзе студэнт 1 балаў, што ваша структура. 453 00:18:35,390 --> 00:18:38,010 Так што цяпер вы можаце думаць, пра яго, як гэтай структуры, 454 00:18:38,010 --> 00:18:39,785 так што мы можам выкарыстоўваць наш нармальную працу кропка. 455 00:18:39,785 --> 00:18:42,752 456 00:18:42,752 --> 00:18:43,585 Яшчэ пытанні? 457 00:18:43,585 --> 00:18:45,840 458 00:18:45,840 --> 00:18:48,120 Прахладны, дзіўным. 459 00:18:48,120 --> 00:18:51,359 >> Так апошняя рэч, я думаю, мой апошні слайд, Ву! 460 00:18:51,359 --> 00:18:52,775 Такім чынам, з якая плавае кропкай недакладнасць. 461 00:18:52,775 --> 00:18:54,090 462 00:18:54,090 --> 00:18:56,820 Мы казалі коратка аб гэта на лекцыі. 463 00:18:56,820 --> 00:19:00,030 У асноўным, мы маем бясконца шмат рэчыўных лікаў. 464 00:19:00,030 --> 00:19:02,237 І калі які-небудзь з вас, хлопцы, люблю матэматыку, ёсць 465 00:19:02,237 --> 00:19:03,570 ўсякія класныя рэчы з намі. 466 00:19:03,570 --> 00:19:05,010 467 00:19:05,010 --> 00:19:07,190 >> Але існуе бясконца многія сапраўдныя лікі. 468 00:19:07,190 --> 00:19:09,850 Але яны толькі канчатковае шмат бітаў, якія ў нас ёсць. 469 00:19:09,850 --> 00:19:13,240 Такім чынам, вы заўсёды будзеце ёсць недакладнасць, гэта ўсё. 470 00:19:13,240 --> 00:19:16,269 І вось гэта проста нейкая як-то вы павінны ведаць. 471 00:19:16,269 --> 00:19:19,060 Гэта як мы можам папрасіць вас чаму з якая плавае кропкай недакладнасць існуюць? 472 00:19:19,060 --> 00:19:20,004 473 00:19:20,004 --> 00:19:21,420 Так што тое, што вы павінны ведаць. 474 00:19:21,420 --> 00:19:23,770 І з гэтым, я ператвараюся гэта да паказальнікаў. 475 00:19:23,770 --> 00:19:27,720 476 00:19:27,720 --> 00:19:28,520 >> Мяккія: Прывітанне, хлопцы. 477 00:19:28,520 --> 00:19:29,616 Мяккія Мяне клічуць. 478 00:19:29,616 --> 00:19:30,990 Я збіраюся пагаварыць пра паказальніках. 479 00:19:30,990 --> 00:19:33,247 480 00:19:33,247 --> 00:19:35,830 Так, так паказальнікі на самай справе мая любімая частка ў гэтым працэсе. 481 00:19:35,830 --> 00:19:39,740 Так што проста зрабіць ясна, што Элісан быў гаворым тут, так па прычыне 482 00:19:39,740 --> 00:19:43,810 why-- той толькі розніцай тут, Вялікая розніца быў шлях 483 00:19:43,810 --> 00:19:44,760 мы заяўляем рэчы. 484 00:19:44,760 --> 00:19:47,560 Так студэнт зорка азначае гэта з'яўляецца паказальнікам на студэнта. 485 00:19:47,560 --> 00:19:52,960 У той час як на слайдзе да, студэнт Фактычная структура, як фактычны студэнта, 486 00:19:52,960 --> 00:19:54,400 які змяшчае любы з гэтых рэчаў. 487 00:19:54,400 --> 00:19:57,050 >> І прычына, чаму мы хачу to-- так, Дэвин? 488 00:19:57,050 --> 00:19:58,630 >> DAVIN: Што гэта значыць стрэлка? 489 00:19:58,630 --> 00:20:04,240 >> Мяккія: Сродкі стрэлкамі дакладна так жа, як гэта. 490 00:20:04,240 --> 00:20:06,150 Такім чынам, вы сапраўды не трэба стрэлку. 491 00:20:06,150 --> 00:20:11,060 Маўляў, калі вы толькі праграма у C, вы можаце проста выкарыстоўваць гэта. 492 00:20:11,060 --> 00:20:12,850 На жаль, я не тое, што гэта такое. 493 00:20:12,850 --> 00:20:14,920 Вы можаце проста выкарыстоўваць гэты сінтаксіс. 494 00:20:14,920 --> 00:20:17,430 >> Але некаторыя людзі, калі яны распрацоўвалі C, 495 00:20:17,430 --> 00:20:19,870 яны лічылі, што людзі выкарыстоўваць гэтую сінтаксіс столькі, 496 00:20:19,870 --> 00:20:23,970 што яны будуць падабаецца толькі прыдумаць са структурай сінтаксісу для яго. 497 00:20:23,970 --> 00:20:26,820 І гэта адбылося ў Форма гэтай стрэлкі. 498 00:20:26,820 --> 00:20:29,210 І гэта вельмі прыемна, таму што яна сімвалізуе нешта 499 00:20:29,210 --> 00:20:33,670 як мы на самай справе наступнае гэтая стрэлка, гэта паказальнік, 500 00:20:33,670 --> 00:20:35,300 да нейкага месца ў памяці. 501 00:20:35,300 --> 00:20:40,410 І калі мы будзем там, мы хочам, каб глядзець на імя гэтага студэнта, 502 00:20:40,410 --> 00:20:42,150 калі гэта мае сэнс. 503 00:20:42,150 --> 00:20:43,000 Добра? 504 00:20:43,000 --> 00:20:44,290 >> Так што гэта сапраўды гэтак жа. 505 00:20:44,290 --> 00:20:46,310 Гэта роўна тое ж самае, як гэта. 506 00:20:46,310 --> 00:20:48,130 Яны кампілююцца сапраўды гэтак жа, ОК? 507 00:20:48,130 --> 00:20:50,100 508 00:20:50,100 --> 00:20:55,580 І прычына тут, чаму мы Malloc -тое, адбываецца таму, што ў дадзеным выпадку, 509 00:20:55,580 --> 00:20:59,120 наша пераменная на самай справе проста пераменная паказальнік. 510 00:20:59,120 --> 00:21:02,900 Так у нас ёсць толькі некаторы прастору ў памяці, што трымае паказальнік. 511 00:21:02,900 --> 00:21:06,570 Мы на самай справе не маюць ніякага месца што трымае рэальную структуры. 512 00:21:06,570 --> 00:21:08,660 >> Такім чынам, гэта павінна быць зроблена ў два этапы. 513 00:21:08,660 --> 00:21:11,545 Мы павінны стварыць Памяць паставіць структуры ў. 514 00:21:11,545 --> 00:21:14,445 І мы павінны стварыць Памяць паставіць паказальнік ст. 515 00:21:14,445 --> 00:21:16,570 Так яны ў асноўным два розныя зменныя, тут. 516 00:21:16,570 --> 00:21:19,730 Адзін з іх мае тып студэнта, акрамя яго на самай справе не мае імя. 517 00:21:19,730 --> 00:21:21,900 А другі з'яўляецца тыпу студэнцкай зоркі. 518 00:21:21,900 --> 00:21:24,900 А потым студэнцкія 1 кропак там, калі гэта сэнс. 519 00:21:24,900 --> 00:21:25,871 520 00:21:25,871 --> 00:21:26,370 Добра? 521 00:21:26,370 --> 00:21:28,160 522 00:21:28,160 --> 00:21:31,860 >> Так прычын, чаму мы выкарыстоўваем Ўказальнікі ў тым, што ўсе 523 00:21:31,860 --> 00:21:35,510 ў кампутары, кожная пераменная ў кампутары ёсць дзве рэчы. 524 00:21:35,510 --> 00:21:36,580 Гэта мае сваё значэнне. 525 00:21:36,580 --> 00:21:38,420 І гэта мае свой адрас. 526 00:21:38,420 --> 00:21:41,390 І гэта добры спосаб асэнсоўваць гэта ёсць 527 00:21:41,390 --> 00:21:44,230 многія праблемы, калі вы паспрабуйце выкарыстоўваць функцыі. 528 00:21:44,230 --> 00:21:47,200 І мы збіраемся, каб паспрабаваць шукаць у адным з тых. 529 00:21:47,200 --> 00:21:50,370 А менавіта, ён збіраецца думаць аб памяці як скрынкі. 530 00:21:50,370 --> 00:21:52,810 >> Вы заўсёды думалі аб зменных калі вы кажаце, па роўная 5. 531 00:21:52,810 --> 00:21:54,430 Вы думаеце пра здачы 5 у скрынку. 532 00:21:54,430 --> 00:21:55,520 533 00:21:55,520 --> 00:22:00,030 Так што, калі вы хочаце перадаць што інтэрвал у функцыю? 534 00:22:00,030 --> 00:22:03,230 Вы проста pass-- я не знаю-- х у функцыю. 535 00:22:03,230 --> 00:22:06,090 Але тое, што адбываецца, Звычайна ў якасці чалавека, вы 536 00:22:06,090 --> 00:22:09,050 было б думаць, што-тое, што я перадаючы скрынку з чалавекам. 537 00:22:09,050 --> 00:22:12,070 І гэта на самай справе не адбыцца ў кампутарах. 538 00:22:12,070 --> 00:22:17,770 Што адбываецца, з'яўляецца капіяванні значэнне з скрынкі ў скрынку чалавека. 539 00:22:17,770 --> 00:22:22,440 >> Так што я спрабую сказаць, што калі ў вас ёсць function-- sorry-- тут, 540 00:22:22,440 --> 00:22:27,700 калі ў нас ёсць функцыя, як у пяці уверх значыць, калі вы спрабуеце перадаць зменную, 541 00:22:27,700 --> 00:22:29,450 гэта проста будзе капіяваць. 542 00:22:29,450 --> 00:22:35,771 Калі ініцыялізацыі NX роўны 3, гэта будзе скапіяваць гэта значэнне да зменнай 543 00:22:35,771 --> 00:22:36,270 там. 544 00:22:36,270 --> 00:22:37,005 545 00:22:37,005 --> 00:22:39,630 ОК, і гэта накшталт той прычыне, Таму мы хочам, каб выкарыстоўваць паказальнікі. 546 00:22:39,630 --> 00:22:42,550 Таму што замест таго, даючы толькі значэнне, 547 00:22:42,550 --> 00:22:44,850 замест проста праходзіў толькі значэнне ў функцыю, 548 00:22:44,850 --> 00:22:46,530 мы хочам перадаць па спасылцы. 549 00:22:46,530 --> 00:22:50,630 Тое, што мы называем праход па спасылцы добры даць скрынку з функцыяй, 550 00:22:50,630 --> 00:22:53,890 так што функцыя можа таксама змяніць значэння ў гэтым полі. 551 00:22:53,890 --> 00:22:57,280 >> ОК, так што проста некаторыя асноўныя паказальнік матэрыял для стварэння паказальнікаў, 552 00:22:57,280 --> 00:23:00,300 Вы проста аб'явіць яго тып, і Вы пасадзіць зорку адразу пасля яго. 553 00:23:00,300 --> 00:23:02,307 І толькі тып тое, што вы паказваючы на. 554 00:23:02,307 --> 00:23:04,390 Так што, калі гэта інтэрвал зорка, Вы паказваеце на міжнар. 555 00:23:04,390 --> 00:23:05,940 Калі гэта знак зоркі, Вы паказваеце на графік. 556 00:23:05,940 --> 00:23:07,790 І калі гэта студэнт зорка, Вы паказваеце на студэнта. 557 00:23:07,790 --> 00:23:08,770 Добра? 558 00:23:08,770 --> 00:23:10,510 >> І яны доўга усе 4 байта. 559 00:23:10,510 --> 00:23:13,010 Таму што гэтай зменнай гэта не на самай справе 560 00:23:13,010 --> 00:23:15,380 трэба правесці сімвал, INT, або студэнт. 561 00:23:15,380 --> 00:23:16,890 Гэта неабходна толькі правесці адрас. 562 00:23:16,890 --> 00:23:21,390 Вось чаму яны ўсе 4 байта даўжынёй у нармальным 32-бітнай машыне. 563 00:23:21,390 --> 00:23:21,890 Добра? 564 00:23:21,890 --> 00:23:25,600 Дык вось, х з'яўляецца зменнай, якая паказвае да міжнар. у паказвае на гольца. Z пункту 565 00:23:25,600 --> 00:23:26,580 з паплаўком. 566 00:23:26,580 --> 00:23:27,480 Тут Ёсць пытанні? 567 00:23:27,480 --> 00:23:29,841 568 00:23:29,841 --> 00:23:30,340 Прахладны. 569 00:23:30,340 --> 00:23:32,550 І ёсць два розныя сімвалы, якія яны маюць 570 00:23:32,550 --> 00:23:34,341 каб мець на ўвазе пры прыходзіць да паказальніка. 571 00:23:34,341 --> 00:23:36,540 Так спасылкі і разнаймення з'яўляюцца вялікія. 572 00:23:36,540 --> 00:23:38,100 573 00:23:38,100 --> 00:23:41,602 Так Ампэрсанд з Імя зменнай дае? 574 00:23:41,602 --> 00:23:42,310 СТУДЕНТ: Адрас. 575 00:23:42,310 --> 00:23:43,380 Мяккія: Адрас. 576 00:23:43,380 --> 00:23:47,330 Так што, калі вы аб'яўляеце Int А роўны 5, то Ампэрсанд 577 00:23:47,330 --> 00:23:49,214 з збіраецца даць вам адрас. 578 00:23:49,214 --> 00:23:51,130 І вы можаце паспрабаваць друкаваць што і паглядзець, 579 00:23:51,130 --> 00:23:54,640 які адрас у памяці пераменная мае. 580 00:23:54,640 --> 00:23:57,380 А потым dereferencing-- так што было спасылацца, 581 00:23:57,380 --> 00:24:00,380 атрыманне address-- разнаймення з'яўляецца поўнай супрацьлегласцю. 582 00:24:00,380 --> 00:24:04,120 ОК, як раз з'яўляецца насупраць дывізіі, 583 00:24:04,120 --> 00:24:06,060 зорка з'яўляецца супрацьлегласцю Ампэрсанд. 584 00:24:06,060 --> 00:24:09,710 Так разнаймення сродкі ідуць туды. 585 00:24:09,710 --> 00:24:14,280 Так што, калі вы даеце star-- I ня знаю-- 50, гэта 586 00:24:14,280 --> 00:24:20,320 буду спрабаваць ісці па адрасе № 50 ўнутры вашага кампутара. 587 00:24:20,320 --> 00:24:22,840 Добра, а чаму мы не бачым што яны з'яўляюцца супрацьлегласцямі? 588 00:24:22,840 --> 00:24:27,320 Таму што тое, што адбываецца, калі вы робіце нешта накшталт зоркі Ампэрсанд? 589 00:24:27,320 --> 00:24:28,470 590 00:24:28,470 --> 00:24:33,460 Ну, Ампэрсанд дае адрас зменнай, адрас. 591 00:24:33,460 --> 00:24:35,830 Але зорка азначае пайсці туды. 592 00:24:35,830 --> 00:24:38,930 >> Што здарыцца, калі вас перайсці на адрас? 593 00:24:38,930 --> 00:24:40,400 Вы проста дабрацца да, ці не так? 594 00:24:40,400 --> 00:24:41,410 595 00:24:41,410 --> 00:24:43,600 Так адбываецца па адрасе гэта тое ж самае, як. 596 00:24:43,600 --> 00:24:47,580 Вось чаму яны, як правіла, называюць same-- гэта 597 00:24:47,580 --> 00:24:50,480 і гэта называюць як супрацьлеглыя аператары. 598 00:24:50,480 --> 00:24:50,980 Добра? 599 00:24:50,980 --> 00:24:52,780 600 00:24:52,780 --> 00:24:53,790 Так выдатна. 601 00:24:53,790 --> 00:24:57,240 >> Пад вечкам, напрыклад, калі мы заяўляем INT х роўная 5, 602 00:24:57,240 --> 00:24:58,040 у нас ёсць пераменная. 603 00:24:58,040 --> 00:25:00,790 І памятайце, што я сказаў, што кожны переменная-- і гэта добра 604 00:25:00,790 --> 00:25:03,820 захаваць у mind-- ён мае два розныя рэчы, звязаныя з. 605 00:25:03,820 --> 00:25:06,460 Ён мае звярнуўся і значэнне. 606 00:25:06,460 --> 00:25:07,140 Добра? 607 00:25:07,140 --> 00:25:09,180 >> Такім чынам, значэнне ў гэтым выпадку роўна 5. 608 00:25:09,180 --> 00:25:12,140 І адрас is-- скажам, я рабіць што-то up-- гэта 0x04. 609 00:25:12,140 --> 00:25:13,180 610 00:25:13,180 --> 00:25:17,200 І адзіная прычына, чаму мы, як правіла, ўяўляюць адрасы ў шаснаццатковым 611 00:25:17,200 --> 00:25:19,770 з'яўляецца адным, таму што гэта як на карысць. 612 00:25:19,770 --> 00:25:21,600 Добра спалучаецца з двайковай сістэме. 613 00:25:21,600 --> 00:25:23,500 Гэта лёгка канвертаваць і з двайковага файла. 614 00:25:23,500 --> 00:25:26,890 І гэта не становіцца занадта вялікі, калі ў вас ёсць вельмі вялікая колькасць. 615 00:25:26,890 --> 00:25:29,990 Такім чынам, мы хацелі б выкарыстоўваць шаснаццатковы у адрасах друку. 616 00:25:29,990 --> 00:25:31,890 Але я мог бы прадстаўляць Гэты выглядзе цэлага ліку. 617 00:25:31,890 --> 00:25:32,750 Гэта выдатна. 618 00:25:32,750 --> 00:25:35,450 >> І таму ён мае адрас 4 і 5 значэнне. 619 00:25:35,450 --> 00:25:38,080 І тады я сказаў INT зорка паказальнік. 620 00:25:38,080 --> 00:25:40,070 Так што гэта іншы тып, апавяшчэнне. 621 00:25:40,070 --> 00:25:43,220 Int зорка паказальнік роўны адрас х. 622 00:25:43,220 --> 00:25:46,425 Так што будзе значэнне PTR? 623 00:25:46,425 --> 00:25:47,710 624 00:25:47,710 --> 00:25:51,600 Гэта збіраецца быць адрас х, тут. 625 00:25:51,600 --> 00:25:54,190 ОК, так што значэнне будзе быць такім жа, як адрас. 626 00:25:54,190 --> 00:25:56,130 Гэта прызначэнне працаваць, што я раблю. 627 00:25:56,130 --> 00:25:59,380 А потым PTR будзе мець яго ўласны адрас, які аказваецца, 628 00:25:59,380 --> 00:26:02,050 у гэтым выпадку, 8, ОК? 629 00:26:02,050 --> 00:26:03,850 630 00:26:03,850 --> 00:26:05,900 >> А потым я ствараю новы цэлае копію. 631 00:26:05,900 --> 00:26:08,790 І я кажу INT копія роўна ідуць туды. 632 00:26:08,790 --> 00:26:11,140 Так што да таго, што PTR паказвае на. 633 00:26:11,140 --> 00:26:13,940 Ну, што гэта PTR ёсць? 634 00:26:13,940 --> 00:26:14,740 Ptr мае 0x04. 635 00:26:14,740 --> 00:26:16,060 636 00:26:16,060 --> 00:26:18,400 Што адбудзецца, калі я спрабую пайсці туды? 637 00:26:18,400 --> 00:26:23,650 Я знайду хлопца, які мае Адрас х і які мае адрас 4. 638 00:26:23,650 --> 00:26:25,970 І хто мае рашэння чатырох з'яўляецца х. 639 00:26:25,970 --> 00:26:26,950 Ці мае гэта сэнс? 640 00:26:26,950 --> 00:26:28,295 641 00:26:28,295 --> 00:26:28,795 Так? 642 00:26:28,795 --> 00:26:32,060 >> СТУДЕНТ: У гэтым выпадку, з'яўляецца паказальнік ў стэку? 643 00:26:32,060 --> 00:26:36,024 >> Binky: У гэтым выпадку, it's-- добры пытанне. 644 00:26:36,024 --> 00:26:38,690 Я сапраўды не думаю пра гэта пры складанні гэтых адрасоў. 645 00:26:38,690 --> 00:26:42,570 Але калі гэта, як усе гэта лакальныя зменныя, 646 00:26:42,570 --> 00:26:46,372 то х будзе жыць in-- ўсе будзе жыць у стэку. 647 00:26:46,372 --> 00:26:48,330 Так што ўсё ідзе быць накіраваны ў стэк. 648 00:26:48,330 --> 00:26:49,360 649 00:26:49,360 --> 00:26:52,700 Вы можаце атрымаць толькі ў кучы калі гэта Вы пачынаеце выкарыстоўваць Таноса, ці не так? 650 00:26:52,700 --> 00:26:59,430 >> Так што, калі вы памятаеце стэк кожны раз Вы выклікаеце функцыю ў вашай праграме, 651 00:26:59,430 --> 00:27:02,800 як, напрыклад, асноўная, або любое Іншая функцыя, як Printf. 652 00:27:02,800 --> 00:27:06,334 Усе лакальныя зменныя з'яўляюцца збіраецца атрымаць пакласці ў кадры стэка. 653 00:27:06,334 --> 00:27:08,500 І яны збіраюцца, каб атрымаць як складаецца ў чарку. 654 00:27:08,500 --> 00:27:09,930 Гэта тое, што называецца стэк. 655 00:27:09,930 --> 00:27:12,200 І ўсе гэтыя лакальныя зменныя збіраюцца быць там. 656 00:27:12,200 --> 00:27:14,940 І heap-- і мы збіраемся каб больш аб гэтым later-- казаць 657 00:27:14,940 --> 00:27:19,050 Куча, дзе ўсё дынамічна размяркоўваецца жыццё памяці. 658 00:27:19,050 --> 00:27:20,270 Прахладны? 659 00:27:20,270 --> 00:27:21,680 >> Мы ідзем у гэты слайд. 660 00:27:21,680 --> 00:27:22,800 Так? 661 00:27:22,800 --> 00:27:25,490 >> СТУДЕНТ: Чаму не INT копія вяртання 0x04? 662 00:27:25,490 --> 00:27:27,870 663 00:27:27,870 --> 00:27:30,066 >> Мяккія: Чаму не INT копія вяртання 0x04? 664 00:27:30,066 --> 00:27:32,450 >> СТУДЕНТ: Чаму не ў тым, што [неразборліва]? 665 00:27:32,450 --> 00:27:35,530 >> Мяккія: Таму што гэта значэнне PTR? 666 00:27:35,530 --> 00:27:37,394 667 00:27:37,394 --> 00:27:38,370 >> СТУДЕНТ: 0x04. 668 00:27:38,370 --> 00:27:38,960 >> Мяккія: 0x04. 669 00:27:38,960 --> 00:27:40,910 Што адбудзецца, калі вы ідзяце ў 0x04? 670 00:27:40,910 --> 00:27:41,620 Што вы атрымліваеце? 671 00:27:41,620 --> 00:27:42,371 >> СТУДЕНТ: О, добра. 672 00:27:42,371 --> 00:27:42,995 Мяккія: Вы бачыце? 673 00:27:42,995 --> 00:27:43,536 СТУДЕНТ: Так. 674 00:27:43,536 --> 00:27:44,890 Мяккія: Такім чынам, вы атрымліваеце 5. 675 00:27:44,890 --> 00:27:49,170 Так копія будзе мець 5, калі гэта мае сэнс. 676 00:27:49,170 --> 00:27:49,809 Так? 677 00:27:49,809 --> 00:27:52,803 >> СТУДЕНТ: Не маглі б мы атрымалі 5 на тэкставым полі [неразборліва] 678 00:27:52,803 --> 00:27:55,300 калі пакласці INT скапіяваць [неразборліва]. 679 00:27:55,300 --> 00:27:56,710 >> Мяккія: Int-- мы б, так. 680 00:27:56,710 --> 00:27:59,080 Гэта было б зроблена ў значнай ступені тое ж самае. 681 00:27:59,080 --> 00:28:02,080 Але гэты шлях, мы можам перайсці звярнуцца да функцый. 682 00:28:02,080 --> 00:28:05,050 І гэта выдатна, што мы збіраемся зрабіць прама цяпер. 683 00:28:05,050 --> 00:28:06,770 684 00:28:06,770 --> 00:28:13,090 >> Таму такога роду практыкаванні заўсёды прыдумляе on-- вельмі звычайна прыходзіць на віктарынах. 685 00:28:13,090 --> 00:28:15,870 Так што гэта сапраўды добра, каб паспрабаваць зрабіць такую ​​рэч самастойна. 686 00:28:15,870 --> 00:28:21,210 Таму паспрабуйце, каб адсочваць, што адрас гэта і хачу значэння зменных 687 00:28:21,210 --> 00:28:22,620 з'яўляюцца ў кожнай кропцы. 688 00:28:22,620 --> 00:28:24,370 Так што гэта дакладна тое, што мы збіраемся зрабіць. 689 00:28:24,370 --> 00:28:26,988 Тут мы маем крокі, адзін, два, тры, чатыры, пяць. 690 00:28:26,988 --> 00:28:30,530 Адзін, два, тры, чатыры, пяць. 691 00:28:30,530 --> 00:28:33,330 І мы збіраемся адсочваць ад значэнняў х і. 692 00:28:33,330 --> 00:28:34,650 693 00:28:34,650 --> 00:28:40,530 >> Так што гэта робіць, калі гэта памылка ў праграмным кодзе, мы спрабуем зрабіць да пяці. 694 00:28:40,530 --> 00:28:43,610 Такім чынам, мы спрабуем атрымаць у Пераменная і зменіце яго значэнне на 5. 695 00:28:43,610 --> 00:28:44,630 696 00:28:44,630 --> 00:28:49,900 І памятайце маю аналогію маючы скрынка і уручаючы скрынку з кім-то? 697 00:28:49,900 --> 00:28:51,515 Так галоўны мае гэтую опцыю пад назвай х. 698 00:28:51,515 --> 00:28:52,570 699 00:28:52,570 --> 00:28:54,170 І ён ўтрымлівае значэнне 3. 700 00:28:54,170 --> 00:28:55,230 701 00:28:55,230 --> 00:28:57,455 І я спрабую перадаць у гэтым полі, каб да пяці. 702 00:28:57,455 --> 00:28:58,560 703 00:28:58,560 --> 00:29:01,510 >> І я хачу, каб пяць змяніць значэнне гэтай рамкі да 5. 704 00:29:01,510 --> 00:29:03,080 705 00:29:03,080 --> 00:29:05,120 А потым я проста надрукаваць значэнне х. 706 00:29:05,120 --> 00:29:06,475 707 00:29:06,475 --> 00:29:08,850 Гэта тое, што мой function-- гэта тое, што я спрабую зрабіць. 708 00:29:08,850 --> 00:29:12,450 Я проста спрабую абнавіць значэнне х да 5. 709 00:29:12,450 --> 00:29:13,512 710 00:29:13,512 --> 00:29:14,970 Зразумела, што функцыя робіць? 711 00:29:14,970 --> 00:29:16,210 712 00:29:16,210 --> 00:29:21,440 >> Такім чынам, што ж будзе значэння х і прама тут, 713 00:29:21,440 --> 00:29:27,734 першая лінія, прама перад першым line-- я б say-- праграмы? 714 00:29:27,734 --> 00:29:28,940 >> СТУДЕНТ: Напэўна смецця. 715 00:29:28,940 --> 00:29:30,023 >> Мяккія: Проста смецце рэчы. 716 00:29:30,023 --> 00:29:32,590 Так што я проста пакласці N / A. Так мы на самай справе не ведаю. 717 00:29:32,590 --> 00:29:37,400 Маўляў, нават не ўсё ж існуюць, таму што мы не называецца да пяці. 718 00:29:37,400 --> 00:29:38,980 Int не абвешчаная. 719 00:29:38,980 --> 00:29:40,030 720 00:29:40,030 --> 00:29:42,920 І х збіраецца існаваць тут, але ў нас ёсць не вельмі 721 00:29:42,920 --> 00:29:45,370 прызначанае любы значэнне да яго, так добра? 722 00:29:45,370 --> 00:29:46,570 723 00:29:46,570 --> 00:29:52,340 >> І потым, што збіраюцца быць Значэння х і ў нумар два? 724 00:29:52,340 --> 00:29:54,530 725 00:29:54,530 --> 00:29:55,410 >> СТУДЕНТ: [неразборліва]. 726 00:29:55,410 --> 00:29:57,540 >> Мяккія: Так х будзе 3. 727 00:29:57,540 --> 00:29:59,650 Гэта проста, таму што мы прысвойваем 3 да яго. 728 00:29:59,650 --> 00:30:03,500 І яшчэ не існуе таму што проста жыве ў пяці. 729 00:30:03,500 --> 00:30:05,800 Так што я буду мець 3 і нічога. 730 00:30:05,800 --> 00:30:08,590 ці як смецце, тое, што, на самай справе не вызначаны. 731 00:30:08,590 --> 00:30:11,640 732 00:30:11,640 --> 00:30:13,140 І зараз, гэта важны кірунак. 733 00:30:13,140 --> 00:30:14,931 Тут мы збіраемся на самай справе назваць да пяці. 734 00:30:14,931 --> 00:30:17,140 735 00:30:17,140 --> 00:30:18,680 І памятайце, што я сказаў. 736 00:30:18,680 --> 00:30:20,240 Мы ніколі не праходзяць у скрынцы. 737 00:30:20,240 --> 00:30:23,110 Мы проста скапіяваць значэнне скрынка ў іншую скрынку. 738 00:30:23,110 --> 00:30:27,000 Вось і ўсе кампутары, капіяваць рэчы з аднаго месца ў іншае. 739 00:30:27,000 --> 00:30:33,550 >> Так да пяці, што яна робіць гэта ён капіюе значэнне х ст. 740 00:30:33,550 --> 00:30:35,130 Так што будзе тут? 741 00:30:35,130 --> 00:30:36,210 Значэння х і. 742 00:30:36,210 --> 00:30:38,670 743 00:30:38,670 --> 00:30:43,360 3 і 3, мы проста скапіяваць гэта больш з х ст. 744 00:30:43,360 --> 00:30:44,710 745 00:30:44,710 --> 00:30:45,320 Прахладны. 746 00:30:45,320 --> 00:30:46,140 >> Цяпер мы тут. 747 00:30:46,140 --> 00:30:47,610 748 00:30:47,610 --> 00:30:49,430 І зараз мы збіраемся абнавіць роўная 5. 749 00:30:49,430 --> 00:30:50,900 750 00:30:50,900 --> 00:30:53,070 Што здарыцца ў чацвёртай радку? 751 00:30:53,070 --> 00:30:55,120 752 00:30:55,120 --> 00:30:56,010 >> СТУДЕНТ: [неразборліва]. 753 00:30:56,010 --> 00:30:59,685 >> Мяккія: абнаўляецца, але х не абнаўляецца. 754 00:30:59,685 --> 00:31:02,050 755 00:31:02,050 --> 00:31:05,250 Паколькі х да гэтага часу жыве ў асноўным гэта цалкам адрозніваецца блок памяці. 756 00:31:05,250 --> 00:31:06,970 Гэта іншая пераменная. 757 00:31:06,970 --> 00:31:07,900 яшчэ адна пераменная. 758 00:31:07,900 --> 00:31:10,000 Яны, аказваецца, ёсць тое ж значэнне, таму што I 759 00:31:10,000 --> 00:31:13,980 капіююцца значэння х к. 760 00:31:13,980 --> 00:31:20,070 Але цяпер, калі я раблю роўная 5, яго на самай справе не ўплывае х у любым выпадку. 761 00:31:20,070 --> 00:31:21,450 Гэта складаней частку. 762 00:31:21,450 --> 00:31:23,380 Ці мае сэнс для ўсіх? 763 00:31:23,380 --> 00:31:24,093 Так? 764 00:31:24,093 --> 00:31:25,717 СТУДЕНТ: І яшчэ адно пытанне, у вас ёсць 3. 765 00:31:25,717 --> 00:31:27,741 Чаму already-- ой, не, гэта 3. 766 00:31:27,741 --> 00:31:28,490 На жаль, не бярыце ў галаву. 767 00:31:28,490 --> 00:31:29,310 Я чытаў 5. 768 00:31:29,310 --> 00:31:30,415 >> Мяккія: Так, 3, 3. 769 00:31:30,415 --> 00:31:31,540 >> СТУДЕНТ: [неразборліва], так. 770 00:31:31,540 --> 00:31:35,290 Мяккія: А потым мы прызначаем 5 да , Але на самой справе не змяніць х. 771 00:31:35,290 --> 00:31:36,369 Добра? 772 00:31:36,369 --> 00:31:36,910 СТУДЕНТ: Так. 773 00:31:36,910 --> 00:31:37,410 Мяккія: Да? 774 00:31:37,410 --> 00:31:42,330 Ці можаце вы растлумачыць яшчэ раз, як капіюецца [неразборліва]? 775 00:31:42,330 --> 00:31:48,480 >> Мяккія: ОК, так што, калі вы тэлефануеце ў пяці х, так што гэта радкі кода тут. 776 00:31:48,480 --> 00:31:50,100 777 00:31:50,100 --> 00:31:52,340 ў пяці з х, што х? 778 00:31:52,340 --> 00:31:55,160 779 00:31:55,160 --> 00:31:58,340 х знаходзіцца ўсяго ў 3 на дадзены момант, ці не так? 780 00:31:58,340 --> 00:32:03,320 Такім чынам, вы маглі б проста думаць аб здачы 3 у тут і забываючы аб х. 781 00:32:03,320 --> 00:32:04,410 Проста змесціце 3 тут. 782 00:32:04,410 --> 00:32:10,880 Маўляў, мы збіраемся капіяваць значэнне х у Int А, гэта там. 783 00:32:10,880 --> 00:32:12,310 784 00:32:12,310 --> 00:32:13,630 Добра? 785 00:32:13,630 --> 00:32:14,780 >> Такім чынам, значэнне х роўна 3. 786 00:32:14,780 --> 00:32:17,680 Мы збіраемся капіяваць 3 к. 787 00:32:17,680 --> 00:32:20,040 І ўсё гэта іншы блок памяці, гэта іншае зменнай 788 00:32:20,040 --> 00:32:22,640 называецца прыйдзецца 3, а. 789 00:32:22,640 --> 00:32:23,580 Ці мае гэта сэнс? 790 00:32:23,580 --> 00:32:24,780 791 00:32:24,780 --> 00:32:25,794 Так? 792 00:32:25,794 --> 00:32:31,008 >> СТУДЕНТ: Калі вы даяце да пяці, як ёсць яна як цэлае х, а не, 793 00:32:31,008 --> 00:32:32,910 б, што ўсё выправіць? 794 00:32:32,910 --> 00:32:36,290 >> Мяккія: Калі гэта integer-- няма, што б не выправіць усе. 795 00:32:36,290 --> 00:32:37,590 Так што гэта вельмі добры пытанне. 796 00:32:37,590 --> 00:32:40,480 Гэта сапраўды не мае значэння, што Вы выклікаеце гэтыя зменныя. 797 00:32:40,480 --> 00:32:44,510 Зноў жа, гэта будзе праблемай з вобласці бачнасці, таму што яны не тое ж самае х. 798 00:32:44,510 --> 00:32:46,526 Яны цалкам розныя месцы ў памяці. 799 00:32:46,526 --> 00:32:47,400 СТУДЕНТ: [неразборліва]. 800 00:32:47,400 --> 00:32:49,020 Мяккія: Дык гэта на самай справе не Усё роўна, што вы іх называеце. 801 00:32:49,020 --> 00:32:50,480 Гэта не выправіць становішча, ОК? 802 00:32:50,480 --> 00:32:53,390 803 00:32:53,390 --> 00:32:54,430 Яшчэ пытанні? 804 00:32:54,430 --> 00:32:55,762 Так? 805 00:32:55,762 --> 00:32:58,498 >> СТУДЕНТ: Як гэта назад нумар пяць [неразборліва]? 806 00:32:58,498 --> 00:32:59,661 807 00:32:59,661 --> 00:33:01,160 Мяккія: ОК, мы не зрабілі, што яшчэ. 808 00:33:01,160 --> 00:33:03,432 Пойдзем у нумар пяць, затым. 809 00:33:03,432 --> 00:33:04,650 >> СТУДЕНТ: [неразборліва]? 810 00:33:04,650 --> 00:33:05,565 >> Мяккія: Што? 811 00:33:05,565 --> 00:33:08,179 >> СТУДЕНТ: У вас ёсць вяртанне наогул? 812 00:33:08,179 --> 00:33:09,970 Мяккія: Мы не маем вяртанне ня галоўная. 813 00:33:09,970 --> 00:33:12,940 Але галоўныя вяртае 0 аўтаматычна калі вы нічога не вярнуць. 814 00:33:12,940 --> 00:33:14,400 815 00:33:14,400 --> 00:33:15,188 Так? 816 00:33:15,188 --> 00:33:22,658 >> СТУДЕНТ: Не маглі б вы зрабіць main-- або не маглі б вы зрабіць да пяці вяртаць? 817 00:33:22,658 --> 00:33:24,170 818 00:33:24,170 --> 00:33:27,990 >> Мяккія: Мы маглі б да пяці вярнуцца, так. 819 00:33:27,990 --> 00:33:32,527 Але тады мы павінны былі б прызначыць х роўная вяртаецца значэння да пяці, 820 00:33:32,527 --> 00:33:34,360 які быў бы трохі іншая праграма. 821 00:33:34,360 --> 00:33:35,440 Яна будзе працаваць. 822 00:33:35,440 --> 00:33:38,730 Але тое, што мы хочам зрабіць, гэта тое, што з'яўляецца называецца нешта змяніць на месцы. 823 00:33:38,730 --> 00:33:41,690 Таму мы хочам, каб на самой справе змяніць гэтую скрынку і не турбавацца 824 00:33:41,690 --> 00:33:44,390 аб тым, каб вярнуцца значэння ці што-небудзь. 825 00:33:44,390 --> 00:33:44,890 Добра? 826 00:33:44,890 --> 00:33:46,490 827 00:33:46,490 --> 00:33:50,150 >> Гэта так жа, як функцыі падпампоўкі Дэвід паказаў у лекцыі, акрамя мяне 828 00:33:50,150 --> 00:33:51,740 справу толькі з адной зменнай. 829 00:33:51,740 --> 00:33:55,960 І ён выкарыстаў два, так інтэрвал і б і то часовая пераменная і яшчэ шмат чаго. 830 00:33:55,960 --> 00:33:57,020 Добра? 831 00:33:57,020 --> 00:33:58,070 Так што ў апошняй радку? 832 00:33:58,070 --> 00:34:04,400 Пасля пяці дэкларацый, гэта проста збіраецца сыходзіць. 833 00:34:04,400 --> 00:34:06,120 834 00:34:06,120 --> 00:34:10,179 У нас не будзе больш, і толькі х-ранейшаму будзе жыць. 835 00:34:10,179 --> 00:34:12,130 >> І што вы думаеце? х не мяняе свайго значэння, 836 00:34:12,130 --> 00:34:15,520 у рэшце рэшт, таму што мы толькі змяніўшы значэнне. 837 00:34:15,520 --> 00:34:17,370 Вось чаму х было 3 ва ўсім. 838 00:34:17,370 --> 00:34:17,870 Добра? 839 00:34:17,870 --> 00:34:20,195 840 00:34:20,195 --> 00:34:21,130 Добра. 841 00:34:21,130 --> 00:34:23,560 Так што гэта праграма не дамагчыся таго, што мы хацелі. 842 00:34:23,560 --> 00:34:24,760 Зараз давайце выправім гэта. 843 00:34:24,760 --> 00:34:27,440 >> І праграма выпраўленне з дапамогай паказальнікаў. 844 00:34:27,440 --> 00:34:32,300 Тое, што мы робім, мы павінны тры Лініі, якія адрозніваюцца. 845 00:34:32,300 --> 00:34:34,020 Першыя ў мы не праходзячы х. 846 00:34:34,020 --> 00:34:35,535 Мы перадаючы адрас х. 847 00:34:35,535 --> 00:34:37,330 848 00:34:37,330 --> 00:34:40,876 Такім чынам, замест капіявання больш значэнне з скрынкі, 849 00:34:40,876 --> 00:34:42,500 Я ўсё яшчэ збіраюся капіяваць нешта. 850 00:34:42,500 --> 00:34:45,380 Але я капіяванні над адрас скрынкі. 851 00:34:45,380 --> 00:34:48,780 >> Так што, калі я перадаць адрас скрынка з пяці, затым да пяці 852 00:34:48,780 --> 00:34:51,560 змогуць знайсці, што ў Памяць і зменіце яго значэнне. 853 00:34:51,560 --> 00:34:53,980 854 00:34:53,980 --> 00:34:59,580 >> Так і там, у мяне ёсць што ня INT больш. 855 00:34:59,580 --> 00:35:00,882 з'яўляецца інтэрвал зорка. 856 00:35:00,882 --> 00:35:02,090 Гэта паказальнік на цэлае. 857 00:35:02,090 --> 00:35:03,790 858 00:35:03,790 --> 00:35:07,310 А потым, таму што я перадаю звярнуцца сюды, а потым, што я раблю 859 00:35:07,310 --> 00:35:10,530 ня роўны 5, таму праводзіць адрас. 860 00:35:10,530 --> 00:35:16,710 Так што я хачу зрабіць, гэта пайсці туды і абнавіць змесціва гэтага адрасу 861 00:35:16,710 --> 00:35:18,305 з 5. 862 00:35:18,305 --> 00:35:21,130 >> Такім чынам, давайце пройдзем усе лініі адзін за адным. 863 00:35:21,130 --> 00:35:22,410 864 00:35:22,410 --> 00:35:26,024 Так што, калі я пачынаю тут, я да гэтага часу N / A, N / A, N / A 865 00:35:26,024 --> 00:35:28,440 за ўсё ў першы лінія, таму што ў мяне не вельмі 866 00:35:28,440 --> 00:35:29,390 заявіў матэрыял яшчэ. 867 00:35:29,390 --> 00:35:30,980 868 00:35:30,980 --> 00:35:35,110 А потым другой лініі, у мяне ёсць х роўны 3. 869 00:35:35,110 --> 00:35:38,020 INT зорка не існуе, Тое ж самае, як і раней. 870 00:35:38,020 --> 00:35:39,160 871 00:35:39,160 --> 00:35:40,640 >> Цяпер пачынаецца самае цікавае. 872 00:35:40,640 --> 00:35:42,300 Так што я збіраюся прайсці. 873 00:35:42,300 --> 00:35:45,720 І давайце выкажам здагадку, што па адрасе х 12 у шаснаццатковым выглядзе. 874 00:35:45,720 --> 00:35:46,880 875 00:35:46,880 --> 00:35:48,420 Давайце проста выкажам здагадку гэта. 876 00:35:48,420 --> 00:35:49,221 Я зрабіў гэта. 877 00:35:49,221 --> 00:35:51,680 878 00:35:51,680 --> 00:35:53,500 Так, што я праходзячы тут да пяці. 879 00:35:53,500 --> 00:35:54,460 Я перадаю 12. 880 00:35:54,460 --> 00:35:56,390 881 00:35:56,390 --> 00:35:58,610 >> Так што значэнне не маюць? 882 00:35:58,610 --> 00:36:04,785 883 00:36:04,785 --> 00:36:06,210 >> СТУДЕНТ: [неразборліва]. 884 00:36:06,210 --> 00:36:06,950 >> Мяккія: Выбачайце? 885 00:36:06,950 --> 00:36:08,145 >> СТУДЕНТ: [неразборліва]. 886 00:36:08,145 --> 00:36:10,520 Мяккія: Так, як, да давайце Выкажам здагадку, што мы тут, цяпер. 887 00:36:10,520 --> 00:36:11,540 888 00:36:11,540 --> 00:36:12,040 Я пытаюся. 889 00:36:12,040 --> 00:36:12,915 >> СТУДЕНТ: [неразборліва]. 890 00:36:12,915 --> 00:36:13,590 891 00:36:13,590 --> 00:36:14,890 >> Мяккія: Была ўзбуджаная. 892 00:36:14,890 --> 00:36:15,860 >> СТУДЕНТ: [неразборліва]. 893 00:36:15,860 --> 00:36:17,985 Мяккія: Таму што мы прайшлі што-то функцыі. 894 00:36:17,985 --> 00:36:19,431 895 00:36:19,431 --> 00:36:19,930 Так? 896 00:36:19,930 --> 00:36:20,899 >> СТУДЕНТ: Адрас х. 897 00:36:20,899 --> 00:36:22,690 Мяккія: Гэта збіраецца ёсць адрас х. 898 00:36:22,690 --> 00:36:25,800 А таксама адрас х 12, добра. 899 00:36:25,800 --> 00:36:30,990 Так х будзе 3, таму што мы на самай справе не змянілася х яшчэ. 900 00:36:30,990 --> 00:36:36,700 А потым будзе 0x12, так адрас х, таму што гэта 901 00:36:36,700 --> 00:36:38,840 тое, што мы прайшлі, каб да пяці. 902 00:36:38,840 --> 00:36:40,940 >> І тады тое, што адбываецца калі мы спрабуем пайсці туды? 903 00:36:40,940 --> 00:36:42,145 Што мы збіраемся знайсці? 904 00:36:42,145 --> 00:36:47,120 Так што, калі вы паспрабуеце раздрукаваць зорка, мы збіраемся прытрымлівацца гэты адрас 905 00:36:47,120 --> 00:36:48,620 і атрымаць значэнне ўнутры. 906 00:36:48,620 --> 00:36:50,470 І гэта значэнне проста тое ж значэнне, што х 907 00:36:50,470 --> 00:36:53,980 мае, таму што гэта адрас х, якія будуць 3. 908 00:36:53,980 --> 00:36:55,440 909 00:36:55,440 --> 00:36:56,930 Няўжо мы добра? 910 00:36:56,930 --> 00:36:59,990 >> ОК, а затым у цяперашні час, мы на самай справе ісці туды. 911 00:36:59,990 --> 00:37:05,510 І мы абнаўляем ўсё у гэтым адрасе 12. 912 00:37:05,510 --> 00:37:07,390 Мы робім гэта 5. 913 00:37:07,390 --> 00:37:10,560 Так што цяпер абедзве х і зорка знаходзяцца 5. 914 00:37:10,560 --> 00:37:13,170 915 00:37:13,170 --> 00:37:13,680 >> Чаму гэта? 916 00:37:13,680 --> 00:37:17,070 Паколькі адрас х 12. 917 00:37:17,070 --> 00:37:20,920 І ёсць таксама 12 у якасці свайго значэння. 918 00:37:20,920 --> 00:37:23,780 Так што, калі мы будзем прытрымлівацца 12, мы проста хачу, каб знайсці х. 919 00:37:23,780 --> 00:37:27,400 Так, што мы робім з зорка адбудзецца 920 00:37:27,400 --> 00:37:30,790 х, таму што змяшчае адрас х. 921 00:37:30,790 --> 00:37:31,918 922 00:37:31,918 --> 00:37:32,418 Добра? 923 00:37:32,418 --> 00:37:34,090 924 00:37:34,090 --> 00:37:37,750 >> І гэта, як у сутнасць выпраўлення. 925 00:37:37,750 --> 00:37:41,500 Так што цяпер мы можам, ад да пяці, на самай справе 926 00:37:41,500 --> 00:37:43,840 доступ да памяці, што жылі ў асноўны. 927 00:37:43,840 --> 00:37:47,980 Так гэтая памяць не жыве ў з пяць, як раней, гэта адрас 12. 928 00:37:47,980 --> 00:37:50,980 І мы змаглі пайсці туды і зменіце яго значэнне на 5. 929 00:37:50,980 --> 00:37:53,990 >> А потым, калі мы вернемся, мы забываемся пра. 930 00:37:53,990 --> 00:37:55,720 Мы забываемся пра зорку. 931 00:37:55,720 --> 00:37:57,020 І х яшчэ пяць. 932 00:37:57,020 --> 00:37:58,327 933 00:37:58,327 --> 00:38:00,160 Так што, калі вы хочаце, каб рэалізаваць функцыю падпампоўкі, 934 00:38:00,160 --> 00:38:05,010 Вы б проста зрабіць тую ж самую рэч, акрамя вам трэба INT зоркі тут, 935 00:38:05,010 --> 00:38:06,140 і гэтак далей і да таго падобнае. 936 00:38:06,140 --> 00:38:06,976 Добра? 937 00:38:06,976 --> 00:38:07,475 Няўжо мы добра? 938 00:38:07,475 --> 00:38:09,860 939 00:38:09,860 --> 00:38:10,610 Прахладны. 940 00:38:10,610 --> 00:38:12,410 >> Так паказальнік арыфметыка. 941 00:38:12,410 --> 00:38:13,960 Гэта крыху складана тэма. 942 00:38:13,960 --> 00:38:16,554 Вось і атрымліваецца, што Паказальнікі усяго ліку. 943 00:38:16,554 --> 00:38:17,970 Вы можаце думаць пра іх як цэлыя лікі. 944 00:38:17,970 --> 00:38:21,080 Таму што ў памяці, у вас ёсць як Памяць адрас нуль, адзін, два, тры, 945 00:38:21,080 --> 00:38:21,900 чатыры, пяць. 946 00:38:21,900 --> 00:38:23,900 Такім чынам, мы можам падвесці адрасы памяці. 947 00:38:23,900 --> 00:38:27,230 >> І гэта, як правіла, тое, што вы робіце, калі Вы знаходзіцеся ў і масіва, напрыклад. 948 00:38:27,230 --> 00:38:30,540 Масіў проста падабаецца сумежнымі блок памяці, з вялікай колькасці знакаў, 949 00:38:30,540 --> 00:38:31,840 напрыклад, шмат цэлых лікаў. 950 00:38:31,840 --> 00:38:34,420 Так што калі вы хочаце пайсці ў Другі інтэрвал або да трэцяга міжнар, 951 00:38:34,420 --> 00:38:37,830 Вы можаце проста падвесці сёе-тое, каб першы адрас, і вы збіраецеся патрапіць. 952 00:38:37,830 --> 00:38:39,620 Так што гэта сапраўды карысна для гэтага. 953 00:38:39,620 --> 00:38:41,850 >> І справа мець на ўвазе, аднак, з'яўляецца 954 00:38:41,850 --> 00:38:45,140 што гэта не проста падабаецца нармальная арыфметыка ў тым сэнсе, 955 00:38:45,140 --> 00:38:50,304 што калі вы маеце справу з, скажам, INT зорка, і вы дадаеце да яго 1, 956 00:38:50,304 --> 00:38:52,220 то вы не збіраецеся дадаць 1 па адрасе, 957 00:38:52,220 --> 00:38:53,950 Вы збіраецеся дадаць 4 па адрасе. 958 00:38:53,950 --> 00:38:55,030 959 00:38:55,030 --> 00:38:56,670 Паколькі інтэрвал складае 4 байта. 960 00:38:56,670 --> 00:38:57,720 961 00:38:57,720 --> 00:38:59,540 >> Так што гэта, як хадзіць на масіве. 962 00:38:59,540 --> 00:39:05,260 Калі ў нас ёсць масіў вялікай колькасцю цэлых лікаў і Затым мы спрабуем пайсці на другі, 963 00:39:05,260 --> 00:39:08,790 гэта ў асноўным проста падводзячы адрас першага адзін плюс адзін. 964 00:39:08,790 --> 00:39:10,040 965 00:39:10,040 --> 00:39:13,425 Але гэта не будзе be-- проста скажам што адрас першага з'яўляецца 4. 966 00:39:13,425 --> 00:39:14,560 967 00:39:14,560 --> 00:39:16,250 Тут, у гэтым выпадку. 968 00:39:16,250 --> 00:39:19,780 969 00:39:19,780 --> 00:39:22,850 І калі сумаваць, так гэта гэта тое, што адбываецца. 970 00:39:22,850 --> 00:39:23,530 У нас ёсць Int. 971 00:39:23,530 --> 00:39:25,640 Int х роўная 5. 972 00:39:25,640 --> 00:39:26,950 Х мае значэнне 5. 973 00:39:26,950 --> 00:39:31,240 І мы ініцыялізаваць гэты паказальнік, INT у INT зорка ў роўная адрас х. 974 00:39:31,240 --> 00:39:33,660 >> Давайце выкажам здагадку, адрас х 4. 975 00:39:33,660 --> 00:39:36,960 Што здарыцца Цяпер, калі я сума дадаць 1 да у? 976 00:39:36,960 --> 00:39:39,110 977 00:39:39,110 --> 00:39:44,790 Гэта адбываецца на самай справе сума 4, а не проста 1. 978 00:39:44,790 --> 00:39:50,920 Таму я дадаць 1, але гэта на самай справе дададзена 4, таму што кампутара смарт. 979 00:39:50,920 --> 00:39:55,275 Дык гэта будзе на самой справе дадаць па I раз Памер тыпу паказальніка. 980 00:39:55,275 --> 00:39:56,340 981 00:39:56,340 --> 00:39:56,840 Добра? 982 00:39:56,840 --> 00:39:58,030 983 00:39:58,030 --> 00:40:02,440 >> Такім чынам, калі б ён быў сімвал, напрыклад, калі б гэта было сімвал зорка у, 984 00:40:02,440 --> 00:40:07,141 і калі мы дадалі 1, то гэта будзе быць 5, таму што сімвал з'яўляецца даўжынёй 1 байт. 985 00:40:07,141 --> 00:40:07,640 Добра? 986 00:40:07,640 --> 00:40:10,560 987 00:40:10,560 --> 00:40:13,190 >> І, нарэшце, мы дабраліся да паказальнікі і масівы. 988 00:40:13,190 --> 00:40:16,451 Атрымліваецца, што кожны раз, калі Вы маеце справу з масівам, 989 00:40:16,451 --> 00:40:18,075 вы на самой справе маем справу з паказальнікам. 990 00:40:18,075 --> 00:40:19,720 991 00:40:19,720 --> 00:40:24,777 Вельмі добры канцэптуальны прычына гэта што масівы вельмі вялікія. 992 00:40:24,777 --> 00:40:27,360 Так што памятаеце, што я сказаў, што кожны раз, калі вы праходзіце рэчы вакол, 993 00:40:27,360 --> 00:40:29,097 скапіяваць усё змесціва. 994 00:40:29,097 --> 00:40:31,180 Так што калі ў вас ёсць масіў што на самой справе, сапраўды вялікі, 995 00:40:31,180 --> 00:40:32,990 Вы сапраўды не хочаце скапіяваць ўсе кожны раз 996 00:40:32,990 --> 00:40:35,710 Вы перадаваць яго ў іншую Функцыя, таму што гэта проста 997 00:40:35,710 --> 00:40:37,190 велізарная колькасць працы. 998 00:40:37,190 --> 00:40:39,710 Так што вам зрабіць, гэта проста міма адрас першага байта. 999 00:40:39,710 --> 00:40:40,969 1000 00:40:40,969 --> 00:40:44,010 І тое функцыя будзе мець доступ для ўсіх элементаў у гэтым масіве. 1001 00:40:44,010 --> 00:40:48,670 Такім чынам, вы прайшлі масіў, яго адрас, так што адрас першага байта. 1002 00:40:48,670 --> 00:40:53,010 >> Так што, калі мы заяўляем INT Масіў 3, тут, мы ведаем, 1003 00:40:53,010 --> 00:40:57,470 як атрымаць доступ да першага элементу выкарыстоўваючы абазначэння кранштэйна. 1004 00:40:57,470 --> 00:41:02,410 Калі вы памятаеце, кранштэйн абазначэння, масіў кранштэйны 0 роўны 1. 1005 00:41:02,410 --> 00:41:06,330 Ну, гэта было б дакладна ж, як толькі туды і пакласці 1. 1006 00:41:06,330 --> 00:41:07,370 1007 00:41:07,370 --> 00:41:09,110 ОК, гэта роўна тое ж самае. 1008 00:41:09,110 --> 00:41:13,010 Так пазначэннях кранштэйнам ў тут будзе такім жа, як гэтай лініі. 1009 00:41:13,010 --> 00:41:18,600 >> І што вы думаеце абазначэння кранштэйна для масіва кранштэйна 1 будзе? 1010 00:41:18,600 --> 00:41:20,440 Гэта як раз і будзе тое ж самае, гэта. 1011 00:41:20,440 --> 00:41:22,500 Так што дадайце адзін для масіва. 1012 00:41:22,500 --> 00:41:24,370 Перасоўванне адзін ўздоўж у памяці. 1013 00:41:24,370 --> 00:41:26,310 Ідзіце туды, і пакласці 2. 1014 00:41:26,310 --> 00:41:28,050 1015 00:41:28,050 --> 00:41:28,579 Добра? 1016 00:41:28,579 --> 00:41:29,870 І гэтая лінія тое ж самае. 1017 00:41:29,870 --> 00:41:34,860 Мы хочам, каб пайсці ў трэці скрынка, так масіў плюс 2. 1018 00:41:34,860 --> 00:41:37,465 Ідзіце туды, і пакласці 3. 1019 00:41:37,465 --> 00:41:39,340 Такім чынам, у памяці, што адбудзецца гэта мы 1020 00:41:39,340 --> 00:41:44,400 будзе мець 1, 2 і 3, як тры элемента гэтага масіва. 1021 00:41:44,400 --> 00:41:46,970 >> Мы маглі б зрабіць гэта з дапамогай наш знаёмы абазначэння кранштэйна. 1022 00:41:46,970 --> 00:41:49,410 Я проста хачу, каб вы, хлопцы, ведаеце, што яны адно і тое ж. 1023 00:41:49,410 --> 00:41:50,530 1024 00:41:50,530 --> 00:41:53,010 ОК, пытанні па гэтай нагоды? 1025 00:41:53,010 --> 00:41:56,115 1026 00:41:56,115 --> 00:41:56,615 Добры. 1027 00:41:56,615 --> 00:41:57,990 1028 00:41:57,990 --> 00:41:59,880 Зараз, я збіраюся здаць гэта на Ханну, 1029 00:41:59,880 --> 00:42:00,330 >> Ханна: Ура, Йі-Хо. 1030 00:42:00,330 --> 00:42:02,246 >> Мяккія: Гаворачы аб памяці і артыкул рэчы. 1031 00:42:02,246 --> 00:42:06,554 [Апладысменты] 1032 00:42:06,554 --> 00:42:10,150 >> Ханна: Прывітанне, выдатна, так што мы будзем казаць трохі больш 1033 00:42:10,150 --> 00:42:13,090 аб памяці, аб якім мы толькі што звярнуўся з дапамогай паказальнікаў. 1034 00:42:13,090 --> 00:42:16,060 Такім чынам, ёсць дзве асноўныя часткі памяці, што мы заклапочаныя. 1035 00:42:16,060 --> 00:42:18,830 У нас ёсць стэк, які расце у ніжняй часткі, і кучы, які 1036 00:42:18,830 --> 00:42:20,600 ідзе ўніз ад вяршыні. 1037 00:42:20,600 --> 00:42:24,690 І стэк збіраецца правесці усе нашы зменныя асобніка. 1038 00:42:24,690 --> 00:42:28,860 Такім чынам, кожны называе па функцыя атрымлівае свой уласны маленькі кадр у стэку. 1039 00:42:28,860 --> 00:42:32,160 Так як Гейб ужо згадвалася раней, калі мы зноў і зноў выклікаць функцыю, 1040 00:42:32,160 --> 00:42:34,180 мы збіраемся складваць рэчы ў стэку. 1041 00:42:34,180 --> 00:42:35,220 1042 00:42:35,220 --> 00:42:38,570 >> І сапраўды гэтак жа, куча, які пачынаецца ў верхняй 1043 00:42:38,570 --> 00:42:42,660 збіраецца правесці ўсю памяць што мы дынамічна вылучаць. 1044 00:42:42,660 --> 00:42:45,110 І так як мы дынамічна вылучыць памяць, 1045 00:42:45,110 --> 00:42:47,580 гэта сыдзе да нізе. 1046 00:42:47,580 --> 00:42:51,340 Пара рэчаў, каб быць у курсе, калі мы выкарыстоўваем стэк і кучу, 1047 00:42:51,340 --> 00:42:55,200 са стэкам, калі мы маем занадта many-- давайце say-- рэкурсіўныя выклікі, 1048 00:42:55,200 --> 00:42:58,392 і мы называем функцыю зноў, і зноў, і зноў, і зноў, 1049 00:42:58,392 --> 00:43:00,350 і гэта да кладкі, да кладкі, кладкі да. 1050 00:43:00,350 --> 00:43:01,570 І гэта будзе ўрэзацца ў кучу. 1051 00:43:01,570 --> 00:43:03,040 Мы збіраемся запусціць з памяці. 1052 00:43:03,040 --> 00:43:05,100 Гэта збіраецца выклікаць Праблема для кампутара. 1053 00:43:05,100 --> 00:43:06,770 І гэта называецца перапаўненне стэка. 1054 00:43:06,770 --> 00:43:09,728 Так што, безумоўна, нешта вас павінен ведаць і імкнуцца пазбягаць. 1055 00:43:09,728 --> 00:43:10,228 1056 00:43:10,228 --> 00:43:14,050 І куча, павінны памятаць, каб выпадкова не адбываецца ўцечка памяці. 1057 00:43:14,050 --> 00:43:17,950 Кожны раз, калі вы выкарыстоўваеце Таноса, ня забудзьцеся вызваліць гэтую памяць. 1058 00:43:17,950 --> 00:43:20,040 У адваротным выпадку, гэта будзе проста быць у кучы марна, 1059 00:43:20,040 --> 00:43:23,230 і кампутар не будзе ведаць, што ён можа свабодна выкарыстоўваць гэтую памяць. 1060 00:43:23,230 --> 00:43:25,810 Так што тыя, пара рэчаў быць вельмі асцярожныя з тым, калі 1061 00:43:25,810 --> 00:43:28,580 Вы маеце справу з стэк і куча. 1062 00:43:28,580 --> 00:43:30,412 Любыя пытанні з гэтым? 1063 00:43:30,412 --> 00:43:31,304 Дзіўны. 1064 00:43:31,304 --> 00:43:31,900 >> Добра, прахалодна. 1065 00:43:31,900 --> 00:43:32,940 1066 00:43:32,940 --> 00:43:36,810 Так гэты выгляд мае тое ж самае Ідэя, як перапаўненне стэка, дзе 1067 00:43:36,810 --> 00:43:39,850 мы збіраемся за Межы таго, што памяць 1068 00:43:39,850 --> 00:43:41,960 будзе мы павінны быць у стане выкарыстаць. 1069 00:43:41,960 --> 00:43:45,077 Так што бярыце, напрыклад, буфер, ці вы можа проста думаць пра гэта як масіў. 1070 00:43:45,077 --> 00:43:47,660 І мы сказалі, добра, што мы збіраемся стварыць гэты міленькі масіў. 1071 00:43:47,660 --> 00:43:49,140 Гэта збіраецца быць радком. 1072 00:43:49,140 --> 00:43:50,630 Ці ён збіраецца захоўваць сімвалы. 1073 00:43:50,630 --> 00:43:51,720 І гэта толькі збіраецца, каб павітацца. 1074 00:43:51,720 --> 00:43:52,678 І гэта няпэўны. 1075 00:43:52,678 --> 00:43:53,990 Гэта так. 1076 00:43:53,990 --> 00:43:58,240 >> Але калі б я быў хто-то зло і хацеў зрабіць што-то дрэннае з гэтага масіва, што 1077 00:43:58,240 --> 00:44:02,310 Я мог бы зрабіць, гэта паспрабаваць напісаць міма канца радка. 1078 00:44:02,310 --> 00:44:04,490 І, як вы ўбачыце, калі Я пішу досыць далёка, 1079 00:44:04,490 --> 00:44:06,980 Я можа рэальна ўплываць на адрас вяртання. 1080 00:44:06,980 --> 00:44:09,530 І калі я пачынаю ўплывае адрас вяртання, 1081 00:44:09,530 --> 00:44:11,730 Я ўплываць як праграма на самай справе працуе. 1082 00:44:11,730 --> 00:44:15,900 І замест таго каб вярнуцца, вам ведаю, шчаслівае радок выгляду прывітаньне, я 1083 00:44:15,900 --> 00:44:19,460 мог зрабіць што-то дрэннае, як перайсці да дзе-то яшчэ ў вашым кампутары, яшчэ 1084 00:44:19,460 --> 00:44:22,146 памяці, змяніць яго, усё, што я хачу зрабіць. 1085 00:44:22,146 --> 00:44:25,020 Дык вось што гэта будзе выглядаць калі я толькі збольшага запоўнілі яго 1086 00:44:25,020 --> 00:44:27,400 са выпадковай велічыні смецця, У гэтым выпадку, гэтак жа. 1087 00:44:27,400 --> 00:44:30,490 А потым, калі я на самой справе патрапілі па адрасе памяці, 1088 00:44:30,490 --> 00:44:33,740 Я пачаў запаўняць яго з чым-то што зрабіў тое, што я хацеў, каб гэта зрабіць. 1089 00:44:33,740 --> 00:44:34,952 1090 00:44:34,952 --> 00:44:36,410 Любыя пытанні з перапаўненнем буфера? 1091 00:44:36,410 --> 00:44:38,450 1092 00:44:38,450 --> 00:44:40,730 Высокі, лётаць прама праз гэты матэрыял. 1093 00:44:40,730 --> 00:44:43,530 >> Такім чынам, мы шмат гаварылі пра аб паказальніка з Gabe. 1094 00:44:43,530 --> 00:44:45,790 Як мы на самай справе атрымаць паказальнік? 1095 00:44:45,790 --> 00:44:48,070 Як мы можам атрымаць адрас у памяці? 1096 00:44:48,070 --> 00:44:51,040 Ну, мы можам выкарыстоўваць гэты добры Функцыя выкліку Таноса, якія 1097 00:44:51,040 --> 00:44:53,370 збіраецца атрымаць маленькі кавалачак памяці, 1098 00:44:53,370 --> 00:44:55,480 у прыватнасці, у куча, як мы абмяркоўвалі, 1099 00:44:55,480 --> 00:44:59,780 і ён збіраецца даць вам назад паказальнік на гэты адрас у памяці. 1100 00:44:59,780 --> 00:45:01,950 І аргумент, што мы павінны даць Malloc 1101 00:45:01,950 --> 00:45:04,280 гэта колькі месца ў памяці мы хочам. 1102 00:45:04,280 --> 00:45:06,100 >> Такім чынам, вы можаце ўбачыць памер у байт. 1103 00:45:06,100 --> 00:45:08,670 Скажам, напрыклад, або на самай справе, у гэтым прыкладзе, 1104 00:45:08,670 --> 00:45:12,040 мы вылучаем дастаткова прастору для 10 лікаў. 1105 00:45:12,040 --> 00:45:15,640 Так, верагодна, тое, што мы збіраемся хачу паставіць тут з'яўляецца масівам з 10 цэлых лікаў. 1106 00:45:15,640 --> 00:45:19,641 Так мы даем яму памер цэлых лікаў, якія Мы даведаліся, было колькі байт? 1107 00:45:19,641 --> 00:45:20,140 СТУДЕНТ: 4. 1108 00:45:20,140 --> 00:45:22,920 Ханна: 4, прыгожы, і мы хачу 10 з іх запар, 1109 00:45:22,920 --> 00:45:28,050 так што ў нас ёсць дастаткова месца для захоўваць усе 10 лікаў, у гэтым выпадку. 1110 00:45:28,050 --> 00:45:31,290 Што-то супер важна, у любы час патэлефанаваць Таноса, 1111 00:45:31,290 --> 00:45:32,880 Вы павінны праверыць нуль. 1112 00:45:32,880 --> 00:45:37,310 Калі вы не праверыць нуль, а, Таноса калі яна не хапіла месца 1113 00:45:37,310 --> 00:45:40,400 і больш не можа даць вам любы больш памяці, то ён верне нуль. 1114 00:45:40,400 --> 00:45:42,060 1115 00:45:42,060 --> 00:45:45,630 Так што, калі вы не праверыць, Таноса можа вярнуцца нуль. 1116 00:45:45,630 --> 00:45:51,265 І тады, калі мы паспрабуем разыменовать нулявым паказальнікам, 1117 00:45:51,265 --> 00:45:54,960 мы збіраемся, каб атрымаць памылку сегментацыі, які мы будзем казаць аб прама цяпер. 1118 00:45:54,960 --> 00:45:56,150 1119 00:45:56,150 --> 00:45:56,650 Дзіўны. 1120 00:45:56,650 --> 00:45:58,300 >> ОК, пытанні з Таноса? 1121 00:45:58,300 --> 00:46:00,044 1122 00:46:00,044 --> 00:46:00,544 Так? 1123 00:46:00,544 --> 00:46:05,460 >> СТУДЕНТ: Хіба праверкі нулявы [Неразборліва] не зрабіць гэта на віктарыне? 1124 00:46:05,460 --> 00:46:08,100 >> Ханна: Вядома, пытанне было гэта matter-- на віктарыне, 1125 00:46:08,100 --> 00:46:10,420 вы будзеце атрымліваць акуляры, калі б Вы не правяраюць нуль? 1126 00:46:10,420 --> 00:46:12,794 Так, вы будзеце атрымліваць акуляры ад калі вы не праверыць нуль. 1127 00:46:12,794 --> 00:46:16,030 Кожны раз, калі вы тэлефануеце Таноса, як на віктарына і вашы psets і ў рэальным жыцці, 1128 00:46:16,030 --> 00:46:17,155 Вы павінны праверыць нуль. 1129 00:46:17,155 --> 00:46:18,330 Добры пытанне. 1130 00:46:18,330 --> 00:46:19,689 >> Гейб: Што рабіць, калі я не вызваліць? 1131 00:46:19,689 --> 00:46:21,730 Ханна: Гейб хоча ведаць, што рабіць, калі мы не бясплатна. 1132 00:46:21,730 --> 00:46:25,030 Тады ў нас будзе ўцечка памяці ў нашай кучы. 1133 00:46:25,030 --> 00:46:26,140 Яшчэ пытанні? 1134 00:46:26,140 --> 00:46:27,550 Так? 1135 00:46:27,550 --> 00:46:30,120 >> СТУДЕНТ: Можа you-- перайсці Перапаўненне буфера сапраўды хутка зноў? 1136 00:46:30,120 --> 00:46:30,530 >> Ханна: Вядома. 1137 00:46:30,530 --> 00:46:33,071 Пытанне было мы можам перайсці Перапаўненне вельмі хутка буфер. 1138 00:46:33,071 --> 00:46:35,050 Давайце вернемся да тых горкамі. 1139 00:46:35,050 --> 00:46:37,430 Так буфера, вы можаце проста думаць пра яго як масіў, ці не так? 1140 00:46:37,430 --> 00:46:39,360 У вас ёсць некаторы прастору ў памяці. 1141 00:46:39,360 --> 00:46:43,580 І калі мы ўпершыню ствараем масіў, мы ведаем, масівы маюць фіксаваны памер, 1142 00:46:43,580 --> 00:46:45,470 або наш буфер мае фіксаваны памер. 1143 00:46:45,470 --> 00:46:51,360 >> Так скажам, у гэтым выпадку, у нас ёсць толькі досыць месцы, каб напісаць радок прывітанне. 1144 00:46:51,360 --> 00:46:57,340 Калі мы ідзем міма, што мяжа, калі мы ідзем міма што наш масіў мы сказалі, што гэта можа правесці, 1145 00:46:57,340 --> 00:46:59,780 мы маглі б сапраўды пачаць запісы ў памяць 1146 00:46:59,780 --> 00:47:01,780 што кампутар не хочаце нам напісаць у. 1147 00:47:01,780 --> 00:47:02,810 1148 00:47:02,810 --> 00:47:05,580 І ў прыватнасці, калі мы трапілі нешта накшталт вяртання 1149 00:47:05,580 --> 00:47:08,700 адрас функцыі, якая, як і любы іншы кавалак памяці, 1150 00:47:08,700 --> 00:47:11,420 проста дзе-то ў вашым кампутар, вы можаце на самой справе 1151 00:47:11,420 --> 00:47:14,080 змяніць што і пачынаюць тварыць зло. 1152 00:47:14,080 --> 00:47:15,272 Адказ на ваша пытанне? 1153 00:47:15,272 --> 00:47:16,230 Дзіўны, што-небудзь яшчэ? 1154 00:47:16,230 --> 00:47:17,466 Так? 1155 00:47:17,466 --> 00:47:21,948 >> СТУДЕНТ: Так стэк [неразборліва], вы сказаў ісці знізу ідзе ўверх. 1156 00:47:21,948 --> 00:47:25,434 У зоне стэка, робіць памяць перайсці ад, як, 1157 00:47:25,434 --> 00:47:27,230 зверху ўніз, якія адносяцца да кожнай перапынку? 1158 00:47:27,230 --> 00:47:28,646 1159 00:47:28,646 --> 00:47:32,100 >> Ханна: Як зрабіць you-- адкласці адзежу на гэтым. 1160 00:47:32,100 --> 00:47:35,370 1161 00:47:35,370 --> 00:47:38,213 >> ROB: Ён будзе расці ў тым жа кірунак, як стэк расце. 1162 00:47:38,213 --> 00:47:38,712 Ханна: ОК. 1163 00:47:38,712 --> 00:47:40,967 ROB: Так я заблытацца. 1164 00:47:40,967 --> 00:47:42,331 Гэта будзе абстракцыя. 1165 00:47:42,331 --> 00:47:42,831 Ханна: ОК. 1166 00:47:42,831 --> 00:47:44,000 ROB: Гэта правільна. 1167 00:47:44,000 --> 00:47:49,420 Так што, калі стэк расце ўверх, то generally-- яго 1168 00:47:49,420 --> 00:47:52,380 не павінен быць такім. але вы можаце абвясціць Int х. 1169 00:47:52,380 --> 00:47:54,120 Тады вы аб'яўляеце Int у. 1170 00:47:54,120 --> 00:47:57,300 Тады інтэрвал х наогул будзе ніжэй у стэку, чым INT у. 1171 00:47:57,300 --> 00:47:59,300 Але гэта проста факт. 1172 00:47:59,300 --> 00:48:02,410 Гэта не так, як важную насення рэч. 1173 00:48:02,410 --> 00:48:06,800 >> ROB: Так што пытанне зноў быў проста што адбываецца кожны кадр назапашваецца. 1174 00:48:06,800 --> 00:48:08,960 Так кожная функцыя атрымлівае маленькі кавалачак стэка. 1175 00:48:08,960 --> 00:48:13,030 І, як вы ідзяце уверх, у тым, што маленькі кавалачак, у гэтым кадры, 1176 00:48:13,030 --> 00:48:16,710 мы будзем казаць, што зменныя у гэтым кадры таксама рухацца ўверх. 1177 00:48:16,710 --> 00:48:17,473 Пытанне? 1178 00:48:17,473 --> 00:48:18,688 >> ROB: Проста каб быць на мікрафон. 1179 00:48:18,688 --> 00:48:19,396 Ханна: О, так. 1180 00:48:19,396 --> 00:48:20,440 ROB: Я буду казаць у вас. 1181 00:48:20,440 --> 00:48:21,410 Ханна: О, так, добра. 1182 00:48:21,410 --> 00:48:24,150 ROB: выключэннем з'яўляецца для масіваў і структур, 1183 00:48:24,150 --> 00:48:27,470 дзе масівы, ніжэй Індэкс ў масіве, 1184 00:48:27,470 --> 00:48:29,930 і ў структур у вышэй Поле ў структур 1185 00:48:29,930 --> 00:48:35,040 гарантавана будуць на больш нізкіх адрасоў чым больш позні значэнне ў масіве. 1186 00:48:35,040 --> 00:48:36,720 Так што тыя, гарантаваныя. 1187 00:48:36,720 --> 00:48:40,310 Але якія-небудзь канкрэтныя зменныя ўнутры, як INT х і інтэрвал у ў функцыі, 1188 00:48:40,310 --> 00:48:43,030 няма неабходнасці адносіны паміж іх адрасы. 1189 00:48:43,030 --> 00:48:44,882 1190 00:48:44,882 --> 00:48:46,340 Ханна: Яшчэ адно пытанне тут? 1191 00:48:46,340 --> 00:48:51,620 СТУДЕНТ: Так у буфер паток, толькі перапаўнення буфера 1192 00:48:51,620 --> 00:48:54,980 толькі адбылося, калі вам ўжо, быццам бы, прысвоены 1193 00:48:54,980 --> 00:49:01,056 Колькасць масіва што тое больш? 1194 00:49:01,056 --> 00:49:03,230 Маўляў, ці не так? 1195 00:49:03,230 --> 00:49:05,435 Так што, калі вы просіце што-то з user-- 1196 00:49:05,435 --> 00:49:06,018 >> Ханна: Мм-хм. 1197 00:49:06,018 --> 00:49:08,600 СТУДЕНТ: Можа яны сілком даць вам што-то наўзамен 1198 00:49:08,600 --> 00:49:11,777 гэта больш, чым усё, што Вы выдзелена для іх? 1199 00:49:11,777 --> 00:49:13,610 Ханна: Вядома, так Пытанне было ў асноўным, 1200 00:49:13,610 --> 00:49:16,217 можа карыстальнік дасць вам больш, чым вы просіце? 1201 00:49:16,217 --> 00:49:16,800 СТУДЕНТ: Так. 1202 00:49:16,800 --> 00:49:18,480 Ханна: Ну, вы маглі б прадухіліць карыстальнік ад гэтага. 1203 00:49:18,480 --> 00:49:21,350 Вы маглі спецыяльна сказаць не дай мне больш, чым х колькасць па байтаў 1204 00:49:21,350 --> 00:49:24,330 Я толькі даў вам месца для х колькасць байтаў, х лік знакаў. 1205 00:49:24,330 --> 00:49:25,700 Так што тое, што вы хочаце, каб прадухіліць. 1206 00:49:25,700 --> 00:49:26,199 Так? 1207 00:49:26,199 --> 00:49:30,270 У чым розніца паміж Перапаўненне стэка і перапаўненне буфера? 1208 00:49:30,270 --> 00:49:32,140 >> Ханна: ОК, так што стос overflow-- ах, які 1209 00:49:32,140 --> 00:49:34,790 розніца паміж стэкам Перапаўненне і перапаўненне буфера? 1210 00:49:34,790 --> 00:49:37,581 Таму мы хочам, каб думаць аб перапаўнення стэка адбываецца, калі мы на самай справе 1211 00:49:37,581 --> 00:49:39,530 кладка гэтыя выклікі функцый. 1212 00:49:39,530 --> 00:49:42,991 Скажам у вас ёсць рэкурсіўных функцыю, таму што мы ведаем, што кожны раз, калі вы 1213 00:49:42,991 --> 00:49:45,240 выклікаць функцыю, гэта становіцца самастойна рамка на стэку. 1214 00:49:45,240 --> 00:49:47,950 >> Такім чынам, мы складаюць занадта высока, і Затым мы пачынаем пералівацца. 1215 00:49:47,950 --> 00:49:50,530 І мы выкарыстоўваем занадта шмат памяці, і мы не сапраўды ёсць дзе-небудзь засталося. 1216 00:49:50,530 --> 00:49:51,590 Мы атрымліваем гэтую памылку. 1217 00:49:51,590 --> 00:49:53,930 >> Перапаўненне буфера знаходзіцца ў межах праграмы. 1218 00:49:53,930 --> 00:49:57,180 Мы хочам, каб, магчыма, не абавязкова запусціць з памяці гэтак жа, 1219 00:49:57,180 --> 00:50:00,080 што мы маглі б, калі мы кладкі так шмат выклікаў функцый, 1220 00:50:00,080 --> 00:50:04,540 але мы пішам міма памяці што мы ведаем, што мы можам выкарыстоўваць. 1221 00:50:04,540 --> 00:50:06,170 І што дазваляе нам рабіць зло. 1222 00:50:06,170 --> 00:50:08,060 1223 00:50:08,060 --> 00:50:08,560 Так? 1224 00:50:08,560 --> 00:50:10,950 >> ROB: Так, вы можаце каб проста паўтарыць гэта, 1225 00:50:10,950 --> 00:50:12,699 але вы таксама можаце думаць перапаўненнем стэка 1226 00:50:12,699 --> 00:50:15,374 а як пэўны тып перапаўнення буфера. 1227 00:50:15,374 --> 00:50:17,665 Ці вы проста думаць аб сваім стэк, як сапраўды вялікі буфера. 1228 00:50:17,665 --> 00:50:20,724 Затым, калі вы перапаўненне вы стэк, гэта накшталт як перапаўненне буфера. 1229 00:50:20,724 --> 00:50:23,390 Але перапаўненне стэка проста спецыяльны тэрмін выкарыстоўваецца, калі стэк 1230 00:50:23,390 --> 00:50:24,310 Сам перапаўняе. 1231 00:50:24,310 --> 00:50:27,500 >> Ханна: Права, так, каб Паўтараю для відэа, 1232 00:50:27,500 --> 00:50:31,756 гэта вы можаце думаць аб перапаўненне стэка, як Канкрэтны тып перапаўнення буфера. 1233 00:50:31,756 --> 00:50:33,040 Прахладны? 1234 00:50:33,040 --> 00:50:34,562 Любыя іншыя пытанні, перш чым ісці далей? 1235 00:50:34,562 --> 00:50:35,380 1236 00:50:35,380 --> 00:50:35,880 Дзіўны. 1237 00:50:35,880 --> 00:50:37,130 1238 00:50:37,130 --> 00:50:39,727 >> Добра, халаднавата, так што давайце казаць пра некаторыя агульныя паведамленні пра памылкі. 1239 00:50:39,727 --> 00:50:42,060 Гэта тое, што мае паказана на некалькіх віктарынах, 1240 00:50:42,060 --> 00:50:44,740 так што-тое, што варта прымаючы другі погляд на. 1241 00:50:44,740 --> 00:50:46,860 Я ўпэўнены, што вы сутыкнуліся па меншай меры, некаторыя з іх 1242 00:50:46,860 --> 00:50:48,690 як вы робіце, ваша праблема ўсталёўвае. 1243 00:50:48,690 --> 00:50:50,980 Таму пераканайцеся, што вы можаце казаць пра іх на віктарыне. 1244 00:50:50,980 --> 00:50:52,990 >> Такім чынам, першы з іх памылкі сегментацыі. 1245 00:50:52,990 --> 00:50:55,250 І гэта ў любы час, мы паспрабуйце атрымаць доступ да памяці 1246 00:50:55,250 --> 00:50:57,130 што мы не дазволілі доступ. 1247 00:50:57,130 --> 00:51:00,280 Такім чынам, вы migh бачыў гэта, Напрыклад, у прарыве. 1248 00:51:00,280 --> 00:51:03,390 Калі выявіць сутыкнення вярнуцца нуль, а затым вас 1249 00:51:03,390 --> 00:51:05,500 спрабаваў нешта зрабіць з гэтым значэннем нуль, 1250 00:51:05,500 --> 00:51:08,147 кампутар дасць Вы памылкі сегментацыі. 1251 00:51:08,147 --> 00:51:10,730 Так што, галоўнае, каб зрабіць для таго, каб паспрабаваць пазбегнуць гэтага 1252 00:51:10,730 --> 00:51:12,000 гэта заўсёды праверыць на нуль. 1253 00:51:12,000 --> 00:51:13,300 1254 00:51:13,300 --> 00:51:16,180 >> Вы, магчыма, таксама бачыў няяўная дэкларацыя функцыі. 1255 00:51:16,180 --> 00:51:18,370 Так што гэта тое, што адбываецца калі Элісан паказаў, 1256 00:51:18,370 --> 00:51:20,150 як мы робім прататып, ці не так? 1257 00:51:20,150 --> 00:51:23,440 Так скажам, у нас ёсць некаторыя функцыя, якую мы вызначым. 1258 00:51:23,440 --> 00:51:24,440 Скажам куб. 1259 00:51:24,440 --> 00:51:27,120 І гэта ідзе на дно нашай функцыі, у адпаведнасці з асноўным. 1260 00:51:27,120 --> 00:51:35,205 >> Калі мы забываем сказаць кампутара аб куб, калі асноўная спрабуе выклікаць куб, 1261 00:51:35,205 --> 00:51:36,830 кампутар будзе, як, о, чорт вазьмі. 1262 00:51:36,830 --> 00:51:38,300 Я паняцця не маю, што гэта значыць. 1263 00:51:38,300 --> 00:51:39,760 Я не ведаю, што рабіць, вось. 1264 00:51:39,760 --> 00:51:41,594 Так прататыпам кажа, не хвалюйцеся. 1265 00:51:41,594 --> 00:51:42,510 Я збіраюся расказаць вам. 1266 00:51:42,510 --> 00:51:43,132 >> Гэта прыйдзе. 1267 00:51:43,132 --> 00:51:43,840 Не крычаць на мяне. 1268 00:51:43,840 --> 00:51:46,697 Не дай мне невідавочнае Дэкларацыя функцыі. 1269 00:51:46,697 --> 00:51:49,280 Так што калі вы атрымаеце гэтую памылку, адзін што вы будзеце жадаць зрабіць 1270 00:51:49,280 --> 00:51:50,821 гэта пераканацца, што ў вас ёсць свой прататып. 1271 00:51:50,821 --> 00:51:52,320 1272 00:51:52,320 --> 00:51:53,230 Добра? 1273 00:51:53,230 --> 00:51:55,680 >> І апошняе, але не менш важна, неаб'яўленай ідэнтыфікатар 1274 00:51:55,680 --> 00:52:00,570 па сутнасці, калі вы спрабуеце выкарыстоўваць Зменная, што вы не заявілі. 1275 00:52:00,570 --> 00:52:03,449 Так раптам вы пачынаеце кажучы, як п плюс плюс. 1276 00:52:03,449 --> 00:52:04,740 І кампутар кажа, што гэта н? 1277 00:52:04,740 --> 00:52:06,660 Ты ніколі не казаў мне, н быў рэччу. 1278 00:52:06,660 --> 00:52:10,930 >> Так адна рэч, вы павінны пераканацца, што вы зрабіў гэта сказаць кампутара, што п. 1279 00:52:10,930 --> 00:52:13,320 Так, напрыклад, н можа быць цэлым лікам. 1280 00:52:13,320 --> 00:52:14,999 І тады вы будзеце пазбегнуць гэтай памылкі. 1281 00:52:14,999 --> 00:52:16,290 Любыя пытанні па распаўсюджаных памылак? 1282 00:52:16,290 --> 00:52:17,260 Так? 1283 00:52:17,260 --> 00:52:19,344 >> СТУДЕНТ: Для невідавочнае Дэкларацыя функцыі, 1284 00:52:19,344 --> 00:52:22,343 можа таксама быць, што вы апусцілі адзін з бібліятэк вы павінны былі 1285 00:52:22,343 --> 00:52:24,400 каб ўключаць у сябе, замест прататыпа? 1286 00:52:24,400 --> 00:52:26,359 >> Ханна: Права, так Пытанне было, ты мог 1287 00:52:26,359 --> 00:52:28,650 Таксама гэтая памылка, калі вы забыліся ўключыць бібліятэку. 1288 00:52:28,650 --> 00:52:29,085 >> СТУДЕНТ: Так. 1289 00:52:29,085 --> 00:52:30,876 >> Ханна Абсалютна, таму што так жа, 1290 00:52:30,876 --> 00:52:33,540 што мы хочам, каб пакласці нашы прататыпы Перад асноўнай функцыі, 1291 00:52:33,540 --> 00:52:37,717 калі ў нас ёсць бібліятэка, тыя ідуць па сутнасці ўключаюць у сябе прататыпы, 1292 00:52:37,717 --> 00:52:39,425 ўключыць вызначэння з функцый. 1293 00:52:39,425 --> 00:52:40,585 Вялікае пытанне. 1294 00:52:40,585 --> 00:52:43,230 >> СТУДЕНТ: Для сегментацыі віна, будзе, што таксама 1295 00:52:43,230 --> 00:52:47,350 адбудзецца, калі мы, як, спрабаваў атрымаць доступ да зменнай, 1296 00:52:47,350 --> 00:52:51,947 як, па-іншаму [неразборліва] чым ён быў аб'яўлены ў? 1297 00:52:51,947 --> 00:52:54,030 Ханна: Вядома, так бы мы атрымаць памылку сегментацыі 1298 00:52:54,030 --> 00:52:56,270 калі мы паспрабавалі атрымаць доступ Пераменная выходзіць за рамкі? 1299 00:52:56,270 --> 00:52:57,104 Ці было гэта пытанне? 1300 00:52:57,104 --> 00:52:57,645 СТУДЕНТ: Так. 1301 00:52:57,645 --> 00:52:58,430 Ханна: Прыгожая. 1302 00:52:58,430 --> 00:53:01,840 Так, верагодна, вы збіраецеся атрымаць Неабвешчаная памылка ідэнтыфікатар замест. 1303 00:53:01,840 --> 00:53:04,006 Так што гэта проста хачу сказаць, Я не ведаю, што гэта такое. 1304 00:53:04,006 --> 00:53:04,920 1305 00:53:04,920 --> 00:53:05,920 Крута, што-небудзь яшчэ? 1306 00:53:05,920 --> 00:53:07,744 1307 00:53:07,744 --> 00:53:08,980 Так, добра, прыгожа. 1308 00:53:08,980 --> 00:53:10,330 1309 00:53:10,330 --> 00:53:12,400 >> Усе правша, так Рэкурсія. 1310 00:53:12,400 --> 00:53:15,160 Так я ўжо пару разоў што мы маглі б атрымаць перапаўненне стэка 1311 00:53:15,160 --> 00:53:17,919 таму што мы называем наш рэкурсіўная функцыя так шмат разоў. 1312 00:53:17,919 --> 00:53:20,210 Мы атрымліваем усе гэтыя чаркі кадры, бла, бла, бла. 1313 00:53:20,210 --> 00:53:22,420 Што яшчэ з'яўляецца рэкурсіўная функцыя? 1314 00:53:22,420 --> 00:53:25,680 Ну, рэкурсіўная функцыя з'яўляецца любая функцыя, якая называе сябе. 1315 00:53:25,680 --> 00:53:26,820 1316 00:53:26,820 --> 00:53:30,160 >> Некаторыя рэчы, каб быць у курсе, калі вас рэалізуем рэкурсіўных функцыю, 1317 00:53:30,160 --> 00:53:31,940 не забудзьцеся ўключыць базавы варыянт. 1318 00:53:31,940 --> 00:53:34,010 Базавы варыянт з'яўляецца Кропка, у якой мы ў канцы. 1319 00:53:34,010 --> 00:53:38,740 Так, напрыклад, калі мы кадавання, , Кажуць, Фібаначы рэкурсіўна, 1320 00:53:38,740 --> 00:53:43,210 мы хочам пераканацца, што, калі мы атрымліваем на або пад першым нумарам 0 Фібаначы, 1321 00:53:43,210 --> 00:53:46,220 гэтыя два ліку маюць гэтыя выпадкі, таму што тыя не залежаць 1322 00:53:46,220 --> 00:53:47,700 на рэчы, якія прыйшлі раней. 1323 00:53:47,700 --> 00:53:48,990 Тыя, маюць свае ўласныя значэння. 1324 00:53:48,990 --> 00:53:51,270 1325 00:53:51,270 --> 00:53:55,320 >> Некаторыя профі ў рэкурсіі, што з'яўляецца Пытанне, які мы бачылі на апошніх апытанняў. 1326 00:53:55,320 --> 00:53:57,930 Яны могуць прывесці да больш кароткім, элегантны код. 1327 00:53:57,930 --> 00:54:00,510 І шмат функцый, шмат розных алгарытмаў, 1328 00:54:00,510 --> 00:54:02,350 на самай справе паддаюцца рэкурсіі. 1329 00:54:02,350 --> 00:54:05,510 Іх вызначэнне можа быць Рэкурсіўныя і само па сабе. 1330 00:54:05,510 --> 00:54:06,980 Так Фібаначы з'яўляецца адным. 1331 00:54:06,980 --> 00:54:07,860 Фактарыяла з'яўляецца адным. 1332 00:54:07,860 --> 00:54:10,480 Зліццё сартавання одно-- ўсе рэчы, якія вы можаце паглядзець. 1333 00:54:10,480 --> 00:54:12,650 1334 00:54:12,650 --> 00:54:13,460 Добра, ёсць пытанні? 1335 00:54:13,460 --> 00:54:13,960 Так? 1336 00:54:13,960 --> 00:54:15,644 1337 00:54:15,644 --> 00:54:19,612 >> СТУДЕНТ: Ёсць памежныя выпадкі аналагічна базавай выпадку? 1338 00:54:19,612 --> 00:54:22,590 Ці ў тым, што для нейкай іншай выгляд [неразборліва]? 1339 00:54:22,590 --> 00:54:25,170 >> Ханна: Вядома, так кут выпадак any-- так 1340 00:54:25,170 --> 00:54:27,580 з'яўляецца кут справу гэтак жа, як базавай выпадку? 1341 00:54:27,580 --> 00:54:32,825 Кут выпадак што-небудзь, што ваш Код можа паводзіць сябе крыху па-іншаму. 1342 00:54:32,825 --> 00:54:34,450 1343 00:54:34,450 --> 00:54:38,610 Базавы варыянт з'яўляецца свайго роду звязаны, у што яны, як прыватныя выпадкі 1344 00:54:38,610 --> 00:54:40,240 што вы хочаце паглядзець. 1345 00:54:40,240 --> 00:54:43,240 Але ідэя базавай выпадку з'яўляецца тое, што Вы хочаце, каб ваш рэкурсіўных функцыю 1346 00:54:43,240 --> 00:54:44,870 спыніцца на нейкі момант. 1347 00:54:44,870 --> 00:54:46,490 Ён не можа трымаць, якая называе сябе назаўжды. 1348 00:54:46,490 --> 00:54:47,781 Гэта трэба спыніць на нейкі момант. 1349 00:54:47,781 --> 00:54:49,340 1350 00:54:49,340 --> 00:54:53,460 >> Роб: Так, часта, вашы базавыя выпадкі можа быць прыклады кутніх баз. 1351 00:54:53,460 --> 00:54:55,876 >> Ханна: Права, выдатна, што-небудзь? 1352 00:54:55,876 --> 00:54:58,732 >> СТУДЕНТ: Не маглі б вы растлумачыць, засноўвае трохі больш? 1353 00:54:58,732 --> 00:55:01,600 Я не зусім разумею, [Неразборліва] базавыя выпадкі. 1354 00:55:01,600 --> 00:55:02,676 >> Ханна: З базавых выпадках? 1355 00:55:02,676 --> 00:55:03,140 >> СТУДЕНТ: Базавыя выпадкі, так. 1356 00:55:03,140 --> 00:55:03,770 >> Ханна: О, так, вядома. 1357 00:55:03,770 --> 00:55:04,270 Паглядзім. 1358 00:55:04,270 --> 00:55:05,480 Ці ёсць у нас мел тут? 1359 00:55:05,480 --> 00:55:06,690 1360 00:55:06,690 --> 00:55:07,320 Так, мы робім. 1361 00:55:07,320 --> 00:55:09,530 Такім чынам, на самай справе хутка, я буду паспрабуйце напісаць досыць вялікі 1362 00:55:09,530 --> 00:55:11,320 так што вы можаце бачыць на экране. 1363 00:55:11,320 --> 00:55:13,490 Давайце пагаворым аб, сапраўды хутка, Фібаначы. 1364 00:55:13,490 --> 00:55:15,550 Таму я дам вам паслядоўнасць Фібаначы. 1365 00:55:15,550 --> 00:55:17,090 Вы можаце шукаць вызначэнне. 1366 00:55:17,090 --> 00:55:26,050 >> Па сутнасці, кожны нумар у паслядоўнасці з'яўляецца сумай двух папярэдніх лікаў. 1367 00:55:26,050 --> 00:55:29,720 Такім чынам, тое, як я толькі што апісаў Фібаначы, 1368 00:55:29,720 --> 00:55:31,530 вы маглі пачуць рэкурсіі, ці не так? 1369 00:55:31,530 --> 00:55:35,280 Калі я сказаў, што кожны нумар сума двух папярэдніх лікаў, 1370 00:55:35,280 --> 00:55:36,420 мы маглі б сказаць, у парадку. 1371 00:55:36,420 --> 00:55:38,570 Ну, п-я Фібаначы number-- так што давайце 1372 00:55:38,570 --> 00:55:42,260 у нас ёсць гэтая функцыя называецца fib-- выдумка п 1373 00:55:42,260 --> 00:55:48,260 будзе роўная прыхлусіць н мінус 1 plus-- шкада, 1374 00:55:48,260 --> 00:55:51,240 мы збіраемся на наступным радку над here-- выдумка п мінус 2. 1375 00:55:51,240 --> 00:55:52,790 1376 00:55:52,790 --> 00:55:56,790 >> Такім чынам, гэта выдатна працуе, калі вы глядзіце, напрыклад, нуль, адзін, 1377 00:55:56,790 --> 00:55:59,410 два, тры, чатыры, пятая лік Фібаначы, 1378 00:55:59,410 --> 00:56:03,561 дзе можна сказаць, што 5 роўная 2 плюс 3. 1379 00:56:03,561 --> 00:56:05,060 Але што, калі вы ў пачатку? 1380 00:56:05,060 --> 00:56:07,184 Што рабіць, калі вы проста ідзяце гэтыя першыя два значэння? 1381 00:56:07,184 --> 00:56:08,470 1382 00:56:08,470 --> 00:56:11,330 >> Каб атрымаць гэты 1, вы не можаце сказаць дадаць два папярэднія, 1383 00:56:11,330 --> 00:56:13,930 таму што нуль и-- я не ведаю. 1384 00:56:13,930 --> 00:56:15,390 Такім чынам, у нейкі момант, мы павінны спыніцца. 1385 00:56:15,390 --> 00:56:21,250 У нейкі момант, мы павінны сказаць, што гэта два толькі маюць свае ўласныя вызначэння. 1386 00:56:21,250 --> 00:56:23,890 Колькасць 0 Фібаначы 0. 1387 00:56:23,890 --> 00:56:26,115 І першае лік Фібаначы 1. 1388 00:56:26,115 --> 00:56:34,120 >> Так як я мог бы кадзіраваць гэта, я сказаў бы, калі п менш двух, 1389 00:56:34,120 --> 00:56:35,130 то проста вярнуць н. 1390 00:56:35,130 --> 00:56:36,494 І што б мой базавы варыянт. 1391 00:56:36,494 --> 00:56:38,660 Вось як я ведаю, каб спыніць з рэкурсыўнай функцыі. 1392 00:56:38,660 --> 00:56:40,640 1393 00:56:40,640 --> 00:56:41,410 Гэта зразумела? 1394 00:56:41,410 --> 00:56:41,940 Дзіўны. 1395 00:56:41,940 --> 00:56:43,260 Што-небудзь яшчэ на рэкурсіі? 1396 00:56:43,260 --> 00:56:44,890 1397 00:56:44,890 --> 00:56:45,930 Прыгожая. 1398 00:56:45,930 --> 00:56:48,750 >> Давайце хутка казаць пра Пошук і сартаванне выконваюцца раз. 1399 00:56:48,750 --> 00:56:52,660 А потым я дам Дэвин некаторых Час пагаварыць пра кадаванні прыклады. 1400 00:56:52,660 --> 00:56:56,490 Дык вось асноўны пошук і віды, якія вы павінны ведаць аб. 1401 00:56:56,490 --> 00:56:59,500 Guarantee-- я не магу гарантаваць, таму што я не бачыў quiz-- 1402 00:56:59,500 --> 00:57:01,940 але гэта прыходзіць віктарыны пасля віктарыны пасля выхаду. 1403 00:57:01,940 --> 00:57:04,050 Так вызначана выкарыстоўваць гэты графік. 1404 00:57:04,050 --> 00:57:05,682 Маўляў, узяць гэты графік. 1405 00:57:05,682 --> 00:57:06,890 Пакладзеце яе на свой шпаргалку. 1406 00:57:06,890 --> 00:57:07,931 Вы будзеце шчаслівым чалавекам. 1407 00:57:07,931 --> 00:57:09,010 1408 00:57:09,010 --> 00:57:12,590 >> Гэта кажа нам часу працы кожнага з гэтых сартавання і алгарытмаў пошуку. 1409 00:57:12,590 --> 00:57:14,020 1410 00:57:14,020 --> 00:57:18,850 Так лінейны пошук, вы можаце ўбачыць бег Час, і тое ж самае з бінарнага пошуку. 1411 00:57:18,850 --> 00:57:21,490 Перайсці над тым, што гэтыя алгарытмы зрабіць, агульную ідэю. 1412 00:57:21,490 --> 00:57:24,220 Паглядзіце на нейкі псевдокоде, калі не сам код. 1413 00:57:24,220 --> 00:57:25,610 1414 00:57:25,610 --> 00:57:30,380 >> Вы ўбачыце, што пузырьковый сартаванне мае верхні звязаны ў горшым выпадку п квадрат. 1415 00:57:30,380 --> 00:57:31,490 1416 00:57:31,490 --> 00:57:34,680 Так што, калі наш масіў быў цалкам назад, перш чым мы хацелі, каб улагодзіць яго, 1417 00:57:34,680 --> 00:57:37,090 мы б сказалі, што гэта збіраецца заняць н у квадраце крокі. 1418 00:57:37,090 --> 00:57:38,160 1419 00:57:38,160 --> 00:57:41,730 Але ў лепшым выпадку, так ніжняя мяжа для лепшым выпадку 1420 00:57:41,730 --> 00:57:44,300 ці будзе гэта ўжо зусім адсартаваныя. 1421 00:57:44,300 --> 00:57:46,671 Тады ўсё, што трэба зрабіць, гэта праверыць, што гэта сартуюцца. 1422 00:57:46,671 --> 00:57:47,921 Ёсць пытанне тут? 1423 00:57:47,921 --> 00:57:49,805 >> СТУДЕНТ: Калі будзе Вы хочаце выкарыстоўваць тое? 1424 00:57:49,805 --> 00:57:50,747 Гатунак. 1425 00:57:50,747 --> 00:57:52,160 Мне проста цікава. 1426 00:57:52,160 --> 00:57:53,510 >> Ханна: Калі вы хочаце выкарыстоўваць выбар роду? 1427 00:57:53,510 --> 00:57:54,010 Гэта адзін? 1428 00:57:54,010 --> 00:57:55,705 Той, які н квадрат у абодвух выпадках? 1429 00:57:55,705 --> 00:57:56,860 >> СТУДЕНТ: [неразборліва]. 1430 00:57:56,860 --> 00:57:58,151 >> Ханна: Так што гэта вельмі розныя. 1431 00:57:58,151 --> 00:58:00,760 Калі ў вас ёсць канкрэтныя Патрабаванні да праграмы, 1432 00:58:00,760 --> 00:58:04,887 як рэчы, як калі б мы толькі што сказалі, ажыццявіць search-- sorry-- 1433 00:58:04,887 --> 00:58:06,720 ажыццявіць свайго роду, вы будзеце верагодна, хочаце пайсці 1434 00:58:06,720 --> 00:58:09,950 для аднаго з тых, што мае лепшы выпадак п, 1435 00:58:09,950 --> 00:58:12,410 ці ніжнюю мяжу ў лепшым выпадку п. 1436 00:58:12,410 --> 00:58:14,790 Але там можа быць некаторыя рэчы, як, скажам, 1437 00:58:14,790 --> 00:58:16,767 свопы сапраўды дорага для нейкай прычыне. 1438 00:58:16,767 --> 00:58:18,850 Тады вы хацелі б зрабіць пузырьковый сартаванне, таму што вы 1439 00:58:18,850 --> 00:58:20,641 трэба зрабіць так шмат свопы, такія рэчы, як, што. 1440 00:58:20,641 --> 00:58:21,710 1441 00:58:21,710 --> 00:58:23,098 Любы other-- так? 1442 00:58:23,098 --> 00:58:25,488 >> СТУДЕНТ: было б [неразборліва] сказаць, што [неразборліва]? 1443 00:58:25,488 --> 00:58:30,077 1444 00:58:30,077 --> 00:58:31,910 Ханна: Гэта адна рэч, што б вам сказаць, 1445 00:58:31,910 --> 00:58:33,670 калі вы шукаеце на рэалізацыю. 1446 00:58:33,670 --> 00:58:35,850 Тое, як я б на самой справе думаю пра тое, чаму гэта н 1447 00:58:35,850 --> 00:58:40,840 квадрат ў тым, што мы павінны працаваць праз наш масіў даўжыні п, 1448 00:58:40,840 --> 00:58:42,765 кожны раз робячы у большасці, п свопов. 1449 00:58:42,765 --> 00:58:43,980 1450 00:58:43,980 --> 00:58:46,220 І мы павінны зрабіць гэты працэс п раз. 1451 00:58:46,220 --> 00:58:51,130 >> Так што, калі вы павінны зрабіць у самае, н свопы і для п прабягае масіва, 1452 00:58:51,130 --> 00:58:52,380 там збіраецца быць н у квадраце. 1453 00:58:52,380 --> 00:58:55,480 Але так, гэта будзе выяўлена праз гэты ўдвая за пятлю, 1454 00:58:55,480 --> 00:58:59,428 як пытанне asked-- або укладзенымі для цыклу, я павінен сказаць. 1455 00:58:59,428 --> 00:59:00,890 Добра? 1456 00:59:00,890 --> 00:59:03,375 >> А потым зліваюцца роду, якія гэта самы хуткі від мы цяпер, 1457 00:59:03,375 --> 00:59:07,560 або, калі мы разгледзелі ў CS50, Вядома, што асноўным алгарытм 1458 00:59:07,560 --> 00:59:10,150 гэтая ідэя ўзлому адсартаваныя кавалкі і затым 1459 00:59:10,150 --> 00:59:11,980 зліваючыся гэтыя адсартаваныя біты. 1460 00:59:11,980 --> 00:59:14,170 І атрымаеце нам увайсці н увайсці п. 1461 00:59:14,170 --> 00:59:17,110 Любыя пытанні па ператрусаў і віды, перш чым я перадаць яго? 1462 00:59:17,110 --> 00:59:19,840 1463 00:59:19,840 --> 00:59:21,040 Паглядзім. 1464 00:59:21,040 --> 00:59:21,800 >> О, сувязныя спісы. 1465 00:59:21,800 --> 00:59:23,210 На жаль, у мяне ёсць яшчэ адзін падзел. 1466 00:59:23,210 --> 00:59:25,000 ОК, дзіўным, звязаныя спісы. 1467 00:59:25,000 --> 00:59:27,900 Праблема з масівамі, яны маюць фіксаваны памер. 1468 00:59:27,900 --> 00:59:30,634 Так што, калі вы не ведаеце, наколькі вялікая Ваш ўклад будзе, 1469 00:59:30,634 --> 00:59:32,050 Вы не хочаце, каб стварыць масіў. 1470 00:59:32,050 --> 00:59:34,080 Таму што, калі мы ствараем Масіў, занадта малая, 1471 00:59:34,080 --> 00:59:35,930 мы маглі б сутыкнуцца з перапаўненнем буфера. 1472 00:59:35,930 --> 00:59:38,890 >> Так замест гэтага мы маглі б зрабіць што-то са звязанымі спісамі, якія 1473 00:59:38,890 --> 00:59:44,280 дазваляе нам мець дынамічна памеру структуры дадзеных 1474 00:59:44,280 --> 00:59:48,970 што дазволіць нам захоўваць больш гнуткім аб'ём дадзеных. 1475 00:59:48,970 --> 00:59:54,030 Такім чынам, унутры кожнага вузла ў нашым звязаны спіс, у нас ёсць дзве часткі. 1476 00:59:54,030 --> 00:59:56,820 У нас ёсць фактычнае значэнне, што ён захоўвае. 1477 00:59:56,820 --> 00:59:59,530 Так што гэта проста, што вы б см у масіве, напрыклад. 1478 00:59:59,530 --> 01:00:04,600 І тады мы таксама адсочваць ўказальнік да наступнай рэчы ў памяці. 1479 01:00:04,600 --> 01:00:06,430 >> У адрозненне ад масіваў, якія мы ведаем усё збіраемся 1480 01:00:06,430 --> 01:00:10,890 у be-- элементы масіва ўсё адно за іншым у memory-- звязаны 1481 01:00:10,890 --> 01:00:13,300 Спісы могуць быць дзе заўгодна ў памяці. 1482 01:00:13,300 --> 01:00:14,590 Яны адвольных месцах. 1483 01:00:14,590 --> 01:00:16,410 Так што, калі б мы павінны былі на самай справе пайсці знайсці іх, мы 1484 01:00:16,410 --> 01:00:19,770 трэба адсочваць Наступнае, што ў нашым спісе. 1485 01:00:19,770 --> 01:00:22,840 >> І тады для таго, каб ведаць, дзе, што спіс у цэлым, 1486 01:00:22,840 --> 01:00:26,276 Усе мы павінны адсочваць гэта Самы першы элемент у нашай звязанага спісу. 1487 01:00:26,276 --> 01:00:27,900 І што будзе дазволіць нам выканаць. 1488 01:00:27,900 --> 01:00:31,020 1489 01:00:31,020 --> 01:00:33,070 >> Так што гэта, як вы маглі б вызначыць рэжым. 1490 01:00:33,070 --> 01:00:36,160 Гэта выдатная магчымасць скарыстацца структур. 1491 01:00:36,160 --> 01:00:39,660 Таму што ў вас ёсць гэтая ідэя, добра, для дадзенага вузла, у мяне ёсць дзве часткі. 1492 01:00:39,660 --> 01:00:41,770 У мяне ёсць фактычнае само значэнне. 1493 01:00:41,770 --> 01:00:45,610 А потым у мяне ёсць паказальнік на Наступны элемент у звязаным спісе. 1494 01:00:45,610 --> 01:00:49,150 Такім чынам, вы бачыце, у нас ёсць лік п, які будзе фактычнае значэнне, 1495 01:00:49,150 --> 01:00:53,150 а затым паказальнік на вузел, званы побач. 1496 01:00:53,150 --> 01:00:56,431 Так што гэта будзе наступны элемент у нашай звязанага спісу. 1497 01:00:56,431 --> 01:00:56,972 СТУДЕНТ: Да? 1498 01:00:56,972 --> 01:01:01,920 Вы павінны паказаць, што зорка, як структуры? 1499 01:01:01,920 --> 01:01:05,620 >> Ханна: Так, так, так як гэта амаль як свайго роду, 1500 01:01:05,620 --> 01:01:07,980 здаецца, што рэкурсіўны вызначэнне, у якім мы 1501 01:01:07,980 --> 01:01:12,080 павінны ведаць, што вузел ўнутр, каб знайсці вузел. 1502 01:01:12,080 --> 01:01:14,450 Так як гэта не на самай справе ведаю, што вузел цалкам 1503 01:01:14,450 --> 01:01:17,283 пакуль мы не атрымаем да канца this-- і пасля гэтага мы можам назваць яго проста 1504 01:01:17,283 --> 01:01:21,935 node-- ўнутры гэтага вызначэння, мы павінны назваць гэта структура вузла. 1505 01:01:21,935 --> 01:01:22,560 Вялікае пытанне. 1506 01:01:22,560 --> 01:01:23,580 1507 01:01:23,580 --> 01:01:25,214 Што-небудзь яшчэ? 1508 01:01:25,214 --> 01:01:26,198 Так? 1509 01:01:26,198 --> 01:01:29,150 >> СТУДЕНТ: Чаму мы павінен сказаць, вузел двойчы? 1510 01:01:29,150 --> 01:01:33,578 Таму што, калі мы былі ў [неразборліва] мы проста павінны былі зрабіць гэта ў кропку з коскай, 1511 01:01:33,578 --> 01:01:37,352 але зараз мы павінны знайсці, што структура вузла? [Неразборліва]. 1512 01:01:37,352 --> 01:01:39,060 Ханна: Так што я лічу, у апошнім прыкладзе, 1513 01:01:39,060 --> 01:01:42,110 мы былі проста стварэнне ў любы час вы хацеў выкарыстаць студэнта пасля гэтага, вы 1514 01:01:42,110 --> 01:01:46,430 давялося выкарыстоўваць-структуру node-- Я sorry-- структуры студэнта. 1515 01:01:46,430 --> 01:01:51,575 Гэта дазволіла нам, пасля таго, як той факт, проста Выкарыстанне вузел дадання новага тыпу, па сутнасці. 1516 01:01:51,575 --> 01:01:53,324 1517 01:01:53,324 --> 01:01:53,990 Гэта мае сэнс? 1518 01:01:53,990 --> 01:01:54,984 1519 01:01:54,984 --> 01:01:57,150 Такім чынам, мы павінны былі б вярнуцца і паглядзець на код, перш чым. 1520 01:01:57,150 --> 01:01:59,025 Але я думаю, што мы не выкарыстоўвалі ЬурейеЕ. 1521 01:01:59,025 --> 01:02:02,050 І мы задалі пытанне, чаму мы павінны выкарыстоўваць ЬурейеЕ? 1522 01:02:02,050 --> 01:02:05,540 Typedef дазваляе пазбегнуць Слова структура ў пачатку. 1523 01:02:05,540 --> 01:02:06,221 Так? 1524 01:02:06,221 --> 01:02:08,095 СТУДЕНТ: Якія пытанні будуць прыдумаць 1525 01:02:08,095 --> 01:02:10,400 ў плане з пункту гледжання вузлы і звязаныя спісы? 1526 01:02:10,400 --> 01:02:15,110 >> Ханна: Так адно можна сказаць, як можа вы праглядзіце звязанага спісу? 1527 01:02:15,110 --> 01:02:16,930 Добра, таму што гэта крыху больш складана 1528 01:02:16,930 --> 01:02:18,520 чым калі мы шукаем праз масіў. 1529 01:02:18,520 --> 01:02:21,472 Мы можам толькі глядзець на нулявы элемент, Элемент адзін, элемент два, бла, бла, 1530 01:02:21,472 --> 01:02:21,972 бла. 1531 01:02:21,972 --> 01:02:22,629 1532 01:02:22,629 --> 01:02:24,420 Калі мы хочам шукаць праз звязаны спіс, 1533 01:02:24,420 --> 01:02:27,229 мы фактычна павінны прытрымлівацца гэта крыху лабірынт паказальнікаў. 1534 01:02:27,229 --> 01:02:29,270 Так што давайце на самай справе ісці праз гэта сапраўды хутка. 1535 01:02:29,270 --> 01:02:30,460 1536 01:02:30,460 --> 01:02:32,860 Тое, што мы маглі б зрабіць у замовіць to-- скажам мы 1537 01:02:32,860 --> 01:02:35,430 хачу проста перабраць наша цалкам звязаны спіс. 1538 01:02:35,430 --> 01:02:37,450 Мы пачалі б у галаву. 1539 01:02:37,450 --> 01:02:39,890 І затым, з тым каб перайсці да наступнага элементу, 1540 01:02:39,890 --> 01:02:43,680 а не проста прырашчэння на адзінку як мы маглі б пры пераходзе праз масіў, 1541 01:02:43,680 --> 01:02:45,720 мы на самай справе збіраемся прытрымлівацца наступны паказальнік, 1542 01:02:45,720 --> 01:02:48,360 так што мы можам знайсці, дзе ў Памяць на наступны элемент. 1543 01:02:48,360 --> 01:02:49,357 1544 01:02:49,357 --> 01:02:51,690 Так што я ведаю, што гэта не дастаткова, каб прыняць усе гэта прама зараз, 1545 01:02:51,690 --> 01:02:52,650 але вы будзеце мець гэтыя слайды. 1546 01:02:52,650 --> 01:02:54,730 Такім чынам, вы можаце прайсці гэта крыху больш павольна. 1547 01:02:54,730 --> 01:02:56,890 Але па сутнасці, тое, што мы хочам зрабіць, выканайце наступныя паказальнікі 1548 01:02:56,890 --> 01:02:58,550 праз паўнату звязанага спісу. 1549 01:02:58,550 --> 01:03:00,258 Так што гэта пытанне можа быць вы спыталі. 1550 01:03:00,258 --> 01:03:01,920 1551 01:03:01,920 --> 01:03:03,980 >> Што-то, каб заўважыць з устаўка, скажам 1552 01:03:03,980 --> 01:03:07,925 мы хацелі паставіць новы элемент у пярэдняй часткі нашай звязанага спісу. 1553 01:03:07,925 --> 01:03:10,800 Мы павінны быць вельмі асцярожныя, аб парадку, у якім мы 1554 01:03:10,800 --> 01:03:12,760 пераназначаны паказальнікі. 1555 01:03:12,760 --> 01:03:15,230 Таму што, скажам, я проста сказаў, добра. 1556 01:03:15,230 --> 01:03:18,930 Зрабіць галаўнога кропку на гэты новы элемент. 1557 01:03:18,930 --> 01:03:23,550 Проста каб яна паказвала на 1 часу мы істотна страцілі астатнюю частку нашага спісу, 1558 01:03:23,550 --> 01:03:25,860 таму што я не памятаю, дзе 2 жыцця. 1559 01:03:25,860 --> 01:03:27,730 >> Так што мы павінны зрабіць у вельмі пэўны парадак. 1560 01:03:27,730 --> 01:03:31,500 Па-першае, мы робім новы элемент паказвае на галаву. 1561 01:03:31,500 --> 01:03:33,970 І тады мы робім галаву паказваць на новы элемент. 1562 01:03:33,970 --> 01:03:38,455 Такім чынам, давайце паглядзім, як гэта выглядае з arrows-- проста так. 1563 01:03:38,455 --> 01:03:42,080 Такім чынам, вы павінны спачатку новыя элемент паказвае на старой галаве. 1564 01:03:42,080 --> 01:03:45,990 А цяпер, у нас ёсць галава ён паказваў на новы першы элемент. 1565 01:03:45,990 --> 01:03:47,187 Любыя пытанні з гэтым? 1566 01:03:47,187 --> 01:03:49,870 1567 01:03:49,870 --> 01:03:54,350 >> ОК Вось код зноў, што-то глядзець на трохі пазней. 1568 01:03:54,350 --> 01:03:58,630 А цяпер я буду перадаць яе Давин для GDB і крыху практыкі 1569 01:03:58,630 --> 01:03:59,480 кадавання на паперы. 1570 01:03:59,480 --> 01:04:00,597 1571 01:04:00,597 --> 01:04:01,096 Прыгожая. 1572 01:04:01,096 --> 01:04:01,810 >> ROB: А Роб. 1573 01:04:01,810 --> 01:04:02,360 >> Ханна: О, Дэвин і Роб. 1574 01:04:02,360 --> 01:04:03,055 Мне шкада. 1575 01:04:03,055 --> 01:04:03,596 >> СТУДЕНТ: Woo! 1576 01:04:03,596 --> 01:04:08,140 1577 01:04:08,140 --> 01:04:09,110 >> ROB: Дзякуй. 1578 01:04:09,110 --> 01:04:11,209 >> DAVIN: Вы хочаце сказаць, ўсё сапраўды хутка? 1579 01:04:11,209 --> 01:04:11,875 ROB: Так, так. 1580 01:04:11,875 --> 01:04:12,845 DAVIN: Пасля таго, як я да. 1581 01:04:12,845 --> 01:04:16,240 1582 01:04:16,240 --> 01:04:19,520 ОК, у той час як Роб ставіць Мікрафон на, так што GDB? 1583 01:04:19,520 --> 01:04:23,945 Усе павінны былі бачыць GDB ў клас, а таксама на працоўныя гадзіны. 1584 01:04:23,945 --> 01:04:25,070 І вы павінны выкарыстоўваць яго. 1585 01:04:25,070 --> 01:04:25,750 Так што GDB? 1586 01:04:25,750 --> 01:04:28,030 1587 01:04:28,030 --> 01:04:28,850 Любы? 1588 01:04:28,850 --> 01:04:29,540 >> СТУДЕНТ: Гэта адладчык. 1589 01:04:29,540 --> 01:04:30,250 >> DAVIN: Гэта адладчык. 1590 01:04:30,250 --> 01:04:31,624 І тое, што гэта дазволіць вам рабіць? 1591 01:04:31,624 --> 01:04:33,064 Маўляў, навошта нам падабаецца GDB? 1592 01:04:33,064 --> 01:04:34,480 СТУДЕНТ: Каб запаволіць праграму. 1593 01:04:34,480 --> 01:04:36,740 DAVIN: справа, так што вы можаце хадзіць праз яго, як чалавек у нагу. 1594 01:04:36,740 --> 01:04:38,490 І так, што некаторыя каманды вы можаце зрабіць? 1595 01:04:38,490 --> 01:04:40,407 Ну, перапынак, верагодна, Ваш любімы каманда. 1596 01:04:40,407 --> 01:04:43,240 Таму што дазваляе разбіць Праграма і фактычна ісці праз яго 1597 01:04:43,240 --> 01:04:44,280 парадкова. 1598 01:04:44,280 --> 01:04:46,500 >> Выканаць дазваляе запускаць яго. 1599 01:04:46,500 --> 01:04:48,210 Далей, як пакрокава. 1600 01:04:48,210 --> 01:04:49,820 Што паміж побач і кроку? 1601 01:04:49,820 --> 01:04:52,190 1602 01:04:52,190 --> 01:04:53,190 Пачакайце, кажу гэта ўслых. 1603 01:04:53,190 --> 01:04:54,060 Гэта было правільна. 1604 01:04:54,060 --> 01:04:55,280 >> СТУДЕНТ: [неразборліва]. 1605 01:04:55,280 --> 01:04:56,190 >> DAVIN: Так, дзіўны. 1606 01:04:56,190 --> 01:04:59,210 Так як, у наступным і крок, калі you're-- скажам ў вас ёсць функцыя вы 1607 01:04:59,210 --> 01:04:59,950 вызначыць. 1608 01:04:59,950 --> 01:05:03,350 Скажам некаторыя ў вашай асноўнай функцыі, і вы проста ідзяце побач, побач, 1609 01:05:03,350 --> 01:05:03,850 Наступны. 1610 01:05:03,850 --> 01:05:05,910 Ты на самай справе адбываецца ў выканаць гэтую функцыю, 1611 01:05:05,910 --> 01:05:07,285 але вы збіраецеся скакаць праз яго. 1612 01:05:07,285 --> 01:05:09,711 Калі вы патрапілі крок, або ы або любы іншы, вы 1613 01:05:09,711 --> 01:05:11,460 збіраецца на самай справе скакаць у гэтай функцыі, 1614 01:05:11,460 --> 01:05:14,110 а затым вы можаце націснуць побач каб убачыць розныя званкі 1615 01:05:14,110 --> 01:05:16,170 ўнутры гэтай канкрэтнай функцыі. 1616 01:05:16,170 --> 01:05:16,670 Так? 1617 01:05:16,670 --> 01:05:18,670 >> СТУДЕНТ: Ці ёсць спосаб скакаць, як, адступіць? 1618 01:05:18,670 --> 01:05:20,750 DAVIN: Гатова, так, скончыць з скакаць вам. 1619 01:05:20,750 --> 01:05:22,570 Дык гэта будзе скончыць, што Функцыя, а затым вы 1620 01:05:22,570 --> 01:05:24,153 збіраецца вярнуцца ў асноўны, напрыклад. 1621 01:05:24,153 --> 01:05:25,250 1622 01:05:25,250 --> 01:05:27,370 Друк будзе раздрукаваць яго адзін раз. 1623 01:05:27,370 --> 01:05:29,381 Што-то я заўсёды выкарыстоўваю гэта дысплей. 1624 01:05:29,381 --> 01:05:31,880 Дысплей раздрукаваць яго пастаянна на працягу ўсёй паўнаце 1625 01:05:31,880 --> 01:05:32,470 вашай праграмы. 1626 01:05:32,470 --> 01:05:33,810 >> Напрыклад, калі вы у цыкле, і вы 1627 01:05:33,810 --> 01:05:37,018 хачу паглядзець, як нешта мяняецца, і вы не хочаце, каб, як, пастаянна 1628 01:05:37,018 --> 01:05:38,940 рабіць, як друк, друк, друк, дысплей 1629 01:05:38,940 --> 01:05:43,230 пакажа гэтую зменную пастаянна, кожны раз, калі вы націснеце кнопку Далей. 1630 01:05:43,230 --> 01:05:44,310 І па-ранейшаму. 1631 01:05:44,310 --> 01:05:45,905 Так ГПБ, гэта GDB. 1632 01:05:45,905 --> 01:05:47,160 1633 01:05:47,160 --> 01:05:49,180 >> СТУДЕНТ: Што адзін дзе вы [неразборліва]? 1634 01:05:49,180 --> 01:05:50,150 1635 01:05:50,150 --> 01:05:50,900 DAVIN: Што гэта такое? 1636 01:05:50,900 --> 01:05:52,310 1637 01:05:52,310 --> 01:05:54,390 >> СТУДЕНТ: Што the-- лакальныя зменныя. 1638 01:05:54,390 --> 01:05:55,364 1639 01:05:55,364 --> 01:05:57,780 ROB: Існуе што-то на самай справе як мясцовыя жыхары або што-то. 1640 01:05:57,780 --> 01:05:58,140 Я can't-- 1641 01:05:58,140 --> 01:05:59,930 >> DAVIN: Гэта можа быць як-то так, так. 1642 01:05:59,930 --> 01:06:00,830 >> Ханна: У мясцовых жыхароў? 1643 01:06:00,830 --> 01:06:01,510 >> DAVIN: Вось гэта. 1644 01:06:01,510 --> 01:06:02,134 Вось адзін. 1645 01:06:02,134 --> 01:06:03,040 ROB: Прыгожая. 1646 01:06:03,040 --> 01:06:04,030 >> DAVIN: Так. 1647 01:06:04,030 --> 01:06:06,010 >> СТУДЕНТ: Што па-ранейшаму рабіць? 1648 01:06:06,010 --> 01:06:08,010 >> DAVIN: Гэта continues-- так што гэта проста збіраецца працягнуць свае праграмы. 1649 01:06:08,010 --> 01:06:09,843 Так што, калі вы парушыце і ўдарыў працягваць, гэта будзе 1650 01:06:09,843 --> 01:06:13,119 не проста запусціць гэтую праграму, пакуль яна трапляе, што перапынак зноў. 1651 01:06:13,119 --> 01:06:14,910 Так, напрыклад, калі вы зламаў ў функцыі, 1652 01:06:14,910 --> 01:06:16,720 і вы збіраецеся рабіць, як для пятля ці нешта падобнае, 1653 01:06:16,720 --> 01:06:19,869 і вы патрапілі працягваць, ён збіраецца працягнуць і вярнуцца да гэтага перапынку. 1654 01:06:19,869 --> 01:06:22,660 Або няма ніякага перапынку, яна не збіраецца працягнуць і завяршыць праграму. 1655 01:06:22,660 --> 01:06:25,000 >> ROB: Так проста падабаецца спыняецца, на першым супыну 1656 01:06:25,000 --> 01:06:27,010 вы патрапілі, калі вам, то хіт працягваць, гэта будзе трымаць 1657 01:06:27,010 --> 01:06:28,070 адбываецца, пакуль гэта не наступнай кропкі. 1658 01:06:28,070 --> 01:06:30,111 А потым працягнуць пойдзе да наступнай кантрольнай кропкі. 1659 01:06:30,111 --> 01:06:31,264 1660 01:06:31,264 --> 01:06:32,680 DAVIN: Любыя іншыя пытанні аб GDB? 1661 01:06:32,680 --> 01:06:33,577 1662 01:06:33,577 --> 01:06:35,410 Так што я думаю, што і ў мінулым, мы прасілі вас, што 1663 01:06:35,410 --> 01:06:37,690 GDB і даць Прыклад некаторых рэчаў, якія вы 1664 01:06:37,690 --> 01:06:40,770 можна зрабіць з дапамогай GDB, так рэальны просты, але так. 1665 01:06:40,770 --> 01:06:42,280 Там вы ідзяце. 1666 01:06:42,280 --> 01:06:43,250 І вузлы? 1667 01:06:43,250 --> 01:06:49,571 >> ROB: Так, так, у якім кірунку гэта было? 1668 01:06:49,571 --> 01:06:50,851 1669 01:06:50,851 --> 01:06:51,726 СТУДЕНТ: Вось і ўсё. 1670 01:06:51,726 --> 01:06:52,160 DAVIN: Пачакайце. 1671 01:06:52,160 --> 01:06:52,270 ROB: Гэты хлопец? 1672 01:06:52,270 --> 01:06:52,936 DAVIN: Гэта адзін. 1673 01:06:52,936 --> 01:06:54,660 ROB: Гэты хлопец, ох, я не разумеў ,. 1674 01:06:54,660 --> 01:06:56,940 Такім чынам, мы не былі вядомыя на тое, што я the-- ня 1675 01:06:56,940 --> 01:06:58,680 ведаю, хто гэта was-- але пытанне. 1676 01:06:58,680 --> 01:07:01,180 Мы не ведаем, што менавіта вы пыталіся пра гэта, так што проста 1677 01:07:01,180 --> 01:07:04,800 ўдакладніць што-то. 1678 01:07:04,800 --> 01:07:07,750 Такім чынам, спачатку, як я ўжо казаў, ЬурейеЕ вы заўсёды з дапамогай толькі 1679 01:07:07,750 --> 01:07:09,305 стварыць псеўданім для тыпу. 1680 01:07:09,305 --> 01:07:13,420 Дык вось тут, мянушка мы Стварэнне для гэтага тыпу структуры вузла. 1681 01:07:13,420 --> 01:07:18,070 >> Такім чынам, спачатку, ігнаруючы гэты вузел у ЬурейеЕ, так гэта структура вузла кучаравыя 1682 01:07:18,070 --> 01:07:21,060 рыхтавацца да наступнага кучаравых Артэз Тып структуры вузла. 1683 01:07:21,060 --> 01:07:23,470 І мы павінны да гэтага вузла там, таму што мы 1684 01:07:23,470 --> 01:07:25,190 трэба спасылацца вузел тут. 1685 01:07:25,190 --> 01:07:29,380 Так што з такога роду рэкурсыўнай структуры, Вы павінны даць гэтай структуры імя, 1686 01:07:29,380 --> 01:07:31,340 інакш вы не маглі кажуць структура вузла тут. 1687 01:07:31,340 --> 01:07:33,340 Калі раней з вучнем калі мы набраліся, я думаю, 1688 01:07:33,340 --> 01:07:35,423 мы не павінны сказаць, студэнт там, таму што мы 1689 01:07:35,423 --> 01:07:40,370 не павінен сказаць-структуру Студэнт ўнутры самой структуры. 1690 01:07:40,370 --> 01:07:43,730 Так што гэта рэкурсіўная што прымушае нас сказаць вузел ёсць. 1691 01:07:43,730 --> 01:07:46,610 >> Гэты вузел з'яўляецца толькі назва мы даючы вузел для вызначэння тыпу. 1692 01:07:46,610 --> 01:07:48,520 Так што вузел ня гэтак жа, як гэты вузел. 1693 01:07:48,520 --> 01:07:51,567 Але гэты вузел з'яўляецца структура такі ж, як той структура вузла. 1694 01:07:51,567 --> 01:07:54,150 DAVIN: Таму, калі вы тэлефануеце, як, вузел у галоўнай функцыі, 1695 01:07:54,150 --> 01:07:55,350 Вы ж не збіраецеся павінен сказаць, структура вузла. 1696 01:07:55,350 --> 01:07:58,360 Вы можаце проста сказаць вузел, таму што вузел з'яўляецца ў асноўным different-- 1697 01:07:58,360 --> 01:07:59,440 Вы кажаце, ОК. 1698 01:07:59,440 --> 01:08:01,490 Замест таго, каб патэлефанаваць структура вузла ў сваім кодзе, 1699 01:08:01,490 --> 01:08:04,050 Я проста хачу, каб перайменаваць яго як вузел, каб зрабіць яго больш лёгкім. 1700 01:08:04,050 --> 01:08:06,800 >> ROB: Калі вас заўсёды выкарыстоўваць ЬурейеЕ, то гэта 1701 01:08:06,800 --> 01:08:11,240 гэта адзінае месца, вы будзеце мець, абвясціць зменную з STRUCT вузла 1702 01:08:11,240 --> 01:08:11,740 зорка, так. 1703 01:08:11,740 --> 01:08:14,650 1704 01:08:14,650 --> 01:08:20,801 >> DAVIN: ОК, так што апошняя частка Цяжка навучыць because-- 1705 01:08:20,801 --> 01:08:22,185 1706 01:08:22,185 --> 01:08:22,685 ROB: Што? 1707 01:08:22,685 --> 01:08:24,098 1708 01:08:24,098 --> 01:08:25,649 >> DAVIN: Таму што гэта кадаваньне на паперы. 1709 01:08:25,649 --> 01:08:28,689 Такім чынам, кожны год у нас ёсць Код на папяровых пытанняў. 1710 01:08:28,689 --> 01:08:32,510 Так што я думаю, што ў мінулым годзе, 12 з 80 балаў былі Код на паперы. 1711 01:08:32,510 --> 01:08:36,720 Год да гэтага, 10 з 80, За год да гэтага, 20 з 100, 1712 01:08:36,720 --> 01:08:37,939 так нямала з іх. 1713 01:08:37,939 --> 01:08:40,970 Такім чынам, вы будзеце мець, каб быць у стане кадзіраваць гэтыя функцыі ўручную. 1714 01:08:40,970 --> 01:08:45,340 >> Таму я меркаваў, што мы маглі б прайсці Пару з іх і паглядзець, як людзі робяць, 1715 01:08:45,340 --> 01:08:47,340 выгляд хадзіць праз іх павольна з людзьмі. 1716 01:08:47,340 --> 01:08:48,790 1717 01:08:48,790 --> 01:08:52,420 Так звычайна, StrLen і atoi былі вельмі папулярныя. 1718 01:08:52,420 --> 01:08:55,670 У мінулым годзе, я думаю, што мы павінны былі GetPositiveInt і RandomInt. 1719 01:08:55,670 --> 01:08:58,591 Але ваеннапалонных, таму магутнасць, таксама станоўчым занадта. 1720 01:08:58,591 --> 01:09:00,965 Давайце проста прайсці, можа быць, адзін ці два з іх разам. 1721 01:09:00,965 --> 01:09:02,510 1722 01:09:02,510 --> 01:09:03,729 Што людзі хочуць бачыць? 1723 01:09:03,729 --> 01:09:05,037 1724 01:09:05,037 --> 01:09:05,767 >> СТУДЕНТ: Atoi. 1725 01:09:05,767 --> 01:09:06,350 СТУДЕНТ: Так. 1726 01:09:06,350 --> 01:09:06,859 DAVIN: Atoi? 1727 01:09:06,859 --> 01:09:07,800 СТУДЕНТ: [неразборліва]. 1728 01:09:07,800 --> 01:09:09,682 DAVIN: ОК, я збіраюся зрабіць гэта на дошцы. 1729 01:09:09,682 --> 01:09:11,765 Ці ёсць у вас перавагі калі я раблю гэта тут ці там? 1730 01:09:11,765 --> 01:09:13,580 1731 01:09:13,580 --> 01:09:14,550 Там, Гейб кажа там. 1732 01:09:14,550 --> 01:09:16,729 1733 01:09:16,729 --> 01:09:19,580 >> ROB: І гэта агульныя думкі на гэтыя пытанні кадавання. 1734 01:09:19,580 --> 01:09:21,705 Паспрабуйце напісаць што-небудзь. 1735 01:09:21,705 --> 01:09:22,580 Ня пакіньце гэта поле пустым. 1736 01:09:22,580 --> 01:09:23,080 >> DAVIN: Так. 1737 01:09:23,080 --> 01:09:25,520 ROB: Калі вы можаце атрымаць вярнуцца тып правільна, 1738 01:09:25,520 --> 01:09:27,090 ці, можа быць, мы маглі б даць яго Вы, але калі вы можаце, як, 1739 01:09:27,090 --> 01:09:30,256 напісаць агульную функцыю подпіс, Калі вы можаце атрымаць базавыя выпадкі правільна, 1740 01:09:30,256 --> 01:09:32,244 ці прыватныя выпадкі, або успамінаючы чэк на нуль, 1741 01:09:32,244 --> 01:09:34,160 да таго часу, пакуль у вас ёсць некаторыя рэчы, то, магчыма, мы 1742 01:09:34,160 --> 01:09:35,880 можа даць вам пару паказвае на праблемы. 1743 01:09:35,880 --> 01:09:36,810 Не проста пакіньце поле пустым. 1744 01:09:36,810 --> 01:09:38,560 >> DAVIN: Так, і калі вам толькі цалкам 1745 01:09:38,560 --> 01:09:40,580 тупік ў тым, як на самай справе ператворыцца ў кодзе. 1746 01:09:40,580 --> 01:09:43,140 Калі вы пішаце псевдокод, гэта вельмі добра таксама. 1747 01:09:43,140 --> 01:09:46,390 Так што гэта як, гэта шэсць цэлых пытанне, і вы напішыце правільны псевдокод, 1748 01:09:46,390 --> 01:09:47,858 Вы атрымаеце не менш за два кропак. 1749 01:09:47,858 --> 01:09:49,149 Так што не проста пакінуць іх пустымі. 1750 01:09:49,149 --> 01:09:50,279 Паспрабуйце пакласці што-то. 1751 01:09:50,279 --> 01:09:51,770 >> ROB: Яна павінна быць правільна псевдокод, хоць. 1752 01:09:51,770 --> 01:09:52,270 >> DAVIN: Так. 1753 01:09:52,270 --> 01:09:55,381 ROB: Такім чынам, мы, як правіла, з'яўляюцца менш паблажлівы з памылкамі ў псевдокоде. 1754 01:09:55,381 --> 01:09:57,130 Дэвин: ОК, так што вы, хлопцы хацеў бачыць atoi. 1755 01:09:57,130 --> 01:09:58,480 1756 01:09:58,480 --> 01:10:02,820 ОК, так што проста really-- так што вы хочаце зрабіць, 1757 01:10:02,820 --> 01:10:04,969 гэта вы збіраецеся быць улічваючы нейкія колькасці. 1758 01:10:04,969 --> 01:10:07,010 Але гэтая колькасць не будзе інтэрвал, ці не так? 1759 01:10:07,010 --> 01:10:08,574 Што гэта будзе? 1760 01:10:08,574 --> 01:10:09,480 >> СТУДЕНТ: [неразборліва]. 1761 01:10:09,480 --> 01:10:11,146 >> DAVIN: Гэта збіраецца быць радком, ці не так? 1762 01:10:11,146 --> 01:10:13,160 Так што калі вы далі string-- давайце say-- 1763 01:10:13,160 --> 01:10:15,228 >> ROB: Ці павінен я падцягнуць рэдактар? 1764 01:10:15,228 --> 01:10:16,200 Я магу выцягнуць up-- 1765 01:10:16,200 --> 01:10:16,800 >> DAVIN: О, вы хочаце зрабіць гэта on-- 1766 01:10:16,800 --> 01:10:17,420 >> ROB: Вы б аддалі перавагу дошку? 1767 01:10:17,420 --> 01:10:18,800 >> DAVIN: Што вы хочаце зрабіць? 1768 01:10:18,800 --> 01:10:19,900 Я маю на ўвазе, вы хочаце зрабіць гэта ўручную? 1769 01:10:19,900 --> 01:10:21,460 Ці вы хочаце, каб зрабіць гэта з дапамогай кампутара? 1770 01:10:21,460 --> 01:10:22,180 >> ROB: Зрабіце гэта ўручную. 1771 01:10:22,180 --> 01:10:22,805 >> DAVIN: [Смяецца] 1772 01:10:22,805 --> 01:10:23,950 ROB: Зрабіце гэта ўручную. 1773 01:10:23,950 --> 01:10:25,469 >> DAVIN: ОК, так што гэта будзе atoi. 1774 01:10:25,469 --> 01:10:27,760 Так што it-- Я маю на ўвазе, мы будзем верагодна, дасць вам гэта. 1775 01:10:27,760 --> 01:10:29,106 Але тое, што ён збіраецца вярнуцца? 1776 01:10:29,106 --> 01:10:29,452 >> СТУДЕНТ: Int. 1777 01:10:29,452 --> 01:10:31,076 >> DAVIN: Гэта збіраецца вярнуцца Int, ці не так? 1778 01:10:31,076 --> 01:10:33,772 So-- Я не хачу, каб гэта зрабіць ёсць. 1779 01:10:33,772 --> 01:10:34,510 Я зраблю гэта тут. 1780 01:10:34,510 --> 01:10:36,596 >> ROB: Вы можаце цягнуць яго ўніз а затым націснуць на яго. 1781 01:10:36,596 --> 01:10:38,500 1782 01:10:38,500 --> 01:10:40,385 >> DAVIN: так. 1783 01:10:40,385 --> 01:10:43,880 [Смяецца] змяненне гульні. 1784 01:10:43,880 --> 01:10:50,950 ОК, так што гэта будзе INT atoi, і тое, што ён збіраецца распачаць? 1785 01:10:50,950 --> 01:10:52,180 1786 01:10:52,180 --> 01:10:57,780 Сімвал зоркі, так проста Радок, зорка з, як, што. 1787 01:10:57,780 --> 01:10:59,240 >> ROB: Nice зорка, добры. 1788 01:10:59,240 --> 01:11:02,582 1789 01:11:02,582 --> 01:11:04,040 DAVIN: Гэта не можа быць там, ОК. 1790 01:11:04,040 --> 01:11:04,540 ROB: Так. 1791 01:11:04,540 --> 01:11:06,670 DAVIN: ОК, так што першы што вы хочаце do-- I 1792 01:11:06,670 --> 01:11:08,490 не ведаю, калі хто-небудзь паглядзеў на практыцы solutions-- 1793 01:11:08,490 --> 01:11:10,150 але тое, што вы збіраецеся хацець зрабіць гэта вы 1794 01:11:10,150 --> 01:11:11,570 захоча ёсць пятля, таму што ты 1795 01:11:11,570 --> 01:11:14,100 захоча фактычна пакрокава гэтага радка. 1796 01:11:14,100 --> 01:11:18,880 Так helpful-- так скажам мы збіраемся для завесы, 1797 01:11:18,880 --> 01:11:22,270 і мы збіраемся прайсці праз кожны элемент радка. 1798 01:11:22,270 --> 01:11:23,470 Як доўга гэта? 1799 01:11:23,470 --> 01:11:26,464 Колькі разоў мы збіраемся для перабору ў тым, што для цыкла? 1800 01:11:26,464 --> 01:11:27,130 СТУДЕНТ: Sterln? 1801 01:11:27,130 --> 01:11:27,963 DAVIN: Sterln, так. 1802 01:11:27,963 --> 01:11:29,350 1803 01:11:29,350 --> 01:11:41,294 Так скажам, даўжыня інтэрвал роўны sterln с. 1804 01:11:41,294 --> 01:11:44,240 1805 01:11:44,240 --> 01:11:48,740 І проста цікава, чаму гэта заўсёды свайго роду з лепш рабіць гэта па-за завесы? 1806 01:11:48,740 --> 01:11:52,277 Як, чаму гэта лепш назваць гэтая функцыя па-за цыкла? 1807 01:11:52,277 --> 01:11:53,360 Проста праверце хуткі здаровае? 1808 01:11:53,360 --> 01:11:55,810 1809 01:11:55,810 --> 01:11:56,311 Так? 1810 01:11:56,311 --> 01:11:58,268 СТУДЕНТ: Такім чынам, вы не павінны працягваць правяраць яго. 1811 01:11:58,268 --> 01:11:59,400 Вы можаце проста [неразборліва]. 1812 01:11:59,400 --> 01:12:01,560 >> DAVIN: Роўна, так што так, менавіта тое, што яна сказала. 1813 01:12:01,560 --> 01:12:03,101 Такім чынам, мы не павінны працягваць правяраць яго. 1814 01:12:03,101 --> 01:12:05,690 Так, напрыклад, калі я тэлефаную гэтая функцыя ў цыкле, 1815 01:12:05,690 --> 01:12:08,050 Затым я збіраюся працягваць тэлефанаваць гэтая функцыя некалькі разоў. 1816 01:12:08,050 --> 01:12:10,080 І што адбываецца, каб паменшыць эфектыўнасць вашай праграмы. 1817 01:12:10,080 --> 01:12:12,370 Так што гэта заўсёды карысна аб'явіць яго па-за. 1818 01:12:12,370 --> 01:12:14,370 >> ROB: Гэта кажа, на любы з гэтых праблем, 1819 01:12:14,370 --> 01:12:17,940 у значнай ступені, пакуль вы атрымліваеце працоўнага раствора, вы атрымаеце поўны крэдыт. 1820 01:12:17,940 --> 01:12:20,820 Так што не хвалюйцеся, калі ваш дызайн абсалютна жахлівым. 1821 01:12:20,820 --> 01:12:22,120 1822 01:12:22,120 --> 01:12:25,230 Гэта можа зрабіць нас засмучаны чытаць ваш код. 1823 01:12:25,230 --> 01:12:28,160 Аднак да таго часу, як яно працуе, вы атрымаеце ачкоў. 1824 01:12:28,160 --> 01:12:29,302 >> DAVIN: Так. 1825 01:12:29,302 --> 01:12:31,260 Такім чынам, тое, што я збіраюся абвясціць некаторыя зменныя. 1826 01:12:31,260 --> 01:12:33,900 Гэта проста будзе тэлефанаваць Int суму. 1827 01:12:33,900 --> 01:12:37,031 І я збіраюся ўсталяваць гэта роўны нулю, як гэта. 1828 01:12:37,031 --> 01:12:38,780 І гэта толькі збіраецца быць запаўняльнік. 1829 01:12:38,780 --> 01:12:40,960 Так што гэта будзе тое, што я збіраюся вярнуцца. 1830 01:12:40,960 --> 01:12:43,730 Так што я збіраюся ў рэшце рэшт вярнуцца суму з гэтай праграмы. 1831 01:12:43,730 --> 01:12:44,980 Таму ў мяне ёсць гэтыя дзве зменныя. 1832 01:12:44,980 --> 01:12:45,563 Я маю даўжыню. 1833 01:12:45,563 --> 01:12:46,500 У мяне ёсць суму. 1834 01:12:46,500 --> 01:12:48,290 А цяпер давайце пяройдзем у нашу радок. 1835 01:12:48,290 --> 01:12:49,510 >> Так што давайце ёсць наш цыкл. 1836 01:12:49,510 --> 01:13:06,520 Так чатыры INT я роўная 0 ж, у той час як Я менш даўжыні I плюс плюс. 1837 01:13:06,520 --> 01:13:07,150 І now-- 1838 01:13:07,150 --> 01:13:10,920 1839 01:13:10,920 --> 01:13:11,420 ROB: Nice. 1840 01:13:11,420 --> 01:13:14,030 DAVIN: ОК, а цяпер тут прыходзіць мяса нашага кода. 1841 01:13:14,030 --> 01:13:17,380 Такім чынам, вы можаце на самой справе рабіць гэта ў асноўным у адну лінію. 1842 01:13:17,380 --> 01:13:20,702 Дык хто-небудзь ёсць ідэя пра тое, што мы збіраемся рабіць далей? 1843 01:13:20,702 --> 01:13:23,680 1844 01:13:23,680 --> 01:13:25,380 ОК, так што ўсё ў парадку. 1845 01:13:25,380 --> 01:13:35,860 Такім чынам, мы робім сказаць суму equals-- дазвольце мне бегчы стрымгалоў гэты over-- суму 1846 01:13:35,860 --> 01:13:50,010 роўная суме раз 10 plus-- мы збіраецца заняць ы I мінус адзін 1847 01:13:50,010 --> 01:13:54,787 Цытата 0 адна цытата зроблена, як, што. 1848 01:13:54,787 --> 01:13:55,620 ROB: Вельмі інтуітыўны. 1849 01:13:55,620 --> 01:13:56,980 1850 01:13:56,980 --> 01:13:57,880 >> DAVIN: Друз яго. 1851 01:13:57,880 --> 01:14:01,438 Такім чынам, someone-- я атрымаў яго, я атрымаў яго. 1852 01:14:01,438 --> 01:14:03,680 1853 01:14:03,680 --> 01:14:06,960 ОК, так што гэта відавочна ідзе ўверх. 1854 01:14:06,960 --> 01:14:08,320 1855 01:14:08,320 --> 01:14:09,450 Што гэта значыць? 1856 01:14:09,450 --> 01:14:12,120 Дык хто-небудзь ведае, што гэта значыць? 1857 01:14:12,120 --> 01:14:13,826 Ці ўсё могуць пераканацца ў гэтым? 1858 01:14:13,826 --> 01:14:16,088 Не, ніхто не можа ў гэтым пераканацца, у парадку. 1859 01:14:16,088 --> 01:14:17,390 1860 01:14:17,390 --> 01:14:18,340 Я збіраюся to-- 1861 01:14:18,340 --> 01:14:20,506 >> ROB: Я збіраюся напісаць Формула проста прама тут. 1862 01:14:20,506 --> 01:14:23,140 DAVIN: ОК, Роб збіраецца гэта зрабіць на кампутары, які весела. 1863 01:14:23,140 --> 01:14:26,889 1864 01:14:26,889 --> 01:14:27,514 ROB: О, мой Бог. 1865 01:14:27,514 --> 01:14:34,340 1866 01:14:34,340 --> 01:14:35,010 Ці я не буду. 1867 01:14:35,010 --> 01:14:36,288 1868 01:14:36,288 --> 01:14:36,954 DAVIN: чакання. 1869 01:14:36,954 --> 01:14:42,300 1870 01:14:42,300 --> 01:14:44,260 СТУДЕНТ: У мяне ёсць пытанне. 1871 01:14:44,260 --> 01:14:45,348 DAVIN: Так, вядома. 1872 01:14:45,348 --> 01:14:46,223 СТУДЕНТ: [неразборліва]? 1873 01:14:46,223 --> 01:14:52,529 1874 01:14:52,529 --> 01:14:54,570 DAVIN: ОК, так гэта на самай справе, як, толькі ў агульным, 1875 01:14:54,570 --> 01:14:56,710 калі б вы былі паставіць, як, У гэтай дэкларацыі міжнар 1876 01:14:56,710 --> 01:14:59,770 Я роўная даўжыні 0 коску роўная sterln, that-- 1877 01:14:59,770 --> 01:15:01,200 >> СТУДЕНТ: [неразборліва]. 1878 01:15:01,200 --> 01:15:03,585 >> DAVIN: Гэта добра, таму што that-- 1879 01:15:03,585 --> 01:15:05,543 СТУДЕНТ: Навошта вы нават трэба выкарыстоўваць даўжыню? 1880 01:15:05,543 --> 01:15:08,620 Чаму мы не маглі проста [неразборліва] sterln с, як увесь час [неразборліва]? 1881 01:15:08,620 --> 01:15:09,460 >> DAVIN: Вы маеце на ўвазе тут? 1882 01:15:09,460 --> 01:15:10,001 >> СТУДЕНТ: Так. 1883 01:15:10,001 --> 01:15:12,630 DAVIN: Таму што кожны Час гэта для завес трас, 1884 01:15:12,630 --> 01:15:14,295 гэта будзе ацаніць гэты стан. 1885 01:15:14,295 --> 01:15:14,920 СТУДЕНТ: справа. 1886 01:15:14,920 --> 01:15:16,836 DAVIN: А калі ў вас ёсць sterln ёсць, то гэта 1887 01:15:16,836 --> 01:15:19,510 прыйдзецца на самай справе назваць што функцыя кожны раз. 1888 01:15:19,510 --> 01:15:21,090 Такім чынам, замест таго, каб проста параўноўваючы яго з міжнар, 1889 01:15:21,090 --> 01:15:23,548 Вы збіраецеся тэлефанаваць Функцыя, а затым параўноўваючы яго 1890 01:15:23,548 --> 01:15:24,510 на вяртаецца значэнне. 1891 01:15:24,510 --> 01:15:25,860 Так, так што гэта проста, так. 1892 01:15:25,860 --> 01:15:28,860 1893 01:15:28,860 --> 01:15:30,770 >> Добры, ОК, так што зараз кожны можа ўбачыць яго. 1894 01:15:30,770 --> 01:15:33,400 Што does-- гэта як, гэта ён. 1895 01:15:33,400 --> 01:15:34,580 Гэта варэнне, прама тут. 1896 01:15:34,580 --> 01:15:37,030 1897 01:15:37,030 --> 01:15:37,930 Што гэта значыць? 1898 01:15:37,930 --> 01:15:39,250 1899 01:15:39,250 --> 01:15:39,970 Што я раблю? 1900 01:15:39,970 --> 01:15:41,890 1901 01:15:41,890 --> 01:15:42,880 Так, ідэя? 1902 01:15:42,880 --> 01:15:43,482 Так? 1903 01:15:43,482 --> 01:15:45,692 >> СТУДЕНТ: Ну, так што, калі Вы ўводзіце масіў, 1904 01:15:45,692 --> 01:15:47,525 Вы збіраецеся ісці злева направа, 1905 01:15:47,525 --> 01:15:51,786 так вы збіраецеся ісці ў дзесятковай ад ўніз [неразборліва]. 1906 01:15:51,786 --> 01:15:52,410 DAVIN: Цалкам дакладна. 1907 01:15:52,410 --> 01:15:55,063 СТУДЕНТ: Так кожны трэба памножыць 1908 01:15:55,063 --> 01:15:59,490 тое, што вы бачылі, як ад значэння міжнар па раз, калі вы атрымліваеце рухацца, што над адным. 1909 01:15:59,490 --> 01:16:01,590 >> DAVIN: Выдатна, выдатна, так, напрыклад, давайце 1910 01:16:01,590 --> 01:16:05,376 сказаць, што я даў you-- Я буду пісаць тут. 1911 01:16:05,376 --> 01:16:06,480 Не, я не. 1912 01:16:06,480 --> 01:16:08,640 Я збіраюся напісаць сюды. 1913 01:16:08,640 --> 01:16:12,080 Скажам, я даў табе 76, ці не так? 1914 01:16:12,080 --> 01:16:13,380 Скажам, я даць вам 76. 1915 01:16:13,380 --> 01:16:15,360 Гэта радок для пачатку, добра? 1916 01:16:15,360 --> 01:16:16,840 >> Так даўжыня ёсць што? 1917 01:16:16,840 --> 01:16:18,060 1918 01:16:18,060 --> 01:16:19,060 2, ці не так? 1919 01:16:19,060 --> 01:16:20,290 Сума 0. 1920 01:16:20,290 --> 01:16:21,600 Тады мы скачам ў нашай цыкл. 1921 01:16:21,600 --> 01:16:24,187 ОК, першая ітэрацыя гэта, што гэта будзе? 1922 01:16:24,187 --> 01:16:25,270 Гэта будзе сума 0. 1923 01:16:25,270 --> 01:16:27,180 Так падвесці раз 10 0. 1924 01:16:27,180 --> 01:16:28,500 Гэта бессэнсоўна. 1925 01:16:28,500 --> 01:16:29,880 Тады што ж гэта зрабіць? 1926 01:16:29,880 --> 01:16:30,845 1927 01:16:30,845 --> 01:16:31,720 СТУДЕНТ: [неразборліва]. 1928 01:16:31,720 --> 01:16:33,110 1929 01:16:33,110 --> 01:16:37,430 >> DAVIN: Гэта збіраецца павярнуць, што характар ​​у цэлы лік, ці не так? 1930 01:16:37,430 --> 01:16:42,160 Гэта накшталт як з вашым Праблема set-- гэтым light-- 1931 01:16:42,160 --> 01:16:44,170 гэта накшталт як з Праблема усталяваны на Visioneer. 1932 01:16:44,170 --> 01:16:45,980 Вы маеце справу са значэннямі ASCII. 1933 01:16:45,980 --> 01:16:48,520 Так што, калі я даю вам, як, сем, але гэта характар, 1934 01:16:48,520 --> 01:16:50,965 і вы хочаце ведаць, Добра, што лічба з'яўляецца тое, што? 1935 01:16:50,965 --> 01:16:53,540 1936 01:16:53,540 --> 01:16:54,910 Так, вы маглі б, так. 1937 01:16:54,910 --> 01:16:55,900 Так што лічба, што? 1938 01:16:55,900 --> 01:16:59,550 Вы можаце адняць 0 ад яго, але вы павінны адняць 0, характар. 1939 01:16:59,550 --> 01:17:01,425 >> І дзе некаторыя людзі атрымаць спатыкнуўся, яны 1940 01:17:01,425 --> 01:17:04,260 як, у парадку, добра, я павінен ведаць, значэння ASCII для гэтай віктарыне? 1941 01:17:04,260 --> 01:17:06,218 Не, вы, безумоўна, не трэба ведаць ASCII 1942 01:17:06,218 --> 01:17:09,520 Значэння, быццам бы, у ніжнім рэгістры , Верхні рэгістр, нуль. 1943 01:17:09,520 --> 01:17:12,060 >> ROB: Там няма прычын, каб калі-небудзь паставіць гэта на шпаргалку. 1944 01:17:12,060 --> 01:17:14,226 >> DAVIN: Вызначана не марнаваць сваю прастору ў гэтым. 1945 01:17:14,226 --> 01:17:18,090 Вы можаце literally-- толькі замест сказаць 48, як аж 1946 01:17:18,090 --> 01:17:24,630 там, што эквівалентна кажучы адзін, адзін апостраф, 1947 01:17:24,630 --> 01:17:27,680 так, сапраўды гэтак жа. 1948 01:17:27,680 --> 01:17:34,106 >> ROB: Вы маглі б падумаць, пра гэта, як if-- Бога, мне патрэбен мой, 1949 01:17:34,106 --> 01:17:37,490 oops-- вы маглі амаль думаць пра гэта як быццам у нас ёсць што-то накшталт гэтага хэша 1950 01:17:37,490 --> 01:17:39,755 вызначыць 0 як 48. 1951 01:17:39,755 --> 01:17:41,320 1952 01:17:41,320 --> 01:17:42,030 Гэта не будзе працаваць. 1953 01:17:42,030 --> 01:17:45,502 Але думаць пра гэта як адзін цытатай 0 апостраф, і для ўсіх персанажаў. 1954 01:17:45,502 --> 01:17:47,960 Думайце пра гэта як канстанта, ўяўляе гэта значэнне ASCII. 1955 01:17:47,960 --> 01:17:49,080 >> DAVIN: Так. 1956 01:17:49,080 --> 01:17:52,820 Такім чынам, у першы раз праз, так з 76-- так у першы раз праз, 1957 01:17:52,820 --> 01:17:57,260 гэта толькі сімвал 7 мінус сімвал 0, 1958 01:17:57,260 --> 01:18:00,420 і тыя сем integers-- добра, тыя, 1959 01:18:00,420 --> 01:18:04,030 сем прасторы адзін ад іншы на ASCII графіцы або любы іншы. 1960 01:18:04,030 --> 01:18:06,770 Так што збіраецца вярнуць Int з 7. 1961 01:18:06,770 --> 01:18:08,720 Так што цяпер, сума роўная 7. 1962 01:18:08,720 --> 01:18:10,830 >> Добра, добра, давайце пяройдзем у гэты цыкл зноў. 1963 01:18:10,830 --> 01:18:13,010 Добра, зараз гэта сума раз 10. 1964 01:18:13,010 --> 01:18:15,800 Так вы эфектыўна перамяшчаючы 7 налева. 1965 01:18:15,800 --> 01:18:17,542 Ці мае гэта сэнс? 1966 01:18:17,542 --> 01:18:19,250 Ты эфектыўна перамяшчаючы яго налева. 1967 01:18:19,250 --> 01:18:21,790 >> І тады вы add-- гэта будзе 6 мінус 0. 1968 01:18:21,790 --> 01:18:22,650 Вось 6. 1969 01:18:22,650 --> 01:18:24,752 Так што гэта будзе 70 плюс 6. 1970 01:18:24,752 --> 01:18:25,996 76, што ваш нумар. 1971 01:18:25,996 --> 01:18:28,370 Такім чынам, незалежна ад таго, які колькасці Я даў вам, гэта павольна проста 1972 01:18:28,370 --> 01:18:31,610 збіраецца зрушыць вялікія значэння налева, 1 фактар ​​10 1973 01:18:31,610 --> 01:18:35,525 кожны раз на працягу цыклу, а затым дадаць на па меры неабходнасці. 1974 01:18:35,525 --> 01:18:37,350 1975 01:18:37,350 --> 01:18:37,865 >> У спіну? 1976 01:18:37,865 --> 01:18:40,240 СТУДЕНТ: Мы не павінны рабіць любая праверка ў праграме? 1977 01:18:40,240 --> 01:18:41,580 1978 01:18:41,580 --> 01:18:44,302 >> ROB: Так наколькі праверкі ідзе па праграме, 1979 01:18:44,302 --> 01:18:46,510 мы б расказаць вам даволі шмат, што вам трэба, каб праверыць. 1980 01:18:46,510 --> 01:18:48,670 Калі мы не кажам вам што-небудзь, то, як правіла 1981 01:18:48,670 --> 01:18:50,320 Выкажам здагадку, у вас ёсць, каб праверыць большасць рэчаў. 1982 01:18:50,320 --> 01:18:54,772 Як вы, магчыма, проста каб быць у бяспецы, вам верагодна, варта праверыць эй, гэта з нулявым? 1983 01:18:54,772 --> 01:18:56,230 Тады я паняцця не маю, што такое вярнуцца. 1984 01:18:56,230 --> 01:18:58,814 Але мы б вам сказаць, такога роду рэчы. 1985 01:18:58,814 --> 01:18:59,480 0, я не ведаю. 1986 01:18:59,480 --> 01:19:02,786 >> DAVIN: А чаму вы хацелі б пераправерыць, калі з роўна нуля? 1987 01:19:02,786 --> 01:19:03,660 СТУДЕНТ: [неразборліва]. 1988 01:19:03,660 --> 01:19:04,880 DAVIN: З-за паўкокс зоркі. 1989 01:19:04,880 --> 01:19:05,510 Гэта паказальнік. 1990 01:19:05,510 --> 01:19:09,240 Так цалкам прымальна Дэкларацыя, я мог бы сказаць, у парадку, 1991 01:19:09,240 --> 01:19:11,917 з роўны нулю, таму што гэта можа быць паказальнікам на нуль. 1992 01:19:11,917 --> 01:19:14,250 Таму, калі ў вас ёсць паказальнікі на вашым шляху ў, як гэта, 1993 01:19:14,250 --> 01:19:15,420 Вы, верагодна, варта праверыць. 1994 01:19:15,420 --> 01:19:18,461 Таму што, калі вы не пераканайцеся, што і то вы потым у ваш цыкл, 1995 01:19:18,461 --> 01:19:20,100 і вы doing-- стрымгалоў ўніз. 1996 01:19:20,100 --> 01:19:21,980 1997 01:19:21,980 --> 01:19:22,920 Скут ўніз. 1998 01:19:22,920 --> 01:19:23,860 >> ROB: На жаль, гэта так. 1999 01:19:23,860 --> 01:19:25,860 >> DAVIN: І так, як, калі гэта нуль, а затым вас 2000 01:19:25,860 --> 01:19:28,267 зрабіць гэта, што памылка вы збіраецеся атрымаць? 2001 01:19:28,267 --> 01:19:29,850 СТУДЕНТ: Вы збіраецеся атрымаць набор віну. 2002 01:19:29,850 --> 01:19:31,250 DAVIN: Вы збіраецеся ўсталяваць віна, правільна, таму што ты 2003 01:19:31,250 --> 01:19:32,616 спрабуючы індэкса ў нуль. 2004 01:19:32,616 --> 01:19:35,240 Такім чынам, вы будзеце спрабаваць індэкса ў памяць, што вы не валодаеце. 2005 01:19:35,240 --> 01:19:39,550 Такім чынам, гэта, калі гэта з'яўляецца нулявым, і Вы робіце гэта, вы будзеце цыклу. 2006 01:19:39,550 --> 01:19:43,656 >> ROB: Я таксама думаю, што на экзамене, у якім мы задалі гэтае пытанне, мы кажам вам, 2007 01:19:43,656 --> 01:19:45,655 што вы можаце проста лічыць, гэта станоўчае лік. 2008 01:19:45,655 --> 01:19:48,270 Таму што atoi Таксама чакаецца апрацоўваць адмоўныя лікі, 2009 01:19:48,270 --> 01:19:49,686 так што вы павінны былі б асаблівы выпадак. 2010 01:19:49,686 --> 01:19:53,080 Эй, гэта першы сімвал працяжнік, і ў гэтым выпадку, у парадку, 2011 01:19:53,080 --> 01:19:54,839 Зараз гэта адмоўнае лік. 2012 01:19:54,839 --> 01:19:56,380 Мы раскажам вам гэтыя віды рэчаў. 2013 01:19:56,380 --> 01:19:58,005 Мы раскажам вам, што вам трэба для працы. 2014 01:19:58,005 --> 01:19:59,310 DAVIN: Так. 2015 01:19:59,310 --> 01:20:02,530 Так што я ўпэўнены, што некаторыя людзі могуць have-- калі вы пачалі глядзець на старых экзаменаў, 2016 01:20:02,530 --> 01:20:03,900 Вы бачылі sterln. 2017 01:20:03,900 --> 01:20:05,120 Гэта папулярны. 2018 01:20:05,120 --> 01:20:09,790 І я думаю, што ў sterln, вы павінны былі зрабіць гэтую праверку для нуль, вяртанне 2019 01:20:09,790 --> 01:20:10,950 0 або што-то падобнае. 2020 01:20:10,950 --> 01:20:11,940 Як, вы павінны былі праверыць на нуль. 2021 01:20:11,940 --> 01:20:14,230 І калі вы не зрабілі, што было пазначыць прэч на віктарыне. 2022 01:20:14,230 --> 01:20:16,750 2023 01:20:16,750 --> 01:20:19,500 Так ці інакш, робіць усіх адчуваю ў парадку з atoi? 2024 01:20:19,500 --> 01:20:21,112 2025 01:20:21,112 --> 01:20:22,820 Ці хоча, каб хто-небудзь перайсці частак зноў? 2026 01:20:22,820 --> 01:20:23,815 2027 01:20:23,815 --> 01:20:25,565 ROB: О, так, я думаю, мы таксама сказаць, што вы 2028 01:20:25,565 --> 01:20:28,565 можна лічыць, што ўсе is-- што яны на самой справе увёўшы нумар, 2029 01:20:28,565 --> 01:20:32,821 што вам не прыйдзецца турбавацца аб, як, будучы літары ў радку, таму. 2030 01:20:32,821 --> 01:20:33,320 DAVIN: Так. 2031 01:20:33,320 --> 01:20:33,922 Так? 2032 01:20:33,922 --> 01:20:35,713 СТУДЕНТ: Ці можаце вы пайсці над больш адзін раз, калі 2033 01:20:35,713 --> 01:20:37,860 Вы карыстаецеся падвойныя двукоссі і адзінарныя двукоссі? 2034 01:20:37,860 --> 01:20:41,290 >> DAVIN: Вядома, так двайныя двукоссі, вельмі проста, гэта падвойныя двукоссі з'яўляюцца радкамі. 2035 01:20:41,290 --> 01:20:43,370 Так што, калі вы двойчы цытату што-небудзь, што гэта радок. 2036 01:20:43,370 --> 01:20:48,270 Так, як, калі б мне давялося гэта 0 тут, і я зрабіў гэта, гэта радок. 2037 01:20:48,270 --> 01:20:50,060 ня Вось ўжо не персанаж. 2038 01:20:50,060 --> 01:20:54,816 Так што я не магу знайсці гэтую велічыню на маім ASCII Графік, таму што гэта радок, так. 2039 01:20:54,816 --> 01:20:57,770 2040 01:20:57,770 --> 01:20:59,480 >> ОК, любыя іншыя пытанні? 2041 01:20:59,480 --> 01:21:00,405 Так? 2042 01:21:00,405 --> 01:21:02,345 >> СТУДЕНТ: Такім чынам, вы маеце ўжо адказаў на гэтае пытанне, 2043 01:21:02,345 --> 01:21:05,255 але як, калі мы на самай справе пішу гэта на віктарыне, 2044 01:21:05,255 --> 01:21:08,165 Вы хочаце, каб мы напісалі з скарачае нулі [неразборліва]? 2045 01:21:08,165 --> 01:21:11,041 2046 01:21:11,041 --> 01:21:11,540 DAVIN: Не. 2047 01:21:11,540 --> 01:21:13,800 Пытанне было павінен вам ўставіць касую рысу праз нулі 2048 01:21:13,800 --> 01:21:14,890 каб паказаць, калі яны нулі? 2049 01:21:14,890 --> 01:21:15,890 Не, мы з гэтым разбярэмся. 2050 01:21:15,890 --> 01:21:16,940 2051 01:21:16,940 --> 01:21:19,530 Так, дзякуй, што яны добрыя. 2052 01:21:19,530 --> 01:21:20,860 Добра, што-небудзь яшчэ? 2053 01:21:20,860 --> 01:21:25,060 Ці хоча хто-небудзь to-- таму я думаю, мы запускаем трохі на працягу доўгага часу. 2054 01:21:25,060 --> 01:21:27,305 Хочаце ўбачыць яшчэ адзін, або? 2055 01:21:27,305 --> 01:21:28,096 СТУДЕНТ: RandomInt. 2056 01:21:28,096 --> 01:21:29,230 2057 01:21:29,230 --> 01:21:30,750 >> DAVIN: RandomInt, ОК, дакладна. 2058 01:21:30,750 --> 01:21:32,975 Так што давайце рабіць RandomInt. 2059 01:21:32,975 --> 01:21:34,395 2060 01:21:34,395 --> 01:21:35,270 Я зраблю гэта тут. 2061 01:21:35,270 --> 01:21:36,770 2062 01:21:36,770 --> 01:21:39,210 Так RandomInt на самай справе значна прасцей. 2063 01:21:39,210 --> 01:21:43,578 Я думаю, што atoi, верагодна, адзін з самых цяжкіх што мы папрасілі ў папярэднія гады. 2064 01:21:43,578 --> 01:21:44,453 СТУДЕНТ: [неразборліва]. 2065 01:21:44,453 --> 01:21:46,660 2066 01:21:46,660 --> 01:21:47,161 >> DAVIN: Што? 2067 01:21:47,161 --> 01:21:49,493 ROB: Я бачу, калі гэта збольшага з прагляду ад сюды. 2068 01:21:49,493 --> 01:21:50,040 DAVIN: Ці так гэта? 2069 01:21:50,040 --> 01:21:52,500 ROB: Я не думаю, што гэта going-- я думаю, ён збіраецца бегчы направа. 2070 01:21:52,500 --> 01:21:53,791 DAVIN: ОК, так што я буду рабіць гэта. 2071 01:21:53,791 --> 01:21:56,250 І тады вы проста пакласці яго на экране. 2072 01:21:56,250 --> 01:21:57,150 >> ROB: Добра. 2073 01:21:57,150 --> 01:21:58,190 >> DAVIN: Вы хочаце быць маім кніжнік? 2074 01:21:58,190 --> 01:21:58,600 >> ROB: Так. 2075 01:21:58,600 --> 01:21:59,100 >> DAVIN: Ніца. 2076 01:21:59,100 --> 01:22:01,210 2077 01:22:01,210 --> 01:22:02,727 ОК, я магу сцерці гэта? 2078 01:22:02,727 --> 01:22:04,188 >> СТУДЕНТ: Так. 2079 01:22:04,188 --> 01:22:05,162 >> DAVIN: Гэта так цяжка. 2080 01:22:05,162 --> 01:22:10,032 2081 01:22:10,032 --> 01:22:12,062 (Спевы) Ты робіш што вы робіце. 2082 01:22:12,062 --> 01:22:14,454 І рабіць тое, што вы не ведаеце. 2083 01:22:14,454 --> 01:22:14,954 Добра. 2084 01:22:14,954 --> 01:22:19,790 2085 01:22:19,790 --> 01:22:22,930 >> Добра, калі я правільна памятаю, на віктарына RandomInt пахадзіў, 2086 01:22:22,930 --> 01:22:26,190 ОК, я збіраюся даць вам два нумары, як у а і б. 2087 01:22:26,190 --> 01:22:30,380 І я хачу, каб ты даў мне RandomInt паміж гэтымі лікамі. 2088 01:22:30,380 --> 01:22:33,440 Так RandomInt збіраецца ўзяць два numbers-- 2089 01:22:33,440 --> 01:22:41,690 так RandomInt-- і гэта збіраецца вяртаць Int. 2090 01:22:41,690 --> 01:22:42,930 >> Так што вяртаецца значэнне? 2091 01:22:42,930 --> 01:22:44,151 Я толькі што сказаў вам. 2092 01:22:44,151 --> 01:22:44,650 Int, ці не так? 2093 01:22:44,650 --> 01:22:46,400 2094 01:22:46,400 --> 01:22:49,260 Як гэта, і тады гэта збіраецца ўзяць два цэлых. 2095 01:22:49,260 --> 01:22:56,301 Так што гэта зойме Int і INT б, як што. 2096 01:22:56,301 --> 01:22:58,217 Так што RandomInt з'яўляецца збіраюся зрабіць, гэта ён збіраецца 2097 01:22:58,217 --> 01:23:02,440 вярнуцца выпадковае значэнне паміж гэтымі двума значэннямі. 2098 01:23:02,440 --> 01:23:05,140 Так што гэта будзе больш чым, менш, чым б. 2099 01:23:05,140 --> 01:23:09,020 Так што я думаю, што вы, верагодна, можа лічыць, што з'яўляецца меншым з двух значэнняў. 2100 01:23:09,020 --> 01:23:12,210 Так што, калі мы маем справу з Выпадковасць, што функцыя 2101 01:23:12,210 --> 01:23:14,825 мы бачылі, што дае нам выпадковыя рэчы? 2102 01:23:14,825 --> 01:23:15,450 СТУДЕНТ: Drand. 2103 01:23:15,450 --> 01:23:16,506 DAVIN: Drand, дакладна. 2104 01:23:16,506 --> 01:23:18,630 Такім чынам, вы будзеце, верагодна, хочаце выкарыстоўваць drand. 2105 01:23:18,630 --> 01:23:19,940 2106 01:23:19,940 --> 01:23:29,160 Такім чынам, вы можаце сказаць, інтэрвал выпадковай, і мы будзем проста сказаць, што гэта складае 0 прама цяпер. 2107 01:23:29,160 --> 01:23:30,170 2108 01:23:30,170 --> 01:23:38,690 І яны мы збіраемся сказаць, ОК, выпадковыя роўна drand 48. 2109 01:23:38,690 --> 01:23:39,747 2110 01:23:39,747 --> 01:23:40,830 І што ж гэта вяртанне? 2111 01:23:40,830 --> 01:23:43,742 Што гэта функцыя дасць вам? 2112 01:23:43,742 --> 01:23:45,610 >> СТУДЕНТ: ад 0 да 1. 2113 01:23:45,610 --> 01:23:47,870 >> DAVIN: Так, паміж 0 і 1. 2114 01:23:47,870 --> 01:23:48,890 Дык гэта будзе be-- 2115 01:23:48,890 --> 01:23:51,070 >> ROB: І гэта is-- я думаю, мы б расказаць вам пра гэта. 2116 01:23:51,070 --> 01:23:52,670 Як можна выкарыстоўваць drand 48. 2117 01:23:52,670 --> 01:23:54,350 Вы можаце пераканацца ў гэтым на мінулым экзамену. 2118 01:23:54,350 --> 01:23:56,720 Але мы б, верагодна, сказаць вам можна выкарыстоўваць drand 48, які 2119 01:23:56,720 --> 01:23:58,790 вяртае паплавок паміж 0 і 1. 2120 01:23:58,790 --> 01:24:00,830 >> DAVIN: Так, так, я упэўнены, што на экзамене 2121 01:24:00,830 --> 01:24:03,860 ён кажа вам, верагодна, хочаце выкарыстоўваць drand, так. 2122 01:24:03,860 --> 01:24:07,041 Дык гэта будзе вярнуцца некаторы значэнне паміж 0 і 1. 2123 01:24:07,041 --> 01:24:08,790 І тады тое, што ты захоча зрабіць? 2124 01:24:08,790 --> 01:24:16,360 Ну, вы хочаце, каб памножыць по-- пачакайце, я думаю, што гэта, як гэта, прабачце. 2125 01:24:16,360 --> 01:24:18,018 Я проста гэта зрабіць. 2126 01:24:18,018 --> 01:24:19,410 Я не ведаю. 2127 01:24:19,410 --> 01:24:22,240 >> Так бы мінус. 2128 01:24:22,240 --> 01:24:23,310 2129 01:24:23,310 --> 01:24:24,490 Дык чаму б мінус? 2130 01:24:24,490 --> 01:24:26,110 2131 01:24:26,110 --> 01:24:30,490 Так скажам, drand дае вам назад int-- ОК, я проста рабіць усё астатняе, 2132 01:24:30,490 --> 01:24:33,380 так плюс. 2133 01:24:33,380 --> 01:24:36,130 Так што does-- у з'яўляецца б мінус. 2134 01:24:36,130 --> 01:24:40,670 Так скажам, што drand дае вам назад максімальнае значэнне гэта магло магчыма 2135 01:24:40,670 --> 01:24:41,410 даць вам. 2136 01:24:41,410 --> 01:24:42,409 Што гэта будзе? 2137 01:24:42,409 --> 01:24:43,010 СТУДЕНТ: 1. 2138 01:24:43,010 --> 01:24:44,430 >> DAVIN: 1, ці не так? 2139 01:24:44,430 --> 01:24:47,880 Так што, калі гэта 1, а ты памножыўшы яго на б мінус, 2140 01:24:47,880 --> 01:24:50,110 добра, вось толькі Розніца паміж мінус А. 2141 01:24:50,110 --> 01:24:52,870 І калі вы затым дадаць, што таму на, што ёсць што? 2142 01:24:52,870 --> 01:24:54,290 2143 01:24:54,290 --> 01:24:55,180 Гэта ў асноўным б. 2144 01:24:55,180 --> 01:24:56,435 2145 01:24:56,435 --> 01:24:57,310 Ці мае гэта сэнс? 2146 01:24:57,310 --> 01:24:57,851 >> СТУДЕНТ: Так. 2147 01:24:57,851 --> 01:24:59,480 2148 01:24:59,480 --> 01:25:02,170 >> DAVIN: Так што, калі гэта максімум шануеце гэта магло б быць, 2149 01:25:02,170 --> 01:25:03,175 гэта будзе адзін. 2150 01:25:03,175 --> 01:25:04,122 2151 01:25:04,122 --> 01:25:06,330 А потым гэта проста Розніца паміж імі. 2152 01:25:06,330 --> 01:25:11,410 Дадаць на, так што гэта збіраецца вярнуцца выпадковым. 2153 01:25:11,410 --> 01:25:15,000 2154 01:25:15,000 --> 01:25:18,620 І ў выпадку, кутняй drand дае вам назад 1, 2155 01:25:18,620 --> 01:25:20,970 выпадковых будзе проста эфектыўна б. 2156 01:25:20,970 --> 01:25:22,700 Але гэта максімум, што можа быць. 2157 01:25:22,700 --> 01:25:27,420 Так што, калі гэта будзе менш, чым што, так скажам, што яго, як 0,9, 2158 01:25:27,420 --> 01:25:31,080 так то 0,9 разы б мінус будзе менш 2159 01:25:31,080 --> 01:25:33,230 , Чым розніца паміж б мінус. 2160 01:25:33,230 --> 01:25:35,830 >> І тады, калі вы дадасце што на, тое, што значэнне 2161 01:25:35,830 --> 01:25:38,986 будзе больш, чым, таму Вы дадаеце што-то на яго, 2162 01:25:38,986 --> 01:25:40,360 але гэта будзе менш б. 2163 01:25:40,360 --> 01:25:41,430 2164 01:25:41,430 --> 01:25:44,420 Такім чынам, вы збіраецеся атрымаць выпадковы лік, таму што вы тэлефануеце drand. 2165 01:25:44,420 --> 01:25:48,000 І што рэнд, што выпадковы лік будзе дзесьці пасярэдзіне 2166 01:25:48,000 --> 01:25:49,342 і б. 2167 01:25:49,342 --> 01:25:50,780 Ці мае гэта сэнс? 2168 01:25:50,780 --> 01:25:52,990 >> ROB: Проста, каб паставіць яго ў канкрэтныя лічбы, так 2169 01:25:52,990 --> 01:25:55,450 Дапусцім, мы хочам, каб забраць выпадковы лік паміж 7 і 10. 2170 01:25:55,450 --> 01:25:56,960 Так бы мінус гэта наш асартымент. 2171 01:25:56,960 --> 01:26:00,150 Так што ёсць цэлы шэраг з трох нумары мы хочам, каб выбраць з. 2172 01:26:00,150 --> 01:26:03,290 А потым множання што паміж 0 і 1 студзеня, 2173 01:26:03,290 --> 01:26:07,430 калі што тое дае нам some-- скажам, што дае нам 1,5. 2174 01:26:07,430 --> 01:26:10,670 >> Тады 1,5, мы хочам ісці з 7 па 10. 2175 01:26:10,670 --> 01:26:14,470 Так 1,5 плюс 7 падводзіць нас назад у нашым 7 да 10 дыяпазоне. 2176 01:26:14,470 --> 01:26:17,580 А потым мы яе захоўвання ўнутры цэлы лік, так што усекается да 8. 2177 01:26:17,580 --> 01:26:18,790 А потым мы проста вярнуць гэта. 2178 01:26:18,790 --> 01:26:21,310 Так бы мінус гэта наш асартымент. 2179 01:26:21,310 --> 01:26:25,770 зрушвае яго ў лічбы што мы хочам у гэтым дыяпазоне. 2180 01:26:25,770 --> 01:26:30,540 Так паміж 7 і 10, а затым мы можа вярнуць тое, што мы ў канчатковым выніку з. 2181 01:26:30,540 --> 01:26:32,684 >> DAVIN: Так, прыемна. 2182 01:26:32,684 --> 01:26:34,470 >> ROB: Дзякуй. 2183 01:26:34,470 --> 01:26:35,628 >> DAVIN: Так, у чым справа? 2184 01:26:35,628 --> 01:26:39,746 >> СТУДЕНТ: Ці ёсць у нас запусціць яго для любога віду Памылкі ASCII калі we're-- калі drand з'яўляецца 2185 01:26:39,746 --> 01:26:40,996 вяртанне паплавок [неразборліва]. 2186 01:26:40,996 --> 01:26:42,470 2187 01:26:42,470 --> 01:26:45,360 >> ROB: Гэтак жа, як Роб сказаў, таму што выпадковая ня INT, 2188 01:26:45,360 --> 01:26:47,080 так drand будзе паплавок. 2189 01:26:47,080 --> 01:26:48,470 Так, а затым ён размнажаецца па-за. 2190 01:26:48,470 --> 01:26:50,507 І вы можаце атрымаць некаторыя выгляд лікаў з якая плавае кропкай. 2191 01:26:50,507 --> 01:26:51,840 І тады гэта будзе абрэзаць. 2192 01:26:51,840 --> 01:26:52,339 >> СТУДЕНТ: ОК. 2193 01:26:52,339 --> 01:26:53,019 DAVIN: Так. 2194 01:26:53,019 --> 01:26:56,060 ROB: А калі кампілятар былі папярэдзіць Вы о, як, страта дакладнасці, 2195 01:26:56,060 --> 01:26:58,986 проста кінулі на Int ў ёсць, і то гэта добра. 2196 01:26:58,986 --> 01:27:00,398 2197 01:27:00,398 --> 01:27:00,898 DAVIN: Да? 2198 01:27:00,898 --> 01:27:02,332 2199 01:27:02,332 --> 01:27:04,722 >> СТУДЕНТ: Ці будзе гэта мець ж верагоднасць атрымання, 2200 01:27:04,722 --> 01:27:06,156 як, бы або [неразборліва]? 2201 01:27:06,156 --> 01:27:08,080 2202 01:27:08,080 --> 01:27:10,980 >> ROB: Так is-- Я на самой справе wondering-- з'яўляецца RandomInt мяркуецца 2203 01:27:10,980 --> 01:27:14,362 каб быць нумарам ад меней б? 2204 01:27:14,362 --> 01:27:16,820 Маўляў, калі гэта ад 7 да 10, якія магчымасці? 2205 01:27:16,820 --> 01:27:18,454 7, 8 і 9, або 7, 8, 9, 10? 2206 01:27:18,454 --> 01:27:19,120 DAVIN: я забываю. 2207 01:27:19,120 --> 01:27:19,880 На праблемнай set-- 2208 01:27:19,880 --> 01:27:20,570 >> ROB: Я думаю, што гэта 7, 8, 9. 2209 01:27:20,570 --> 01:27:22,785 >> DAVIN: Яна прама кажа свайму уключна і адзін эксклюзіўнай. 2210 01:27:22,785 --> 01:27:23,110 >> ROB: Так. 2211 01:27:23,110 --> 01:27:23,670 >> DAVIN: Але я don't-- Я не-- 2212 01:27:23,670 --> 01:27:25,878 >> ROB: Так што я думаю, што гэта з'яўляецца не ўключаны, і ў гэтым выпадку, 2213 01:27:25,878 --> 01:27:28,152 ёсць роўна Верагоднасць 7, 8, і 9. 2214 01:27:28,152 --> 01:27:29,360 Там няма верагоднасць 10. 2215 01:27:29,360 --> 01:27:31,770 2216 01:27:31,770 --> 01:27:32,270 DAVIN: Да? 2217 01:27:32,270 --> 01:27:33,395 СТУДЕНТ: У мяне ёсць пытанне. 2218 01:27:33,395 --> 01:27:38,090 Мы хочам, каб вызначыць функцыю вяртае не адно значэнне, але масіў. 2219 01:27:38,090 --> 01:27:41,020 Тады што будзе Сінтаксіс пасля вяртання? 2220 01:27:41,020 --> 01:27:44,604 >> DAVIN: ОК, так, то вы would-- пасля вяртання? 2221 01:27:44,604 --> 01:27:47,020 Так, скажам, вы абвясцілі масіў дзе-то там. 2222 01:27:47,020 --> 01:27:49,708 Тады вам проста вернецца Імя масіва. 2223 01:27:49,708 --> 01:27:50,676 >> СТУДЕНТ: ОК, дзякуй. 2224 01:27:50,676 --> 01:27:51,718 Тады проста вярнуцца з a-- 2225 01:27:51,718 --> 01:27:52,759 DAVIN: Ой, пачакайце, вельмі шкада. 2226 01:27:52,759 --> 01:27:54,620 Пытанне ў тым, як Вы вяртаць масіў. 2227 01:27:54,620 --> 01:27:56,170 >> ROB: Хоць гэта не можа быць масіў, абвешчаны 2228 01:27:56,170 --> 01:27:57,260 у стэку або што-небудзь падобнае. 2229 01:27:57,260 --> 01:27:59,510 Гэта павінна было б быць што-то malloced, таму Таноса 2230 01:27:59,510 --> 01:28:01,610 як вы абысці аўтаматычнае размеркаванне памяці. 2231 01:28:01,610 --> 01:28:02,109 >> DAVIN: Так. 2232 01:28:02,109 --> 01:28:03,433 2233 01:28:03,433 --> 01:28:04,933 ROB: Як вам абыйсці лакальнай вобласці бачнасці. 2234 01:28:04,933 --> 01:28:09,670 2235 01:28:09,670 --> 01:28:11,550 >> DAVIN: Але вы б проста вярнуць яго name-- 2236 01:28:11,550 --> 01:28:17,890 >> СТУДЕНТ: [неразборліва] гэта не адзін значэнне, напрыклад, два лікі, так 2237 01:28:17,890 --> 01:28:18,390 [Неразборліва]. 2238 01:28:18,390 --> 01:28:19,590 >> DAVIN: Вы не можаце вярнуцца некалькі лік. 2239 01:28:19,590 --> 01:28:20,850 Вы не можаце, як, return-- 2240 01:28:20,850 --> 01:28:23,630 >> СТУДЕНТ: Я казаў аб вяртанні масіў ці нешта падобнае. 2241 01:28:23,630 --> 01:28:26,050 >> DAVIN: Так, так што пытанне я магу вяртаць некалькі значэнняў. 2242 01:28:26,050 --> 01:28:27,460 Вы не можаце вяртаць некалькі значэнняў. 2243 01:28:27,460 --> 01:28:30,270 Вы не можаце, як, вярнуць тое вярнуцца б ці нешта падобнае. 2244 01:28:30,270 --> 01:28:32,710 Таму што пасля таго, як вы вернецеся, вас вярнуцца з функцыі. 2245 01:28:32,710 --> 01:28:35,790 І тое функцыя будзе зроблена, і як Роб сказаў, знаходзіцца ў стэку. 2246 01:28:35,790 --> 01:28:38,260 >> Так што ўсё, што памяць проста атрымлівае вяртаецца да кампутара. 2247 01:28:38,260 --> 01:28:40,025 Усе забываецца, у асноўным. 2248 01:28:40,025 --> 01:28:41,480 2249 01:28:41,480 --> 01:28:44,430 Так што, калі вы хочаце, каб вярнуцца кратнае значэння, вы павінны вярнуць масіў, 2250 01:28:44,430 --> 01:28:45,971 І тое, як вы робіце гэта mallocing. 2251 01:28:45,971 --> 01:28:48,780 А потым вы вернецеся х падобнае. 2252 01:28:48,780 --> 01:28:50,280 У прынцыпе, вы проста вяртае імя. 2253 01:28:50,280 --> 01:28:51,620 І калі вы вернецеся нешта накшталт гэтага, вы 2254 01:28:51,620 --> 01:28:53,200 на самай справе не вяртання значэння. 2255 01:28:53,200 --> 01:28:55,430 >> Так скажам, у вас захоўваецца значэння ў масіве. 2256 01:28:55,430 --> 01:28:57,910 Ты на самай справе не вяртання гэтых каштоўнасцяў. 2257 01:28:57,910 --> 01:29:01,515 Маўляў, калі б я вярнуўся ў Int, я сапраўды вяртаюцца копіі значэнняў. 2258 01:29:01,515 --> 01:29:02,017 2259 01:29:02,017 --> 01:29:03,850 Але калі б я павінен быў вярнуцца нешта накшталт гэтага, 2260 01:29:03,850 --> 01:29:06,450 Я вяртаюся спасылку для гэтых значэнняў. 2261 01:29:06,450 --> 01:29:09,090 Так я вяртаюся, у асноўным, Адрас памяці для значэнняў. 2262 01:29:09,090 --> 01:29:10,079 Ці мае гэта сэнс? 2263 01:29:10,079 --> 01:29:10,620 СТУДЕНТ: Так. 2264 01:29:10,620 --> 01:29:11,120 DAVIN: Ніца. 2265 01:29:11,120 --> 01:29:12,760 2266 01:29:12,760 --> 01:29:13,410 Так? 2267 01:29:13,410 --> 01:29:15,430 >> СТУДЕНТ: Калі ты выкарыстоўваючы drand тут, 2268 01:29:15,430 --> 01:29:17,660 Вы павінны паставіць srand да гэтага? 2269 01:29:17,660 --> 01:29:20,320 >> DAVIN: Не, не, я так не думаю. 2270 01:29:20,320 --> 01:29:23,040 >> ROB: Так, так што ў вас ёсць сказаць што-небудзь пра srand? 2271 01:29:23,040 --> 01:29:26,900 Па змаўчанні вам ніколі не казаў srand наогул, гэта проста зрабіць srand нуль. 2272 01:29:26,900 --> 01:29:29,350 Так drand па ўласнай працы будзе. 2273 01:29:29,350 --> 01:29:33,759 І ён будзе аўтаматычна насення з бягучы час, з'яўляецца тое, што ён выкарыстоўвае. 2274 01:29:33,759 --> 01:29:35,175 2275 01:29:35,175 --> 01:29:35,675 DAVIN: Да? 2276 01:29:35,675 --> 01:29:40,950 СТУДЕНТ: Ці падабаецца вам [неразборліва] з нумарамі? 2277 01:29:40,950 --> 01:29:42,570 DAVIN: Так, можна. 2278 01:29:42,570 --> 01:29:46,770 СТУДЕНТ: Такім чынам, вы маглі сказаць, як, у 4 разы 2. 2279 01:29:46,770 --> 01:29:50,280 Справа ў тым, што вы не можаце выказаць здагадку, то інтэрвал складае чатыры байта. 2280 01:29:50,280 --> 01:29:51,020 Only-- 2281 01:29:51,020 --> 01:29:53,830 >> DAVIN: Я маю на ўвазе, для віктарыны можна. 2282 01:29:53,830 --> 01:29:54,830 [Смяецца] 2283 01:29:54,830 --> 01:29:55,780 >> ROB: М-м, няма. 2284 01:29:55,780 --> 01:29:56,780 DAVIN: Так, так, вы можаце. 2285 01:29:56,780 --> 01:30:00,197 Калі яны пытаюцца вас, як вялікі інтэрвал з'яўляецца, Вы не можаце быць, як, чатыры ці восем. 2286 01:30:00,197 --> 01:30:02,030 ROB: О, так што калі Пытанне ў тым, у прыватнасці, 2287 01:30:02,030 --> 01:30:04,857 як, калі гэта праблема кадавання, Вы павінны сказаць памер міжнар. 2288 01:30:04,857 --> 01:30:06,690 Калі гэта стол, або ён кажа, колькі байт, 2289 01:30:06,690 --> 01:30:08,808 Вы не павінны запаўняць памеру цэлых лікаў. 2290 01:30:08,808 --> 01:30:11,278 >> СТУДЭНТЫ: [Смяецца] 2291 01:30:11,278 --> 01:30:18,210 2292 01:30:18,210 --> 01:30:20,580 >> DAVIN: справа, дык чаму ж Памер міжнар важнай тут? 2293 01:30:20,580 --> 01:30:23,085 Бо, калі мы збіраемся 32-біт працэсар ці нешта падобнае, 2294 01:30:23,085 --> 01:30:24,300 то будзе чатыры байта. 2295 01:30:24,300 --> 01:30:26,342 Але на некаторыя з новых матэрыял, гэта можа быць што? 2296 01:30:26,342 --> 01:30:27,383 Гэта можа быць восем, ці не так? 2297 01:30:27,383 --> 01:30:30,550 Так this-- калі вы проста цяжка код з чатырох, затым на некаторых машынах, ён будзе працаваць. 2298 01:30:30,550 --> 01:30:32,180 Некаторыя машыны, ён не будзе працаваць. 2299 01:30:32,180 --> 01:30:35,270 Але калі на віктарыне мы знаходзімся як наколькі вялікі інтэрвал? 2300 01:30:35,270 --> 01:30:35,770 Пакладзеце чатыры. 2301 01:30:35,770 --> 01:30:38,710 2302 01:30:38,710 --> 01:30:39,210 ROB: справа. 2303 01:30:39,210 --> 01:30:39,790 DAVIN: Да? 2304 01:30:39,790 --> 01:30:43,192 СТУДЕНТ: Так таму што мы аб'яўленні [Неразборліва] ўнутры функцыі, 2305 01:30:43,192 --> 01:30:45,622 мы павінны паставіць 3 ўнутры гэтай функцыі? 2306 01:30:45,622 --> 01:30:46,907 Ці мы можам выкарыстоўваць гэта па-за? 2307 01:30:46,907 --> 01:30:48,740 DAVIN: Вы можаце выкарыстоўваць яго па-за гэтай функцыі. 2308 01:30:48,740 --> 01:30:49,890 Так ён просіць бясплатна. 2309 01:30:49,890 --> 01:30:51,700 >> СТУДЕНТ: губляць дзе [неразборліва]. 2310 01:30:51,700 --> 01:30:54,720 >> ROB: О, бясплатна не happen-- гэта частка магіі Таноса 2311 01:30:54,720 --> 01:30:57,220 з'яўляецца тое, што вы не абмяжоўваецца лакальнай вобласці бачнасці. 2312 01:30:57,220 --> 01:31:00,700 Вы маеце поўны кантроль над як доўга вашы зменныя жыць. 2313 01:31:00,700 --> 01:31:05,380 Так мы называем Таноса тут, гэта магло б быць цалкам асобная функцыя. 2314 01:31:05,380 --> 01:31:08,670 Гэта можа быць праз 10 гадзінаў што мы, нарэшце, тэлефанаваць бясплатна. 2315 01:31:08,670 --> 01:31:11,764 >> DAVIN: Так, напрыклад, як, пара тыдняў праз, калі вы, нарэшце, 2316 01:31:11,764 --> 01:31:13,680 зрабіць свой слоўнік Speller psets, вы збіраецеся 2317 01:31:13,680 --> 01:31:16,410 мець некаторую функцыю, якая стварае тон вузлоў. 2318 01:31:16,410 --> 01:31:18,630 Такім чынам, вы mallocing тон вузлоў у гэтай функцыі. 2319 01:31:18,630 --> 01:31:20,670 А потым у асобная функцыя, вы 2320 01:31:20,670 --> 01:31:22,440 захоча вызваліць усе гэтыя вузлы. 2321 01:31:22,440 --> 01:31:25,740 Такім чынам, вы можаце літаральна проста пераходзяць на вызваліць паказальнік, так што адрас памяці 2322 01:31:25,740 --> 01:31:26,684 каб тое, што вы malloced. 2323 01:31:26,684 --> 01:31:27,600 І што будзе добра. 2324 01:31:27,600 --> 01:31:29,725 Вам не трэба, каб вызваліць, як, у той жа самай функцыі. 2325 01:31:29,725 --> 01:31:30,449 Так? 2326 01:31:30,449 --> 01:31:36,197 >> СТУДЕНТ: Так Таноса Пераменная [неразборліва] за межамі? 2327 01:31:36,197 --> 01:31:37,384 Гэта тое, што вы кажаце? 2328 01:31:37,384 --> 01:31:38,300 DAVIN: Пачакайце, што? 2329 01:31:38,300 --> 01:31:38,800 Прабачце. 2330 01:31:38,800 --> 01:31:42,300 >> СТУДЕНТ: Калі зменная Таноса можа быць вольным у любым месцы ў кодзе, 2331 01:31:42,300 --> 01:31:44,800 то яны могуць быць даступныя у любым месцы ў кодзе? 2332 01:31:44,800 --> 01:31:45,800 Вы можаце трымаць іх мясцовы? 2333 01:31:45,800 --> 01:31:47,880 >> DAVIN: О, яна спытала, як зменная, like-- 2334 01:31:47,880 --> 01:31:51,300 2335 01:31:51,300 --> 01:31:55,510 >> ROB: Такім чынам, вы ўсё яшчэ павінны ёсць нейкія даведкі 2336 01:31:55,510 --> 01:31:57,220 ў блоку Malloc ў памяці. 2337 01:31:57,220 --> 01:31:58,540 Дык вось, мы вяртаемся х. 2338 01:31:58,540 --> 01:31:59,040 СТУДЕНТ: О. 2339 01:31:59,040 --> 01:32:01,920 ROB: Калі мы не вярнуліся х тут, і гэта было проста пустата, 2340 01:32:01,920 --> 01:32:04,550 то мы не мелі б доступу да паказальнік, які быў malloced, 2341 01:32:04,550 --> 01:32:05,920 і гэта ўцечка памяці. 2342 01:32:05,920 --> 01:32:06,690 >> СТУДЕНТ: ОК. 2343 01:32:06,690 --> 01:32:10,010 >> DAVIN: Так як, скажам, вас ёсць гэта, як, прама тут. 2344 01:32:10,010 --> 01:32:10,510 ROB: Не. 2345 01:32:10,510 --> 01:32:13,430 DAVIN: У маёй асноўнай функцыі, я не магу проста назваць гэтую х і быць, як, у парадку, 2346 01:32:13,430 --> 01:32:14,645 у гэтай функцыі, я зрабіў гэта. 2347 01:32:14,645 --> 01:32:14,960 >> ROB: справа. 2348 01:32:14,960 --> 01:32:17,790 >> DAVIN: Так што я буду называць х у, як, асноўнай ці нешта падобнае. 2349 01:32:17,790 --> 01:32:18,540 Вы не можаце зрабіць гэта. 2350 01:32:18,540 --> 01:32:19,600 Вы збіраецеся нешта вярнуць. 2351 01:32:19,600 --> 01:32:21,000 Але тое, што вы збіраецеся вярнуцца? 2352 01:32:21,000 --> 01:32:22,130 Вы збіраецеся вярнуцца адрас памяці. 2353 01:32:22,130 --> 01:32:25,130 І таму, што вы вернецеся на памяць адрас, які можа быць даступны ў іншых краінах. 2354 01:32:25,130 --> 01:32:27,262 2355 01:32:27,262 --> 01:32:28,255 Любыя іншыя пытанні? 2356 01:32:28,255 --> 01:32:28,755 Так? 2357 01:32:28,755 --> 01:32:31,213 >> СТУДЕНТ: Ці з'яўляецца дадзеная функцыя быць праверка на [неразборліва]? 2358 01:32:31,213 --> 01:32:33,270 2359 01:32:33,270 --> 01:32:35,005 >> DAVIN: Чаму я не трэба рабіць, што? 2360 01:32:35,005 --> 01:32:35,880 СТУДЕНТ: [неразборліва]. 2361 01:32:35,880 --> 01:32:37,755 DAVIN: Таму што ты ня mallocing нічога. 2362 01:32:37,755 --> 01:32:39,640 Так што гэта не-- так, гэта не падабаецца струнны с. 2363 01:32:39,640 --> 01:32:41,160 Гэта паказальнік кудысьці. 2364 01:32:41,160 --> 01:32:42,951 Гэта ўсяго толькі значэння. 2365 01:32:42,951 --> 01:32:43,450 СТУДЕНТ: ОК. 2366 01:32:43,450 --> 01:32:43,949 DAVIN: Так. 2367 01:32:43,949 --> 01:32:47,600 2368 01:32:47,600 --> 01:32:48,470 Што-небудзь яшчэ? 2369 01:32:48,470 --> 01:32:48,970 ROB: Да? 2370 01:32:48,970 --> 01:32:50,386 СТУДЕНТ: Але калі вы [неразборліва]? 2371 01:32:50,386 --> 01:32:55,050 2372 01:32:55,050 --> 01:32:58,690 >> ROB: Так што для таго, каб вызваліць памяці, мы б сказалі, тут. 2373 01:32:58,690 --> 01:33:01,350 Так х наша паказальнік блок памяці. 2374 01:33:01,350 --> 01:33:02,845 Мы бясплатна гэты паказальнік. 2375 01:33:02,845 --> 01:33:04,470 І мы не абавязкова рабіць гэта тут. 2376 01:33:04,470 --> 01:33:05,390 Мы можам зрабіць гэта ў любым месцы. 2377 01:33:05,390 --> 01:33:10,400 Але вы толькі тэлефанаваць бясплатна на што-тое, што Malloc аддачу. 2378 01:33:10,400 --> 01:33:12,940 Так Таноса, тут, вяртаецца тое, што ў цяперашні час захоўваецца ў х. 2379 01:33:12,940 --> 01:33:14,802 Такім чынам, мы можам назваць свабодным ад х. 2380 01:33:14,802 --> 01:33:18,730 2381 01:33:18,730 --> 01:33:20,556 Любыя апошнія пытанні? 2382 01:33:20,556 --> 01:33:21,701 >> DAVIN: Любыя апошнія пытанні? 2383 01:33:21,701 --> 01:33:22,200 Так? 2384 01:33:22,200 --> 01:33:25,152 >> СТУДЕНТ: На жаль, вы можаце зноўку тлумачыць чаму вы б вызваліць там? 2385 01:33:25,152 --> 01:33:26,630 Чаму [неразборліва]? 2386 01:33:26,630 --> 01:33:27,774 >> DAVIN: Для сюды? 2387 01:33:27,774 --> 01:33:29,109 >> СТУДЕНТ: Так, як адразу пасля. 2388 01:33:29,109 --> 01:33:30,900 DAVIN: Вы, напэўна, не хачу бясплатна тут. 2389 01:33:30,900 --> 01:33:31,630 ROB: Вы, напэўна, не будзе. 2390 01:33:31,630 --> 01:33:33,060 DAVIN: Так, гэта б нічога не рабіць. 2391 01:33:33,060 --> 01:33:35,220 Гэта будзе, як, стварыць памяці, рабіць такія рэчы, да яго, 2392 01:33:35,220 --> 01:33:37,390 , А затым неадкладна забудзьцеся пра гэта, так. 2393 01:33:37,390 --> 01:33:39,850 >> ROB: Але мы маглі б зрабіць, як, тут па нейкай прычыне. 2394 01:33:39,850 --> 01:33:43,902 Мы маглі б сказаць, INT зорку у роўны зваротны масіў. 2395 01:33:43,902 --> 01:33:47,900 У сёе з у, магчыма раздрукаваць змесціва. 2396 01:33:47,900 --> 01:33:49,350 І вось, нарэшце, мы зрабілі. 2397 01:33:49,350 --> 01:33:50,626 Мы можам вызваліць у. 2398 01:33:50,626 --> 01:33:51,501 СТУДЕНТ: [неразборліва]. 2399 01:33:51,501 --> 01:33:57,839 2400 01:33:57,839 --> 01:33:59,005 DAVIN: Ці павінен я пракруціць ўніз? 2401 01:33:59,005 --> 01:34:00,445 Дзякуй. 2402 01:34:00,445 --> 01:34:00,945 ROB: Nice. 2403 01:34:00,945 --> 01:34:02,400 2404 01:34:02,400 --> 01:34:03,646 >> DAVIN: ОК, вось яно што. 2405 01:34:03,646 --> 01:34:04,520 ROB: Добра, добра. 2406 01:34:04,520 --> 01:34:05,070 Ўдачы. 2407 01:34:05,070 --> 01:34:06,800 >> DAVIN: Калі ў вас ёсць пытанні, напішыце нам. 2408 01:34:06,800 --> 01:34:08,670 Ўдачы. 2409 01:34:08,670 --> 01:34:10,283