1 00:00:00,000 --> 00:00:03,388 >> [Грає музика] 2 00:00:03,388 --> 00:00:05,104 3 00:00:05,104 --> 00:00:06,020 ДАГ Lloyd: Гаразд. 4 00:00:06,020 --> 00:00:07,680 Робота з одним змінні досить весело. 5 00:00:07,680 --> 00:00:09,500 Але що, якщо ми хочемо працювати з великою кількістю змінних, 6 00:00:09,500 --> 00:00:12,760 але ми не хочемо, щоб мати купу різні імена літати навколо нашого коду? 7 00:00:12,760 --> 00:00:15,980 У цьому випадку масиви прийде в дуже зручно. 8 00:00:15,980 --> 00:00:19,510 Масиви дійсно фундаментальна дані структура будь-якої мови програмування 9 00:00:19,510 --> 00:00:20,260 що ви будете використовувати. 10 00:00:20,260 --> 00:00:24,450 І вони дійсно, дійсно корисно, Зокрема, як ми побачимо, в CS 50. 11 00:00:24,450 --> 00:00:27,870 >> Ми використовуємо масиви для зберігання Значення даних одного типу 12 00:00:27,870 --> 00:00:29,830 в суміжних комірках пам'яті. 13 00:00:29,830 --> 00:00:32,430 Тобто, це так, що ми можемо група 14 00:00:32,430 --> 00:00:35,430 купа цілих разом пам'яті або купа персонажів 15 00:00:35,430 --> 00:00:38,270 або плаває в пам'яті дійсно закрити разом і робота 16 00:00:38,270 --> 00:00:41,930 з ними без дати кожному одним своє унікальне ім'я, яке може 17 00:00:41,930 --> 00:00:44,500 отримати громіздким через деякий час. 18 00:00:44,500 --> 00:00:48,130 >> Тепер, один із способів аналогію масиви це думати про вашому місцевому повідомленням 19 00:00:48,130 --> 00:00:49,000 офіс на секунду. 20 00:00:49,000 --> 00:00:51,820 Так крок від програмування і просто закрити очі 21 00:00:51,820 --> 00:00:54,120 і візуалізувати в розумі ваш місцевий поштамт. 22 00:00:54,120 --> 00:00:57,160 Як правило, в більшості пост офіси, є великий банк 23 00:00:57,160 --> 00:01:00,490 а поштові скриньки на стіні. 24 00:01:00,490 --> 00:01:03,510 >> Масив являє собою гігантський блок безперервної пам'яті, 25 00:01:03,510 --> 00:01:06,120 так само, як поштовий банк у Вашому поштовому відділенні 26 00:01:06,120 --> 00:01:11,230 великий простір на стіни поштамту. 27 00:01:11,230 --> 00:01:15,750 Масиви були розділені на невеликі, однакового розміру блоки простору, 28 00:01:15,750 --> 00:01:19,930 кожен з яких називається елементом, в так само, як стіни поста 29 00:01:19,930 --> 00:01:23,840 офіс була розділена на дрібні, однакового розміру блоки простору, 30 00:01:23,840 --> 00:01:27,560 що ми називаємо PO коробку. 31 00:01:27,560 --> 00:01:31,650 Кожен елемент масиву може зберігати певну кількість даних, 32 00:01:31,650 --> 00:01:37,540 як кожну поштову скриньку може провести певну кількість пошті. 33 00:01:37,540 --> 00:01:41,540 >> Що можна зберігати в кожному елементі масив змінних і тих же даних 34 00:01:41,540 --> 00:01:45,300 тип, наприклад, Int або напівкоксу, всього як у вашому ящику поштовому відділенні, 35 00:01:45,300 --> 00:01:47,300 Ви можете вставити тільки речі подібного типу, 36 00:01:47,300 --> 00:01:50,430 такі як листи або невеликих упаковках. 37 00:01:50,430 --> 00:01:55,050 Нарешті, ми можемо отримати доступ до кожного елементу масив безпосередньо за номером індексу, 38 00:01:55,050 --> 00:01:59,770 як ми можемо отримати доступ до наших поштове відділення коробка, знаючи його номер поштової скриньки. 39 00:01:59,770 --> 00:02:02,750 Сподіваюся, що аналогія допомагає вам отримати вашу голову 40 00:02:02,750 --> 00:02:05,540 навколо ідеї масивів по аналогію з чимось ще 41 00:02:05,540 --> 00:02:08,400 що ви, ймовірно, вже знайомі. 42 00:02:08,400 --> 00:02:13,182 >> У C, елементи масиву є індексується, починаючи з 0, а не від 1. 43 00:02:13,182 --> 00:02:14,390 І це дійсно важливо. 44 00:02:14,390 --> 00:02:18,530 І справді, це, чому ми, в CS 50, і чому вчені-комп'ютерники часто 45 00:02:18,530 --> 00:02:22,150 буде рахувати від 0, тому масиву C в 46 00:02:22,150 --> 00:02:24,660 індексація, яка завжди починається з 0. 47 00:02:24,660 --> 00:02:28,730 Таким чином, якщо масив складається з п елементів, перший елемент цього масиву 48 00:02:28,730 --> 00:02:32,960 знаходиться за індексом 0, і останній елемент масиву 49 00:02:32,960 --> 00:02:36,610 знаходиться в індексом п мінус 1. 50 00:02:36,610 --> 00:02:43,160 Знову ж таки, якщо є п елементів у наших Масив, останній індекс п мінус 1. 51 00:02:43,160 --> 00:02:46,820 >> Так що, якщо наш масив має 50 елементів, в Перший елемент розташований за індексом 0, 52 00:02:46,820 --> 00:02:51,060 і останній елемент знаходиться в індексі 49. 53 00:02:51,060 --> 00:02:53,940 На жаль, чи на щастя, в залежності від вашої точки зору, 54 00:02:53,940 --> 00:02:56,170 З дуже м'якими тут. 55 00:02:56,170 --> 00:02:59,480 Це не перешкодить вам виходячи за межі свого масиву. 56 00:02:59,480 --> 00:03:03,080 Ви можете отримати доступ до мінус 3 елемент вашого масиву 57 00:03:03,080 --> 00:03:07,400 або 59-елемент вашого масиву, якщо ваш масив має тільки 50 елементів. 58 00:03:07,400 --> 00:03:11,060 Це не зупинить свою програму з компіляції, але під час виконання, 59 00:03:11,060 --> 00:03:14,350 Ви можете зіткнутися з Страшний помилки сегментації 60 00:03:14,350 --> 00:03:17,460 якщо ви починаєте отримати доступ до пам'яті що знаходиться за межами того, що 61 00:03:17,460 --> 00:03:19,260 Ви запитали вашу програму, щоб дати вам. 62 00:03:19,260 --> 00:03:21,250 Так що будьте обережні. 63 00:03:21,250 --> 00:03:23,120 >> Що робить масив Заява виглядає? 64 00:03:23,120 --> 00:03:26,940 Як ми закодувати масиву в існуванні як ми код будь-який інший змінної? 65 00:03:26,940 --> 00:03:31,250 Є три частини в масив declaration-- тип, ім'я, 66 00:03:31,250 --> 00:03:31,880 і розмір. 67 00:03:31,880 --> 00:03:34,088 Це дуже схожий на Оголошення змінної, яка 68 00:03:34,088 --> 00:03:36,970 це просто тип та ім'я, елемент Розмір будучи 69 00:03:36,970 --> 00:03:39,860 особливий випадок для масиву, бо ми отримуємо купу з них 70 00:03:39,860 --> 00:03:41,830 в той самий час. 71 00:03:41,830 --> 00:03:45,560 >> Таким чином, тип, якої змінної, хочу, щоб кожен елемент масиву буде. 72 00:03:45,560 --> 00:03:47,150 Ви хочете, щоб це масив цілих чисел? 73 00:03:47,150 --> 00:03:49,010 Потім ваш тип даних повинен бути Int. 74 00:03:49,010 --> 00:03:51,760 Хочете, щоб це було масив подвоюється або поплавці? 75 00:03:51,760 --> 00:03:54,545 Тип даних повинен бути подвійний або плавати. 76 00:03:54,545 --> 00:03:56,420 Це ім'я, що ви хочу звернути вашу масив. 77 00:03:56,420 --> 00:04:00,970 Що ви хочете, щоб назвати цього гіганта банк цілих чисел або плаває або символів 78 00:04:00,970 --> 00:04:03,250 або двомісні, або все, що у вас? 79 00:04:03,250 --> 00:04:04,700 Що ви хочете назвати це? 80 00:04:04,700 --> 00:04:06,110 Досить пояснень. 81 00:04:06,110 --> 00:04:08,610 >> Нарешті, розмір, який йде всередині квадратних дужок, 82 00:04:08,610 --> 00:04:12,180 як багато елементів, які ви б як ваш масив містить. 83 00:04:12,180 --> 00:04:13,530 Скільки чисел ви хочете? 84 00:04:13,530 --> 00:04:15,570 Скільки пливе ви хочете? 85 00:04:15,570 --> 00:04:19,070 >> Так, наприклад, INT оцінки студентів 40. 86 00:04:19,070 --> 00:04:26,020 Це оголошує масив з ім'ям Студент сорту, який складається з 40 цілих чисел. 87 00:04:26,020 --> 00:04:28,180 Досить пояснень, я сподіваюся. 88 00:04:28,180 --> 00:04:29,330 Ось ще один приклад. 89 00:04:29,330 --> 00:04:31,560 Подвійні ціни меню 8. 90 00:04:31,560 --> 00:04:34,610 Це створює масив з ім'ям Ціни меню, яке складається 91 00:04:34,610 --> 00:04:38,300 кімнати в пам'яті вісім дублів. 92 00:04:38,300 --> 00:04:42,000 93 00:04:42,000 --> 00:04:45,750 >> Якщо ви думаєте про кожному елементі масиву типу даних типу, 94 00:04:45,750 --> 00:04:49,860 Так, наприклад, один елемент масив типу INT, так само, як вам 95 00:04:49,860 --> 00:04:52,770 буде думати про будь-який інший змінна типу Int, 96 00:04:52,770 --> 00:04:56,440 всі звичні операції, які ми обговорювалося раніше в операціях 97 00:04:56,440 --> 00:04:58,270 відео буде мати сенс. 98 00:04:58,270 --> 00:05:01,620 Так от, ми могли б оголосити масив логічних значень звані Truthtable, 99 00:05:01,620 --> 00:05:05,590 яка складається з кімнати для 10 Booleans. 100 00:05:05,590 --> 00:05:09,650 >> А потім, як ми могли б просто привласнити значення в будь-який інший змінної типу 101 00:05:09,650 --> 00:05:13,470 Логічне, ми могли б сказати щось як Truthtable квадратних дужках 102 00:05:13,470 --> 00:05:18,040 2, який є, як ми вказуємо, який елемент таблиці істинності? 103 00:05:18,040 --> 00:05:20,350 Третій елемент з Таблиця істинності, бо пам'ятаєте, 104 00:05:20,350 --> 00:05:21,800 ми розраховуємо від 0. 105 00:05:21,800 --> 00:05:25,690 Так от, як ми вказати Третій елемент таблиці істинності. 106 00:05:25,690 --> 00:05:28,680 Truthtable 2 дорівнює брехня, так само, як ми могли б declare-- 107 00:05:28,680 --> 00:05:33,560 або ми могли б призначити, а будь Логічний тип змінної, щоб бути помилковим. 108 00:05:33,560 --> 00:05:35,050 >> Ми можемо також використовувати його в умовах. 109 00:05:35,050 --> 00:05:39,000 якщо (== 7 truthtable істинно), який повинен сказати, 110 00:05:39,000 --> 00:05:42,370 якщо восьмий елемент з Truthtable правда, 111 00:05:42,370 --> 00:05:46,760 може бути, ми хочемо, щоб надрукувати повідомлення користувачеві, Е ("ІСТИНА! N");. 112 00:05:46,760 --> 00:05:50,290 Це змушує нас говорити Truthtable 10 дорівнює правда, чи не так? 113 00:05:50,290 --> 00:05:53,590 Ну, я можу, але це досить небезпечно, тому що пам'ятаєте, 114 00:05:53,590 --> 00:05:56,260 у нас є масив з 10 булевих. 115 00:05:56,260 --> 00:06:02,340 Таким чином, високий показник, що компілятор дав нам 9. 116 00:06:02,340 --> 00:06:06,010 >> Ця програма компілюється, але якщо щось ще в пам'яті 117 00:06:06,010 --> 00:06:09,110 існує там, де ми б очікувати Truthtable 10 йти, 118 00:06:09,110 --> 00:06:13,980 ми могли б постраждати помилку сегментації. Ми може піти з ним, але в цілому, 119 00:06:13,980 --> 00:06:14,710 дуже небезпечно. 120 00:06:14,710 --> 00:06:19,759 Так, що я роблю тут правової С, але не обов'язково кращий хід. 121 00:06:19,759 --> 00:06:22,300 Тепер, коли ви оголошуєте і ініціалізувати масив одночасно, 122 00:06:22,300 --> 00:06:23,960 там насправді досить спеціальний синтаксис, що вам 123 00:06:23,960 --> 00:06:26,250 можна використовувати для заповнення масиву з його початковими значеннями. 124 00:06:26,250 --> 00:06:30,130 Він може отримати громіздким оголосити масив розміром 100, 125 00:06:30,130 --> 00:06:33,430 а потім повинен сказати, елемент 0 дорівнює цьому; елемент 1 дорівнює цьому; 126 00:06:33,430 --> 00:06:34,850 елемент 2 дорівнює, що. 127 00:06:34,850 --> 00:06:36,370 Який сенс, вірно? 128 00:06:36,370 --> 00:06:39,470 >> Якщо це невеликий масив, ви могли б зробити щось на зразок цього. 129 00:06:39,470 --> 00:06:44,360 Bool truthtable 3 дорівнює відкритий фігурна дужка, а потім кома 130 00:06:44,360 --> 00:06:48,060 відокремити список елементів що ви хочете, щоб покласти в масиві. 131 00:06:48,060 --> 00:06:50,520 Потім закрийте фігурна дужка коми. 132 00:06:50,520 --> 00:06:53,910 Це створює масив Розмір трьох називається Truthtable, 133 00:06:53,910 --> 00:06:56,090 з елементами помилковою, правда, і правда. 134 00:06:56,090 --> 00:06:59,270 І справді, конкретизація Синтаксис у мене ось 135 00:06:59,270 --> 00:07:03,350 точно так само, як робити те індивідуальний синтаксис елемента нижче. 136 00:07:03,350 --> 00:07:09,380 Ці два способи кодування буде виробляти той же масив. 137 00:07:09,380 --> 00:07:11,740 >> Точно так само ми могли пройтися по всіх елементах 138 00:07:11,740 --> 00:07:15,400 масиву, використовуючи цикл, який, у суті, є дуже настійно рекомендується 139 00:07:15,400 --> 00:07:16,790 на дому вправи. 140 00:07:16,790 --> 00:07:20,720 Як створити масив 100 цілих чисел, де 141 00:07:20,720 --> 00:07:23,477 кожен елемент масиву є його індекс? 142 00:07:23,477 --> 00:07:26,560 Так, наприклад, у нас є масив з 100 цілі числа, а в першому елементі, 143 00:07:26,560 --> 00:07:27,790 ми хочемо, щоб покласти 0. 144 00:07:27,790 --> 00:07:29,810 У другій елемент, ми хочемо, щоб покласти 1. 145 00:07:29,810 --> 00:07:33,319 У третьому елементі, ми хочемо покласти 2; і так далі, і так далі. 146 00:07:33,319 --> 00:07:35,360 Це дійсно добре на дому вправи, щоб зробити це. 147 00:07:35,360 --> 00:07:38,190 148 00:07:38,190 --> 00:07:40,220 >> Тут це не виглядає як занадто багато що змінилося. 149 00:07:40,220 --> 00:07:44,170 Але зверніть увагу, що в між квадратні дужки, цього разу, 150 00:07:44,170 --> 00:07:45,830 Я насправді опустити номер. 151 00:07:45,830 --> 00:07:48,000 Якщо ви використовуєте це дуже спеціальний примірника 152 00:07:48,000 --> 00:07:50,380 Синтаксис створити Масив, ви насправді не 153 00:07:50,380 --> 00:07:53,491 необхідно вказати розмір масиву заздалегідь. 154 00:07:53,491 --> 00:07:55,740 Компілятор досить розумний, щоб знати, що ви дійсно 155 00:07:55,740 --> 00:07:58,980 хочу масив розміру 3, тому що ви поклали три елементи 156 00:07:58,980 --> 00:08:00,640 праворуч від знака рівності. 157 00:08:00,640 --> 00:08:04,140 Якщо ви поставили чотири, це було б дав вам таблицю істинності розміру чотири, 158 00:08:04,140 --> 00:08:06,270 і так далі, і так далі. 159 00:08:06,270 --> 00:08:09,380 >> Масиви не обмежуються однією вимір, який є досить прохолодно. 160 00:08:09,380 --> 00:08:12,000 Ви насправді може мати як багато бічні специфікатори, як ви хочете. 161 00:08:12,000 --> 00:08:16,470 Так, наприклад, якщо ви хочете створити дошка для гри Морський бій, який, 162 00:08:16,470 --> 00:08:20,910 якщо ви коли-небудь грав, це гра, яка є грав з кілочками на 10 на 10 сітку, 163 00:08:20,910 --> 00:08:22,450 Ви могли б створити масив як це. 164 00:08:22,450 --> 00:08:26,030 Можна сказати, Bool лінкор квадратна дужка 10 165 00:08:26,030 --> 00:08:29,590 закрита дужка квадратна Кронштейн 10 закритий квадратну дужку. 166 00:08:29,590 --> 00:08:32,710 >> І потім, ви можете вибрати інтерпретувати це на увазі, як в 10 167 00:08:32,710 --> 00:08:35,576 10 сітки осередків. 168 00:08:35,576 --> 00:08:37,409 Тепер, насправді, в пам'яті, це дійсно просто 169 00:08:37,409 --> 00:08:42,440 залишаються 100 елемент, одна одновимірний масив. 170 00:08:42,440 --> 00:08:46,070 І це, насправді, йде, якщо ви є три вимірювання або чотири або п'ять. 171 00:08:46,070 --> 00:08:49,420 Це дійсно просто не розмножуються всі indices-- 172 00:08:49,420 --> 00:08:51,130 або всі розміри specifiers-- разом, 173 00:08:51,130 --> 00:08:53,480 і ви просто отримаєте одновимірної Масив розміру. 174 00:08:53,480 --> 00:08:57,090 >> Але з точки зору організації і візуалізації та людського сприйняття, 175 00:08:57,090 --> 00:08:59,240 це може бути набагато простіше, працювати з сіткою 176 00:08:59,240 --> 00:09:02,980 якщо ви працюєте на ігри як гра в хрестики-нулики або лінкор, 177 00:09:02,980 --> 00:09:05,179 або щось подібне. 178 00:09:05,179 --> 00:09:06,970 Це відмінний абстракція, замість того, 179 00:09:06,970 --> 00:09:09,340 думати про Tic-Tac-Toe дошка в лінії дев'яти 180 00:09:09,340 --> 00:09:13,810 квадрати або дошка Броненосець як лінія 100 квадратів. 181 00:09:13,810 --> 00:09:16,010 10 жовтня сітці або трьох на три сітки, ймовірно, 182 00:09:16,010 --> 00:09:17,225 багато легше сприймати. 183 00:09:17,225 --> 00:09:19,820 184 00:09:19,820 --> 00:09:22,280 >> Тепер, щось дійсно Важливо про масивах. 185 00:09:22,280 --> 00:09:25,950 Ми можемо ставитися один від приватних осіб елемент масиву в якості змінної. 186 00:09:25,950 --> 00:09:27,700 Ми бачили, що раніше коли ми були присвоєння 187 00:09:27,700 --> 00:09:32,240 значення Правда декому Booleans або їх тестування в умовних. 188 00:09:32,240 --> 00:09:35,960 Але ми не можемо ставитися до цільні масиви себе змінних. 189 00:09:35,960 --> 00:09:41,760 Ми не можемо, наприклад, привласнити один масив в інший масив, використовуючи призначення 190 00:09:41,760 --> 00:09:42,930 оператором. 191 00:09:42,930 --> 00:09:44,640 Це не юридичне С. 192 00:09:44,640 --> 00:09:47,920 >> Якщо ми хочемо, щоб для example--, що ми буде робити в цьому прикладі 193 00:09:47,920 --> 00:09:50,200 буде скопіювати один масив в іншій. 194 00:09:50,200 --> 00:09:53,810 Якщо ми хочемо, щоб це зробити, ми насправді потрібно використовувати цикл скопіювати 195 00:09:53,810 --> 00:09:56,550 кожен окремий елемент по одному. 196 00:09:56,550 --> 00:09:58,700 Я знаю, це небагато часу. 197 00:09:58,700 --> 00:10:04,022 >> Так, наприклад, якби ми мали ці кілька рядків коду, це буде працювати? 198 00:10:04,022 --> 00:10:05,230 Ну, ні, це не так, вірно? 199 00:10:05,230 --> 00:10:07,860 Тому що ми намагаємося призначити їжу бар. 200 00:10:07,860 --> 00:10:09,860 Це не буде працювати, бо це масив, 201 00:10:09,860 --> 00:10:13,130 і ми тільки що описали що це не законно С. 202 00:10:13,130 --> 00:10:15,580 >> Замість цього, якщо ми хочемо, щоб скопіювати вміст їжі 203 00:10:15,580 --> 00:10:18,070 в рядку, що і ми намагаємося зробити тут, 204 00:10:18,070 --> 00:10:19,970 ми повинні були б синтаксис зразок цього. 205 00:10:19,970 --> 00:10:24,170 У нас є цикл, який йде від J дорівнює 0 до 5, 206 00:10:24,170 --> 00:10:28,390 і ми збільшуємо J на ​​кожній ітерації цикл і призначити елементи, такі як, що. 207 00:10:28,390 --> 00:10:33,360 Це призведе до рядку і що є одним, двома, трьома, чотирма, п'ятьма, 208 00:10:33,360 --> 00:10:36,730 але ми повинні зробити це цей дуже повільно елемент-по-елемента чином, 209 00:10:36,730 --> 00:10:40,009 а, просто копіювання весь масив. 210 00:10:40,009 --> 00:10:42,050 В інших програм мови, більш сучасних, 211 00:10:42,050 --> 00:10:45,610 Ви можете, насправді, робити тільки що просто дорівнює синтаксис. 212 00:10:45,610 --> 00:10:49,620 Але С, на жаль, ми Не допускається, щоб зробити це. 213 00:10:49,620 --> 00:10:52,026 >> Тепер, є ще одна що я хочу сказати, 214 00:10:52,026 --> 00:10:54,650 про масивах, які можуть бути трохи трохи складніше в перший раз вам 215 00:10:54,650 --> 00:10:55,990 працювати з ними. 216 00:10:55,990 --> 00:10:59,860 Ми обговорили у відео про видимості змінних, 217 00:10:59,860 --> 00:11:04,940 що більшість змінних в C, коли Ви називаєте їх функцій, які передаються за значенням. 218 00:11:04,940 --> 00:11:08,620 Ви пам'ятаєте, що це означає, щоб передати щось за вартістю? 219 00:11:08,620 --> 00:11:12,570 Це означає, що ми робимо копію Змінна, яка передається в. 220 00:11:12,570 --> 00:11:16,290 Функція викликається функція який отримує змінну, 221 00:11:16,290 --> 00:11:17,730 не одержати саму змінну. 222 00:11:17,730 --> 00:11:20,850 Він отримує свої місцеві Копія цього працювати. 223 00:11:20,850 --> 00:11:24,070 >> Масиви, звичайно, зробити не слідувати цьому правилу. 224 00:11:24,070 --> 00:11:27,600 Швидше за все, те, що ми називаємо це проходить по посиланню. 225 00:11:27,600 --> 00:11:31,360 Підпрограма насправді зовсім отримати масив. 226 00:11:31,360 --> 00:11:34,207 Це не отримати його власну локальну копію з нього. 227 00:11:34,207 --> 00:11:36,040 І якщо ви думаєте про це, в цьому є сенс. 228 00:11:36,040 --> 00:11:39,750 Якщо масиви дійсно великим, його займає так багато часу і зусиль, 229 00:11:39,750 --> 00:11:44,470 щоб зробити копію масиву 100 або 1000 або 10000 елементів, 230 00:11:44,470 --> 00:11:48,290 що це не варто для функціонувати, щоб отримати копію з нього, 231 00:11:48,290 --> 00:11:51,037 зробити деяку роботу з ним, а потім просто зробити копію; 232 00:11:51,037 --> 00:11:53,120 не повинні мати це висить навколо більше. 233 00:11:53,120 --> 00:11:54,710 >> Оскільки масиви є одними громіздким і громіздкою, 234 00:11:54,710 --> 00:11:56,001 ми просто передавати їх за посиланням. 235 00:11:56,001 --> 00:12:01,210 Ми просто довіряти цю функцію щоб, нічого не зламати. 236 00:12:01,210 --> 00:12:03,010 Так це насправді отримати масив. 237 00:12:03,010 --> 00:12:05,290 Це не отримати свою власну локальну копію. 238 00:12:05,290 --> 00:12:07,170 >> Так що це означає, Потім, коли абонент 239 00:12:07,170 --> 00:12:08,970 маніпулює елементи масиву? 240 00:12:08,970 --> 00:12:10,780 Що сталося? 241 00:12:10,780 --> 00:12:13,210 В даний час, ми будемо замовчувати над тим, чому саме цей 242 00:12:13,210 --> 00:12:15,320 Буває, чому масиви передаються по посиланню 243 00:12:15,320 --> 00:12:17,810 а все інше передається за значенням. 244 00:12:17,810 --> 00:12:20,470 Але я обіцяю вам, ми будемо повернутися і дати вам відповідь 245 00:12:20,470 --> 00:12:23,750 до цього в пізнішій відео. 246 00:12:23,750 --> 00:12:28,110 >> Ось ще одна вправа для вас перш, ніж ми обернути речі на масивах. 247 00:12:28,110 --> 00:12:31,400 Пучок коду тут, це не дуже хороший стиль, 248 00:12:31,400 --> 00:12:33,400 просто я зроблю що застереження. 249 00:12:33,400 --> 00:12:36,660 Там немає коментарів тут, який є досить поганій формі. 250 00:12:36,660 --> 00:12:39,750 Але це тільки тому, що я хотів бути в змозі відповідати все на екрані. 251 00:12:39,750 --> 00:12:44,360 >> У верхній частині, ви можете побачити, що у мене є дві декларації функції для заданого масиву 252 00:12:44,360 --> 00:12:45,820 і встановити Int. 253 00:12:45,820 --> 00:12:49,680 Набір масив, мабуть приймає масив з чотирьох цілих чисел в якості вхідних даних. 254 00:12:49,680 --> 00:12:52,767 І, мабуть, набір INT приймає одне ціле число в якості свого внеску. 255 00:12:52,767 --> 00:12:54,350 Але обидва вони не мають виходу. 256 00:12:54,350 --> 00:12:57,689 Вихід, повернення введіть, друг одна недійсними. 257 00:12:57,689 --> 00:12:59,480 У головному, у нас є пару рядків коду. 258 00:12:59,480 --> 00:13:02,730 Ми оголошуємо целочисленную змінну називається і призначити їй значення 10. 259 00:13:02,730 --> 00:13:07,080 Ми заявляємо, масив з чотирьох чисел В називається і призначити елементи 0, 1, 260 00:13:07,080 --> 00:13:08,730 2 і 3, відповідно. 261 00:13:08,730 --> 00:13:12,190 Потім, у нас є дзвінок, щоб встановити INT і заклик встановити масив. 262 00:13:12,190 --> 00:13:15,910 Визначення множини масиву і набору INT вниз нижче, на дні. 263 00:13:15,910 --> 00:13:17,640 >> І так, знову ж таки, я прошу вас питання. 264 00:13:17,640 --> 00:13:20,770 Що отримує роздрукувати Тут наприкінці основного? 265 00:13:20,770 --> 00:13:23,020 Там це роздруківка кол. Я друк з двох цілих чисел. 266 00:13:23,020 --> 00:13:28,010 Я друкування вмісту і вміст B квадратні дужки. 0 267 00:13:28,010 --> 00:13:29,880 Пауза відео тут і зайняти хвилину. 268 00:13:29,880 --> 00:13:35,482 Чи можете ви з'ясувати, що це Функція друку в кінці? 269 00:13:35,482 --> 00:13:38,190 Сподіваюся, якщо ви пригадати Різниця між передача за значенням 270 00:13:38,190 --> 00:13:41,680 і передача за посиланням, це Проблема була не надто складно для вас. 271 00:13:41,680 --> 00:13:44,130 І відповідь ви б знайшли це. 272 00:13:44,130 --> 00:13:47,660 Якщо ви не зовсім впевнені, щоб чому це так, взяти другий, 273 00:13:47,660 --> 00:13:50,620 повернутися, розглянути те, що я був просто обговорення про передачу масивів 274 00:13:50,620 --> 00:13:53,450 як посилання, в порівнянні з проходить інші змінні за значенням, 275 00:13:53,450 --> 00:13:56,680 і, сподіваюся, це зробить трохи більше сенсу. 276 00:13:56,680 --> 00:13:59,760 >> Я Дуг Ллойд, і це CS50. 277 00:13:59,760 --> 00:14:01,467