Prioriteti operatora
Do sada su svi operatori opisivani kao da nemaju nikakve veze jedni sa drugima. U realnom programiranju se koriste kombinacije operatora u složenim izrazima za razne vrste računanja. Pogledajte sledeći izraz:
2 + 3 * 5;
Iz školske matematike znate da se prvo vrši množenje pa tek onda sabiranje. Pravila po kojima se zna koji operatori se koriste pre a koji kasnije nazivamo prioriteti.
U programskom jeziku "C" su precizno definisani prioriteti gde se podrazumeva da se operatori koji imaju veći prioritet izvršavaju pre operatora sa manjim prioritetom. Tako da, ako znamo da " * " ima veći prioritet od " + ", onda je jasno šta će biti konačan rezultat prethodnog izraza.
Bindings
Ovim nazivom se u engleskom jeziku naziva pravilo po kojem se određuje kojim redosledom se izvršavaju operacije ako ima više operatora koji su sa istim prioritetom.
(Nastavnik u ovom momentu nema adekvatan prevod za ovo)
Većina operatora u programskom jeziku "C" se koriste sa leva na desno (engl. left-sided binding), tj u sledećem izrazu će 3 biti dodato na 2 a 5 će biti dodato na njihov rezultat:
2 + 3 + 5;
Iako biste možda rekli da i deca znaju da je sabiranje komutativno i da nema nikakvog značenja kojim redosledom se vrši, to u programiranju baš i nije tačno!
Sabiranja koja vrše računari nisu baš uvek komutativna, ali će to da se pokaže neki drugi put.
Lista prioriteta
S obzirom da ste početnici i da tek počinjete da učite programski jezik "C", nije dobra ideja da se pokaže kompletna lista svih operatora i njihovih prioriteta. Umesto toga, pokazaćemo skraćenu verziju u kojoj se nalaze samo operatori sa kojima ste se do sada upoznali:
U sledećoj tabeli su prikazani operatori, počev od onih sa najvećim prioritetom, ka onim sa manjim prioritetom:
Da ponovimo kako se radi ako su u izrazu operatori sa istim prioritetom:
2 * 3 % 5;
Oba operatora ("*" i "%") imaju isti prioritet, tako da rezultat moožete da pretpostavite ako znate sa koje strane se radi:
(u ovom slučaju je rezultat 1)