Kas yra C operatoriaus pirmenybė ir asociatyvumas

Kas Yra C Operatoriaus Pirmenybe Ir Asociatyvumas



Operatoriai dažniausiai naudojami įvairioms aritmetinėms ir loginėms operacijoms atlikti C kalboje. C programavimo kalba veikia tam tikra tvarka, žinoma kaip operatoriaus pirmenybė ir asociatyvumas nustatyti operacijų eiliškumą vykdymo metu. Taisyklės operatoriaus pirmenybė ir asociatyvumas padėti rašyti kodą be klaidų ir pagerinti kodo skaitomumą.

Šiame straipsnyje pateikiama išsami pamoka, kuri padės jums sužinoti apie asociatyvumą ir operatoriaus pirmenybę C.

Operatoriaus pirmenybė C

Operatoriaus pirmenybė aprašo seką, kurioje keli operatoriai įvertinami vertinant išraiškas. Pavyzdžiui, jei išraiška turi ir sudėties, ir daugybos operatorius, kuris iš jų turi būti įvertintas pirmiausia? Atsakymas paprastas, C vadovaujasi tam tikromis taisyklėmis, kad išspręstų tokį dviprasmiškumą, paprastai žinomą kaip operatoriaus pirmenybė . C, operatoriaus pirmenybė yra suskirstytas į 17 lygių, pradedant vienkartiniais operatoriais ir baigiant trijų sąlyginių operatorių. Dažniausiai naudojami operatoriai, tokie kaip aritmetiniai operatoriai, reliaciniai operatoriai, loginiai operatoriai ir bitų operatoriai, atitinka C standartą operatoriaus pirmenybė protokolas.







Pirmenybė taisyklės nustato, kurie operatoriai turi didesnį prioritetą nei kiti vertindami išraiškas. Kelių tipų operatoriai C programavimo kalboje turi skirtingą laipsnį pirmenybė . Pavyzdžiui, vienanariai operatoriai turi didesnį prioritetą nei dvejetainiai operatoriai. Toliau pateikiamas operatorių sąrašas, surūšiuotas didėjančia tvarka pirmenybė :



operatorius Operatoriaus reikšmė Asociatyvumas
()
[]
->
.
Funkcinis skambutis

Masyvo elemento nuoroda



Netiesioginis narių pasirinkimas





Tiesioginis narių pasirinkimas

Iš kairės į dešinę
!
~
+

++

&
*
dydis
(tipas)
Loginis neigimas

Bitų (1) papildymas

Vienetinis pliusas

Vienetinis minusas

Prieaugis

Sumažėjimas

Nuoroda (adresas)

Rodyklės nuoroda

Grąžina objekto dydį

Typecast (konversija)

Iš dešinės į kairę
*
/
%
Padauginti

Padalinti

Priminimas

Iš kairės į dešinę
+
Dvejetainis pliusas (papildymas)

Dvejetainis minusas (atimtis)

Iš kairės į dešinę
<<
>>
Kairė pamaina

Dešinysis posūkis

Iš kairės į dešinę
<
<=
>
>=
Mažiau nei

Mažiau nei arba lygus

Geresnis negu

Didesnis nei arba lygus

Iš kairės į dešinę
==
!=
Lygus

Nelygu

Iš kairės į dešinę
& Bitiškai IR Iš kairės į dešinę
^ Bitiškai išskirtinis ARBA Iš kairės į dešinę
| Bitiškai ARBA Iš kairės į dešinę
&& Logiška IR Iš kairės į dešinę
|| Logiška ARBA Iš kairės į dešinę
?: Sąlyginis operatorius Iš dešinės į kairę
=
*=
/=
%=
+=
-=
&=
^=
|=
<<=
>>=
Paprasta užduotis

Priskirti produktą

Priskirkite koeficientą

Priskirti likutį

Priskirti sumą

Priskirti skirtumą

Priskirkite bitais AND

Priskirkite bitais XOR

Priskirkite bitais ARBA

Priskirti pamainą į kairę

Priskirkite pamainą į dešinę

Iš dešinės į kairę
, Posakių skyriklis Iš kairės į dešinę

Šios taisyklės nurodo kompiliatoriui, kaip įvertinti išraiškas su keliais operatoriais toje pačioje išraiškoje. Pavyzdžiui, daugybos operatorius turi didesnę pirmenybę nei sudėties operatorius lygtyje A + B * C, remiantis pirmenybė taisykles. Todėl prieš pridėdamas A prie rezultato, kompiliatorius pirmiausia įvertins išraišką B * C.

Pažvelkime į pavyzdį operatoriaus pirmenybė per kodą.

#include

tarpt pagrindinis ( ) {

tarpt a = 43 , b = vienuolika , c = 16 , d = 31 ;

tarpt rezultatas = ++ a * b -- + c / -- d ;

printf ( 'a = %d \n , a ) ;

printf ( 'b = %d \n , b ) ;

printf ( 'c = %d \n , c ) ;

printf ( 'd = %d \n , d ) ;

printf ( 'rezultatas = %d \n , rezultatas ) ;

grąžinti 0 ;

}

Keturi kintamieji a, b, c ir d yra deklaruojami aukščiau pateiktame kode, o jų pradinės reikšmės yra atitinkamai 43, 11, 16 ir 31. Tada jis taiko įvairius aritmetinius ir priskyrimo operatorius šiems reiškinio kintamiesiems. Išraiška padidina a reikšmę, naudodama išankstinio didinimo operatorių ++a, rezultatą padaugina iš operatoriaus po sumažinimo b– ir tada prideda rezultatą prie c dalijimo iš iš anksto sumažintos d vertės. (naudojant išankstinio sumažinimo operatorių –d). Tada kintamasis rezultatas naudojamas bendram šios išraiškos rezultatui laikyti.

Išvestis

Asociatyvumas C

Asociatyvumas nurodo tvarką, kuria operatoriai įvertinami per išraišką su tokia pačia pirmenybe. Iš kairės į dešinę ir iš dešinės į kairę asociatyvumas yra dvi asociatyvumo formos C. Jei du operatoriai turi tą patį pirmenybė , jie vertinami iš kairės į dešinę pagal sąvoką „iš kairės į dešinę“. asociatyvumas . Nepaisant to, jei laikomasi tos pačios pirmenybės, operatoriai vertinami iš dešinės į kairę pagal iš dešinės į kairę asociatyvumas .

Pavyzdžiui, ++ prieaugio operatorius yra iš dešinės į kairę asociatyvumas , o tai reiškia padidėjimą operatorius vertinamas po kintamojo. Tuo tarpu loginis IR operatorius turi iš kairės į dešinę asociatyvumas , o tai reiškia, kad operatorius vertinamas iš kairės į dešinę.

#include

int main() {

int a = 6 , b = 3 , c = 2 ;

int rezultatas = a * b / c;

printf( 'rezultatas = %d \n , rezultatas);

grąžinti 0 ;

}

Trys kintamieji a, b ir c yra deklaruojami šiame kode ir atitinkamai inicijuojami į 6, 3 ir 2. Tada jis taiko daugybos ir padalijimo operacijas šiems kintamiesiems išraiškoje. Daugyba ir padalijimas C klasifikuojami iš kairės į dešinę pagal jų skaičių asociatyvumas nes jie turi tą patį pirmumo lygį. Tai rodo, kad pirmiausia atliekama padalijimo operacija, po kurios eina daugybos operacija vertinant išraišką a * b / c.

Išvestis

Išvada

Operatoriaus pirmenybė ir asociatyvumas yra esminės C programavimo sąvokos, padedančios nustatyti išraiškų vykdymo tvarką. Operatoriai, turintys aukščiausią pirmenybė lygis įvertinamas pirmiausia ir asociatyvumas taisyklės padeda nustatyti tvarką, kai naudojami keli operatoriai su tokia pačia pirmenybe. Supratimas operatoriaus pirmenybė ir asociatyvumas yra būtinas kuriant sudėtingas programas ir padeda sukurti švaresnį ir efektyvesnį kodą su mažiau klaidų.