User Tools

Site Tools


cpp:basic_data_types

Βασικοί τύποι δεδομένων

Οι βασικοί τύποι δεδομένων στη C++ είναι κατά βάση κοινοί με τους τύπους δεδομένων στη C, με κάποιες επεκτάσεις.

  • Character types: Αντιπροσωπεύουν μεμονωμένους χαρακτήρες ('Α' ή '!“ ή '3'). Ο βασικός τύπος είναι ο char που καταλαμβάνει ένα byte, υπάρχουν όμως και τύποι χαρακτήρων που καταλαμβάνουν περίσσότερα bytes (δες παρακάτω).
  • Integer types: Ακέραιοι αριθμητικοί τύποι.
  • Floating-point types: Τύποι δεδομένων κινητής υποδιαστολής.
  • Boolean type: τύπος bοοlean που λαμβάνει δύο λογικές τιμές, true ή false.
Group Type names Notes on size & precision
Character types char Exactly one byte in size. At least 8 bits.
char16_t Not smaller than char. At least 16 bits.
char32_t Not smaller than char16_t. At least 32 bits.
wchar_t Can represent the largest supported character set.
Integer types (signed) char Same size as char. At least 8 bits.
signed short int Not smaller than char. At least 16 bits.
signed int Not smaller than short. At least 16 bits.
signed long int Not smaller than int. At least 32 bits.
signed long long int Not smaller than long. At least 64 bits.
Integer types (unsigned) unsigned char (same size as their signed counterparts)
unsigned short int
unsigned int
unsigned long int
unsigned long long int
Floating-point types float
double Precision not less than float
long double Precision not less than double
Boolean type bool
Void type void no storage
Null pointer decltype(nullptr)

Σημειώστε με βάση τον παραπάνω πίνακα ότι με εξαίρεση των τύπο char όλοι οι άλλοι βασικοί τύποι δεδομένων δεν καταλαμβάνουν συγκεκριμένο μέγεθος bytes στη μνήμη, αλλά προσδιορίζονται με βάση ένα ελάχιστο συνήθως μέγεθος. Αυτό δεν σημαίνει ότι οι συγκεκριμένοι τύποι δεδομένων δεν έχουν συγκεκριμένο μέγεθος αλλά ότι το μέγεθος αυτό μπορεί να διαφέρει από μηχανή σε μηχανή.

Δήλωση και αρχικοποίηση μεταβλητών

Οι μεταβλητές είναι δυνατόν να αρχικοποιηθούν με τους παρακάτω τρεις τρόπους:

int x=100;
int x(100);
int x{100};
main.cpp
#include <iostream>
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, όπως στο παρακάτω παράδειγμα.

using-auto.cpp
#include <iostream>
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 << "sizeof(result): " << sizeof(result) << endl;
  cout << "sizeof(int): " << sizeof(int) << endl;
  cout << "sizeof(long): " << sizeof(long) << endl;
 
  return 0;
}

Επίσης, εάν μία μεταβλητή δεν αρχικοποιείται μπορείτε να δηλώσετε ότι είναι ιδίου τύπου με μία άλλη μεταβλητή ως εξής;

using-decltype.cpp
#include <iostream>
using namespace std;
 
int main ()
{
  int a{5};               // initial value: 5
  long b(3);              // initial value: 3
  decltype(b) result;
 
  cout << "sizeof(result): " << sizeof(result) << endl;
  cout << "sizeof(int): " << sizeof(int) << endl;
  cout << "sizeof(long): " << sizeof(long) << endl;
 
  return 0;
}
cpp/basic_data_types.txt · Last modified: 2021/04/25 14:02 (external edit)