C++
Változók
A változók a programozás alapvető építőkövei, amelyek segítségével adatokat tárolhatunk a számítógép memóriájában. Minden változónak van típusa, amely meghatározza, hogy milyen típusú adatot képes tárolni, és mekkora memóriaterületre van szüksége.


Memória és bájt
- A számítógép memóriája sok kis cellából áll, amelyek mindegyike egy bájt adatot képes tárolni.
- 1 bájt = 8 bit
- Egy bit lehet 0 vagy 1, tehát egy bájt összesen 256 különböző értéket tud tárolni.
Adattípusok C++-ban
Egész típusok
Az egész típusú változók egész számok tárolására szolgálnak. A méretük és az általuk tárolható értékek tartománya típusonként változik.
Típus | Méret | Tartomány (signed) | Tartomány (unsigned) |
---|---|---|---|
char |
1 bájt | -128 – 127 | 0 – 255 |
short |
legalább 2 bájt | -32 768 – 32 767 | 0 – 65 535 |
int |
legalább 4 bájt | -2 147 483 648 – 2 147 483 647 | 0 – 4 294 967 295 |
long |
legalább 4 bájt | -2 147 483 648 – 2 147 483 647 | 0 – 4 294 967 295 |
long long |
legalább 8 bájt | -9 223 372 036 854 775 808 – 9 223 372 036 854 775 807 | 0 – 18 446 744 073 709 551 615 |
Logikai típus
A logikai változók kizárólag igaz (true) vagy hamis (false) értékeket vehetnek fel.
Típus | Méret | Tartomány |
---|---|---|
bool |
1 bájt | true (1) vagy false (0) |
Lebegőpontos típusok
A lebegőpontos típusok valós számok tárolására szolgálnak, nagy precizitással. A double
nagyobb pontosságot kínál, mint a float
.
Típus | Méret | Minimum abszolút érték | Maximum abszolút érték |
---|
float |
4 bájt | 1.175 494 × 10^-38 | 3.402 823 × 10^38 |
double |
8 bájt | 2.225 073 × 10^-308 | 1.797 693 × 10^308 |
sizeof használata
int main()
{
std::cout << „char: „ << sizeof(char) << ” bájt” << std::endl;
std::cout << „int: „ << sizeof(int) << ” bájt” << std::endl;
std::cout << „float: „ << sizeof(float) << ” bájt” << std::endl;
std::cout << „double: „ << sizeof(double) << ” bájt” << std::endl;
return 0;
}

Hogy tudunk egy ilyen változót használni?
A változók nevének megválasztásakor szabad kezet kapunk, feltéve, hogy nem használunk kulcsszavakat, amelyek a C++ nyelvben már foglaltak (pl. int
, return
, stb.)..Az, hogy mi tartozik ide, ebből a listából egyértelműen kiderül. Emellett fontos, hogy megértsük, hogyan működik a változók signed és unsigned attribútuma, valamint a túlcsordulás jelensége.
#include <iostream>
#include <windows.h>
int main()
{
short egesz = 54;
std::cout << egesz << std::endl;
return 0;
}
Ha nem írjuk ki, hogy signed, akkor signed. Csak az unsignedot kell jelezni.
Ha a legnagyobb értékre állítom be, hogy írja ki: 32 767 – ezt még kiírja, de ha egyet adunk hozzá, túlcsordul és átáll a legkisebb értékre:

Unsigned esetén a legnagyobb értékről visszacsordul az érték 0-ra.
A char
típus kifejezetten karakterek tárolására szolgál. Ezek a karakterek az ASCII-táblázat alapján kapnak számértéket, ahol minden karakter egy számhoz van rendelve (0-tól 127-ig az alap ASCII kódok esetében).
Karakter tárolása:
- A
char
típusban egyetlen karaktert tárolhatsz, amit idézőjelek (pl.'s'
) közé kell tenni.
char karakter = ‘A’;
int main()
{
char karakter = ‘s’; // Egyetlen karakter tárolása
std::cout << „A karakter: „ << karakter << std::endl;
return 0;
}
-
Karakterek ASCII-értéke:
- A karakterek az ASCII szabvány szerint egy számhoz vannak rendelve.
- Például:
'A'
az 65,'a'
az 97 alatt szerepel az ASCII táblázatban.
-
Karakter számmá alakítása:
- Ha egy karakter ASCII-értékét szeretnéd megkapni, használhatsz egy explicit típuskonverziót, például
(int)
.
int main()
{
char karakter = ‘s’; // Az ‘s’ karakter
std::cout << „A karakter ASCII-kódja: „ << (int)karakter << std::endl;
return 0;
}
- Ha egy karakter ASCII-értékét szeretnéd megkapni, használhatsz egy explicit típuskonverziót, például
- Szám visszaállítása karakterré:
int main()
{
int kod = 65; // ASCII-kód
std::cout << „A számhoz tartozó karakter: „ << (char)kod << std::endl;
return 0;
}Logikai típus (bool) a C++-ban
- A
bool
típus igaz-hamis állításokhoz használható, és két értéket vehet fel:true
vagyfalse
. Ez a típus alapvetően a logikai műveletek végrehajtásához szükséges, például feltételek kiértékeléséhez. - Értékei:
true (igaz), amely 1-nek felel meg
false (hamis), amely 0-nak felel meg - Ha pedig kiiratjuk az értékét, akkor látszik, hogy 1 bájt:
int main()
{
std::cout << sizeof(bool) << ” bájt” << std::endl; // Kiírja a bool méretét
return 0;
}A bool érték kiíratása
int main()
{
bool logikai = true; // Az érték true
std::cout << logikai << std::endl; // Kiírja: 1
return 0;
}
A bool főleg feltételek kezelésére szolgál:
int main()
{
int szam = 10; bool nagyobb = (szam > 5); // A feltétel értéke true, mert 10 nagyobb, mint 5
std::cout << „A feltétel igaz? „ << nagyobb << std::endl;
return 0; }
Főleg feltételes műveletekben használatos, például az if és while szerkezetekben. Kevesebb memóriát igényel (1 bájt), ezért hatékony adattárolást tesz lehetővé.
Lebegőpontos típusok
A lebegőpontos típusok, mint a float
és a double
, valós számok tárolására alkalmasak. Ezek lehetnek egész rész nélküli tört számok, vagy akár nagyon kicsi/nagy értékek exponenciális alakban.
Típus | Méret | Pontosság | Tartomány abszolút értékben |
---|---|---|---|
float |
4 bájt | ~7 számjegy | ~1.175 × 10^-38 – 3.402 × 10^38 |
double |
8 bájt | ~15 számjegy | ~2.225 × 10^-308 – 1.797 × 10^308 |
A double
típus nagyobb pontosságot biztosít, mint a float
, ezért előnyösebb, ha nagyobb vagy pontosabb valós számokkal dolgozol.
int main()
{
double d = 6.8e14; // 6.8 × 10^14
std::cout << d << std::endl;
return 0;
}
float és double közötti különbség:
int main()
{
float f = 3.14159265359; // Lebegőpontos szám float típussal
double d = 3.14159265359; // Lebegőpontos szám double típussal
std::cout << „Float: „ << f << std::endl; std::cout << „Double: „ << d << std::endl; return 0;
}
