Operavtrhne dovnitř C++ s Příkladem: Co je, typy a programy
Jaké jsou Operators?
Operátor je symbol používaný pro provádění operací s operandy. Operátor obsluhuje operandy. Operace mohou být matematické nebo logické. Existují různé typy operátorů C++ pro provádění různých operací.
Zvažte následující operaci:
a = x + y;
Ve výše uvedeném příkazu jsou x a y operandy, zatímco + je operátor sčítání. Když C++ kompilátor narazí na výše uvedený příkaz, přidá x a y a uloží výsledek do proměnné a.
Typy Operavtrhne dovnitř C++
Existují hlavně 6 různých typů operátorů C++
- Aritmetický Operatorů
- Relační Operatorů
- logický Operatorů
- Bitové Operatorů
- Přiřazení Operatorů
- Ostatní Operatorů
Aritmetický Operatorů
Jsou to typy operátorů používané pro provádění matematických/aritmetických operací. Patří mezi ně:
| OperaTor | Description |
|---|---|
| + operátor sčítání | Přidá k operandům. |
| – operátor odčítání | Odečte 2nd operand od 1st operand. |
| * operátor násobení | Vynásobí 2 operandy. |
| / operátor divize. | Dělí čitatele jmenovatelem. |
| % modulu operátor | Vrátí zbytek po rozdělení. |
| ++ operátor přírůstku | Zvýší celočíselnou hodnotu o 1. |
| — operátor úbytku. | Sníží celočíselnou hodnotu o 1. |
Například:
#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;
}
Výstup:
Zde je snímek obrazovky kódu:
Vysvětlení kódu:
- Včetně souboru záhlaví iostream v našem kódu. Umožní nám to číst a zapisovat do konzole.
- Včetně jmenného prostoru std, aby bylo možné používat jeho třídy a funkce bez jeho volání.
- Volání funkce main(), do které má být přidána logika programu. { označuje začátek těla funkce main().
- Deklarování celočíselné proměnné a a její inicializace na 11.
- Deklarování celočíselné proměnné b a její inicializace na 5.
- deklarace celočíselné proměnné c.
- Tisk hodnoty operace a+b vedle jiného textu na konzole.
- Tisk hodnoty operace ab spolu s jiným textem na konzole.
- Tisk hodnoty operace a*b vedle jiného textu na konzole.
- Tisk hodnoty operace a/b vedle jiného textu na konzole.
- Tisk hodnoty operace a%b vedle jiného textu na konzole.
- Tisk hodnoty operace a++ spolu s dalším textem na konzole.
- Tisk hodnoty operace a– spolu s dalším textem na konzole.
- Funkce main() by měla vrátit hodnotu, pokud program běží správně.
- Konec těla funkce main().
Relační Operatorů
Tyto typy operátorů provádějí porovnávání operandů. Můžete například potřebovat vědět, který operand je větší než druhý nebo menší než druhý. Patří mezi ně:
| OperaTor | Description |
|---|---|
| == rovno operátoru. | Kontroluje rovnost dvou hodnot operandů. |
| != nerovná se operátor | Kontroluje rovnost dvou hodnot operandů. |
| > lepší než operátor | Zkontroluje, zda je hodnota levého operandu větší než hodnota pravého operandu. |
| < menší než operátor. | Kontroluje, zda je hodnota levého operandu menší než hodnota pravého operandu. |
| >= větší nebo rovno operátoru | Kontroluje, zda je hodnota levého operandu větší nebo rovna hodnotě pravého operandu. |
| <= menší nebo rovno operátoru. | Kontroluje, zda je hodnota levého operandu menší nebo rovna hodnotě pravého operandu. |
Například:
#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;
}
Výstup:
Zde je snímek obrazovky kódu:
Vysvětlení kódu:
- Včetně souboru záhlaví iostream v našem kódu. Umožní nám to číst a zapisovat do konzole.
- Včetně jmenného prostoru std, aby bylo možné používat jeho třídy a funkce bez jeho volání.
- Volání funkce main(), do které má být přidána logika programu. { označuje začátek těla funkce main().
- Deklarování celočíselné proměnné a a její inicializace na 11.
- Deklarování celočíselné proměnné b a její inicializace na 5.
- Tisk nějakého textu na konzoli s uvedením hodnot proměnných a a b.
- Provedení aritmetické operace, a==b v rozhodovacím příkazu if, abyste věděli, zda je pravdivý nebo nepravdivý. { označuje začátek těla příkazu if.
- Text, který se má vytisknout na konzole, pokud je operace a==b pravdivá. Konec je a C++ klíčové slovo pro koncový řádek. Stlačí kurzor a spustí tisk na dalším řádku. Znak } označuje konec těla příkazu if.
- Část else výše uvedeného příkazu if. Uvádí, co dělat, pokud je operace a==b nepravdivá.
- Text, který se má vytisknout na konzole, pokud je operace a==b nepravdivá. Konec je a C++ klíčové slovo pro koncový řádek. Stlačí kurzor a spustí tisk na dalším řádku. Znak } označuje konec těla příkazu else.
- Provedení aritmetické operace, a
- Text, který se má vytisknout na konzole, pokud operace a C++ klíčové slovo pro koncový řádek. Stlačí kurzor a spustí tisk na dalším řádku. Znak } označuje konec těla příkazu if.
- Část else výše uvedeného příkazu if. Uvádí, co dělat, pokud operace a
- Text, který se má vytisknout na konzole, pokud operace a C++ klíčové slovo pro koncový řádek. Stlačí kurzor a spustí tisk na dalším řádku. Znak } označuje konec těla příkazu else.
- Provedení aritmetické operace a>b v rozhodovacím příkazu if, abyste zjistili, zda je pravdivý nebo nepravdivý. { označuje začátek těla příkazu if.
- Text, který se má vytisknout na konzole, pokud je operace a>b pravdivá. Konec je a C++ klíčové slovo pro koncový řádek. Stlačí kurzor a spustí tisk na dalším řádku. Znak } označuje konec těla příkazu if.
- Část else výše uvedeného příkazu if. Uvádí, co dělat, pokud je operace a>b nepravdivá.
- Text, který se má vytisknout na konzole, pokud je operace a>b nepravdivá. Konec je a C++ klíčové slovo pro koncový řádek. Stlačí kurzor a spustí tisk na dalším řádku. Znak } označuje konec těla příkazu else.
- Funkce main() by měla vrátit hodnotu, pokud program běží správně.
- Konec těla funkce main().
logický Operatorů
Jedno logických operátorů kombinovat dvě/více omezení/podmínek. Logické operátory také doplňují hodnocení uvažovaného původního stavu. Patří mezi ně:
| OperaTor | Description |
|---|---|
| && logický operátor AND. | Podmínka je pravdivá, pokud oba operandy nejsou nulové. |
| || logický operátor OR. | Podmínka platí, pokud je jeden z operandů nenulový. |
| ! logický operátor NOT. | Obrátí logický stav operandu. Pokud je operand pravdivý, ! operátor to dělá nepravdivé. |
Například:
#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;
}
Výstup:
Zde je snímek obrazovky kódu:
Vysvětlení kódu:
- Včetně souboru záhlaví iostream v našem kódu. Umožní nám to číst a zapisovat do konzole.
- Včetně jmenného prostoru std, aby bylo možné používat jeho třídy a funkce bez jeho volání.
- Volání funkce main(), do které má být přidána logika programu.
- { označuje začátek těla funkce main().
- Deklarace 4 celočíselných proměnných a, b, cad a přiřazení různých hodnot.
- Použití operátoru && (AND) uvnitř příkazu if. Spojuje dvě podmínky, hodnota a se rovná hodnotě b a hodnota a je větší než hodnota b. První podmínka je nepravdivá, druhá podmínka je pravdivá. False&&true je False, takže výsledek if je nepravdivý.
- Text, který se má vytisknout na konzole, pokud je výše uvedený příkaz if pravdivý. Toto nebude provedeno.
- Část, která se má provést, pokud je výše uvedený příkaz if nepravdivý.
- Text, který se má vytisknout na konzole, pokud je příkaz if nepravdivý. Toto bude provedeno.
- Pomocí || (OR) operátor v příkazu if. Spojuje dvě podmínky, hodnota a se rovná hodnotě b a hodnota a je větší než hodnota b. První podmínka je nepravdivá, druhá podmínka je pravdivá. False||true je True, takže výsledek if je pravdivý.
- Text, který se má vytisknout na konzole, pokud je výše uvedený příkaz if pravdivý. Toto bude provedeno.
- Část, která se má provést, pokud je výše uvedený příkaz if nepravdivý.
- Text, který se má vytisknout na konzole, pokud je příkaz if nepravdivý. Toto nebude provedeno.
- Kontrola, zda je hodnota proměnné 0.
- Text, který se má vytisknout na konzole, pokud je výše uvedený příkaz if pravdivý. Toto nebude provedeno.
- Část, která se má provést, pokud je výše uvedený příkaz if nepravdivý.
- Text, který se má vytisknout na konzole, pokud je příkaz if nepravdivý. Toto bude provedeno.
- Funkce main() by měla vrátit hodnotu, pokud program běží správně.
- Konec těla funkce main().
Bitové Operatorů
Bitové operátory provádět operace na bitové úrovni s operandy. Nejprve jsou operátory převedeny na bitovou úroveň a poté jsou prováděny operace s operandy. Když jsou aritmetické operace jako sčítání a odčítání prováděny na bitové úrovni, lze výsledků dosáhnout rychleji. Patří mezi ně:
| OperaTor | Description |
|---|---|
| & (bitový AND). | Trvá 2 čísla (operandy), pak se provede AND na každém bitu dvou čísel. Pokud jsou obě 1, AND vrátí 1, jinak 0. |
| | (bitově NEBO) | Vezme 2 čísla (operandy) a poté provede OR na každém bitu dvou čísel. Vrátí 1, pokud je jeden z bitů 1. |
| ^ (bitový XOR) | Vezme 2 čísla (operandy) a poté provede XOR na každém bitu 2 čísel. Pokud jsou oba bity různé, vrátí 1. |
| << (levý posun) | Vezme dvě čísla a poté doleva posune bity prvního operandu. Druhý operand určuje celkový počet míst k posunu. |
| >> (pravý posun) | Vezme dvě čísla a pak vpravo posune bity prvního operandu. Druhý operand určuje počet míst k posunutí. |
| ~ (bitově NE). | Vezme číslo a poté převrátí všechny jeho bity. |
#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;
}
Výstup:
Zde je snímek obrazovky kódu:
Vysvětlení kódu:
- Včetně souboru záhlaví iostream v našem kódu. Umožní nám to číst a zapisovat do konzole.
- Včetně jmenného prostoru std, aby bylo možné používat jeho třídy a funkce bez jeho volání.
- Volání funkce main(), do které má být přidána logika programu. { označuje začátek těla funkce main().
- Deklarace celočíselné proměnné p bez znaménka a přiřazení jí hodnoty 60, což je 0011 1100 v binární podobě.
- Deklarování celočíselné proměnné q bez znaménka a přiřazení jí hodnoty 13, což je 0000 1101 v binární podobě.
- Deklarování celočíselné proměnné z a její inicializace na 0.
- Provedení bitové operace & (AND) na proměnných p a q a uložení výsledku do proměnné z.
- Tisk výsledku výše uvedené operace na konzole spolu s jiným textem.
- Provádění bitového | (OR) operace s proměnnými p a q a uložení výsledku do proměnné z.
- Tisk výsledku výše uvedené operace na konzole spolu s jiným textem.
- Provedení bitové operace ^ (XOR) na proměnných p a q a uložení výsledku do proměnné z.
- Tisk výsledku výše uvedené operace na konzole spolu s jiným textem.
- Provedení bitové operace ~ (NOT) na proměnných p a q a uložení výsledku do proměnné z.
- Tisk výsledku výše uvedené operace na konzole spolu s jiným textem.
- Provedení operace posunu vlevo na proměnné p a uložení výsledku do proměnné z.
- Tisk výsledku výše uvedené operace na konzole spolu s jiným textem.
- Provedení operace posunu doprava na proměnné p a uložení výsledku do proměnné z.
- Tisk výsledku výše uvedené operace na konzole spolu s jiným textem.
- Funkce main() by měla vrátit hodnotu, pokud program běží správně.
- Konec těla funkce main().
Přiřazení Operatorů
Operátoři přiřazení přiřazovat hodnoty proměnným. Operand/proměnná se přidá na levou stranu operátoru, zatímco hodnota se přidá na pravou stranu operátoru. Proměnná a hodnota musí patřit ke stejnému datovému typu, jinak je C++ kompilátor vyvolá chybu.
Například:
x = 5;
Ve výše uvedeném příkladu je x proměnná/operand, = je operátor přiřazení, zatímco 5 je hodnota. Zde jsou oblíbené operátory přiřazení C++:
| OperaTor | Description |
|---|---|
| = (jednoduchý operátor přiřazení) | Přiřadí hodnotu vpravo proměnné vlevo. |
| += (Přidat operátor přiřazení AND) | Přidá hodnotu pravého operandu k levému operandu a poté přiřadí výsledek proměnné vlevo. |
| -= (Operátor přiřazení odečíst AND) | Odečte hodnotu pravého operandu od levého operandu a poté přiřadí výsledek proměnné vlevo. |
| *= (operátor přiřazení násobení AND) | Vynásobí hodnotu levého operandu pravým operandem a výsledek pak přiřadí proměnné vlevo. |
| /= (operátor přiřazení dělení A) | Vydělí hodnotu levého operandu pravým operandem a výsledek pak přiřadí proměnné vlevo. |
Například:
#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;
}
Výstup:
Zde je snímek obrazovky kódu:
Vysvětlení kódu:
- Včetně souboru záhlaví iostream v našem kódu. Umožní nám to číst a zapisovat do konzole.
- Včetně jmenného prostoru std, aby bylo možné používat jeho třídy a funkce bez jeho volání.
- Volání funkce main(), do které má být přidána logika programu.
- { označuje začátek těla funkce main().
- Deklarujeme celočíselnou proměnnou x a přiřadíme jí hodnotu 5.
- Tisk hodnoty proměnné x vedle jiného textu na konzole. \n je znak nového řádku. Při tisku přesune kurzor na další řádek.
- Přičtení 5 k hodnotě proměnné x a přiřazení výsledku k proměnné x.
- Tisk hodnoty proměnné x na konzole vedle jiného textu.
- Odečtení 5 od hodnoty x a přiřazení výsledku k proměnné x.
- Tisk hodnoty proměnné x na konzole vedle jiného textu.
- Vynásobení hodnoty proměnné x 5 a přiřazení výsledku proměnné x.
- Tisk hodnoty proměnné x na konzole vedle jiného textu.
- Vydělení hodnoty proměnné x 5 a přiřazení výsledku proměnné x.
- Tisk hodnoty proměnné x na konzole vedle jiného textu.
- Funkce main() by měla vrátit hodnotu, pokud program běží správně.
- Konec těla funkce main().
Ostatní Operatorů
Ostatní Operatorů včetně operátoru sizeof, čárka Operator, Podmíněný Operator, a Operators Přednost.
Pojďme diskutovat o dalších operátorech podporovaných C++:
velikost operátora
Tento operátor určuje velikost proměnné. K určení velikosti datového typu použijte operátor sizeof.
Například:
#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;
}
Výstup:
Zde je snímek obrazovky kódu:
Vysvětlení kódu:
- Včetně souboru záhlaví iostream v našem kódu. Umožní nám to číst a zapisovat do konzole.
- Včetně jmenného prostoru std, aby bylo možné používat jeho třídy a funkce bez jeho volání.
- Volání funkce main(), do které má být přidána logika programu. { označuje začátek těla funkce main().
- Určení velikosti celočíselného datového typu pomocí operátoru sizeof a jeho tisk vedle jiného textu na konzole.
- Určení velikosti znakového datového typu pomocí operátoru sizeof a jeho tisk vedle jiného textu na konzole.
- Určení velikosti datového typu float pomocí operátoru sizeof a jeho tisk vedle jiného textu na konzole.
- Určení velikosti datového typu float pomocí operátoru sizeof a jeho tisk vedle jiného textu na konzole.
- Funkce main() by měla vrátit hodnotu, pokud program běží správně.
- Konec těla funkce main().
Čárka OperaTor
Jedno operátor čárky (,) spouští provedení sekvence operací. Vyjádří první operand a zahodí výsledek. Dále vyhodnotí druhý operand a vrátí hodnotu a typ.
#include <iostream>
using namespace std;
int main() {
int x, y;
y = 100;
x = (y++, y + 10, 99 + y);
cout << x;
return 0;
}
Výstup:
Zde je snímek obrazovky kódu:
Vysvětlení kódu:
- Včetně souboru záhlaví iostream v našem kódu. Umožní nám to číst a zapisovat do konzole.
- Včetně jmenného prostoru std, aby bylo možné používat jeho třídy a funkce bez jeho volání.
- Volání funkce main(), do které má být přidána logika programu. { označuje začátek těla funkce main().
- Deklarace dvou celočíselných proměnných x a y.
- Přiřazení hodnoty proměnné ya 100.
- Zvýšení hodnoty y a přiřazení výsledku proměnné x. Začíná s y na 100, pak se zvýší na 101 (y++). Dále je y přidáno k 10. Nakonec y, stále na 101, je přidáno k 99, což dává 200. x je nyní 200.
- Tisk hodnoty proměnné x na konzole.
- Funkce main() by měla vrátit hodnotu, pokud program běží správně.
- Konec těla funkce main().
podmiňovací OperaTor
Tento operátor vyhodnotí stav a na základě výsledku vyhodnocení jedná.
Syntaxe:
Condition ? Expression2 : Expression3;
parametry:
- Podmínka je podmínka, která má být hodnocena.
- Výraz1 je výraz, který se má provést, pokud je podmínka pravdivá.
- Výraz3 je výraz, který se má provést, pokud je podmínka nepravdivá.
Například:
#include <iostream>
using namespace std;
int main() {
int a = 1, b;
b = (a < 10) ? 2 : 5;
cout << "value of b: " << b << endl;
return 0;
}
Výstup:
Zde je snímek obrazovky kódu:
Vysvětlení kódu:
- Včetně souboru záhlaví iostream v našem kódu. Umožní nám to číst a zapisovat do konzole.
- Včetně jmenného prostoru std, aby bylo možné používat jeho třídy a funkce bez jeho volání.
- Volání funkce main(), do které má být přidána logika programu. { označuje začátek těla funkce main().
- Vyhlášení dvou celočíselné proměnné a a b. Proměnné a byla přiřazena hodnota 1.
- Přiřazení hodnoty proměnné b. Pokud je proměnná a menší než 10, bude b přiřazena hodnota 2, v opačném případě bude b přiřazena hodnota 5.
- Tisk hodnoty proměnné b na konzole vedle jiného textu.
- Funkce main() by měla vrátit hodnotu, pokud program běží správně.
- Konec těla funkce main().
Operators Přednost
Jedna operace může mít více než jednoho operátora. V takovém případě priorita operátoru určuje ten, který je vyhodnocen jako první.
Následující seznam ukazuje prioritu operátorů v C++, s klesající prioritou zleva doprava:
(), [],*, /, %, +/-, << , >>, == , !=, ^, |, &&, ||, ?:, =, +=, -=, *= , /=
Shrnutí
- Operatory jsou symboly pro provádění logických a aritmetických operací.
- Aritmetické operátory nám pomáhají provádět různé aritmetické operace s operandy.
- Relační operátory nám pomáhají provádět různé porovnávací operace na operandech.
- Logické operátory nám pomáhají provádět různé logické operace s operandy.
- Bitové operátory nám pomáhají provádět bitové operace s operandy.
- Operátory přiřazení nám pomáhají provádět různé aritmetické operace s operandy.
- Operátor sizeof vrací velikost proměnné nebo datového typu.
- Operátor čárky provádí sekvenci operací.
- Podmíněný operátor vyhodnotí podmínku a na základě výsledku jedná.













