Βίντεο: Εισαγωγή στις Δομές Δεδομένων-Πίνακες 2024
Όλοι οι χειριστές εκτελούν κάποια καθορισμένη συνάρτηση στη C ++. Επιπλέον, κάθε χειριστής έχει προτεραιότητα - μια καθορισμένη σειρά στην οποία αξιολογούνται οι εκφράσεις. Εξετάστε, για παράδειγμα, πώς η προτεραιότητα επηρεάζει την επίλυση του ακόλουθου προβλήματος:
int var = 2 * 3 + 1;
Εάν η προσθήκη πραγματοποιηθεί πριν από τον πολλαπλασιασμό, η τιμή της έκφρασης είναι 2 φορές 4 ή 8. Αν ο πολλαπλασιασμός εκτελείται πρώτα, η τιμή είναι 6 συν 1 ή 7.
Η προτεραιότητα των χειριστών καθορίζει ποιος πηγαίνει πρώτος. Η έννοια της υπεροχής είναι επίσης παρούσα στην αριθμητική. Η C ++ ακολουθεί την κοινή αριθμητική προτεραιότητα. Επομένως, ο πολλαπλασιασμός έχει υψηλότερη προτεραιότητα από την προσθήκη, έτσι το αποτέλεσμα είναι 7.
Τι συμβαίνει όταν δύο χειριστές της ίδιας προτεραιότητας εμφανίζονται στην ίδια έκφραση; Για παράδειγμα:
int var = 8/4/2;
Όταν οι χειριστές της ίδιας προτεραιότητας εμφανίζονται στην ίδια έκφραση, αξιολογούνται από αριστερά προς τα δεξιά (ο ίδιος κανόνας εφαρμόζεται στην αριθμητική). Έτσι, σε αυτό το απόσπασμα κώδικα, var είναι ίσο με 8 διαιρούμενο με 4 (το οποίο είναι 2) διαιρούμενο με 2 (που είναι 1).
Η έκφρασηx / 100 + 32
χωρίζει το x ανά 100 πριν προσθέσει 32. Αλλά τι γίνεται αν ο προγραμματιστής ήθελε να χωρίσει x κατά 100 συν 32; Ο προγραμματιστής μπορεί να αλλάξει την προτεραιότητα συνδυάζοντας τις εκφράσεις μαζί σε παρενθέσεις (αποχρώσεις της άλγεβρας!), Ως εξής:
x / (100 + 32)
Αυτή η έκφραση έχει το ίδιο αποτέλεσμα με τη διαίρεση x κατά 132. Η αρχική έκφραση
x / 100 + 32
είναι ίδια με την έκφραση
(χ / 100) + 32