[Powered by Google Translate] Precendence είναι πώς θα απαντήσει στο ερώτημα, ποια λειτουργία πρέπει να κάνουμε πρώτα;
Είτε την επίλυση μαθηματικών εξισώσεων ή γραμμές ανάλυσης του κώδικα υπολογιστή,
υπάρχουν αυστηροί κανόνες προτεραιότητας με την οποία τηρούμε
έτσι ώστε όλοι οι υπολογιστές και οι άνθρωποι μπορούν να πάρουν το ίδιο αποτέλεσμα.
>> Πρώτα απ 'όλα, ο πιο σημαντικός κανόνας για να θυμόμαστε, ειδικά στη δοκιμή bug,
είναι ότι λειτουργεί πάντα από τις πιο εσωτερικό παρενθέσεις προς τα έξω.
Χρησιμοποιώντας επιπλέον παρενθέσεις μπορεί να είναι μια χρήσιμη τακτική debugging,
αλλά δεν είναι καλή πρακτική για σκουπίδια κωδικό σας με αχρείαστα παρενθέσεις.
Πάρτε το χρόνο για να μάθετε τις βασικές χειριστή κανόνες προτεραιότητας.
>> Ο δεύτερος γενικός κανόνας είναι ότι όταν οι φορείς εκμετάλλευσης έχουν ίσα priorty,
μπορείτε απλά να λύσει από αριστερά προς τα δεξιά.
Όταν έχουμε να κάνουμε με απλές μαθηματικές πράξεις ξεκινάμε με παρενθέσεις,
στη συνέχεια, κάντε τον πολλαπλασιασμό και διαίρεση, και, τέλος, κάνουν πρόσθεση και αφαίρεση.
Πολλαπλασιασμός και διαίρεση έχουν την ίδια προτεραιότητα,
επειδή εκτελούν ουσιαστικά την ίδια λειτουργία.
Αφού όλα διαίρεση απλά πολλαπλασιάζοντας με το αντίστροφο του αξία.
Ομοίως, η αφαίρεση προσθέτοντας απλώς μια αρνητική τιμή.
>> Ας κάνουμε ένα παράδειγμα.
Μετά από τη σειρά, θα αρχίσουμε με τις παρενθέσεις. Εννέα μείον 1.
Αυτό θα μας δώσει 8. Στη συνέχεια μπορούμε να προχωρήσουμε στη διαίρεση και τον πολλαπλασιασμό.
Θα λύσει από αριστερά προς τα δεξιά. Μέχρι 10 διαιρούμενο δια του 2 είναι 5.
Έχουμε 5 φορές 8 εδώ, και ότι θα μας δώσει 40.
Στη συνέχεια θα προχωρήσουμε στην επόμενη σειρά προτεραιότητας.
Γι 'αυτό και είστε αριστερά με 3 συν 40 μείον 1.
Και πάλι μόνο την επίλυση αριστερά προς τα δεξιά,
επειδή υπάρχει ίση προτεραιότητα μεταξύ της πρόσθεσης και αφαίρεσης.
Μπορούμε να πούμε 3 συν 40 είναι 43, μείον 1 είναι 42. Αυτή είναι η απάντησή μας.
>> Υπάρχουν 2 τύποι μείωση και αύξηση φορείς?
Η μορφή πρόθεμα, και η μορφή κατάληξη.
Η μορφή επίθημα, ί + +, χρησιμοποιείται συνήθως σε για βρόχους,
πράγμα που σημαίνει ότι η τρέχουσα τιμή χρησιμοποιείται στην έκφραση, και στη συνέχεια αυξάνεται.
Έτσι η αξία θα είναι μόνο διαφορετικές την επόμενη φορά που η μεταβλητή χρησιμοποιείται.
Από την άλλη πλευρά, η αύξηση ή μείωση πρόθεμα σημαίνει ότι η τρέχουσα αξία
αυξάνεται ή μειώνεται πρώτα, και στη συνέχεια χρησιμοποιείται στην έκφραση.
>> Ας πάρουμε ένα παράδειγμα με τον ακέραιο αριθμό x.
Θα οριστεί ίσο με το 5.
Αν χρησιμοποιήσουμε τον τελεστή κατάληξη σε αυτό και να πω x + +, Χ σε αυτή τη γραμμή είναι ακόμα 5.
Αν ήταν να το εκτυπώσετε θα πάρει την τιμή 5.
Αλλά να πάμε μπροστά γεγονός x1 ισούται με 6.
Έτσι ακριβώς εδώ σε αυτό το x γραμμή είναι ίσο με 6, και αν θέλουμε να εκτυπωθούν θα πάρει την τιμή 6.
Τώρα, αν θα χρησιμοποιηθεί ο τελεστής πρόθεμα, + + χ, χ αυξάνεται πρώτα, και στη συνέχεια η τιμή αυτή χρησιμοποιείται.
Γι 'αυτό είναι ίσο με 7 σε αυτή τη γραμμή.
Η αύξηση του πορεία 6 με 7, και αν επρόκειτο να το εκτυπώσετε θα πάρει την τιμή 7.
>> Η τελευταία απόχρωση σε precendence ότι θα εξετάσουμε ασχολείται με συμβολισμό δείκτη.
Ο διαχειριστής dereference, αστέρι, έχει προτεραιότητα σε σχέση με τις βασικές μαθηματικά φορείς,
αλλά όχι πάνω από το incement κατάληξη και μείωση φορείς.
Αυτό μας οδηγεί στο τελευταίο παράδειγμα μας.
Ας πάρουμε το ακέραιο x και ορίζεται ίσο με το 7.
Θα κάνει επίσης ένα y δείκτη και να το θέσει ίση με την διεύθυνση του x.
Έτσι ώστε όταν y dereference θα πρέπει να πάρει την τιμή 7.
Τώρα, σε αυτή τη γραμμή του κώδικα, έχουμε μια κάπως διφορούμενη κατάσταση.
Είμαστε εύρεση τιμών y πρώτα, και στη συνέχεια την αύξηση του αξία 7;
Ή μήπως την αύξηση του δείκτη και στη συνέχεια, εύρεση τιμών είναι;
Στην πραγματικότητα, επειδή ο χειριστής αύξηση κατάληξη έχει προτεραιότητα έναντι
ο χειριστής dereference, θα προσπαθείτε να αυξήσετε το δείκτη y,
η οποία θα μετακινήσετε το δείκτη ανάλογα με το μέγεθος του int bytes.
Ουσιαστικά μας δίνει μια διεύθυνση σε κάποιο εντελώς διαφορετικό σημείο στη μνήμη,
και στη συνέχεια να είμαστε εύρεση τιμών.
Έτσι, αυτό είναι πολύ νόημα γραμμή.
Αν πραγματικά ήθελε να αυξήσετε την αξία του 7,
θα πρέπει να τεθεί το χειριστή dereference με y σε παρένθεση.
Στη συνέχεια, θα μπορούσαμε να το αυξήσετε.
Έτσι, ενώ εμείς δεν θα την αύξηση του x τιμή με το δεύτερο στο τελευταίο γραμμή κώδικα,
στην τελευταία γραμμή του κώδικα που θα infact y dereference
για να πάρει την τιμή x και ότι αυξήσετε.
Θα πρέπει να μείνει με την αξία ισούται με x 8.
>> Εδώ είναι μια γρήγορη ανακεφαλαίωση των κανόνων precendence ότι έχουμε μιλήσει.
Θα ξεκινήσουμε με τις πιο εσωτερικό παρένθεση και να εργαστούν προς τα έξω.
Στη συνέχεια, θα προχωρήσουμε σε φορείς όπως η κατάληξη i + + i ή -.
Στη συνέχεια, dereference και διεύθυνση των φορέων εκμετάλλευσης, όπως αστέρι x ή εμπορικό x,
και οι φορείς όπως το πρόθεμα + + i ή - i.
Τέλος, κάνουμε τις απλές μαθηματικές πράξεις όπως πολλαπλασιασμός, διαίρεση, modulo.
Τότε πρόσθεση, αφαίρεση.
Αυτό είναι precendence. Είμαι Jordan Jozwiak, και αυτό είναι CS50.
Εμείς θα dereference και χρησιμοποιήστε τη διεύθυνση και - πώς μπορείτε φράση αυτή;
Είμαι κάνει. Εντάξει.