c operators types
En komplett studie av operatører i C ++ med eksempler:
I dette Intensiv C ++ treningsserie, Vi lærte om de forskjellige konseptene i C ++ som variabler, lagringsklasser, typekvalifiseringer osv. i våre tidligere opplæringsprogrammer. Vi fikk også vite hvordan vi kan endre disse variablene.
For å gjøre disse modifikasjonene, må vi utføre operasjoner på disse variablene og konstantene, og for å utføre disse operasjonene bruker vi operatører.
Operatører er symboler som virker på variabler eller andre enheter som kalles operander og utfører matematiske eller logiske operasjoner for å endre verdiene og produsere resultater deretter.
Hva du vil lære:
Operatører i C ++
Operatører danner det grunnleggende grunnlaget for ethvert programmeringsspråk. Uten operatører kan vi ikke endre eller manipulere enhetene til programmeringsspråk og dermed ikke gi de ønskede resultatene. C ++ er veldig rik på innebygde operatører som vi vil diskutere i detalj i denne opplæringen.
I C ++ er de fleste operatører binære operatører, dvs. disse operatørene krever to operander for å utføre en operasjon. Få operatører som ++ (inkrement) operatør er den unare operatøren, noe som betyr at de bare opererer på en operand.
Det er også en ternær operatør i C ++ kalt Conditional Operator som tar tre operander. Vi vil lære om dette i detalj i den senere delen av opplæringen.
Typer operatører i C ++
Operatører i C ++ er klassifisert som vist nedenfor:
La oss utforske hver type C ++ -operatør i detalj !!
Aritmetiske operatører
Aritmetiske operatorer brukes til å utføre grunnleggende matematiske operasjoner på operander.
C ++ støtter følgende aritmetiske operasjoner:
Operatør | Binær / unary | Beskrivelse |
---|---|---|
- | Unary | Reduseringsoperatør - reduserer verdien av operand med 1 |
+ | Binær | Tillegg av to operander |
- | Binær | Subtraksjon av to operander |
* | Binær | Multiplikasjon av to operander |
/ | Binær | Inndeling av to operander |
% | Binær | Modulusoperatør - resultatet er resten av divisjonen |
++ | Unary | Inkrement operator - øker verdien av operand med 1 |
Eksemplet nedenfor demonstrerer de fem første aritmetiske operatorene i C ++
#include #include using namespace std; int main() { int op1=3,op2=4; float op3=10.1,op4=5.4; cout<<'Operands are op1 = '< Vi kan forstå dette bedre ved hjelp av følgende eksempel. #include #include using namespace std; int main() { int x=4,y; y = ++x; cout<<'PreIncrement:Value of x = '<Logiske operatører Logiske operatorer brukes til å evaluere en kombinasjon av forhold / begrensninger for å få en resulterende verdi. Resultatet av evalueringen av et boolsk uttrykk er boolsk som enten er sant eller usant.
C ++ støtter følgende logiske operatører:
Operatør Beskrivelse 7 L-> R <<
>> Bitvis skift til venstre
Bitvis skift til høyre && Logisk OG: returnerer sant hvis begge forholdene er sanne, ellers returnerer de falske. || Logisk ELLER: returnerer sant hvis en av betingelsene er oppfylt. Returnerer falsk når begge forholdene er falske. ! Logisk IKKE: opphever tilstanden.
C ++ benytter en kortslutningsmetode for å evaluere logiske uttrykk. I dette må C ++ bare evaluere det første uttrykket / operanden til det logiske uttrykket for å gi resultatet. For eksempel, for logisk AND (&&) operatør, C ++ evaluerer bare det første uttrykket. Hvis det er usant, vil resultatet være usant, selv om den andre tilstanden er oppfylt.
På samme måte, for logisk OR (||), evaluerer den bare det første uttrykket. Hvis det første uttrykket er sant, vil resultatet være sant, slik at det ikke trenger å evaluere det andre uttrykket.
Nedenfor er et eksempel som viser bruken av logiske operatører.
#include #include using namespace std; int main() int a=10, b=8,c=12,d=14; if(!(a==0)) cout<<'a is not zero'< Produksjon:
a er ikke null
Logisk OG er sant
Logisk ELLER er sant
I programmet ovenfor har vi brukt alle de tre logiske operatørene for å evaluere uttrykk og skrive ut resultatene.
Relasjonsoperatører
Relasjons- eller sammenligningsoperatorer brukes til å sammenligne to operander. Resultatet av evalueringen er enten sant eller usant.
C ++ støtter følgende relasjonsoperatører:
Operatør Beskrivelse !FEIL! uventet operatør '=' Evaluerer om to operander er like. Returnerer true hvis like ellers returnerer false. ! = (ikke lik) Utfyller “lik” operatør. Returnerer sant hvis operander ikke er like. Falsk ellers. <(less than) Returnerer sant hvis den første operanden er mindre enn andre. Falsk ellers. <=(less than equal to) Returnerer sant hvis den første operanden er mindre enn eller lik den andre operanden. Falsk ellers. > (større enn) Returnerer sant hvis den første operanden er større enn andre. Falsk ellers. > = (større enn lik) Returnerer sant hvis den første operanden er større enn lik den andre. Falsk ellers.
Se eksemplet nedenfor for å forstå relasjonsoperatørene.
#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'< Produksjon:
a er ikke lik b
c er ikke lik d
(a + b) mindre enn / lik (c + d)
(a-b) større enn / lik (d-c)
I programmet ovenfor ser vi bruken av relasjonsoperatører og måten de vurderer uttrykkene som er gitt.
Vær oppmerksom på at vi ikke bare kan gi verdier, men også variabler og uttrykk i betingede utsagn.
Bitvise operatører
Bitvise operatører i C ++ opererer på bits av operandene som tilbys. Bitvise operatører brukes bare på integrerte typer som heltall, tegn osv., Og ikke på datatyper som float, double, etc.
Følgende er de bitvise operatørene som støttes av C ++:
Operatører Beskrivelse & (Binær OG) Utfører OG-operasjon på biter av operand 1 og operand 2. | (Binær ELLER) Utfører ELLER-operasjon på biter av operand 1 og operand 2. ^ (Binær XOR) Utfører XOR-operasjon på biter av operand 1 og operand 2. ~ (Binær komplement) Tar en operand og inverterer bitene. <<( Binary left shift operator) Flytter biter av den første operanden til venstre til et antall biter som er spesifisert av den andre operanden. >> (Binær høyre skiftoperatør) Flytter biter av den første operanden til høyre til et antall steder spesifisert av den andre operanden.
Disse bitvise operatørene opererer på operander på bit-for-bit måte. Sannhetstabellene for AND, OR og XOR-operasjoner er gitt nedenfor.
Betrakt a og b som to biter der AND, OR og XOR-operasjoner skal utføres.
Sannhetstabellene for det samme er som gitt nedenfor:
til 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
La oss ta et eksempel for å forstå bitvise operasjoner.
La a = 8 og b = 4
Den binære representasjonen av a og b er som følger:
a = 8 1000
a = 4 0100
a & b 0000 = 0
a | b 1100 = 12
a ^ b 1100 = 12
I eksemplet ovenfor ser vi at bitvise AND av 8 og 4 er 0. Bitvis ELLER av 8 og 4 er 12 og bitvis XOR av 8 og 4 er også 12.
Dette er måten bitvis operasjoner utføres av bitvis operatører.
Et eksempel som demonstrerer bitvise operatører.
#include #include using namespace std; int main() int a=8,b=4,c; c = a&b; cout<<'Result of & : '< Produksjon:
Resultat av &: 0
Resultat av | : 12
Resultat av ^: 12
Resultatet av<< by 2 bits: 32
Resultat av >> med 2 bits: 1
Resultat av ~: -4
I programmet ovenfor demonstrerte vi bruken av bitvise operatører og skrev også ut utdataene for hver av operasjonene.
Oppdragsoperatører
Oppdragsoperatør “=” brukes til å tilordne en verdi til en variabel. Oppdragsoperatørens LHS er en variabel og RHS er verdien som skal tilordnes variabelen. Verdien på høyre side må være av samme type som verdien til variabelen på venstre side.
Legg merke til forskjellen mellom '=' og '==' operatører. Førstnevnte er oppdragsoperatør og senere er likhetsoperatør.
Oppdragsoperasjon foregår fra høyre til venstre. Bortsett fra oppdragsoperatøren ‘=’, er det andre variasjoner av oppdragsoperatøren som er kjent som ‘sammensatte oppdragsoperatører”. Disse operatørene utfører en operasjon i tillegg til oppdraget.
Tabellen nedenfor gir oss en beskrivelse av disse oppdragsoperatørene.
Operatør Beskrivelse = Tilordner verdien av RHS operand til LHS operand + = Legger til RHS-operand til LHS-operand og tildeler resultatet i LHS-operand. - = Trekker RHS-operand til LHS-operand og tildeler resultatet til LHS-operand * = multipliserer RHS-operand til LHS-operand og tildeler resultatet til LHS-operand / = deler RHS operand til LHS operand og tildeler resultatet til LHS operand
Som vist i tabellen ovenfor, Hvis x og y er operander, tilsvarer x + = y x = x + y.
På samme måte,
x - = y tilsvarer x = x-y.
x * = y tilsvarer x = x * y.
x / = y tilsvarer x = x / y.
Programmeringseksemplet nedenfor viser disse oppdragsoperatørene.
#include #include using namespace std; int main() { int x,y; cout<>y; x = y; cout<<'
Value of x = '< Produksjon:
Skriv inn inngangsvariabel y: 4
Verdien av x = 4
a + = b: 8
c - = b: 3
a * = b: 40
b / = c: 1

I eksemplet ovenfor har vi demonstrert tildeling så vel som sammensatte oppdragsoperatører.
Merk: Vi kan også kombinere de andre binære operatørene som%,<>, &, |, ^, etc. i sammensatte oppgaveuttalelser i tillegg til de som allerede er demonstrert.
Andre operatører
Så langt har vi utforsket alle de store operatørene i C ++. Det er noen flere C ++ -operatører som trenger vår oppmerksomhet.
Disse operatørene inkluderer:
databaseutviklerintervju spørsmål og svar pdf
(i) operatørens størrelse
sizeof er en unary operator som brukes mye i C og C ++. Sizeof returnerer størrelsen på operanden. Returverdien er vanligvis en usignert integraltype betegnet med ‘size_t’.
Sizeof-operatøren har mange bruksområder i C- og C ++ -språk. Den kan brukes til å finne ut størrelsen på variablene, matriser eller uttrykk, og til og med til å tildele minneblokkene.
(ii) Betinget ternær operatør
Den betingede operatøren i C ++ kan brukes som erstatning for if-else-setningen.
Den generelle syntaksen for den betingede operatøren er:
Betingelse? uttrykk1: uttrykk2;
Hvis tilstanden er oppfylt, vil uttrykk 1 bli evaluert. Hvis tilstanden er falsk, vil uttrykk2 bli evaluert.
Vær oppmerksom på at uttrykk1 og uttrykk2 må være av samme datatype for å unngå potensielle feil.
Foreslått lese => Ternær operatør i C #
(iii) Kommaoperatør
Kommaoperatør som er representert som et token ‘,’ kan brukes som en operator så vel som en separator.
Som operatør brukes et komma når det er mer enn ett uttrykk som skal evalueres. Bare uttrykket til høyre er tilordnet LHS.
For eksempel,vurder følgende uttrykk.
x = (y = 4, y + 1);
I dette uttrykket har vi to uttrykk på høyre side atskilt med komma. Her fungerer komma som operatør. Først vil uttrykket, y = 4 bli evaluert. Deretter vil neste uttrykk y + 1 bli evaluert ved å bruke resultatet av det første uttrykket, dvs. y = 4. Dermed vil verdien av y + 1 være 5 og denne verdien vil bli tildelt x.
Som skilletegn kan et komma brukes hvor som helst for å skille definisjoner, parameterliste osv.
(iv) Medlemstilgangsoperatør
Det er to operatører som brukes til å få tilgang til de enkelte medlemmene i klasser, strukturer eller fagforeninger i C ++. Dette er prikkoperatøren (.) Og pilen (->). Vi vil lære disse operatørene i detalj når vi lærer objektorientert programmering i C ++.
Eksemplet nedenfor viser bruken av størrelse på, komma og betinget operatør.
#include #include using namespace std; int main() { int x,y; x = (y=3,y+4); cout<<'Value of x = '< Produksjon:
Verdien av x = 7
Variabel x er større enn 5
sizeof (x): 4 sizeof (y): 4
Skjermbildet for det samme er gitt nedenfor.

Som vist i programmet ovenfor har vi først to variabler deklarert og atskilt med komma. (komma som skilletegn). Deretter har vi en kommaoperatør med to uttrykk. Som vi kan se fra utdataene, tildeles verdien til høyre uttrykk til variabelen x. Deretter demonstrerer vi den betingede operatøren for å evaluere om x er mindre enn 5.
Til slutt demonstrerer vi bruken av størrelsen på operatøren. Her bruker vi størrelsen på operatoren for å få størrelsen på variablene x og y. Siden begge er heltallvariabler, er den returnerte størrelsen 4 byte.
(v) Operatørens prioritet og tilknytning
Vi har allerede sett nesten alle C ++ -operatørene, og vi vet at de kan brukes i uttrykk for å utføre spesifikke operasjoner. Men uttrykkene vi har sett i eksempler er enkle og greie. Avhengig av våre krav, blir uttrykk imidlertid mer og mer komplekse.
Slike komplekse uttrykk vil ha mer enn én operatør og mange operander. I en slik situasjon må vi først evaluere hvilken operatør som skal evalueres.
For eksempel, vurder følgende uttrykk.
x = 4 + 5/3;
Her har vi + og / operatorer, og vi må bestemme hvilket uttrykk som skal vurderes først. I matematiske termer vet vi at deling vil bli utført før tillegg. Dermed blir uttrykket x = 4 + (5/3) = 5.
Men når kompilatoren står overfor en slik situasjon, må vi også ha en lignende mekanisme for å bestemme rekkefølgen for operasjonene, slik at den kan evaluere uttrykket riktig.
Denne rekkefølgen som operatørene i et sammensatt uttrykk blir evaluert, kalles operatørens 'forrang'. C ++ har definert forrang for alle operatørene, og operatørene med høyere prioritet vurderes først.
Hva skjer når vi har to operatører side om side i et uttrykk med samme forrang? Dette er hvor assosiativiteten til en operatør kommer inn i bildet.
Assosiativitet forteller kompilatoren om det skal vurderes et uttrykk i venstre til høyre sekvens eller høyre til venstre sekvens. Dermed kan en operatørs forrang og assosiativitet effektivt evaluere et uttrykk og få ønsket resultat.
C ++ gir en tabell som består av forrang og tilknytning til forskjellige operatører den bruker.
Denne tabellen er gitt nedenfor.
Forrang / tilknytning Operatør Beskrivelse 1 Ingen ::
:: Omfangsoppløsningsoperatør
(unary)
(binær) 2 L-> R ()
()
()
{}
type()
type{}
()
.
->
++
––
typeid
const_cast
dynamic_cast
tolke på nytt
statisk_kast Parenteser
Funksjonsanrop
Initialisering
Ensartet initialisering (C ++ 11)
Funksjonell rollebesetning
Funksjonell rollebesetning (C ++ 11)
Array abonnement
Medlemstilgang fra objektet
Medlemstilgang fra objekt ptr
Etter inkrement
Etter dekrement
Informasjon om kjøretidstype
Kast bort konst
Kjøretids typekontrollert rollebesetning
Cast en type til en annenCompile-time typekontrollert rollebesetning 3 R-> L. +
-
++
––
!
~
(type)
størrelsen av
&
*
ny
ny()
slett
slett () Unary mer
Unary minus
Forhøying
Pre-dekrement
Logisk IKKE
Bitvis IKKE
C-stil rollebesetning
Størrelse i byte
Adresse til
Forstyrrelse
Dynamisk minnetildeling
Dynamisk arrayallokering
Sletting av dynamisk minne
Sletting av dynamisk matrise 4 L-> R -> *
. * Pekervelger for medlem
Medlemsobjektvelger 5 L-> R *
/
% Multiplikasjon
Inndeling
Modulus 6 L-> R +
- Addisjon
Subtraksjon 8 L-> R <
<=
>
> = Sammenligning mindre enn
Sammenligning mindre enn eller lik
Sammenligning større enn
Sammenligning større enn eller lik 9 L-> R !FEIL! ulovlig karakter '!' Likestilling
Ulikhet 10 L-> R & Bitvis OG 11 L-> R ^ Bitvis XOR 12 L-> R | Bitvis ELLER 13 L-> R && Logisk OG 14 L-> R || Logisk ELLER 15 R-> L. ?:
=
* =
/ =
% =
+ =
- =
<<=
>> =
& =
| =
^ = Betinget (se merknad nedenfor)
Oppdrag
Multiplikasjonsoppgave
Divisjonsoppgave
Modulusoppgave
Tilleggsoppgave
Subtraksjonsoppgave
Bitvis skift til venstre oppgave
Bitvis skift høyre oppgave
Bitvis OG oppgave
Bitvis ELLER oppgave
Bitvis XOR-oppgave 16 R-> L. kaste Kast uttrykk 17 L-> R , Kommaoperatør
Merknader:
- Prioritetsnivå 1 er det høyeste prioritetsnivået, og nivå 17 er det laveste. Operatører med høyere prioritetsnivå blir først evaluert.
- L-> R betyr venstre til høyre assosiativitet.
- R-> L betyr assosiativitet fra høyre til venstre.
Konklusjon
Dette handler om operatørene i C ++.
Vi har diskutert nesten alle operatørene. Noen spesifikke operatører som er tilstede i ovennevnte prioritetstabell som vi ikke har diskutert, vil bli diskutert i henhold til emnene vi dekker i våre kommende veiledninger.
=> Se her for å utforske hele C ++ opplæringslisten
Anbefalt lesing
- Unix Shell Script Aritmetic og Boolean Operators Eksempler
- Python-operatører
- Ny / slett operatører i C ++ med eksempler
- Python datatyper
- Unix betingede uttalelser: hvis så andre og relasjonelle operatører
- Python DateTime Tutorial med eksempler
- HTML Injection Tutorial: Typer og forebygging med eksempler
- Klipp kommandoen i Unix med eksempler