Τύποι Δεδομένων στη Γλώσσα Προγραμματισμού C
Όπως εξηγήθηκε στο κεφάλαιο των Μεταβλητών, μια μεταβλητή στη C πρέπει να έχει ένα συγκεκριμένο τύπο δεδομένων και πρέπει να χρησιμοποιήσετε έναν format specifier εντός της συνάρτησης printf() για να το εμφανίσετε:
Παραδείγματα:
Αν θέλουμε να ορίσουμε μια μεταβλητή τύπου ακέραιος, μπορούμε να γράψουμε:
int myInteger = 10;
Αν θέλουμε να εμφανίσουμε τη μεταβλητή myInteger χρησιμοποιούμε τον format specifier %d μέσα στη συνάρτηση printf():
printf("Η τιμή της μεταβλητής myInteger είναι: %d", myInteger);
Αν θέλουμε να ορίσουμε μια μεταβλητή τύπου δεκαδικός, μπορούμε να γράψουμε:
float myFloat = 3.14;
Αν θέλουμε να εμφανίσουμε τη μεταβλητή myFloat με τρεις δεκαδικούς αριθμούς, χρησιμοποιούμε τον format specifier %0.3f μέσα στη συνάρτηση printf():
printf("Η τιμή της μεταβλητής myFloat είναι: %.3f", myFloat);
Αν θέλουμε να ορίσουμε μια μεταβλητή τύπου χαρακτήρας, μπορούμε να γράψουμε:
char myChar = 'A';
Αν θέλουμε να εμφανίσουμε τη μεταβλητή myChar, χρησιμοποιούμε τον format specifier %c μέσα στη συνάρτηση printf():
printf("Η τιμή της μεταβλητής myChar είναι: %c", myChar);
Βασικοί Τύποι Δεδομένων
Ο τύπος δεδομένων καθορίζει το μέγεθος και τον τύπο των πληροφοριών που θα αποθηκεύει η μεταβλητή.
[adinserter block=”2″]
Σε αυτό το μάθημα θα επικεντρωθούμε στους πιο βασικούς τύπους δεδομένων:
Τύπος Δεδομένων | Μέγεθος | Περιγραφή |
---|---|---|
int | 2 ή 4 bytes | Αποθηκεύει ακέραιους αριθμούς χωρίς δεκαδικά ψηφία |
float | 4 bytes | Αποθηκεύει κλασματικούς αριθμούς που περιλαμβάνουν ένα ή περισσότερα δεκαδικά ψηφία. Επαρκής για να αποθηκεύσει 6-7 δεκαδικά ψηφία |
double | 8 bytes | Αποθηκεύει κλασματικούς αριθμούς που περιλαμβάνουν ένα ή περισσότερα δεκαδικά ψηφία. Επαρκής για να αποθηκεύσει 15 δεκαδικά ψηφία |
char | 1 byte | Αποθηκεύει έναν μόνο χαρακτήρα/γράμμα/αριθμό ή τιμές ASCII |
Βασικοί Format Specifiers
Υπάρχουν διαφορετικοί format specifiers για κάθε τύπο δεδομένων. Εδώ είναι μερικοί από αυτούς:
Format Specifier | Τύπος Δεδομένων |
---|---|
%d ή %i | int |
%f | float |
%lf | double |
%c | char |
%s | Χρησιμοποιείται για συμβολοσειρές (κείμενο), για το οποίο θα μάθετε περισσότερα σε ένα αργότερο κεφάλαιο. |
Ρύθμιση Ακρίβειας Δεκαδικού Μέρους
Πιθανόν να έχετε ήδη παρατηρήσει ότι εάν εκτυπώσετε έναν κινητήρα αριθμό με δεκαδικά ψηφία, το αποτέλεσμα θα δείχνει πολλά ψηφία μετά το δεκαδικό σημείο:
Παράδειγμα:
float myFloat = 3.14159265; printf("My float is: %f", myFloat);
Το αποτέλεσμα θα είναι:
My float is: 3.141593
Παρατηρούμε ότι υπάρχουν πολλά ψηφία μετά το δεκαδικό σημείο. Για να ρυθμίσουμε τον αριθμό των ψηφίων δεκαδικού μέρους που εμφανίζονται, μπορούμε να χρησιμοποιήσουμε τον format specifier %f σε συνδυασμό με τη συμβολοσειρά “%0.nf”, όπου n είναι ο αριθμός των ψηφίων που θέλουμε να εμφανιστούν μετά το δεκαδικό σημείο:
Παράδειγμα:
float myFloat = 3.14159265; printf("My float is: %.2f", myFloat);
Το αποτέλεσμα θα είναι:
My float is: 3.14
Παρατηρούμε ότι εμφανίζονται μόνο δύο ψηφία μετά το δεκαδικό σημείο.
Εάν θέλετε να αφαιρέσετε τα περισσεύματα μηδενικά (να ρυθμίσετε την ακρίβεια των δεκαδικών ψηφίων), μπορείτε να χρησιμοποιήσετε ένα τελεία (.) ακολουθούμενο από έναν αριθμό που καθορίζει πόσα ψηφία πρέπει να εμφανίζονται μετά το δεκαδικό σημείο:
Παράδειγμα:
float myFloat = 3.14000000; printf("My float is: %.2f", myFloat);
Το αποτέλεσμα θα είναι:
My float is: 3.14
Παρατηρούμε ότι δεν υπάρχουν περισσεύματα μηδενικά μετά το δεκαδικό σημείο.