c operators types
Popolna študija operaterjev v jeziku C ++ s primeri:
V tem Intenzivna C ++ serija usposabljanja, v naših prejšnjih vadnicah smo spoznali različne koncepte v jeziku C ++, kot so spremenljivke, razredi shranjevanja, kvalifikatorji tipov itd. Spoznali smo tudi, kako lahko spremenimo te spremenljivke.
Za izvedbo teh sprememb moramo izvesti operacije nad temi spremenljivkami in konstantami in za izvajanje teh operacij uporabiti operatorje.
Operatorji so simboli, ki delujejo na spremenljivke ali druge entitete, ki se imenujejo operandi, in izvajajo matematične ali logične operacije, da spremenijo svoje vrednosti in v skladu s tem ustvarijo rezultate.
Kaj se boste naučili:
Operaterji v C ++
Operaterji so temelj vsakega programskega jezika. Brez operaterjev ne moremo spreminjati ali manipulirati entitet programskih jezikov in s tem ne moremo doseči želenih rezultatov. C ++ je zelo bogat z vgrajenimi operaterji, o čemer bomo podrobno razpravljali v tej vadnici.
V jeziku C ++ je večina operaterjev binarnih operaterjev, kar pomeni, da za izvajanje operacije potrebujejo dva operanda. Nekaj operaterjev, kot je operator ++ (inkrement), je unarni operator, kar pomeni, da delujejo samo z enim operandom.
V jeziku C ++ obstaja tudi ternarni operator, imenovan Pogojni operater, ki sprejme tri operande. O tem bomo podrobneje izvedeli v kasnejšem delu vadnice.
najboljši brezplačni DVD ripper za Windows 10
Vrste operaterjev v jeziku C ++
Operaterji v jeziku C ++ so razvrščeni, kot je prikazano spodaj:
Podrobno raziščimo vsako vrsto operaterja C ++ !!
Aritmetični operaterji
Aritmetični operatorji se uporabljajo za izvajanje osnovnih matematičnih operacij nad operandi.
C ++ podpira naslednje aritmetične operacije:
Operater | Binarno / unarsko | Opis |
---|---|---|
- | Unary | Operator zmanjšanja - zmanjša vrednost operanda za 1 |
+ | Binarno | Dodatek dveh operandov |
- | Binarno | Odštevanje dveh operandov |
* | Binarno | Množenje dveh operandov |
/ | Binarno | Delitev dveh operandov |
% | Binarno | Operator modula - rezultat je preostanek delitve |
++ | Unary | Inkrementalni operator - poveča vrednost operanda za 1 |
Spodnji primer prikazuje prvih pet aritmetičnih operatorjev v jeziku C ++
#include #include using namespace std; int main() { int op1=3,op2=4; float op3=10.1,op4=5.4; cout<<'Operands are op1 = '< To lahko bolje razumemo z naslednjim primerom. #include #include using namespace std; int main() { int x=4,y; y = ++x; cout<<'PreIncrement:Value of x = '<Logični operaterji Logični operaterji se uporabljajo za ovrednotenje kombinacije pogojev / omejitev za pridobitev rezultatske vrednosti. Rezultat ocene logičnega izraza je logična vrednost, ki je resnična ali neresnična.
C ++ podpira naslednje logične operaterje:
Operater Opis 7 L-> R <<
>> Bitni premik levo
Bitni premik desno && Logično AND: vrne true, če sta oba pogoja true, sicer vrne false. || Logično ALI: vrne true, če je eden od pogojev resničen. Vrne false, če sta oba pogoja false. ! Logično NOT: zanika stanje.
C ++ uporablja metodo kratkega stika za ovrednotenje logičnih izrazov. V tem mora C ++ ovrednotiti samo prvi izraz / operand logičnega izraza, da zagotovi rezultat. Na primer, za logični operator AND (&&) C ++ izračuna samo prvi izraz. Če je napačno, bo rezultat napačen, tudi če je drugi pogoj resničen.
Podobno za logično OR (||) izračuna samo prvi izraz. Če je prvi izraz resničen, bo rezultat resničen, zato drugega izraza ni treba oceniti.
Spodaj je primer, ki prikazuje uporabo logičnih operatorjev.
#include #include using namespace std; int main() int a=10, b=8,c=12,d=14; if(!(a==0)) cout<<'a is not zero'< Izhod:
a ni nič
Logično IN je res
Logično ALI je res
V zgornjem programu smo uporabili vse tri logične operatorje, da smo ocenili izraze in natisnili rezultate.
Relacijski operaterji
Za primerjavo dveh operandov se uporabljajo relacijski ali primerjalni operatorji. Rezultat ocene je resničen ali napačen.
C ++ podpira naslednje relacijske operaterje:
Operater Opis ! NAPAKA! nepričakovani operator '=' Oceni, ali sta dva operanda enaka. Vrne true, če enak sicer vrne false. ! = (ni enako) Dopolnjuje operator 'enako'. Vrne true, če operandi niso enaki. Lažno sicer. <(less than) Vrne true, če je prvi operand manjši od drugega. Lažno sicer. <=(less than equal to) Vrne true, če je prvi operand manjši ali enak drugemu operandu. Lažno sicer. > (večje od) Vrne true, če je prvi operand večji od drugega. Lažno sicer. > = (večje kot enako) Vrne true, če je prvi operand večji od enakega drugega. Lažno sicer.
Glejte spodnji Primer programa za razumevanje relacijskih operaterjev.
#include #include using namespace std; int main() { int a=10, b=8,c=12,d=14; if(a==b) cout<<'a is equal to b'< Izhod:
a ni enako b
c ni enako d
(a + b) manj kot / enako (c + d)
(a-b) večje od / enako (d-c)
V zgornjem programu vidimo uporabo relacijskih operatorjev in način ocenjevanja podanih izrazov.
Upoštevajte, da lahko v pogojne stavke vnesemo ne le vrednosti, temveč tudi spremenljivke in izraze.
Bitni operaterji
Bitni operaterji v C ++ delujejo na bitih predvidenih operandov. Bitni operatorji se uporabljajo samo za integralne tipe, kot so celo število, znak itd., Ne pa tudi za podatkovne tipe, kot so float, double itd.
Sledijo bitni operatorji, ki jih podpira C ++:
Operaterji Opis & (Binarno IN) Izvaja operacijo AND na bitih operanda 1 in operanda 2. | (Binarno ALI) Izvede operacijo ALI na bitih operanda 1 in operanda 2. ^ (Binarni XOR) Izvede operacijo XOR na bitih operanda 1 in operanda 2. ~ (Dopolnilo binarnega) Vzame en operand in obrne njegove bite. <<( Binary left shift operator) Bitove prvega operanda premakne v levo na število bitov, ki jih določi drugi operand. >> (binarni operater desne izmene) Bitove prvega operanda premakne v desno na številna mesta, ki jih določi drugi operand.
Ti bitni operatorji delujejo na operande na bit-bit način. Tabele resnic za operacije AND, OR in XOR so podane spodaj.
Štejte a in b kot dva bita, na katerih je treba izvesti operacije AND, OR in XOR.
Tabele resnic za iste so navedene spodaj:
do b a & b a | b a ^ b 0 0 0 0 0 1. 0 0 1. 1. 0 1. 0 1. 1. 1. 1. 1. 1. 0
Vzemimo primer za razumevanje bitnih operacij.
Naj bo a = 8 in b = 4
Binarna predstavitev a in b je naslednja:
a = 8 1000
a = 4 0100
a & b 0000 = 0
a | b 1100 = 12
a ^ b 1100 = 12
V zgornjem primeru vidimo, da je bitni AND od 8 in 4 enak 0. Bitni OR od 8 in 4 je 12, bitni XOR od 8 in 4 pa je tudi 12.
Na ta način bitne operaterje izvajajo bitne operacije.
Primer demonstracije bitnih operaterjev.
#include #include using namespace std; int main() int a=8,b=4,c; c = a&b; cout<<'Result of & : '< Izhod:
Rezultat &: 0
Rezultat | : 12
Rezultat ^: 12
Rezultat<< by 2 bits: 32
Rezultat >> z 2 bitoma: 1
Rezultat ~: -4
V zgornjem programu smo prikazali uporabo bitnih operatorjev in natisnili tudi rezultate vsake operacije.
Operatorji dodelitve
Operator dodelitve “=” se uporablja za dodelitev vrednosti spremenljivki. LHS operaterja dodelitve je spremenljivka, RHS pa vrednost, ki jo je treba dodeliti spremenljivki. Vrednost na desni strani mora biti iste vrste kot vrednost spremenljivke na levi strani.
Upoštevajte razliko med operatorjema '=' in '=='. Prvi je operater dodelitve, kasneje pa operater enakosti.
Postopek dodelitve poteka od desne proti levi. Poleg operaterja dodelitve ‘=’ obstajajo tudi druge različice operaterja dodelitve, ki so znane kot ‘sestavljeni operaterji dodelitve’. Ti operaterji poleg dodelitve izvedejo še operacijo.
Spodnja tabela nam daje opis teh operaterjev dodelitve.
Operater Opis = Vrednost operanda RHS dodeli operandu LHS + = Doda operand RHS operandu LHS in dodeli rezultat v operandu LHS. - = Odšteje operand RHS operandu LHS in rezultat dodeli operandu LHS * = pomnoži operand RHS na operand LHS in rezultat dodeli operandu LHS / = deli operand RHS na operand LHS in rezultat dodeli operandu LHS
Kot je prikazano v zgornji tabeli, če sta x in y operanda, je x + = y enakovredno x = x + y.
Podobno,
x - = y je enakovredno x = x-y.
x * = y je enakovredno x = x * y.
x / = y je enakovredno x = x / y.
Spodnji primer programiranja prikazuje te operaterje dodelitve.
#include #include using namespace std; int main() { int x,y; cout<>y; x = y; cout<<'
Value of x = '< Izhod:
Vnesite vhodno spremenljivko y: 4
Vrednost x = 4
a + = b: 8
c - = b: 3
a * = b: 40
b / = c: 1

V zgornjem primeru smo prikazali dodelitve in sestavljene operaterje dodelitve.
Opomba: Lahko kombiniramo tudi druge binarne operatorje, kot je%,<>, &, |, ^ itd. v sestavljene stavke dodelitve poleg že prikazanih.
privzeti prehod ni na voljo ethernet
Drugi operaterji
Do zdaj smo raziskali vse glavne operaterje v C ++. Obstaja še nekaj dodatnih operaterjev C ++, ki potrebujejo našo pozornost.
Ti operaterji vključujejo:
(i) velikost operaterja
sizeof je unarni operator, ki se pogosto uporablja v C in C ++. Sizeof vrne velikost svojega operanda. Vrnjena vrednost je ponavadi nepodpisani integralni tip, označen z 'size_t'.
Operator Sizeof ima veliko uporab v jezikih C in C ++. Z njim lahko ugotovimo velikost spremenljivk, nizov ali izrazov in celo dodeljemo bloke pomnilnika.
(ii) Pogojni ternarni operater
Pogojni operator v jeziku C ++ lahko uporabimo kot zamenjavo za stavek if-else.
Splošna sintaksa pogojnega operatorja je:
Stanje? izraz1: izraz2;
Če je pogoj resničen, bo ovrednoten izraz 1. Če je pogoj napačen, bo ovrednoten izraz2.
Upoštevajte, da morata biti izraz1 in izraz2 enaka podatkovna tipa, da se izognete morebitnim napakam.
Predlagano branje => Ternarni operater v C #
(iii) operater vejice
Operator vejice, ki je predstavljen kot žeton „,“, se lahko uporablja kot operator in ločilo.
Kot operator se vejica uporablja, kadar je treba oceniti več izrazov. LHS je dodeljen samo najbolj desni izraz.
Na primer,upoštevajte naslednji izraz.
x = (y = 4, y + 1);
V tem izrazu imamo na desni strani dva izraza, ločena z vejico. Tu vejica deluje kot operater. Najprej bo ovrednoten izraz y = 4. Nato bo naslednji izraz y + 1 ovrednoten z uporabo rezultata prvega izraza, tj. Y = 4. Tako bo vrednost y + 1 5 in ta vrednost bo dodeljena x.
Kot ločilo lahko vejico uporabljate kjer koli za ločevanje definicij, seznama parametrov itd.
(iv) operater za dostop do članov
Obstajata dva operaterja, ki se uporabljata za dostop do posameznih članov razredov, struktur ali sindikatov v jeziku C ++. To sta operator pik (.) In puščica (->). Podrobno se bomo teh operaterjev naučili, ko se bomo učili objektno usmerjenega programiranja v jeziku C ++.
Spodnji primer prikazuje uporabo velikosti, vejice in pogojnega operaterja.
#include #include using namespace std; int main() { int x,y; x = (y=3,y+4); cout<<'Value of x = '< Izhod:
Vrednost x = 7
Spremenljivka x je večja od 5
velikost (x): 4 velikost (y): 4
Posnetek zaslona za isto je spodaj.

Kot je prikazano v zgornjem programu, imamo najprej dve spremenljivki, ki sta deklarirani in ločeni z vejico. (vejica kot ločilo). Nato imamo operator vejice z dvema izrazoma. Kot lahko vidimo iz izhoda, je vrednost skrajno desnega izraza dodeljena spremenljivki x. Nato predstavimo pogojni operator, da ocenimo, če je x manjši od 5.
Na koncu predstavimo uporabo velikosti operaterja. Tu uporabimo operator sizeof, da dobimo velikost spremenljivk x in y. Ker sta obe celoštevilčni spremenljivki, je vrnjena velikost 4 bajtov.
(v) Prednost operaterja in asociativnost
osnovna vprašanja za HTML in CSS
Videli smo že skoraj vse operaterje C ++ in vemo, da jih je mogoče uporabiti v izrazih za izvajanje določenih operacij. Toda izrazi, ki smo jih videli v primerih, so preprosti in enostavni. Glede na naše zahteve pa izrazi postajajo vedno bolj zapleteni.
Takšni zapleteni izrazi bodo imeli več operaterjev in veliko operandov. V takšni situaciji moramo oceniti, katerega operaterja je treba najprej oceniti.
Na primer, upoštevajte naslednji izraz.
x = 4 + 5/3;
Tu imamo operatorja + in / in odločiti se moramo, kateri izraz bo najprej ovrednoten. V matematičnem smislu vemo, da bo delitev izvedena pred seštevanjem. Tako bo izraz postal x = 4 + (5/3) = 5.
Toda ko se prevajalnik sooča s takšno situacijo, moramo imeti podoben mehanizem tudi za določanje vrstnega reda operacij, da lahko pravilno ovrednoti izraz.
Ta vrstni red, v katerem se ocenjujejo operatorji v sestavljenem izrazu, se imenuje 'prednost' operatorja. C ++ ima definirano prednost za vse operaterje in operaterji z višjo prednostjo se najprej ocenijo.
Kaj se zgodi, če imamo v izrazu z enako prednostjo dva operaterja drug ob drugem? Tu nastopi asociativnost operaterja.
Asociativnost prevajalniku pove, ali naj izračuna izraz v zaporedju od leve proti desni ali zaporedju od desne proti levi. Tako lahko z uporabo prednosti in asociativnosti operaterja učinkovito ovrednotimo izraz in dobimo želeni rezultat.
C ++ ponuja tabelo, ki vsebuje prednost in povezanost različnih operaterjev, ki jih uporablja.
Ta tabela je navedena spodaj.
Prednost / asociativnost Operater Opis 1 Brez ::
:: Operator ločljivosti obsega
(unary)
(binarno) 2 L-> R ()
()
()
{}
vrsta ()
vnesite {}
()
.
->
++
––
tipičen
const_cast
dinamični_kanal
reinterpret_cast
static_cast Oklepaji
Klic funkcije
Inicializacija
Enotna inicializacija (C ++ 11)
Funkcionalna zasedba
Funkcionalna zasedba (C ++ 11)
Podpisnik matrike
Dostop člana iz predmeta
Dostop člana iz predmeta ptr
Povečanje
Po zmanjšanju
Informacije o vrsti izvajanja
Odvrzi const
Zasedba, preverjena med izvajanjem
Predvajanje ene vrste na drugo Zasedba, preverjena s tipom prevajanja 3 R-> L +
-
++
––
!
~
(vrsta)
velikost
&
*
novo
novo ()
izbriši
izbriši () Unary več
Unarni minus
Predhodno povečanje
Predhodno zmanjšanje
Logično NE
Bitno NE
Igralska zasedba v slogu C
Velikost v bajtih
Naslov
Dereference
Dinamično dodeljevanje pomnilnika
Dinamično dodeljevanje matrike
Dinamično brisanje pomnilnika
Izbris dinamičnega polja 4 L-> R -> *
. * Izbirnik kazalca člana
Izbirnik predmetov člana 5 L-> R *
/
% Množenje
Divizija
Modul 6 L-> R +
- Dodatek
Odštevanje 8 L-> R <
<=
>
> = Primerjava manj kot
Primerjava manjša ali enaka
Primerjava večja od
Primerjava večja ali enaka 9 L-> R ! NAPAKA! nezakonit znak '!' Enakost
Neenakost 10 L-> R & Bitovno AND 11 L-> R ^ Bitno XOR 12 L-> R | Bitovno ALI 13 L-> R && Logično IN 14 L-> R || Logično ALI 15 R-> L ?:
=
* =
/ =
% =
+ =
- =
<<=
>> =
& =
| =
^ = Pogojno (glej opombo spodaj)
Dodelitev
Naloga množenja
Naloga divizije
Dodelitev modula
Dodelitev
Dodelitev odštevanja
Bitni premik leve dodelitve
Dodelitev v bitni smeri desno
Bitna in dodelitev
Bitna ali dodelitev
Bitna dodelitev XOR 16 R-> L vrgel Vrzi izraz 17 L-> R , Operater vejice
Opombe:
- Stopnja prednosti 1 je najvišja stopnja prednosti, stopnja 17 pa najnižja. Najprej se ocenijo operaterji z višjo stopnjo prednosti.
- L-> R pomeni asociativnost od leve proti desni.
- R-> L pomeni asociativnost od desne proti levi.
Zaključek
To je vse o operaterjih v C ++.
Govorili smo o skoraj vseh operaterjih. Nekateri specifični operaterji, ki so prisotni v zgornji tabeli prednosti, o katerih nismo razpravljali, bodo obravnavani v skladu s temami, ki jih obravnavamo v naših prihajajočih vajah.
=> Glejte tukaj, če želite raziskati celoten seznam vadnic za C ++
Priporočeno branje
- Primeri aritmetičnih in logičnih operaterjev skripte lupine Unix
- Python operaterji
- Novi / izbriši operaterje v C ++ z primeri
- Vrste podatkov Python
- Pogojne izjave Unixa: če je to še drugače, in relacijski operaterji
- Vadnica Python DateTime s primeri
- Vadnica za vbrizgavanje HTML: Vrste in preprečevanje s primeri
- Izreži ukaz v Unixu s primeri