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 Я сделал. Хорошо.