Operatørpresedence i C

Operatørpresedence i C

Når vi evaluerer ethvert uttrykk som involverer bruk av forskjellige operatører i IT, er vi forpliktet til å løse uttrykket for å beregne dets verdier basert på operatørens forrang. Presedence er betegnelsen for å tildele en prioritering eller vekt til en viss verdi/termin, så operatøren Precedence tildeler operatørene prioritert i et uttrykk. For å forstå dette, antar du noe uttrykk, e.g., 8*3+2, og svaret på dette uttrykket kan resultere i to forskjellige verdier, henholdsvis “26” og “40”. Imidlertid vil vi velge resultatet av uttrykket som "26", siden multiplikasjonen "*" -operatøren har mer operatørpresedence sammenlignet med tilleggsoperatøren "+", og uttrykket vil først beregne multiplikasjonen mellom 8 og 3 og Resultatet blir deretter lagt til med 2. Mange operatører i programmeringsspråket C har mer prioritet fremfor de andre operatørene.

Fremgangsmåte

Operatørpresedence er et viktig konsept i numeriske metoder for å løse et uttrykk. Vi trenger denne forrang for å løse uttrykket. Hvis vi ikke følger noen regel, vet vi ikke hvilken operatør som skal løses først, og vi kan få et annet svar hver gang. For å unngå denne forvirringen, har vi standardisert prioritet til operatører som forteller hvilken operatør vi må evaluere først i et hvilket som helst uttrykk. Vi vil løse forskjellige eksempler med forskjellige operatører i denne artikkelen.

Eksempel 01

I eksemplet vil vi utføre et program i Compiler Visual Studio C som vil beregne det numeriske uttrykket som involverer visse numeriske operatører. Hvis vi tar et eksempeluttrykk som:

6*5-4+2

Uten operatøren har vi to måter å løse dette uttrykket. En måte er å løse dette uttrykket ved å evaluere operatørene fra venstre til høyre. Hvis vi gjør det, vil vi få svaret “28”. En annen måte å løse uttrykket er hvis vi begynner å evaluere operatørene fra høyre til venstre, vil vi beregne svaret for dette uttrykket som "26". Svarene vi har er forskjellige fra hverandre, og de er også mistenkelige. Hvordan vil vi velge hvilket svar som er riktig hvis disse svarene ikke er feil? La oss løse dette eksemplet i C -kompilatoren ved å utvikle et program for denne operasjonen. Visual Studio C har standard operatørprioritet for slike uttrykk.

For å implementere dette, må vi lage et prosjekt og deretter erklære hovedfunksjonen som "Main ()" med returtypen "Heltall". I hovedfunksjonen, initialiser et heltall med et variabelt navn “A” og tilordne det forrige numeriske uttrykket til det. Vis deretter resultatet for dette uttrykket i variabelen ved å kalle printf () -metoden, som vil ta formatspesifikasjonen for heltallvariabelen “A” som “%i” og også navnet på variabelen “A” i sine argumenter. Her er det korteste programmet du kan utføre:

#inkludere
int main ()

int a = 6 * 5 - 4 + 2;
printf ("%i", a);
retur 0;

Utgangen fra uttrykket “A” vil deretter bli beregnet av dette programmet som “28”.

Eksempel 02

For å vite mer om operatørens forrang, vil vi løse et eksempel for uttrykket som involverer aritmetiske operatører og braketoperatørene og lære hvordan C -programmeringsspråket gir forrang for flere typer operatører. Uttrykket vi skal fungere i dette eksemplet er som følger:

((3*8) +2) -2

Uttrykket involverer de to parentesoperatørene og den aritmetiske operatøren “+”. For å sjekke ut hvordan kompilatoren for C vil løse dette uttrykket, opprette et nytt prosjekt og erklære en funksjon som heter “Main” med heltall “int” som returtype. I denne funksjonen, initialiser en variabel “x” med et heltall med datatype. Til denne variabelen, tilordne det numeriske uttrykket, e.g., “Int x = ((3*8) +2) -2”, og vis variabelen i utgangen.

#inkludere
int main ()

int x = ((3 * 8) + 2) - 2;
printf ("%i", x);
retur 0;

Utgangen for variabelen “X” som er erklært i forrige eksempel, ville være den numeriske verdien “24”. Vi har denne utgangen siden C -programmeringsspråket går foran parentesoperatøren sammenlignet med den aritmetiske operatøren “+”. Så den første operatøren som ble evaluert i uttrykket var parentesoperatøren, som involverte multiplikasjonen av de to verdiene, 3 og 8, som ga verdien 24. Deretter løste kompilatoren igjen den andre parentesoperatøren, som tilførte den resulterende verdien fra den første parentesen med numerisk verdi 2. Svaret på den andre parentesen er “26”. Så kom svingen for subtraksjonen og “2” ble trukket fra 26, noe som resulterte i svarets svar som 24.

Eksempel 03

For det tredje eksemplet vil vi løse et uttrykk som involverer operatørene som enten er samme eller har samme forrang. For et slikt tilfelle, la oss implementere et eksempel der vi vil erklære de tre variablene X, Y og Z, som alle har samme datatype som et heltall med de initialiserte verdiene som 30, 20 og 10. Vi ønsker å sammenligne alle tre verdiene som x> y> z. Hvis tilstanden (x> y> z) blir sann, vil utgangen skrive ut "riktig". Ellers "falsk". Dette eksemplet implementeres følgende måte:

#inkludere
int main ()

int x = 30;
int y = 20;
int z = 10;
if (x> y> z)
printf ("riktig");
ellers
printf ("falsk");
retur 0;

Fra forrige kode kan vi se at uttrykket bare har komparatoroperatører i den. I C -programmet, når samme type operatør eksisterer i uttrykket, beregner vi ganske enkelt uttrykket ved å evaluere operatøren fra venstre til høyre. Det er grunnen til at utgangen har vist "riktig" for uttrykket. Hvis vi går fra venstre til høyre og sammenligner (x> y)> z, vil dette være en riktig uttalelse for verdiene x = 30, y = 20 =, og z = 10.

Konklusjon

Operatørpresedence er den grunnleggende regelen for å tildele prioriteringer til operatører mens de arbeider med numeriske uttrykk i programmene skrevet i C. Denne artikkelen belyser operatørens forrang for samme og forskjellige operatører for evalueringsformål. Vi har implementert tre forskjellige eksempler med tre forskjellige tilfeller som involverer operatørens forrang.