Σε αυτό το σεμινάριο, θα μάθετε για την προτεραιότητα και τη συσχέτιση των χειριστών με τη βοήθεια παραδειγμάτων.
Προτεραιότητα των φορέων
Η προτεραιότητα των τελεστών καθορίζει ποιος τελεστής εκτελείται πρώτα εάν υπάρχουν περισσότεροι από ένας τελεστές σε μια έκφραση.
Ας εξετάσουμε ένα παράδειγμα:
int x = 5 - 17* 6;
Στο C, η προτεραιότητα *
είναι υψηλότερη από -
και =
. Ως εκ τούτου, 17 * 6
αξιολογείται πρώτα. Στη συνέχεια, η έκφραση που εμπλέκεται -
αξιολογείται καθώς η προτεραιότητα -
είναι υψηλότερη από αυτήν του =
.
Ακολουθεί ένας πίνακας προτεραιότητας χειριστή από υψηλότερο σε χαμηλότερο. Η ιδιότητα του συνεταιρισμού θα συζητηθεί σύντομα.
Πίνακας Προτεραιότητας & Συσχετιστικότητας
Χειριστής | Έννοια του χειριστή | Συνεργασία |
---|---|---|
() () -> . | Λειτουργική κλήση Αναφορά στοιχείου σειράς Έμμεση επιλογή μέλους Άμεση επιλογή μέλους | Από αριστερά προς τα δεξιά |
! ~ + - ++ - & * sizeof (τύπος) | Λογική άρνηση Συμπληρώματα Bitwise (1) Unary συν Unary μείον Αύξηση μείωση Dereference (Διεύθυνση) Δείκτης αναφοράς Επιστρέφει το μέγεθος ενός αντικειμένου Typecast (μετατροπή) | Δεξιά προς τα αριστερά |
* / % | Πολλαπλασιασμός Διαίρεση Υπόλοιπο | Από αριστερά προς τα δεξιά |
+ - | Δυαδικό συν (Προσθήκη) Δυαδικό μείον (αφαίρεση) | Από αριστερά προς τα δεξιά |
<< >> | Αριστερή στροφή Δεξιά στροφή | Από αριστερά προς τα δεξιά |
< <= > > = | Λιγότερο από λιγότερο από ή ίσο Μεγαλύτερο από μεγαλύτερο από ή ίσο | Από αριστερά προς τα δεξιά |
== ! = | Ίση με Όχι ίση με | Από αριστερά προς τα δεξιά |
& | Bitwise ΚΑΙ | Από αριστερά προς τα δεξιά |
^ | Αποκλειστικά bitwise Ή | Από αριστερά προς τα δεξιά |
| | Bitwise Ή | Από αριστερά προς τα δεξιά |
&& | Λογική ΚΑΙ | Από αριστερά προς τα δεξιά |
|| | Λογική Ή | Από αριστερά προς τα δεξιά |
;: | Υπό όρους χειριστής | Δεξιά προς τα αριστερά |
= * = / = % = + = - = & = = | = << = >> = | Απλή ανάθεση Ανάθεση προϊόντος Αντιστοίχιση πηλίκου Αντιστοίχιση υπολοίπου Εκχώρηση αθροίσματος Αντιστοίχιση διαφοράς Αντιστοίχιση δεξιόστροφα ΚΑΙ Αντιστοίχιση δεξιόστροφα XOR Αντιστοίχιση δεξιόστροφα Ή Αντιστοίχιση αριστερής μετατόπισης Εκχώρηση δεξιάς μετατόπισης | Δεξιά προς τα αριστερά |
, | Διαχωριστής των εκφράσεων | Από αριστερά προς τα δεξιά |
Συνεργασία χειριστών
Η συσχέτιση των χειριστών καθορίζει την κατεύθυνση στην οποία αξιολογείται μια έκφραση. Για παράδειγμα,
b = a;
Εδώ, η τιμή του a αντιστοιχεί στο b και όχι το αντίστροφο. Είναι επειδή η συνάφεια του =
χειριστή είναι από δεξιά προς τα αριστερά.
Επίσης, εάν υπάρχουν δύο τελεστές της ίδιας προτεραιότητας (προτεραιότητα), η συνάφεια καθορίζει την κατεύθυνση στην οποία εκτελούν.
Ας εξετάσουμε ένα παράδειγμα:
1 == 2! = 3
Εδώ, οι χειριστές ==
και !=
έχουν την ίδια προτεραιότητα. Και, η σχέση τους είναι από αριστερά προς τα δεξιά. Ως εκ τούτου, 1 == 2
εκτελείται πρώτα.
Η παραπάνω έκφραση ισοδυναμεί με:
(1 == 2)! = 3
Σημείωση: Εάν μια δήλωση έχει πολλούς τελεστές, μπορείτε να χρησιμοποιήσετε παρενθέσεις ()
για να κάνετε τον κώδικα πιο ευανάγνωστο.