data type (tsz. data types)
A C++ egy erősen típusos nyelv, ami azt jelenti, hogy minden változónak van egy előre meghatározott típusa. Az adattípusok határozzák meg, hogy egy változó milyen értékeket vehet fel, és milyen műveleteket lehet vele végezni. Ebben a cikkben részletesen bemutatjuk a C++-ban elérhető adattípusokat.
A C++ számos beépített adattípust tartalmaz, amelyeket változók deklarálására használhatunk.
Adattípus | Méret (általában) | Leírás |
---|---|---|
bool
|
1 byte | Logikai érték (true vagy false )
|
char
|
1 byte | Egyetlen karakter ('a' , 'b' , '1' )
|
int
|
4 byte | Egész számok (-2147483648 – 2147483647 )
|
float
|
4 byte | Lebegőpontos szám, kisebb pontossággal |
double
|
8 byte | Lebegőpontos szám, nagyobb pontossággal |
void
|
0 byte | Nem tárol adatot, függvények visszatérési típusa lehet |
wchar_t
|
2 vagy 4 byte | Széles karakterek Unicode támogatáshoz |
A méretek függhetnek a fordítótól és az architektúrától.
#include <iostream>
using namespace std;
int main() {
bool logikai = true;
char karakter = 'A';
int egesz = 100;
float lebego = 10.5;
double nagyobbLebego = 20.123456;
cout << "Logikai: " << logikai << endl;
cout << "Karakter: " << karakter << endl;
cout << "Egész szám: " << egesz << endl;
cout << "Lebegőpontos szám: " << lebego << endl;
cout << "Double szám: " << nagyobbLebego << endl;
return 0;
}
Az int
típus további módosítókkal rendelkezik, amelyek befolyásolják a tárolható értékek tartományát.
Típus | Méret (általában) | Értéktartomány |
---|---|---|
short int
|
2 byte | -32,768 és 32,767 között |
int
|
4 byte | -2,147,483,648 és 2,147,483,647 között |
long int
|
4 vagy 8 byte | Nagyobb egész számok |
long long int
|
8 byte | Extra nagy egész számok |
A signed
és unsigned
módosítók meghatározzák, hogy a szám tartalmazhat-e negatív értékeket.
Típus | Értéktartomány |
---|---|
signed int
|
-2,147,483,648 és 2,147,483,647 között |
unsigned int
|
0 és 4,294,967,295 között |
#include <iostream>
using namespace std;
int main() {
short int s = 32767;
unsigned int u = 4294967295;
cout << "Short int: " << s << endl;
cout << "Unsigned int: " << u << endl;
return 0;
}
A lebegőpontos számokat tizedes tört alakú számok tárolására használjuk.
Típus | Méret | Pontosság |
---|---|---|
float
|
4 byte | 6-7 tizedesjegy |
double
|
8 byte | 15-16 tizedesjegy |
long double
|
8-16 byte | 16+ tizedesjegy |
#include <iostream>
using namespace std;
int main() {
float pi = 3.14159;
double nagyPi = 3.141592653589793;
cout << "Float pi: " << pi << endl;
cout << "Double pi: " << nagyPi << endl;
return 0;
}
A karaktereket és szövegeket a char
és string
típusokkal lehet tárolni.
char
)char c = 'A';
Ez egyetlen karakter tárolására alkalmas.
std::string
)A string
osztályt a <string>
fejléccel kell használni.
#include <iostream>
#include <string>
using namespace std;
int main() {
string nev = "John Doe";
cout << "Név: " << nev << endl;
return 0;
}
C++ támogat néhány speciális adattípust is.
void
)A void
azt jelenti, hogy egy függvény nem tér vissza értékkel:
void kiir() {
cout << "Ez egy void függvény." << endl;
}
enum
)Az enum
segít felsorolásokat létrehozni.
enum Napok { Hetfo, Kedd, Szerda };
Napok ma = Kedd;
A struct
egy adattípus, amely több adatot tartalmazhat.
struct Ember {
string nev;
int kor;
};
Ember szemely = {"Anna", 25};
A union
hasonló a struct
-hoz, de egy időben csak egy változót tartalmazhat:
union Adat {
int egesz;
float lebego;
};
Adat ertek;
ertek.egesz = 10;
Az auto
segítségével a fordító automatikusan kitalálja a változó típusát:
auto x = 10; // int
auto y = 3.14; // double
A typedef
és using
segítségével új nevet adhatunk egy típusnak:
typedef unsigned int uint;
using uint = unsigned int;
uint szam = 100;
A C++ nyelv rengeteg adattípust kínál, amelyeket a programozók felhasználhatnak az adatok megfelelő tárolására és kezelésére. Az alábbiakat érdemes megjegyezni:
int
, short
, long
, unsigned
float
, double
, long double
char
, string
void
, enum
, struct
, union
auto
, using
A megfelelő adattípus kiválasztása segít a hatékony memóriahasználatban és a program teljesítményének optimalizálásában.