Τύποι δεδομένων (Data types)
Σε ένα πρόγραμμα χρειάζεται να αποθηκεύουμε προσωρινά δεδομένα στη μνήμη τα οποία είναι κυρίως αριθμητικές τιμές.
Ο τύπος δεδομένων αναφέρεται στο αν η αριθμητική τιμή είναι ακέραιος αριθμός, δεκαδικός αριθμός, αρνητικός αριθμός κ.λπ.
Η αποθήκευση μιας αριθμητικής τιμής γίνεται με τη χρήση μιας μεταβλητής.
Στο παρακάτω παράδειγμα φαίνεται η δήλωση, η καταχώρηση και η εκτύπωση μιας ακέραιης αριθμητικής τιμής.
#include <iostream> using namespace std; int main() { int x; x = 100; cout << x << endl; return 0; }
Ακέραιοι τύποι (Integer Types)
Στον παρακάτω πίνακα φαίνονται όλοι οι τύποι για ακέραιες τιμές.
Τύπος (Type) | Αποθηκευτικός χώρος (Storage size) | Εύρος τιμών (Value range) |
---|---|---|
char | 1 byte | -128 to 127 or 0 to 255 |
unsigned char | 1 byte | 0 to 255 |
signed char | 1 byte | -128 to 127 |
int | 2 or 4 bytes | -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647 |
unsigned int | 2 or 4 bytes | 0 to 65,535 or 0 to 4,294,967,295 |
short | 2 bytes | -32,768 to 32,767 |
unsigned short | 2 bytes | 0 to 65,535 |
long | 4 bytes | -2,147,483,648 to 2,147,483,647 |
unsigned long | 4 bytes | 0 to 4,294,967,295 |
Δεκαδικοί τύποι (Floating-Point Types)
Στον παρακάτω πίνακα φαίνονται όλοι οι τύποι για δεκαδικές τιμές.
Τύπος (Type) | Αποθηκευτικός χώρος (Storage size) | Εύρος τιμών (Value range) | Ακρίβεια σε δεκαδικά ψηφία (Precision) |
---|---|---|---|
float | 4 byte | 1.2E-38 to 3.4E+38 | 6 decimal places |
double | 8 byte | 2.3E-308 to 1.7E+308 | 15 decimal places |
long double | 10 byte | 3.4E-4932 to 1.1E+4932 | 19 decimal places |
#include <iostream> using namespace std; int main() { char c; /* δήλωση μεταβλητής με το όνομα c και τύπο char */ int x; /* δήλωση μεταβλητής με το όνομα x και τύπο int */ float y; double z; c = 96; /* καταχώρηση τιμής στη μεταβλητή c */ x = 100; /* καταχώρηση τιμής στη μεταβλητή x */ y = 4.0/3.0; /* καταχώρηση τιμής στη μεταβλητή y */ z = 4.0/3.0; /* καταχώρηση τιμής στη μεταβλητή z */ cout << c << endl; /* εκτύπωση της μεταβλητής c */ cout << x << endl; /* εκτύπωση της μεταβλητής x */ cout << y << endl; /* εκτύπωση της μεταβλητής y */ cout << z << endl; /* εκτύπωση της μεταβλητής z */ return 0; }
96 100 1.333333 1.333333
Η εντολή sizeof
Με την εντολή sizeof μπορούμε να δούμε τον αριθμό σε bytes που δεσμεύει κάθε τύπος μεταβλητής.
#include <iostream> using namespace std; int main() { int bytes; bytes = sizeof(char); cout << bytes << endl; bytes = sizeof(int); cout << bytes << endl; bytes = sizeof(float); cout << bytes << endl; bytes = sizeof(double); cout << bytes << endl; return 0; }
1 4 4 8
Τύπος δεδομένων string
Ο τύπος string δεν είναι ένας πρωταρχικός (primitive) τύπος αλλά ένα αντικείμενο (object). Μπορεί όμως να θεωρηθεί μεταβλητή και να χρησιμοποιηθεί ως τέτοια.
#include <iostream> using namespace std; int main() { string name = "Alexander"; cout << name << endl; return 0; }
Alexander
Για την εύρεση του μήκους (length) ενός string η συνάρτηση είναι: str.length();
όπου str
ένα string.
Ο τύπος bool
Σε μεταβλητές τύπου bool
η τιμή μπορεί να είναι true
ή false
.
#include <iostream> using namespace std; int main() { bool toggle = true; if(toggle) { cout << "It's on" << endl; } else { cout << "It's off" << endl; } return 0; }
It's on
Τύπος enum (Enumerated Type)
Ο τύπος enum παίρνει τιμές από ένα σύνολο τιμών που έχουμε ορίσει με την εντολή enum.
#include <iostream> using namespace std; int main() { enum color {red, green, blue}; color c = blue; cout << c << endl; return 0; }
2
Η τιμή είναι 2
γιατί η αρίθμιση αρχίζει από το 0. (red=0, green=1, blue=2).
Στο παραπάνω παράδειγμα δεν μπορούμε να γράψουμε για παράδειγμα: color c = yellow;
Ο τύπος void
Ο τύπος void είναι ένας ειδικός τύπος και χρησιμοποιείται σε περιπτώσεις όπου ο τύπος δεδομένων δεν είναι απαραίτητο να δηλωθεί.
Πιο συγκεκριμένα χρησιμοποιείται για να δηλώσει ότι μια συνάρτηση δεν επιστρέφει κάποια τιμή, για να δηλώσει ότι μια συνάρτηση δεν παίρνει παραμέτρους και για δείκτες όπου ο τύπος δεν δηλώνεται από την αρχή.