Οι τελεστές στη γλώσσα C είναι ειδικοί συμβολισμοί που χρησιμοποιούνται για να εκτελέσουν διάφορες πράξεις σε μεταβλητές ή τιμές. Οι τελεστές διαμορφώνουν τις πράξεις μεταξύ δύο τελεσταίων (αριστερού και δεξιού) ή ανάμεσα σε έναν τελεστή και μία τιμή.
Οι κύριοι τελεστές στη γλώσσα C περιλαμβάνουν:
- Αριθμητικοί τελεστές: Χρησιμοποιούνται για αριθμητικές πράξεις όπως πρόσθεση, αφαίρεση, πολλαπλασιασμός και διαίρεση.
- Σχέσης τελεστές: Χρησιμοποιούνται για τη σύγκριση τιμών, όπως μεγαλύτερος από, μικρότερος από, ίσος με κλπ.
- Λογικοί τελεστές: Χρησιμοποιούνται για λογικές πράξεις, όπως συζήτηση, αποκλεισμός, αρνητική λογική κλπ.
- Μοναδιαίοι τελεστές: Χρησιμοποιούνται για να εφαρμόσουν μια επιπλέον πράξη σε μια μεταβλητή, όπως αύξηση κατά ένα ή μείωση κατά ένα.
Οι τελεστές στη γλώσσα C επιτρέπουν την εκτέλεση ποικίλων πράξεων και συγκρίσεων μεταξύ μεταβλητών και τιμών, και συμβάλλουν στη δημιουργία πολύπλοκων λογικών δομών και αλγορίθμων.
Στο παράδειγμα παρακάτω, χρησιμοποιούμε τον τελεστή + για να προσθέσουμε δύο τιμές:
int x = 5; int y = 6; int sum = x + y;
Στο παραπάνω παράδειγμα, η τιμή της μεταβλητής sum θα είναι 11 (το αποτέλεσμα της πρόσθεσης των μεταβλητών x και y).
Μπορείτε να εκτυπώσετε το αποτέλεσμα της παραπάνω πράξης με τη χρήση της συνάρτησης printf() και του format specifier %d:
#include <stdio.h> int main() { int x = 5; // Δήλωση μεταβλητής x και αρχικοποίηση με την τιμή 5 int y = 6; // Δήλωση μεταβλητής y και αρχικοποίηση με την τιμή 6 int sum = x + y; // Υπολογισμός του αθροίσματος των x και y και αποθήκευση του αποτελέσματος στη μεταβλητή sum printf("The sum of %d and %d is %d\n", x, y, sum); // Εκτύπωση του αποτελέσματος στην οθόνη return 0; // Επιστροφή της τιμής 0 ως ένδειξη επιτυχούς εκτέλεσης του προγράμματος }
Ο παραπάνω κώδικας σε C πραγματοποιεί την πρόσθεση δύο ακεραίων αριθμών (x και y) και εκτυπώνει το αποτέλεσμα στην οθόνη. Οι σχόλιοι που προστέθηκαν μέσα στον κώδικα περιγράφουν τη λειτουργία και τον ρόλο κάθε μεταβλητής και εντολής.
Συγκεκριμένα, ο κώδικας περιλαμβάνει:
- Τη δήλωση και αρχικοποίηση των μεταβλητών x και y με τιμές 5 και 6 αντίστοιχα.
- Την υπολογιστική έκφραση
x + y
για τον υπολογισμό του αθροίσματος των x και y. - Τη δήλωση της μεταβλητής sum και την αποθήκευση του αποτελέσματος της υπολογιστικής έκφρασης σε αυτήν.
- Τη χρήση της συνάρτησης printf για την εκτύπωση του αποτελέσματος στην οθόνη, με τη χρήση της μορφοποίησης
%d
για την εισαγωγή των τιμών των μεταβλητών x, y και sum. - Την εντολή return 0 για την ολοκλήρωση του προγράμματος με επιτυχία.
Το αποτέλεσμα που θα εμφανιστεί στην οθόνη μετά την εκτέλεση του κώδικα είναι:
The sum of 5 and 6 is 11
Αυτό σημαίνει ότι η πρόσθεση των αριθμών 5 και 6 είναι 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, οι τελεστές χωρίζονται σε διάφορες κατηγορίες:
- Αριθμητικοί τελεστές: Χρησιμοποιούνται για τις αριθμητικές πράξεις, όπως η πρόσθεση, η αφαίρεση, ο πολλαπλασιασμός και η διαίρεση. Παραδείγματα αριθμητικών τελεστών είναι οι “+”, “-“, “*”, “/” κ.ά.
- Τελεστές ανάθεσης: Χρησιμοποιούνται για την ανάθεση τιμών σε μεταβλητές. Ο τελεστής ανάθεσης είναι το “=”, που δηλώνει ότι η τιμή της δεξιάς πλευράς ανατίθεται στη μεταβλητή της αριστερής πλευράς.
- Τελεστές σύγκρισης: Χρησιμοποιούνται για τη σύγκριση δύο τιμών. Παραδείγματα τελεστών σύγκρισης είναι οι “==”, “!=”, “<“, “>”, “<=” και “>=”.
- Λογικοί τελεστές: Χρησιμοποιούνται για την εκτέλεση λογικών πράξεων, όπως ο συνδυασμός συνθηκών. Παραδείγματα λογικών τελεστών είναι οι “&&” (λογική ΚΑΙ), “||” (λογική Ή) και “!” (λογική ΜΗ).
- Δυαδικοί τελεστές: Χρησιμοποιούνται για τις δυαδικές πράξεις σε δυαδικούς αριθμούς. Αυτοί οι τελεστές εφαρμόζονται bit προς bit στους δυαδικούς αριθμούς. Παραδείγματα δυαδικών τελεστών είναι οι “&” (δυαδική ΚΑΙ), “|” (δυαδική Ή), “^” (δυαδική αποκλειστική Ή) κ.ά.
Οι παραπάνω κατηγορίες τελεστών καλύπτουν διάφορες λειτουργίες και επιτρέπουν την εκτέλεση διάφορων πράξεων στη γλώσσα 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:
#include <stdio.h> int main() { int myInt; // Δήλωση μιας μεταβλητής ακέραιου τύπου float myFloat; // Δήλωση μιας μεταβλητής δεκαδικού τύπου (μικρής ακρίβειας) double myDouble; // Δήλωση μιας μεταβλητής δεκαδικού τύπου (μεγάλης ακρίβειας) char myChar; // Δήλωση μιας μεταβλητής χαρακτήρα printf("The size of int is %lu bytes\n", sizeof(int)); // Εκτύπωση του μεγέθους του int σε bytes printf("The size of myInt is %lu bytes\n", sizeof(myInt)); // Εκτύπωση του μεγέθους της μεταβλητής myInt σε bytes printf("The size of float is %lu bytes\n", sizeof(float)); // Εκτύπωση του μεγέθους του float σε bytes printf("The size of myFloat is %lu bytes\n", sizeof(myFloat));// Εκτύπωση του μεγέθους της μεταβλητής myFloat σε bytes printf("The size of double is %lu bytes\n", sizeof(double)); // Εκτύπωση του μεγέθους του double σε bytes printf("The size of myDouble is %lu bytes\n", sizeof(myDouble));// Εκτύπωση του μεγέθους της μεταβλητής myDouble σε bytes printf("The size of char is %lu bytes\n", sizeof(char)); // Εκτύπωση του μεγέθους του char σε bytes printf("The size of myChar is %lu bytes\n", sizeof(myChar)); // Εκτύπωση του μεγέθους της μεταβλητής myChar σε bytes return 0; }
Ο κώδικας υπολογίζει και εκτυπώνει τα μεγέθη των διαφόρων τύπων δεδομένων στη γλώσσα C. Αρχικά, δηλώνονται μεταβλητές για τους τύπους int
, float
, double
και char
. Στη συνέχεια, χρησιμοποιείται η συνάρτηση sizeof()
για να υπολογιστούν τα μεγέθη αυτών των τύπων και εκτυπώνονται τα αποτελέσματα.
Η συνάρτηση sizeof()
επιστρέφει το μέγεθος ενός τύπου δεδομένων σε bytes. Στον κώδικα, χρησιμοποιείται για να εμφανιστούν τα μεγέθη των τύπων int
, float
, double
και char
, καθώς και των αντίστοιχων μεταβλητών myInt
, myFloat
, myDouble
και myChar
. Οι τιμές των μεγεθών εκτυπώνονται στην οθόνη.
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 byte The size of myChar is 1 byte