Operabetör C++Típusok példával
⚡ Okos összefoglaló
Operabetör C++ olyan szimbólumok, amelyek műveleteket hajtanak végre operandusokon, az aritmetikai és összehasonlítási műveletektől kezdve a logikai, bitenkénti és értékadó műveletekig. Ez az anyag minden operátorkategóriát elmagyaráz futtatható példaprogramokkal, kimenettel és a kiértékelési sorrendet meghatározó precedenciaszabályokkal.
Mik Operators?
Egy operátor egy olyan szimbólum, amelyet operandusokon végzett műveletek végrehajtására használnak. Egy operátor operandusokon dolgozik, és a műveletek lehetnek matematikaiak vagy logikaiak. Különböző típusú operátorok léteznek a C++ különböző műveletek elvégzésére.
Fontolja meg a következő műveletet:
a = x + y;
A fenti utasításban x és y az operandusok, míg a + egy összeadási operátor. Amikor a C++ A fordító a fenti utasítással találkozik, hozzáadja x-et és y-t, és az eredményt az a változóban tárolja.
Típusok Operabetör C++
Főleg vannak 6 különböző típusú operátor található benne C++:
- Számtan Operatorzok
- Relációs Operatorzok
- logikus Operatorzok
- bitenkénti Operatorzok
- Átruházás Operatorzok
- Más Operatorzok
Kezdjük a leggyakrabban használt aritmetikai operátorokkal.
Számtan Operatorzok
Ezek a matematikai/aritmetikai műveletek végrehajtására használt operátortípusok. Ezek a következők:
| Operator | Leírás |
|---|---|
| + összeadás operátor | Két operandust ad össze. |
| – altracciós operátor | alatttracts 2nd operandus 1-tőlst operandus. |
| * szorzó operátor | 2 operandust megszoroz. |
| / osztási operátor | A számlálót elosztja a nevezővel. |
| % modulus operátor | Az osztás utáni maradékot adja vissza. |
| ++ növekmény operátor | Egy egész szám értékét 1-gyel növeli. |
| — csökkentési operátor | Egy egész szám értéket 1-gyel csökkenti. |
Például:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; int c; cout << "a + b is :" << a+b << endl; //11+5 cout << "a - b is :" << a-b << endl; //11-5 cout << "a * b is :" << a*b << endl; //11*5 cout << "a / b is :" << a/b << endl; //11/5 cout << "a % b is :" << a%b << endl; //11%5 cout << "a++ is :" << a++ << endl; //11++ cout << "a-- is :" << a-- << endl; //12-- return 0; }
output:
Itt van egy képernyőkép a kódról:
Code Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
- Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
- A main() függvény meghívása, amelyen belül a program logikáját hozzá kell adni. A { a main() függvény törzsének kezdetét jelöli.
- Egy a egész változó deklarálása és inicializálása 11-re.
- Egy b egész szám változó deklarálása és inicializálása 5-re.
- Egész változó deklarálása c.
- Az a+b művelet értékének kinyomtatása a konzolon található többi szöveggel együtt.
- Az ab művelet értékének kinyomtatása a konzolon található többi szöveg mellett.
- Az a*b művelet értékének kinyomtatása a konzolon található többi szöveggel együtt.
- Az a/b művelet értékének kinyomtatása a konzolon található többi szöveggel együtt.
- Az a%b művelet értékének kinyomtatása a konzolon található többi szöveggel együtt.
- Az a++ művelet értékének kinyomtatása a konzolon más szövegek mellett.
- Az a– művelet értékének kinyomtatása a konzolon más szövegek mellett.
- A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
- A main() függvény törzsének vége.
Relációs Operatorzok
Az ilyen típusú operátorok összehasonlítást végeznek az operandusokon. Például tudnod kell, hogy melyik operandus nagyobb, mint a másik, vagy melyik kisebb, mint a másik. Ezek a következők:
| Operator | Leírás |
|---|---|
| == egyenlő az operátorral | Ellenőrzi két operandus érték egyenlőségét. |
| != nem egyenlő az operátorral | Két operandusérték egyenlőtlenségét ellenőrzi. |
| > nagyobb, mint az operátor | Ellenőrzi, hogy a bal oldali operandus értéke nagyobb-e a jobb oldali operandus értékénél. |
| < kisebb, mint operátor | Ellenőrzi, hogy a bal oldali operandus értéke kisebb-e a jobb oldali operandus értékénél. |
| >= nagyobb vagy egyenlő operátorral | Ellenőrzi, hogy a bal oldali operandus értéke nagyobb vagy egyenlő-e a jobb oldali operandus értékével. |
| <= kisebb vagy egyenlő, mint az operátor | Ellenőrzi, hogy a bal oldali operandus értéke kisebb vagy egyenlő-e a jobb oldali operandus értékével. |
Például:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; cout << "a=11, b=5" << endl; if (a == b) { cout << "a == b is true" << endl; } else { cout << " a == b is false" << endl; } if (a < b) { cout << "a < b is true" << endl; } else { cout << "a < b is false" << endl; } if (a > b) { cout << "a > b is true" << endl; } else { cout << "a > b is false" << endl; } return 0; }
output:
Itt van egy képernyőkép a kódról:
Code Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
- Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
- A main() függvény meghívása, amelyen belül a program logikáját hozzá kell adni.
- Egy a egész változó deklarálása és inicializálása 11-re.
- Egy b egész szám változó deklarálása és inicializálása 5-re.
- Néhány szöveg kinyomtatása a konzolra, amely tartalmazza az a és b változók értékét.
- Annak ellenőrzése, hogy a egyenlő-e b-vel egy if döntési utasítás segítségével.
- A konzolra kiírandó szöveg, ha az a==b művelet igaz.
- A fenti if utasítás else része, amely megmondja, hogy mit kell tenni, ha a==b hamis.
- A konzolra kiírandó szöveg, ha az a==b művelet hamis.
- Annak ellenőrzése, hogy a kisebb-e, mint b, if utasítással.
- A konzolra kiírandó szöveg, ha a művelet a
- A másik rész arra az esetre, ha egy
- A konzolra kiírandó szöveg, ha a művelet a
- Annak ellenőrzése, hogy a nagyobb-e, mint b, if utasítással.
- A konzolra kiírandó szöveg, ha az a>b művelet igaz.
- Az else rész arra az esetre, ha a>b hamis.
- A konzolra kiírandó szöveg, ha az a>b művelet hamis.
- A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
- A main() függvény törzsének vége.
logikus Operatorzok
Az logikai operátorok két vagy több korlátozás/feltétel kombinálása. A logikai operátorok kiegészítik az eredeti feltétel kiértékelését is. Ezek a következők:
| Operator | Leírás |
|---|---|
| && logikai ÉS operátor | A feltétel igaz, ha mindkét operandus nem nulla. |
| || logikai VAGY operátor | A feltétel igaz, ha az operandusok egyike nem nulla. |
| ! logikai NEM operátor | Megfordítja az operandus logikai állapotát. Ha az operandus igaz, a ! operátor hamisra állítja. |
Például:
#include <iostream> using namespace std; int main() { int a = 5, b = 2, c = 6, d = 4; if (a == b && c > d) cout << "a equals to b AND c is greater than d\n"; else cout << "AND operation returned false\n"; if (a == b || c > d) cout << "a equals to b OR c is greater than d\n"; else cout << "Neither a is equal to b nor c is greater than d\n"; if (!b) cout << "b is zero\n"; else cout << "b is not zero"; return 0; }
output:
Itt van egy képernyőkép a kódról:
Code Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
- Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
- A main() függvény meghívása, amelyen belül a program logikáját hozzá kell adni.
- A { a main() függvény törzsének kezdetét jelöli.
- Négy egész változó deklarálása: a, b, c és d, és különböző értékek hozzárendelése.
- Az && (ÉS) operátor használata az if utasításon belül. Két feltételt köt össze. Az első feltétel hamis, a második igaz, tehát a hamis&&igaz hamis; az if utasítás eredménye hamis.
- A konzolra kiírandó szöveg, ha a fenti if utasítás igaz. Ez nem kerül végrehajtásra.
- A végrehajtandó rész, ha a fenti if állítás hamis.
- A konzolon nyomtatandó szöveg, ha az if utasítás hamis. Ezt végrehajtják.
- A || (VAGY) operátor használata egy if utasításon belül. Az első feltétel hamis, a második igaz, tehát a hamis||igaz igaz; az if utasítás eredménye igaz.
- A konzolra kiírandó szöveg, ha a fenti if utasítás igaz. Ez végrehajtásra kerül.
- A végrehajtandó rész, ha a fenti if állítás hamis.
- A konzolon nyomtatandó szöveg, ha az if utasítás hamis. Ezt nem hajtják végre.
- Annak ellenőrzése, hogy a b változó értéke 0-e.
- A konzolra kiírandó szöveg, ha a fenti if utasítás igaz. Ez nem kerül végrehajtásra.
- A végrehajtandó rész, ha a fenti if állítás hamis.
- A konzolon nyomtatandó szöveg, ha az if utasítás hamis. Ezt végrehajtják.
- A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
- A main() függvény törzsének vége.
bitenkénti Operatorzok
Bitenkénti operátorok bit szintű műveleteket hajtanak végre operandusokon. Először az operandusokat bit szintűvé alakítják, majd végrehajtják a műveleteket. Amikor olyan aritmetikai műveleteket végeznek, mint az összeadás és a részfelosztástracHa a beavatkozásokat bit szinten végzik, az eredmények gyorsabban elérhetők. Ezek a következők:
| Operator | Leírás |
|---|---|
| & (bitenkénti ÉS) | Két számot (operandust) vesz fel, majd ÉS műveletet hajt végre a két szám minden bitjén. Ha mindkettő 1, az ÉS művelet 1-et ad vissza, egyébként 0-t. |
| | (bitenként VAGY) | Két számot (operandust) vesz fel, majd VAGY műveletet hajt végre a két szám minden bitjén. 1-et ad vissza, ha az egyik bit 1. |
| ^ (bitenkénti XOR) | Két számot (operandust) vesz, majd XOR műveletet hajt végre a két szám minden bitjén. 1-et ad vissza, ha mindkét bit különböző. |
| << (bal műszak) | Két számot vesz, majd az első operandus bitjeit balra eltolja. A második operandus határozza meg az eltolandó helyek teljes számát. |
| >> (jobb váltás) | Két számot vesz, majd az első operandus bitjeit jobbra eltolja. A második operandus határozza meg az eltolandó helyek számát. |
| ~ (bitenként NEM) | Fog egy számot, majd az összes bitjét invertálja. |
#include <iostream> using namespace std; int main() { unsigned int p = 60; // 60 = 0011 1100 unsigned int q = 13; // 13 = 0000 1101 int z = 0; z = p & q; cout << "p&q is : " << z << endl; // 12 = 0000 1100 z = p | q; cout << "p|q is : " << z << endl; // 61 = 0011 1101 z = p ^ q; cout << "p^q is : " << z << endl; // 49 = 0011 0001 z = ~p; cout << "~p is : " << z << endl; // -61 = 1100 0011 z = p << 2; cout << "p<<2 is: " << z << endl; // 240 = 1111 0000 z = p >> 2; cout << "p>>2 is : " << z << endl; // 15 = 0000 1111 return 0; }
output:
Itt van egy képernyőkép a kódról:
Code Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
- Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
- A main() függvény meghívása, amelyen belül a program logikáját hozzá kell adni.
- Egy előjel nélküli egész változó, a p deklarálása és egy 60-as érték hozzárendelése, ami binárisan 0011 1100.
- Egy előjel nélküli egész változó, a q deklarálása és egy 13 érték hozzárendelése, ami binárisan 0000 1101.
- Egy z egész változó deklarálása és inicializálása 0-ra.
- A bitenkénti & (AND) művelet végrehajtása p és q változókon, és az eredmény tárolása z változóban.
- A fenti művelet eredményének kinyomtatása a konzolon egyéb szövegek mellé.
- A bitenkénti | (OR) művelet p és q változókon, és az eredmény tárolása z változóban.
- A fenti művelet eredményének kinyomtatása a konzolon egyéb szövegek mellé.
- A bitenkénti ^ (XOR) művelet végrehajtása p és q változókon, és az eredmény tárolása z változóban.
- A fenti művelet eredményének kinyomtatása a konzolon egyéb szövegek mellé.
- A bitenkénti ~ (NOT) művelet végrehajtása a p változón, és az eredmény tárolása a z változóban.
- A fenti művelet eredményének kinyomtatása a konzolon egyéb szövegek mellé.
- A balra eltolás művelet végrehajtása p változón és az eredmény tárolása a z változóban.
- A fenti művelet eredményének kinyomtatása a konzolon egyéb szövegek mellé.
- A jobbra eltolás művelet végrehajtása p változón és az eredmény tárolása a z változóban.
- A fenti művelet eredményének kinyomtatása a konzolon egyéb szövegek mellé.
- A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
- A main() függvény törzsének vége.
Átruházás Operatorzok
Hozzárendelési operátorok értékeket rendelhet változókhoz. Az operandus/változó az operátor bal oldalához, míg az érték a jobb oldalához kerül hozzáadásra. A változónak és az értéknek ugyanahhoz az adattípushoz kell tartoznia, különben a C++ a fordító hibát fog jelezni.
Például:
x = 5;
A fenti példában x a változó/operandus, = az értékadó operátor, míg 5 az érték. Íme a népszerű értékadó operátorok a következőben: C++:
| Operator | Leírás |
|---|---|
| = (egyszerű hozzárendelési operátor) | A jobb oldali értéket a bal oldali változóhoz rendeli. |
| += (ÉS hozzárendelési operátor hozzáadása) | A jobb oldali operandus értékét hozzáadja a bal oldali operandushoz, majd az eredményt a bal oldali változóhoz rendeli. |
| -= (Alsó résztract ÉS értékadó operátor) | alatttracKiveszi a jobb oldali operandus értékét a bal oldali operandusból, majd az eredményt hozzárendeli a bal oldali változóhoz. |
| *= (ÉS szorzás és hozzárendelés operátor) | A bal oldali operandus értékét megszorozza a jobb oldali operandusszal, majd az eredményt a bal oldali változóhoz rendeli. |
| /= (Osztály ÉS hozzárendelés operátor) | A bal oldali operandus értékét elosztja a jobb oldali operandusszal, majd az eredményt a bal oldali változóhoz rendeli. |
Például:
#include <iostream> using namespace std; int main() { int x = 5; cout << "Initial value of x is " << x << "\n"; x += 5; cout << "x += 5 gives :" << x << "\n"; x -= 5; cout << "x -= 5 gives : " << x << "\n"; x *= 5; cout << "x *= 5 gives :" << x << "\n"; x /= 5; cout << "x /= 5 gives : " << x << "\n"; return 0; }
output:
Itt van egy képernyőkép a kódról:
Code Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
- Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
- A main() függvény meghívása, amelyen belül a program logikáját hozzá kell adni.
- A { a main() függvény törzsének kezdetét jelöli.
- Egy x egész változó deklarálása és 5 érték hozzárendelése.
- Az x változó értékének kiírása a konzolon más szöveggel együtt. A \n egy új sor karakter.
- Az x változó értékéhez 5 hozzáadása és az eredmény hozzárendelése az x változóhoz.
- Az x változó értékének kinyomtatása a konzolon más szöveggel együtt.
- alatttracaz x értékéből kinyerjük az 5-öt, és az eredményt az x változóhoz rendeljük.
- Az x változó értékének kinyomtatása a konzolon más szöveggel együtt.
- Az x változó értékének szorzása 5-tel, és az eredmény hozzárendelése az x változóhoz.
- Az x változó értékének kinyomtatása a konzolon más szöveggel együtt.
- Az x változó értékének osztása 5-tel, és az eredmény hozzárendelése az x változóhoz.
- Az x változó értékének kinyomtatása a konzolon más szöveggel együtt.
- A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
- A main() függvény törzsének vége.
Más Operatorzok
Más Operatorzok tartalmaznia kell a sizeof operátort, a vesszőt is. Operator, Feltételes Operator, és Operaoperátorok elsőbbsége. Beszéljünk a többi által támogatott operátorról C++:
operátor mérete
Ez az operátor egy változó méretét határozza meg. A sizeof operátorral meghatározhatja egy adattípus méretét.
Például:
#include <iostream> using namespace std; int main() { cout<<"Size of int : "<< sizeof(int) << "\n"; cout<<"Size of char : " << sizeof(char) << "\n"; cout<<"Size of float : " << sizeof(float) << "\n"; cout<<"Size of double : " << sizeof(double) << "\n"; return 0; }
output:
Itt van egy képernyőkép a kódról:
Code Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
- Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
- A main() függvény meghívása, amelyen belül a program logikáját hozzá kell adni.
- Az egész adattípus méretének meghatározása a sizeof operátorral, és a konzolon más szöveggel együtt történő kiírása.
- A karakter adattípus méretének meghatározása a sizeof operátorral, és a konzolon más szöveggel együtt történő kiírása.
- A float adattípus méretének meghatározása a sizeof operátorral, és kinyomtatása a konzolon a többi szöveggel együtt.
- A double adattípus méretének meghatározása a sizeof operátorral, és kinyomtatása a konzolon a többi szöveggel együtt.
- A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
- A main() függvény törzsének vége.
Vessző Operator
Az vessző operátor A (,) egy műveletsorozat végrehajtását indítja el. Kifejti az első operandust és elveti az eredményt. Ezután kiértékeli a második operandust, és visszaadja az értéket és a típust.
#include <iostream> using namespace std; int main() { int x, y; y = 100; x = (y++, y + 10, 99 + y); cout << x; return 0; }
output:
Itt van egy képernyőkép a kódról:
Code Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
- Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
- A main() függvény meghívása, amelyen belül a program logikáját hozzá kell adni.
- Két x és y egész változó deklarálása.
- A ya változóhoz 100 értéket rendelünk.
- A vessző operátor használatával. 100-nál lévő y-nal kezdődik, majd 101-ig növeli (y++). Ezután y-t hozzáadjuk 10-hez. Végül y-t, amely továbbra is 101, hozzáadjuk 99-hez, így 200-at kapunk. x most 200.
- Az x változó értékének kiírása a konzolra.
- A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
- A main() függvény törzsének vége.
Feltételes Operator
Ez az operátor értékel egy feltételt, és az értékelés eredménye alapján cselekszik.
Syntax:
Condition ? Expression2 : Expression3;
paraméterek:
- A Feltétel az a feltétel, amelyet értékelni kell.
- A Kifejezés2 az a kifejezés, amely akkor hajtódik végre, ha a feltétel igaz.
- A3. kifejezés az a kifejezés, amely akkor hajtódik végre, ha a feltétel hamis.
Például:
#include <iostream> using namespace std; int main() { int a = 1, b; b = (a < 10) ? 2 : 5; cout << "value of b: " << b << endl; return 0; }
output:
Itt van egy képernyőkép a kódról:
Code Magyarázat:
- Az iostream fejlécfájl belefoglalása a kódunkba. Lehetővé teszi számunkra, hogy olvassunk a konzolról és írjunk oda.
- Beleértve az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassuk.
- A main() függvény meghívása, amelyen belül a program logikáját hozzá kell adni.
- Kettő deklarálása egész változók a és b. Az a változóhoz 1 értéket rendeltek.
- Érték hozzárendelése a b változóhoz. Ha az a változó kisebb, mint 10, akkor a b változó 2 értéket kap, egyébként pedig 5 értéket.
- A b változó értékének kinyomtatása a konzolon más szöveggel együtt.
- A main() függvénynek értéket kell visszaadnia, ha a program jól fut.
- A main() függvény törzsének vége.
Operators Elsőbbség
Egy művelethez több operátor is tartozhat. Ebben az esetben az operátor elsőbbsége határozza meg az elsőként kiértékeltet.
A következő lista az operátorok elsőbbségét mutatja be C++, balról jobbra csökkenő elsőbbséggel:
(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=














