Operatorovi u C++Vrste s primjerom
⚡ Pametni sažetak
Operatorovi u C++ su simboli koji izvode operacije na operandima, od aritmetike i usporedbe do logičkih, bitnih i radnji dodjeljivanja. Ovaj resurs objašnjava svaku kategoriju operatora s primjerima programa koji se mogu izvesti, izlazom i pravilima prioriteta koja određuju redoslijed evaluacije.
Što su Operatorovi?
Operater je simbol koji se koristi za izvođenje operacija na operandima. Operator operira na operandima, a operacije mogu biti matematičke ili logičke. Postoje različite vrste operatora u C++ za izvođenje različitih operacija.
Razmotrite sljedeću operaciju:
a = x + y;
U gornjoj izjavi, x i y su operandi dok je + operator zbrajanja. Kada je C++ kompajler naiđe na gornju naredbu, zbrojit će x i y i pohraniti rezultat u varijablu a.
Vrste Operatorovi u C++
Postoje uglavnom 6 različitih vrsta operatora u C++:
- Aritmetika Operaulagatelji
- Relacijski Operaulagatelji
- logičan Operaulagatelji
- Bitno Operaulagatelji
- Raspored Operaulagatelji
- Ostalo Operaulagatelji
Počnimo s aritmetičkim operatorima, najčešće korištenom kategorijom.
Aritmetika Operaulagatelji
To su vrste operatora koji se koriste za izvođenje matematičkih/aritmetičkih operacija. Oni uključuju:
| Operahumka | Description |
|---|---|
| + operator zbrajanja | Dodaje dva operanda. |
| – podređenitracoperator cije | ispodtracts 2nd operand od 1st operand. |
| * operator množenja | Množi 2 operanda. |
| / operator dijeljenja | Dijeli brojnik nazivnikom. |
| % operator modula | Vraća ostatak nakon dijeljenja. |
| ++ operator povećanja | Povećava vrijednost cijelog broja za 1. |
| — operator smanjenja | Smanjuje vrijednost cijelog broja za 1. |
Na primjer:
#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; }
Izlaz:
Evo snimke zaslona koda:
Code Objašnjenje:
- Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
- Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
- Pozivanje funkcije main() unutar koje treba dodati logiku programa. { označava početak tijela funkcije main().
- Deklaracija cjelobrojne varijable a i njeno inicijaliziranje na 11.
- Deklaracija cjelobrojne varijable b i njeno inicijaliziranje na 5.
- Deklaracija cjelobrojne varijable c.
- Ispis vrijednosti operacije a+b uz ostali tekst na konzoli.
- Ispis vrijednosti operacije ab uz ostali tekst na konzoli.
- Ispis vrijednosti operacije a*b uz ostali tekst na konzoli.
- Ispis vrijednosti operacije a/b uz ostali tekst na konzoli.
- Ispis vrijednosti operacije a%b uz ostali tekst na konzoli.
- Ispis vrijednosti operacije a++ uz ostali tekst na konzoli.
- Ispis vrijednosti operacije a– uz ostali tekst na konzoli.
- Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
- Kraj tijela funkcije main().
Relacijski Operaulagatelji
Ove vrste operatora izvode usporedbe operanda. Na primjer, možda ćete morati znati koji je operand veći od drugog ili manji od drugog. Oni uključuju:
| Operahumka | Description |
|---|---|
| == jednako operatoru | Provjerava jednakost dvaju vrijednosti operanda. |
| != nije jednako operatoru | Provjerava nejednakost vrijednosti dvaju operanda. |
| > veći od operatora | Provjerava je li vrijednost lijevog operanda veća od vrijednosti desnog operanda. |
| < operator manje od | Provjerava je li vrijednost lijevog operanda manja od vrijednosti desnog operanda. |
| >= veće od ili jednako operatoru | Provjerava je li vrijednost lijevog operanda veća ili jednaka vrijednosti desnog operanda. |
| <= operator manje ili jednako | Provjerava je li vrijednost lijevog operanda manja ili jednaka vrijednosti desnog operanda. |
Na primjer:
#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; }
Izlaz:
Evo snimke zaslona koda:
Code Objašnjenje:
- Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
- Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
- Poziv main() funkcije unutar koje treba dodati logiku programa.
- Deklaracija cjelobrojne varijable a i njeno inicijaliziranje na 11.
- Deklaracija cjelobrojne varijable b i njeno inicijaliziranje na 5.
- Ispis nekog teksta na konzoli koji navodi vrijednosti varijabli a i b.
- Provjera je li a jednak b korištenjem if naredbe za donošenje odluka.
- Tekst koji će se ispisati na konzoli ako je operacija a==b istinita.
- Dio else gornje if naredbe, koji navodi što učiniti ako je a==b lažno.
- Tekst koji će se ispisati na konzoli ako je operacija a==b netočna.
- Provjera je li a manji od b korištenjem if naredbe.
- Tekst koji će se ispisati na konzoli ako je operacija a
- Dio else za kada a
- Tekst koji će se ispisati na konzoli ako je operacija a
- Provjera je li a veći od b pomoću if naredbe.
- Tekst koji će se ispisati na konzoli ako je operacija a>b istinita.
- Dio else za slučaj kada je a>b netočno.
- Tekst koji će se ispisati na konzoli ako je operacija a>b netočna.
- Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
- Kraj tijela funkcije main().
logičan Operaulagatelji
The logički operatori kombiniraju dva ili više ograničenja/uvjeta. Logički operatori također nadopunjuju procjenu izvornog uvjeta koji se razmatra. Oni uključuju:
| Operahumka | Description |
|---|---|
| && logički operator I | Uvjet je istinit ako su oba operanda različita od nule. |
| || logički ILI operator | Uvjet je istinit ako jedan od operanda nije nula. |
| logički operator NE! | Obrće logičko stanje operanda. Ako je operand istinit, operator ! ga pretvara u neistinit. |
Na primjer:
#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; }
Izlaz:
Evo snimke zaslona koda:
Code Objašnjenje:
- Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
- Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
- Poziv main() funkcije unutar koje treba dodati logiku programa.
- { označava početak tijela funkcije main().
- Deklariranje 4 cjelobrojne varijable a, b, c i d te dodjeljivanje istih različitim vrijednostima.
- Korištenje operatora && (AND) unutar if naredbe. Spaja dva uvjeta. Prvi uvjet je lažan, a drugi je istinit, pa je false&&true lažno; ishod if naredbe je lažan.
- Tekst koji će se ispisati u konzoli ako je gornja if naredba istinita. Ovo se neće izvršiti.
- Dio koji se izvršava ako je gornja if naredba lažna.
- Tekst za ispis na konzoli ako je naredba if lažna. Ovo će biti izvršeno.
- Korištenje operatora || (ILI) unutar if naredbe. Prvi uvjet je lažan, a drugi je istinit, pa je lažno||istinito istinito; ishod if naredbe je istinit.
- Tekst koji će se ispisati u konzoli ako je gornja if naredba istinita. Ovo će se izvršiti.
- Dio koji se izvršava ako je gornja if naredba lažna.
- Tekst za ispis na konzoli ako je naredba if lažna. Ovo se neće izvršiti.
- Provjerava se je li vrijednost varijable b jednaka 0.
- Tekst koji će se ispisati u konzoli ako je gornja if naredba istinita. Ovo se neće izvršiti.
- Dio koji se izvršava ako je gornja if naredba lažna.
- Tekst za ispis na konzoli ako je naredba if lažna. Ovo će biti izvršeno.
- Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
- Kraj tijela funkcije main().
Bitno Operaulagatelji
Bitni operatori izvode operacije na razini bitova nad operandima. Prvo se operandi pretvaraju na razinu bitova, a zatim se izvode operacije. Kada se aritmetičke operacije poput zbrajanja i oduzimanjatracAko se radnje obavljaju na razini bita, rezultati se mogu postići brže. Uključuju:
| Operahumka | Description |
|---|---|
| & (bitovno I) | Uzima 2 broja (operanda), a zatim izvršava I na svakom bitu ta dva broja. Ako su oba 1, I vraća 1, inače 0. |
| | (bitno ILI) | Uzima 2 broja (operanda), a zatim izvodi ILI na svakom bitu ta dva broja. Vraća 1 ako je jedan od bitova 1. |
| ^ (bitni XOR) | Uzima 2 broja (operanda), a zatim izvodi XOR na svakom bitu 2 broja. Vraća 1 ako su oba bita različita. |
| << (pomak ulijevo) | Uzima dva broja, a zatim pomiče bitove prvog operanda ulijevo. Drugi operand određuje ukupan broj mjesta za pomicanje. |
| >> (desni pomak) | Uzima dva broja, a zatim pomiče bitove prvog operanda udesno. Drugi operand određuje broj mjesta za pomicanje. |
| ~ (bitno NE) | Uzima broj, a zatim invertira sve njegove bitove. |
#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; }
Izlaz:
Evo snimke zaslona koda:
Code Objašnjenje:
- Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
- Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
- Poziv main() funkcije unutar koje treba dodati logiku programa.
- Deklarisanje neoznačene cjelobrojne varijable p i dodjeljivanje joj vrijednosti 60, što je binarno 0011 1100.
- Deklarisanje neoznačene cjelobrojne varijable q i dodjeljivanje joj vrijednosti 13, što je binarno 0000 1101.
- Deklaracija cjelobrojne varijable z i njeno inicijaliziranje na 0.
- Izvođenje bitovne & (AND) operacije na varijablama p i q i pohranjivanje rezultata u varijablu z.
- Ispis rezultata gornje operacije na konzoli uz ostali tekst.
- Izvođenje bitova | (ILI) operacija na varijablama p i q i pohranjivanje rezultata u varijablu z.
- Ispis rezultata gornje operacije na konzoli uz ostali tekst.
- Izvođenje bitne operacije ^ (XOR) na varijablama p i q i pohranjivanje rezultata u varijablu z.
- Ispis rezultata gornje operacije na konzoli uz ostali tekst.
- Izvođenje bitovne ~ (NOT) operacije na varijabli p i pohranjivanje rezultata u varijablu z.
- Ispis rezultata gornje operacije na konzoli uz ostali tekst.
- Izvođenje operacije lijevog pomaka na varijabli p i pohranjivanje rezultata u varijablu z.
- Ispis rezultata gornje operacije na konzoli uz ostali tekst.
- Izvođenje operacije desnog pomaka na varijabli p i pohranjivanje rezultata u varijablu z.
- Ispis rezultata gornje operacije na konzoli uz ostali tekst.
- Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
- Kraj tijela funkcije main().
Raspored Operaulagatelji
Operatori dodjele dodijeliti vrijednosti varijablama. Operand/varijabla se dodaje na lijevu stranu operatora, dok se vrijednost dodaje na desnu stranu. Varijabla i vrijednost moraju pripadati istom tipu podataka, inače C++ kompajler će izbaciti grešku.
Na primjer:
x = 5;
U gornjem primjeru, x je varijabla/operand, = je operator dodjeljivanja, dok je 5 vrijednost. Evo popularnih operatora dodjeljivanja u C++:
| Operahumka | Description |
|---|---|
| = (jednostavni operator dodjele) | Dodjeljuje vrijednost s desne strane varijabli s lijeve strane. |
| += (Dodaj I operator dodjele) | Dodaje vrijednost desnog operanda lijevom operandu, zatim dodjeljuje rezultat varijabli s lijeve strane. |
| -= (Podtracoperator dodjeljivanja t I) | ispodtracts uzima vrijednost desnog operanda iz lijevog operanda, a zatim rezultat dodjeljuje varijabli s lijeve strane. |
| *= (Operator množenja I dodjele) | Množi vrijednost lijevog operanda s desnim operandom, zatim dodjeljuje rezultat varijabli s lijeve strane. |
| /= (operator dijeljenja I dodjele) | Dijeli vrijednost lijevog operanda desnim operandom, zatim dodjeljuje rezultat varijabli s lijeve strane. |
Na primjer:
#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; }
Izlaz:
Evo snimke zaslona koda:
Code Objašnjenje:
- Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
- Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
- Poziv main() funkcije unutar koje treba dodati logiku programa.
- { označava početak tijela funkcije main().
- Deklaracija cjelobrojne varijable x i dodjeljivanje vrijednosti 5.
- Ispis vrijednosti varijable x uz ostali tekst u konzoli. \n je znak za novi redak.
- Dodavanje 5 vrijednosti varijable x i dodjeljivanje rezultata varijabli x.
- Ispis vrijednosti varijable x na konzoli uz ostali tekst.
- ispodtracIzračunavanje 5 iz vrijednosti x i dodjeljivanje rezultata varijabli x.
- Ispis vrijednosti varijable x na konzoli uz ostali tekst.
- Množenje vrijednosti varijable x s 5 i dodjeljivanje rezultata varijabli x.
- Ispis vrijednosti varijable x na konzoli uz ostali tekst.
- Dijeljenje vrijednosti varijable x s 5 i dodjeljivanje rezultata varijabli x.
- Ispis vrijednosti varijable x na konzoli uz ostali tekst.
- Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
- Kraj tijela funkcije main().
Ostalo Operaulagatelji
Ostalo Operaulagatelji uključuju operator sizeof, zarez Operator, Kondicional Operator, i OperaPrioritet operatora. Razmotrimo ostale operatore koje podržava C++:
operator sizeof
Ovaj operator određuje veličinu varijable. Za određivanje veličine podatkovnog tipa koristite operator sizeof.
Na primjer:
#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; }
Izlaz:
Evo snimke zaslona koda:
Code Objašnjenje:
- Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
- Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
- Poziv main() funkcije unutar koje treba dodati logiku programa.
- Određivanje veličine cjelobrojnog tipa podataka pomoću operatora sizeof i ispis uz ostali tekst na konzoli.
- Određivanje veličine podatkovnog tipa znak pomoću operatora sizeof i ispis uz ostali tekst na konzoli.
- Određivanje veličine podatkovnog tipa float pomoću operatora sizeof i ispis uz ostali tekst na konzoli.
- Određivanje veličine podatkovnog tipa double pomoću operatora sizeof i ispisivanje uz ostali tekst u konzoli.
- Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
- Kraj tijela funkcije main().
Zarez Operahumka
The operator zarez (,) pokreće izvođenje niza operacija. Izražava prvi operand i odbacuje rezultat. Zatim procjenjuje drugi operand i vraća vrijednost i tip.
#include <iostream> using namespace std; int main() { int x, y; y = 100; x = (y++, y + 10, 99 + y); cout << x; return 0; }
Izlaz:
Evo snimke zaslona koda:
Code Objašnjenje:
- Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
- Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
- Poziv main() funkcije unutar koje treba dodati logiku programa.
- Deklaracija dviju cjelobrojnih varijabli x i y.
- Dodjeljivanje varijabli ya vrijednosti 100.
- Korištenje operatora zareza. Počinje s y na 100, zatim se povećava na 101 (y++). Zatim se y dodaje 10. Konačno, y, još uvijek na 101, dodaje se 99, dajući 200. x je sada 200.
- Ispis vrijednosti varijable x na konzolu.
- Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
- Kraj tijela funkcije main().
kondicional Operahumka
Ovaj operater procjenjuje stanje i djeluje na temelju rezultata procjene.
Sintaksa:
Condition ? Expression2 : Expression3;
Parametri:
- Uvjet je uvjet koji treba ocijeniti.
- Izraz2 je izraz koji se izvršava ako je uvjet istinit.
- Izraz3 je izraz koji se izvršava ako je uvjet lažan.
Na primjer:
#include <iostream> using namespace std; int main() { int a = 1, b; b = (a < 10) ? 2 : 5; cout << "value of b: " << b << endl; return 0; }
Izlaz:
Evo snimke zaslona koda:
Code Objašnjenje:
- Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
- Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
- Poziv main() funkcije unutar koje treba dodati logiku programa.
- Proglašavanje dva cjelobrojne varijable a i b. Varijabli a dodijeljena je vrijednost 1.
- Dodjeljivanje vrijednosti varijabli b. Ako je varijabla a manja od 10, b će dobiti vrijednost 2, inače će b dobiti vrijednost 5.
- Ispis vrijednosti varijable b na konzoli uz ostali tekst.
- Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
- Kraj tijela funkcije main().
Operatorovi Prednost
Jedna operacija može imati više od jednog operatora. U tom slučaju prednost operatora određuje onaj koji se prvi procjenjuje.
Sljedeći popis prikazuje prvenstvo operatora in C++, sa opadajućim prioritetom s lijeva na desno:
(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=














