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 >> Πρώτα απ 'όλα, ο πιο σημαντικός κανόνας για να θυμόμαστε, ειδικά στη δοκιμή bug, 6 00:00:24,710 --> 00:00:27,680 είναι ότι λειτουργεί πάντα από τις πιο εσωτερικό παρενθέσεις προς τα έξω. 7 00:00:27,680 --> 00:00:31,120 Χρησιμοποιώντας επιπλέον παρενθέσεις μπορεί να είναι μια χρήσιμη τακτική debugging, 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 >> Ας πάρουμε ένα παράδειγμα με τον ακέραιο αριθμό x. 36 00:02:25,310 --> 00:02:27,220 Θα οριστεί ίσο με το 5. 37 00:02:27,220 --> 00:02:36,500 Αν χρησιμοποιήσουμε τον τελεστή κατάληξη σε αυτό και να πω x + +, Χ σε αυτή τη γραμμή είναι ακόμα 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 Έτσι ακριβώς εδώ σε αυτό το x γραμμή είναι ίσο με 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 Ο διαχειριστής dereference, αστέρι, έχει προτεραιότητα σε σχέση με τις βασικές μαθηματικά φορείς, 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 Ας πάρουμε το ακέραιο x και ορίζεται ίσο με το 7. 49 00:03:24,500 --> 00:03:30,540 Θα κάνει επίσης ένα y δείκτη και να το θέσει ίση με την διεύθυνση του x. 50 00:03:30,540 --> 00:03:34,920 Έτσι ώστε όταν y dereference θα πρέπει να πάρει την τιμή 7. 51 00:03:34,920 --> 00:03:39,380 Τώρα, σε αυτή τη γραμμή του κώδικα, έχουμε μια κάπως διφορούμενη κατάσταση. 52 00:03:39,380 --> 00:03:44,310 Είμαστε εύρεση τιμών y πρώτα, και στη συνέχεια την αύξηση του αξία 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 ο χειριστής dereference, θα προσπαθείτε να αυξήσετε το δείκτη y, 56 00:03:55,370 --> 00:03:59,170 η οποία θα μετακινήσετε το δείκτη ανάλογα με το μέγεθος του int bytes. 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 θα πρέπει να τεθεί το χειριστή dereference με y σε παρένθεση. 62 00:04:14,260 --> 00:04:17,290 Στη συνέχεια, θα μπορούσαμε να το αυξήσετε. 63 00:04:17,290 --> 00:04:21,089 Έτσι, ενώ εμείς δεν θα την αύξηση του x τιμή με το δεύτερο στο τελευταίο γραμμή κώδικα, 64 00:04:21,089 --> 00:04:23,380 στην τελευταία γραμμή του κώδικα που θα infact y dereference 65 00:04:23,380 --> 00:04:26,380 για να πάρει την τιμή x και ότι αυξήσετε. 66 00:04:26,380 --> 00:04:29,540 Θα πρέπει να μείνει με την αξία ισούται με x 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 Στη συνέχεια, θα προχωρήσουμε σε φορείς όπως η κατάληξη i + + i ή -. 70 00:04:41,210 --> 00:04:45,920 Στη συνέχεια, dereference και διεύθυνση των φορέων εκμετάλλευσης, όπως αστέρι x ή εμπορικό x, 71 00:04:45,920 --> 00:04:50,260 και οι φορείς όπως το πρόθεμα + + i ή - i. 72 00:04:50,260 --> 00:04:54,920 Τέλος, κάνουμε τις απλές μαθηματικές πράξεις όπως πολλαπλασιασμός, διαίρεση, modulo. 73 00:04:54,920 --> 00:04:58,400 Τότε πρόσθεση, αφαίρεση. 74 00:04:58,400 --> 00:05:02,170 Αυτό είναι precendence. Είμαι Jordan Jozwiak, και αυτό είναι CS50. 75 00:05:04,160 --> 00:05:10,480 Εμείς θα dereference και χρησιμοποιήστε τη διεύθυνση και - πώς μπορείτε φράση αυτή; 76 00:05:12,380 --> 00:05:13,190 Είμαι κάνει. Εντάξει.