1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] Precendence jest to, jak odpowiedzieć na pytanie, jakie działania należy zrobić w pierwszej kolejności? 2 00:00:10,540 --> 00:00:14,250 Czy rozwiązywanie równań matematycznych lub linie analizowania kodu komputerowego, 3 00:00:14,250 --> 00:00:17,230 istnieją surowe zasady pierwszeństwa, do którego przylegają 4 00:00:17,230 --> 00:00:20,270 tak, że wszystkie komputery i ludzie mogą uzyskać taki sam wynik. 5 00:00:20,270 --> 00:00:24,710 >> Po pierwsze, najważniejsza zasada, aby pamiętać, zwłaszcza w testach błędów, 6 00:00:24,710 --> 00:00:27,680 jest to, że zawsze działa z najgłębszych nawiasach zewnętrznych. 7 00:00:27,680 --> 00:00:31,120 Używanie dodatkowych nawiasów może być pomocna taktyka debugowania 8 00:00:31,120 --> 00:00:34,640 ale to nie jest dobra praktyka, aby Twój kod z miotu niepotrzebnych nawiasów. 9 00:00:34,640 --> 00:00:38,220 Poświęć trochę czasu, aby dowiedzieć się podstawowych zasad pierwszeństwa operatora. 10 00:00:38,220 --> 00:00:42,450 >> Druga ogólna zasada jest taka, że ​​kiedy operatorzy mają równe priorty, 11 00:00:42,450 --> 00:00:44,820 wystarczy rozwiązać od strony lewej do prawej. 12 00:00:44,820 --> 00:00:47,690 Gdy mamy do czynienia z prostą matematyką zaczynamy nawiasach 13 00:00:47,690 --> 00:00:52,110 następnie wykonaj mnożenie i dzielenie, a wreszcie zrobić dodawanie i odejmowanie. 14 00:00:52,110 --> 00:00:54,400 Mnożenie i dzielenie mają ten sam priorytet, 15 00:00:54,400 --> 00:00:56,870 ponieważ zasadniczo wykonywania tej samej operacji. 16 00:00:56,870 --> 00:01:00,880 Po wszystkich podziału mnożąc po prostu przez odwrotność wartości. 17 00:01:00,880 --> 00:01:04,300 Podobnie odejmowania jest po prostu dodanie wartości ujemnej. 18 00:01:04,300 --> 00:01:06,150 >> Zróbmy przykład. 19 00:01:14,470 --> 00:01:18,300 Po kolejności, zaczniemy z nawiasów. Dziewięć minus 1. 20 00:01:18,300 --> 00:01:23,410 To da nam 8. Następnie możemy przejść do podziału i namnażania. 21 00:01:23,410 --> 00:01:27,450 Teraz możemy rozwiązać od strony lewej do prawej. Tak więc 10 podzielone przez 2 jest 5. 22 00:01:27,450 --> 00:01:31,290 Mamy 5 razy 8 tutaj i że da nam 40. 23 00:01:33,230 --> 00:01:35,410 Następnie możemy przejść do następnej kolejności. 24 00:01:35,410 --> 00:01:38,730 Więc jesteśmy w lewo z 3 plus 40 minus 1. 25 00:01:42,400 --> 00:01:43,700 Ponownie tylko rozwiązywanie lewej do prawej, 26 00:01:43,700 --> 00:01:47,650 bo jest równy priorytet między dodawania i odejmowania. 27 00:01:47,650 --> 00:01:51,510 Możemy powiedzieć, że 3 plus 40 jest 43, minus 1 jest 42. To nasza odpowiedź. 28 00:01:53,920 --> 00:01:56,730 >> Istnieją 2 rodzaje dekrementacji i przyrost podmiotów gospodarczych; 29 00:01:56,730 --> 00:02:01,000 Formularz prefix, a forma sufiksem. 30 00:02:01,000 --> 00:02:06,130 Formularz przyrostek, i + +, jest powszechnie stosowany w pętli, 31 00:02:06,130 --> 00:02:10,500 co oznacza, że ​​bieżąca wartość jest stosowany w ekspresji, a następnie zwiększa się. 32 00:02:10,500 --> 00:02:14,240 Tak więc wartość różni się tylko następnym zmienna jest używana. 33 00:02:14,240 --> 00:02:17,910 Z drugiej strony, lub zmniejszenie przyrostu prefix oznacza, że ​​bieżąca wartość 34 00:02:17,910 --> 00:02:22,760 jest zwiększana lub zmniejszana pierwsze, a następnie jest on używany w wyrażeniu. 35 00:02:22,760 --> 00:02:25,310 >> Weźmy przykład z liczby całkowitej x. 36 00:02:25,310 --> 00:02:27,220 Będziemy ustawić równy 5. 37 00:02:27,220 --> 00:02:36,500 Jeśli użyjemy operatora przyrostek na niego i powiedzieć x + +, x na tej linii jest jeszcze 5. 38 00:02:36,500 --> 00:02:39,230 Gdybyśmy go wydrukować dostalibyśmy wartość 5. 39 00:02:39,230 --> 00:02:42,540 Ale w przyszłości fakt x1 wynosi 6. 40 00:02:42,540 --> 00:02:48,770 Więc tutaj na tej linii x jest równa 6, a jeśli drukowane go chcemy uzyskać wartość 6. 41 00:02:48,770 --> 00:02:57,380 Teraz, jeżeli używane operatora prefiksu + x, x jest zwiększany, a potem wartość służy. 42 00:02:57,380 --> 00:03:00,110 Tak jest równa 7 w tej linii. 43 00:03:00,110 --> 00:03:04,750 Inkrementacji oczywiście 6 do 7, i gdybyśmy go wydrukować chcemy uzyskać wartość 7. 44 00:03:04,750 --> 00:03:09,160 >> Niuans w precendence że będziemy patrzeć na oferty z notacji wskaźnik. 45 00:03:09,160 --> 00:03:15,050 Operator dereference, gwiazda, ma pierwszeństwo podstawowych operatorów matematycznych, 46 00:03:15,050 --> 00:03:18,550 ale nie przesadnie incement sufiksu i operatorów dekrementacji. 47 00:03:18,550 --> 00:03:20,690 To prowadzi nas do ostatecznego przykład. 48 00:03:20,690 --> 00:03:24,500 Weźmy liczbę całkowitą x i ustawić ją równą 7. 49 00:03:24,500 --> 00:03:30,540 Będziemy również dokonać y wskaźnika i ustawić go równa adres x. 50 00:03:30,540 --> 00:03:34,920 Tak, że gdy y dereference powinniśmy uzyskać wartość 7. 51 00:03:34,920 --> 00:03:39,380 Teraz w tej linii kodu, mamy nieco dwuznaczną sytuację. 52 00:03:39,380 --> 00:03:44,310 Czy jesteśmy dereferencji y, a potem zwiększając wartość 7? 53 00:03:44,310 --> 00:03:48,300 Czy jesteśmy zwiększający wskaźnik, a następnie dereferencji go? 54 00:03:48,300 --> 00:03:52,800 W rzeczywistości, ponieważ operator inkrementacji przyrostek ma pierwszeństwo przed 55 00:03:52,800 --> 00:03:55,370 operator dereference, mamy próby zwiększamy y wskaźnika, 56 00:03:55,370 --> 00:03:59,170 które należy przesunąć wskaźnik na wielkość int bajtów. 57 00:03:59,170 --> 00:04:03,040 Zasadniczo daje nam adres w jakimś zupełnie innym miejscu w pamięci, 58 00:04:03,040 --> 00:04:05,010 a następnie mamy dereferencji go. 59 00:04:05,010 --> 00:04:07,350 Więc jest to bardzo bezsensowne line. 60 00:04:07,350 --> 00:04:10,250 Jeżeli faktycznie chciał zwiększamy wartość 7, 61 00:04:10,250 --> 00:04:14,260 musielibyśmy umieścić operatora dereference zy w nawiasach. 62 00:04:14,260 --> 00:04:17,290 Wtedy moglibyśmy zwiększyć go. 63 00:04:17,290 --> 00:04:21,089 Tak więc, nie będzie zwiększanie wartości x z przedostatniej linii kodu, 64 00:04:21,089 --> 00:04:23,380 w ostatnim wierszu kodu by y dereference rzeczywiście 65 00:04:23,380 --> 00:04:26,380 uzyskać wartości x i przyrost tego. 66 00:04:26,380 --> 00:04:29,540 Chcemy pozostawić z wartością x równa 8. 67 00:04:31,580 --> 00:04:33,580 >> Oto krótkie podsumowanie zasad precendence że rozmawialiśmy o. 68 00:04:33,580 --> 00:04:37,210 Zaczniemy od najbardziej wewnętrznych nawiasach i pracować na zewnątrz. 69 00:04:37,210 --> 00:04:41,210 Następnie przechodzimy do operatorów sufiksów jak i + + lub i -. 70 00:04:41,210 --> 00:04:45,920 Następnie dereference i adres podmiotów, takich jak gwiazdy Ampersand x lub x, 71 00:04:45,920 --> 00:04:50,260 i podmioty, takie jak prefiks + + I lub - I. 72 00:04:50,260 --> 00:04:54,920 Wreszcie możemy zrobić proste operacje matematyczne takie jak mnożenie, dzielenie modulo. 73 00:04:54,920 --> 00:04:58,400 Następnie dodawanie, odejmowanie. 74 00:04:58,400 --> 00:05:02,170 To precendence. Jestem Jordan Jóźwiak, a to CS50. 75 00:05:04,160 --> 00:05:10,480 Będziemy dereference i używać adres i - jak się zdanie, które? 76 00:05:12,380 --> 00:05:13,190 Skończę. Okay.