1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] Precendence, як ми відповімо на запитання, які операції ми повинні зробити в першу чергу? 2 00:00:10,540 --> 00:00:14,250 Якщо рішення математичних рівнянь або розбору рядків програмного коду, 3 00:00:14,250 --> 00:00:17,230 існують суворі правила пріоритету, до якого ми дотримуємося 4 00:00:17,230 --> 00:00:20,270 так що всі комп'ютери, і люди можуть отримати той же результат. 5 00:00:20,270 --> 00:00:24,710 >> По-перше, найважливіше правило для запам'ятовування, особливо в помилку тестування, 6 00:00:24,710 --> 00:00:27,680 є те, що ми завжди працюємо з внутрішньої дужки назовні. 7 00:00:27,680 --> 00:00:31,120 Використання додаткових круглих дужках може бути корисним тактика налагодження, 8 00:00:31,120 --> 00:00:34,640 але це не дуже гарна практика, щоб сміття код з непотрібними дужках. 9 00:00:34,640 --> 00:00:38,220 Витратьте час, щоб вивчити основні правила пріоритету операторів. 10 00:00:38,220 --> 00:00:42,450 >> Друге загальне правило говорить, що, коли оператори мають рівні priorty, 11 00:00:42,450 --> 00:00:44,820 Ви просто вирішити зліва направо. 12 00:00:44,820 --> 00:00:47,690 Коли маєш справу з простій математиці ми починаємо з дужках, 13 00:00:47,690 --> 00:00:52,110 потім виконайте множення і ділення, і, нарешті, робити додавання і віднімання. 14 00:00:52,110 --> 00:00:54,400 Множення і ділення мають однаковий пріоритет, 15 00:00:54,400 --> 00:00:56,870 тому що вони, по суті виконуючи ту ж роботу. 16 00:00:56,870 --> 00:01:00,880 Адже поділ просто множення на обернену значення. 17 00:01:00,880 --> 00:01:04,300 Точно так само, віднімання просто додавши від'ємне значення. 18 00:01:04,300 --> 00:01:06,150 >> Давайте зробимо приклад. 19 00:01:14,470 --> 00:01:18,300 Після порядку черговості, ми почнемо з дужках. Дев'ять мінус 1. 20 00:01:18,300 --> 00:01:23,410 Це дасть нам 8. Тоді ми можемо перейти до поділу і розмноження. 21 00:01:23,410 --> 00:01:27,450 Ми вирішимо зліва направо. Так 10 розділити на 2 дорівнює 5. 22 00:01:27,450 --> 00:01:31,290 У нас є 5 разів 8 тут, і це дасть нам 40. 23 00:01:33,230 --> 00:01:35,410 Потім ми перейдемо до наступного порядку старшинства. 24 00:01:35,410 --> 00:01:38,730 Таким чином, ми залишили з 3 плюс 40 мінус 1. 25 00:01:42,400 --> 00:01:43,700 Знову ж тільки рішення зліва направо, 26 00:01:43,700 --> 00:01:47,650 тому що є рівний пріоритет між складанням і відніманням. 27 00:01:47,650 --> 00:01:51,510 Ми можемо сказати 3 плюс 40 на 43, мінус 1, 42. Це наша відповідь. 28 00:01:53,920 --> 00:01:56,730 >> Є 2 типу декремент і інкремент; 29 00:01:56,730 --> 00:02:01,000 Префікс формі, і суфікс формі. 30 00:02:01,000 --> 00:02:06,130 Суфікс формі, я + +, широко використовується в цикли, 31 00:02:06,130 --> 00:02:10,500 Це означає, що поточне значення використовується у виразі, а потім вона збільшується. 32 00:02:10,500 --> 00:02:14,240 Таким чином, вартість тільки буде різним у наступний раз змінна використовується. 33 00:02:14,240 --> 00:02:17,910 З іншого боку, приріст або зменшення префікса означає, що поточне значення 34 00:02:17,910 --> 00:02:22,760 збільшується або зменшується, а потім вона використовується у виразі. 35 00:02:22,760 --> 00:02:25,310 >> Давайте візьмемо приклад з цілими х. 36 00:02:25,310 --> 00:02:27,220 Ми встановимо його рівним 5. 37 00:02:27,220 --> 00:02:36,500 Якщо ми використовуємо суфікс оператора на ньому і говорять х + +, х на цій лінії ще 5. 38 00:02:36,500 --> 00:02:39,230 Якби ми могли роздрукувати його, що ми отримаємо значення 5. 39 00:02:39,230 --> 00:02:42,540 Але йти вперед факт x1 дорівнює 6. 40 00:02:42,540 --> 00:02:48,770 Так що прямо тут, на цій лінії х дорівнює 6, і якщо ми друкували його ми отримаємо значення 6. 41 00:02:48,770 --> 00:02:57,380 Тепер, якщо ми використовували префікс оператора, + + х, х збільшується, а потім використовується значення. 42 00:02:57,380 --> 00:03:00,110 Так що дорівнює 7 на цій лінії. 43 00:03:00,110 --> 00:03:04,750 Інкремента, звичайно, від 6 до 7, і якщо б ми повинні були роздрукувати його, що ми отримаємо значення 7. 44 00:03:04,750 --> 00:03:09,160 >> Останній нюанс в precendence, що ми будемо дивитися на справу з покажчиком позначень. 45 00:03:09,160 --> 00:03:15,050 Оператор разименованія, зірка, має пріоритет над основними операторами математики, 46 00:03:15,050 --> 00:03:18,550 , Але не більше incement суфіксів і декремента. 47 00:03:18,550 --> 00:03:20,690 Це приводить нас до нашої кінцевої приклад. 48 00:03:20,690 --> 00:03:24,500 Давайте візьмемо число х і встановити його рівним 7. 49 00:03:24,500 --> 00:03:30,540 Ми також зробити покажчик у і встановити його рівним за адресою х. 50 00:03:30,540 --> 00:03:34,920 Так що, коли ми разименованія у ми повинні отримати значення 7. 51 00:03:34,920 --> 00:03:39,380 Зараз в цьому рядку коду, у нас є кілька двозначній ситуації. 52 00:03:39,380 --> 00:03:44,310 Невже ми разименованія у першого, а потім збільшуючи значення 7? 53 00:03:44,310 --> 00:03:48,300 Або ми прирощення покажчика, а потім разименованія це? 54 00:03:48,300 --> 00:03:52,800 У самому справі, так як оператор суфікс приріст має пріоритет над 55 00:03:52,800 --> 00:03:55,370 разименовать оператор, ми намагаємося збільшити покажчик у, 56 00:03:55,370 --> 00:03:59,170 який би перемістити покажчик за розміром Int байт. 57 00:03:59,170 --> 00:04:03,040 По суті дає нам адресу в деяких абсолютно іншої точки в пам'яті, 58 00:04:03,040 --> 00:04:05,010 а потім ми разименованія його. 59 00:04:05,010 --> 00:04:07,350 Так що це дуже безглузді лінії. 60 00:04:07,350 --> 00:04:10,250 Якщо ми насправді хотіли збільшити значення 7, 61 00:04:10,250 --> 00:04:14,260 ми повинні були б поставити оператор разименованія з у в дужках. 62 00:04:14,260 --> 00:04:17,290 Тоді ми могли б збільшити його. 63 00:04:17,290 --> 00:04:21,089 Таким чином, хоча ми б не збільшуючи значення х з другого до останнього рядка коду, 64 00:04:21,089 --> 00:04:23,380 В останньому рядку коду ми б фактично у разименованія 65 00:04:23,380 --> 00:04:26,380 щоб отримати значення х і збільшувати це. 66 00:04:26,380 --> 00:04:29,540 Ми не залишиться значення х дорівнює 8. 67 00:04:31,580 --> 00:04:33,580 >> Ось коротке резюме precendence правила, про які ми говорили. 68 00:04:33,580 --> 00:04:37,210 Почнемо з самих внутрішніх дужок і працювати назовні. 69 00:04:37,210 --> 00:04:41,210 Потім ми перейдемо до суфікс оператори, як я + +, або я -. 70 00:04:41,210 --> 00:04:45,920 Тоді разименованія та адресу оператора, як зірки х або амперсанд х, 71 00:04:45,920 --> 00:04:50,260 і префікс оператори, такі як + + або я - я. 72 00:04:50,260 --> 00:04:54,920 Нарешті, ми робимо прості математичні операції, як множення, ділення по модулю. 73 00:04:54,920 --> 00:04:58,400 Тоді додавання, віднімання. 74 00:04:58,400 --> 00:05:02,170 Ось precendence. Я Йорданії Jozwiak, і це CS50. 75 00:05:04,160 --> 00:05:10,480 Ми будемо разименованія і використовувати адреси і - як вам фраза? 76 00:05:12,380 --> 00:05:13,190 Я зробив. Добре.