1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] Vorrangregeln ist, wie wir die Frage zu beantworten, was sollte Operation, die wir als erstes tun? 2 00:00:10,540 --> 00:00:14,250 Ob Lösen von mathematischen Gleichungen oder Parsing Zeilen Computercode, 3 00:00:14,250 --> 00:00:17,230 es gibt strenge Regeln der Rangfolge, die wir einhalten 4 00:00:17,230 --> 00:00:20,270 so dass alle Computer und die Leute können das gleiche Ergebnis. 5 00:00:20,270 --> 00:00:24,710 >> First off, um die wichtigste Regel erinnern, vor allem in bug testing, 6 00:00:24,710 --> 00:00:27,680 ist, dass wir immer von den innersten Klammern nach außen zu arbeiten. 7 00:00:27,680 --> 00:00:31,120 Mit zusätzlichen Klammern kann eine hilfreiche Debugging Taktik sein, 8 00:00:31,120 --> 00:00:34,640 aber es ist nicht ratsam, Einstreu Ihren Code mit unnötigen Klammern. 9 00:00:34,640 --> 00:00:38,220 Nehmen Sie sich Zeit, um grundlegende Operatorvorrang Regeln zu lernen. 10 00:00:38,220 --> 00:00:42,450 >> Die zweite Regel ist, dass, wenn die Betreiber gleich Prioritätsachse dient haben, 11 00:00:42,450 --> 00:00:44,820 Sie einfach von links nach rechts zu lösen. 12 00:00:44,820 --> 00:00:47,690 Beim Umgang mit einfacher Mathematik beginnen wir mit Klammern, 13 00:00:47,690 --> 00:00:52,110 dann Multiplikation und Division, und schließlich tun, Addition und Subtraktion. 14 00:00:52,110 --> 00:00:54,400 Multiplikation und Division haben die gleiche Priorität, 15 00:00:54,400 --> 00:00:56,870 weil sie im Wesentlichen die gleiche Operation durchführen. 16 00:00:56,870 --> 00:01:00,880 Nach allen Abteilungen einfach Multiplikation mit dem Kehrwert eines Werts. 17 00:01:00,880 --> 00:01:04,300 Ähnlich wird Subtraktion einfaches Hinzufügen eines negativen Wert. 18 00:01:04,300 --> 00:01:06,150 >> Lassen Sie uns ein Beispiel. 19 00:01:14,470 --> 00:01:18,300 Nach der Rangfolge, werden wir mit den Klammern zu starten. Neun minus 1. 20 00:01:18,300 --> 00:01:23,410 Das wird uns 8. Dann können wir weiter zum Division und Multiplikation. 21 00:01:23,410 --> 00:01:27,450 Wir von links nach rechts zu lösen. So 10 geteilt durch 2 ist 5. 22 00:01:27,450 --> 00:01:31,290 Wir haben 5 mal 8 hier, und das wird uns 40. 23 00:01:33,230 --> 00:01:35,410 Dann sind wir auf die nächste Rangfolge bewegen. 24 00:01:35,410 --> 00:01:38,730 Also sind wir mit 3 plus 40 minus 1 übrig. 25 00:01:42,400 --> 00:01:43,700 Lösen wieder nur links nach rechts, 26 00:01:43,700 --> 00:01:47,650 weil es die gleiche Priorität zwischen der Addition und Subtraktion. 27 00:01:47,650 --> 00:01:51,510 Wir können sagen, 3 plus 40 ist 43, minus 1 ist 42. Das ist unsere Antwort. 28 00:01:53,920 --> 00:01:56,730 >> Es gibt 2 Arten von Dekrement und Inkrement-Operatoren; 29 00:01:56,730 --> 00:02:01,000 Das Präfix Form, und das Suffix Form. 30 00:02:01,000 --> 00:02:06,130 Das Suffix Form i + +, wird häufig in for-Schleifen verwendet werden, 31 00:02:06,130 --> 00:02:10,500 was bedeutet, dass der aktuelle Wert in dem Ausdruck verwendet wird, und es wird dann inkrementiert. 32 00:02:10,500 --> 00:02:14,240 So Wert wird nur anders sein beim nächsten Mal die Variable verwendet wird. 33 00:02:14,240 --> 00:02:17,910 Auf der anderen Seite bedeutet die Vorsilbe Inkrement oder Dekrement, dass der aktuelle Wert 34 00:02:17,910 --> 00:02:22,760 inkrementiert oder dekrementiert wird zuerst, und dann wird in dem Ausdruck verwendet. 35 00:02:22,760 --> 00:02:25,310 >> Nehmen wir ein Beispiel mit der Zahl x. 36 00:02:25,310 --> 00:02:27,220 Wir richten es gleich 5 ist. 37 00:02:27,220 --> 00:02:36,500 Wenn wir das Suffix-Operator auf sie und sagen, x + +, x auf dieser Linie noch 5. 38 00:02:36,500 --> 00:02:39,230 Wenn wir es ausdrucken, würden wir erhalten den Wert 5. 39 00:02:39,230 --> 00:02:42,540 Aber für die Zukunft x1 Tat gleich 6. 40 00:02:42,540 --> 00:02:48,770 So hier auf dieser Linie x gleich 6, und wenn wir es ausgedruckt würden wir den Wert 6. 41 00:02:48,770 --> 00:02:57,380 Wenn wir nun den Präfix-Operator verwendet, + + x, x wird zuerst erhöht und dann wird der Wert verwendet wird. 42 00:02:57,380 --> 00:03:00,110 So ist es gleich 7 auf dieser Linie. 43 00:03:00,110 --> 00:03:04,750 Inkrementieren Kurs 6 bis 7, und wenn wir es ausdrucken, würden wir erhalten den Wert 7. 44 00:03:04,750 --> 00:03:09,160 >> Der letzte Nuance in Vorrangregeln, dass wir auf Angebote mit Zeigernotation aussehen. 45 00:03:09,160 --> 00:03:15,050 Die Dereferenzierungsoperator, Stern, hat Vorrang vor grundlegende mathematische Operatoren, 46 00:03:15,050 --> 00:03:18,550 aber nicht über dem Suffix incement und Dekrement-Operatoren. 47 00:03:18,550 --> 00:03:20,690 Dies führt uns zu unserem letzten Beispiel. 48 00:03:20,690 --> 00:03:24,500 Nehmen wir die Zahl x und legen Sie es gleich 7. 49 00:03:24,500 --> 00:03:30,540 Wir werden auch einen Zeiger y und setzen sie gleich an die Adresse von x. 50 00:03:30,540 --> 00:03:34,920 So dass, wenn wir dereference y sollten wir den Wert 7 zu bekommen. 51 00:03:34,920 --> 00:03:39,380 Jetzt in dieser Codezeile, haben wir eine etwas unklare Situation. 52 00:03:39,380 --> 00:03:44,310 Sind wir Dereferenzierung y zuerst, und dann Inkrementieren den Wert 7? 53 00:03:44,310 --> 00:03:48,300 Oder sind wir Inkrementieren des Zeigers und dann Dereferenzierung es? 54 00:03:48,300 --> 00:03:52,800 In der Tat, denn das Suffix-Operator hat Vorrang 55 00:03:52,800 --> 00:03:55,370 Dereferenzierungsoperator, wir versuchen, um den Zeiger y erhöhen, 56 00:03:55,370 --> 00:03:59,170 was würden Sie den Mauszeiger nach Größe des int bytes bewegen. 57 00:03:59,170 --> 00:04:03,040 Essentially geben uns eine Adresse in irgendeiner ganz anderen Punkt in Erinnerung, 58 00:04:03,040 --> 00:04:05,010 und dann sind wir Dereferenzierung es. 59 00:04:05,010 --> 00:04:07,350 Also das ist sehr bedeutungslose Linie. 60 00:04:07,350 --> 00:04:10,250 Wenn wir tatsächlich gesucht, um den Wert von 7 zu inkrementieren, 61 00:04:10,250 --> 00:04:14,260 müssten wir die Dereferenzierungsoperator mit y in Klammern gesetzt. 62 00:04:14,260 --> 00:04:17,290 Dann könnten wir erhöhen es. 63 00:04:17,290 --> 00:04:21,089 Während wir also würde nicht Inkrementieren des Wertes x mit der zweiten bis zur letzten Zeile des Codes, 64 00:04:21,089 --> 00:04:23,380 in der letzten Zeile des Codes würden wir infact dereference y 65 00:04:23,380 --> 00:04:26,380 , um den Wert x zu erhalten und erhöhen, dass. 66 00:04:26,380 --> 00:04:29,540 Wir würden mit dem Wert x gleich 8 verbleiben. 67 00:04:31,580 --> 00:04:33,580 >> Hier ist eine kurze Zusammenfassung der Vorrangregeln, dass wir darüber gesprochen. 68 00:04:33,580 --> 00:04:37,210 Wir werden mit den innersten Klammern beginnen und nach außen. 69 00:04:37,210 --> 00:04:41,210 Dann haben wir auf suffix Operatoren wie i + + oder i bewegen -. 70 00:04:41,210 --> 00:04:45,920 Dann Dereferenzierung und Adresse von Betreibern wie Stern x oder kaufmännisches x, 71 00:04:45,920 --> 00:04:50,260 und die Präfix-Operatoren wie + + i oder - i. 72 00:04:50,260 --> 00:04:54,920 Schließlich haben wir die einfachen mathematischen Operationen wie Multiplikation, Division, Modulo. 73 00:04:54,920 --> 00:04:58,400 Dann Addition, Subtraktion. 74 00:04:58,400 --> 00:05:02,170 Das ist Vorrangregeln. Ich bin Jordan Jozwiak, und dies ist CS50. 75 00:05:04,160 --> 00:05:10,480 Wir werden dereferenzieren und verwenden Sie die Adresse und - wie wollen Sie Satz, dass? 76 00:05:12,380 --> 00:05:13,190 Ich bin fertig. Okay.