cpp:basic_data_types
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
cpp:basic_data_types [2017/03/15 16:07] – gthanos | cpp:basic_data_types [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 8: | Line 8: | ||
* **Boolean type:** τύπος bοοlean που λαμβάνει δύο λογικές τιμές, **true** ή **false**. | * **Boolean type:** τύπος bοοlean που λαμβάνει δύο λογικές τιμές, **true** ή **false**. | ||
- | ^ Group ^ Type names ^ Notes on size & precision ^ | + | ^ Group ^ Type names ^ Notes on size & precision |
|**Character | |**Character | ||
|::: | |::: | ||
- | |::: | + | |::: |**char32_t** | Not |
- | |::: | + | |::: |**wchar_t** | Can |
- | |**Integer types (signed)** | + | |**Integer types (signed)** |
- | |::: | signed short | + | |::: |**signed short int** |Not |
- | |::: | + | |::: |**signed int** |Not |
- | |::: | + | |::: |**signed long int** |Not |
- | |::: | + | |::: |**signed long long int** | Not |
- | |Integer types (unsigned) | unsigned | + | |**Integer types (unsigned)** | **unsigned |
- | |::: | + | |::: |**unsigned short int** |
- | |::: | + | |::: |**unsigned int** |
- | |::: | + | |::: |**unsigned |
- | |::: | + | |::: |**unsigned |
- | |Floating-point | + | |**Floating-point types** | **float** |
- | |::: | double | + | |::: |
- | |::: | + | |::: |**long double** | Precision |
- | |Boolean | + | |**Boolean type** | **bool** |
- | |Void | + | |**Void type** |
- | |Null | + | |**Null pointer** | **decltype(nullptr)** | | |
+ | |||
+ | Σημειώστε με βάση τον παραπάνω πίνακα ότι με εξαίρεση των τύπο **char** όλοι οι άλλοι βασικοί τύποι δεδομένων δεν καταλαμβάνουν συγκεκριμένο μέγεθος bytes στη μνήμη, αλλά προσδιορίζονται με βάση ένα ελάχιστο συνήθως μέγεθος. Αυτό δεν σημαίνει ότι οι συγκεκριμένοι τύποι δεδομένων δεν έχουν συγκεκριμένο μέγεθος αλλά ότι το μέγεθος αυτό μπορεί να διαφέρει από | ||
+ | |||
+ | ===== Δήλωση και αρχικοποίηση μεταβλητών ===== | ||
+ | |||
+ | Οι μεταβλητές είναι δυνατόν να αρχικοποιηθούν με τους παρακάτω τρεις τρόπους: | ||
+ | < | ||
+ | int x=100; | ||
+ | int x(100); | ||
+ | int x{100}; | ||
+ | </ | ||
+ | |||
+ | <code c++ main.cpp> | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | |||
+ | int main () | ||
+ | { | ||
+ | int a=5; // initial value: 5 | ||
+ | int b(3); // initial value: 3 | ||
+ | int c{2}; // initial value: 2 | ||
+ | |||
+ | |||
+ | a = a + b; | ||
+ | cout << "a: " << a << endl; // endl stands for newline | ||
+ | b = a - c; | ||
+ | cout << "b: " << b << endl; | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Αυτόματη εξαγωγή τύπου δεδομένων ===== | ||
+ | |||
+ | Όταν μία μεταβλητή δηλώνεται ο μεταγλωττιστής μπορεί να προσδιορίσει τον τύπο της από τον τύπο της τιμής που ανατίθεται σε αυτή. Σε αυτή τη περίπτωση αρκεί ο τύπος της μεταβλητής να δηλωθεί ως **auto**, όπως στο παρακάτω παράδειγμα. | ||
+ | |||
+ | <code cpp using-auto.cpp> | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | |||
+ | int main () | ||
+ | { | ||
+ | int a{5}; // initial value: 5, sizeof int | ||
+ | long b(3); // initial value: 3 sizeof long | ||
+ | |||
+ | auto result = a + b; // compiler automatically extracts the variable type. | ||
+ | |||
+ | cout << " | ||
+ | cout << " | ||
+ | cout << " | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Επίσης, | ||
+ | |||
+ | <code cpp using-decltype.cpp> | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | |||
+ | int main () | ||
+ | { | ||
+ | int a{5}; // initial value: 5 | ||
+ | long b(3); // initial value: 3 | ||
+ | decltype(b) result; | ||
+ | |||
+ | cout << " | ||
+ | cout << " | ||
+ | cout << " | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
cpp/basic_data_types.1489594024.txt.gz · Last modified: 2017/03/15 16:07 by gthanos