Τελεστές
Οι τελεστές χρησιμοποιούνται για να εκτελέσουν λειτουργίες σε μεταβλητές και τιμές.
Στο παράδειγμα παρακάτω, χρησιμοποιούμε τον τελεστή + για να προσθέσουμε δύο τιμές:
int x = 5; int y = 6; int sum = x + y;
Στο παραπάνω παράδειγμα, η τιμή της μεταβλητής sum θα είναι 11 (το αποτέλεσμα της πρόσθεσης των μεταβλητών x και y).
Μπορείτε να εκτυπώσετε το αποτέλεσμα της παραπάνω πράξης με τη χρήση της συνάρτησης printf() και του format specifier %d:
int x = 5; int y = 6; int sum = x + y; printf("The sum of %d and %d is %d\n", x, y, sum);
Η έξοδος από το παραπάνω κώδικα θα είναι:
The sum of 5 and 6 is 11
Αν και ο τελεστής + χρησιμοποιείται συνήθως για να προσθέσει δύο τιμές, όπως στο παράδειγμα παραπάνω, μπορεί επίσης να χρησιμοποιηθεί για να προσθέσει μια μεταβλητή και μια τιμή ή μια μεταβλητή και μια άλλη μεταβλητή:
int x = 5; int sum1 = x + 3; // adds a variable and a value int y = 7; int sum2 = x + y; // adds two variables
Στο παραπάνω παράδειγμα, η τιμή της μεταβλητής sum1 θα είναι 8 (το αποτέλεσμα της πρόσθεσης των μεταβλητών x και 3), ενώ η τιμή της μεταβλητής sum2 θα είναι 12 (το αποτέλεσμα της πρόσθεσης των μεταβλητών x και y).
Η C διαχωρίζει τους τελεστές σε αυτές τις κατηγορίες:
- Αριθμητικοί τελεστές
- Τελεστές ανάθεσης
- Τελεστές σύγκρισης
- Λογικοί τελεστές
- Δυαδικοί τελεστές
Οι αριθμητικοί τελεστές χρησιμοποιούνται για να εκτελέσουν κοινές μαθηματικές πράξεις.
[adinserter block=”2″]
Οι αριθμητικοί τελεστές είναι:
Τελεστής | Όνομα | Περιγραφή | Παράδειγμα |
---|---|---|---|
+ | Πρόσθεση | Προσθέτει δύο τιμές | x + y |
– | Αφαίρεση | Αφαιρεί μια τιμή από μια άλλη | x – y |
* | Πολλαπλασιασμός | Πολλαπλασιάζει δύο τιμές | x * y |
/ | Διαίρεση | Διαιρεί μια τιμή με μια άλλη | x / y |
% | Υπόλοιπο | Επιστρέφει το υπόλοιπο της διαίρεσης | x % y |
++ | Αύξηση | Αυξάνει την τιμή μιας μεταβλητής κατά 1 | ++x |
— | Μείωση | Μειώνει την τιμή μιας μεταβλητής κατά 1 | –x |
Οι τελεστές ανάθεσης χρησιμοποιούνται για να αντιστοιχίσουν τιμές σε μεταβλητές.
Στο παράδειγμα παρακάτω, χρησιμοποιούμε τον τελεστή ανάθεσης (=) για να αντιστοιχίσουμε την τιμή 10 σε μια μεταβλητή με το όνομα x:
int x; x = 10;
Μπορούμε επίσης να χρησιμοποιήσουμε συντομογραφίες για τους τελεστές ανάθεσης μαζί με αριθμητικούς τελεστές. Για παράδειγμα:
int x = 5; x += 3; // same as x = x + 3; x -= 3; // same as x = x - 3; x *= 3; // same as x = x * 3; x /= 3; // same as x = x / 3; x %= 3; // same as x = x % 3;
Στο παραπάνω παράδειγμα, η τιμή της μεταβλητής x αρχικά είναι 5. Η συντομογραφία x += 3 αντιστοιχεί στην πράξη x = x + 3, οπότε η τιμή της μεταβλητής x θα γίνει 8. Το ίδιο ισχύει και για τις άλλες συντομογραφίες αριθμητικών τελεστών.
Μια λίστα με όλους τους τελεστές ανάθεσης:
Τελεστής | Παράδειγμα | Ίδιο με |
---|---|---|
= | x = 5 | x = 5 |
+= | x += 3 | x = x + 3 |
-= | x -= 3 | x = x – 3 |
*= | x *= 3 | x = x * 3 |
/= | x /= 3 | x = x / 3 |
%= | x %= 3 | x = x % 3 |
&= | x &= 3 | x = x & 3 |
|= | x |= 3 | x = x | 3 |
^= | x ^= 3 | x = x ^ 3 |
>>= | x >>= 3 | x = x >> 3 |
<<= | x <<= 3 | x = x << 3 |
Οι τελεστές σύγκρισης χρησιμοποιούνται για να συγκρίνουν δύο τιμές (ή μεταβλητές). Αυτό είναι σημαντικό στην προγραμματισμό, γιατί μας βοηθά να βρούμε απαντήσεις και να λαμβάνουμε αποφάσεις.
Η τιμή επιστροφής μιας σύγκρισης είναι είτε 1 είτε 0, που σημαίνει true (1) ή false (0). Αυτές οι τιμές είναι γνωστές ως τιμές Boolean και θα μάθετε περισσότερα για αυτές στο κεφάλαιο Booleans και If..Else.
Στο παρακάτω παράδειγμα, χρησιμοποιούμε τον τελεστή μεγαλύτερο από (>) για να δούμε αν το 5 είναι μεγαλύτερο από το 3:
if (5 > 3) { printf("5 is greater than 3"); }
Στο παραπάνω παράδειγμα, η σύγκριση 5 > 3 επιστρέφει true (1), οπότε η εντολή εντός του if θα εκτελεστεί και θα εκτυπωθεί η φράση “5 is greater than 3”.
[adinserter block=”3″]
Μια λίστα με όλους τους τελεστές σύγκρισης:
Τελεστής | Όνομα | Παράδειγμα |
---|---|---|
== | Ίσο με | x == y |
!= | Διάφορο από | x != y |
> | Μεγαλύτερο από | x > y |
< | Μικρότερο από | x < y |
>= | Μεγαλύτερο ή ίσο από | x >= y |
<= | Μικρότερο ή ίσο από | x <= y |
Μπορείτε επίσης να ελέγξετε αν μια τιμή είναι true ή false με λογικούς τελεστές.
Οι λογικοί τελεστές χρησιμοποιούνται για να καθορίσουν τη λογική μεταξύ μεταβλητών ή τιμών:
Τελεστής | Όνομα | Περιγραφή | Παράδειγμα |
---|---|---|---|
&& | Λογικό ΚΑΙ | Επιστρέφει true αν και οι δύο δηλώσεις είναι true | x < 5 && x < 10 |
|| | Λογικό Ή | Επιστρέφει true αν μια από τις δηλώσεις είναι true | x < 5 || x < 4 |
! | Λογικό NOT | Αντιστρέφει το αποτέλεσμα, επιστρέφει false αν το αποτέλεσμα είναι true | !(x < 5 && x < 10) |
Το μέγεθος μνήμης (σε bytes) ενός τύπου δεδομένων ή μιας μεταβλητής μπορεί να βρεθεί με τον τελεστή sizeof:
int x; printf("The size of int is %lu bytes\n", sizeof(int)); printf("The size of x is %lu bytes\n", sizeof(x));
Στο παραπάνω παράδειγμα, χρησιμοποιούμε τον τελεστή sizeof για να εμφανίσουμε το μέγεθος του int και μιας μεταβλητής x. Το αποτέλεσμα θα είναι κάτι σαν αυτό:
The size of int is 4 bytes The size of x is 4 bytes
Οι τελεστές sizeof μπορούν να χρησιμοποιηθούν για την εύρεση του μεγέθους σε bytes για όλους τους τύπους δεδομένων. Αναφέρω παραδείγματα για τους βασικούς τύπους δεδομένων στην C:
int myInt; float myFloat; double myDouble; char myChar; printf("The size of int is %lu bytes\n", sizeof(int)); printf("The size of myInt is %lu bytes\n", sizeof(myInt)); printf("The size of float is %lu bytes\n", sizeof(float)); printf("The size of myFloat is %lu bytes\n", sizeof(myFloat)); printf("The size of double is %lu bytes\n", sizeof(double)); printf("The size of myDouble is %lu bytes\n", sizeof(myDouble)); printf("The size of char is %lu bytes\n", sizeof(char)); printf("The size of myChar is %lu bytes\n", sizeof(myChar));
Στο παραπάνω παράδειγμα, χρησιμοποιούμε τον τελεστή sizeof για τον εντοπισμό του μεγέθους σε bytes των int, float, double και char, καθώς και μιας μεταβλητής για κάθε ένα από αυτούς τους τύπους. Το αποτέλεσμα θα είναι κάτι σαν αυτό:
The size of int is 4 bytes The size of myInt is 4 bytes The size of float is 4 bytes The size of myFloat is 4 bytes The size of double is 8 bytes The size of myDouble is 8 bytes The size of char is 1 bytes The size of myChar is 1 bytes