Junior — Middle
Kako redosled korišćenja operatora-modifikatora utiče na rezultat izvršenja izraza?
sobes.tech АИ
Одговор од АИ
Redosled korišćenja modifikacionih operatora (npr. inkrement ++, dekrement --, unarni minus -, logička negacija ! i dr.) utiče na rezultat izraza zbog razlike između prefiksnog i postfixnog oblika, kao i zbog prioriteta i asocijativnosti operatora.
- Prefiksni operator (
++i,--i) najpre menja vrednost promenljive, a zatim vraća novu vrednost. - Postfiksni operator (
i++,i--) najpre vraća trenutnu vrednost promenljive, a zatim je menja.
Primer:
int i = 5;
int a = ++i; // i postaje 6, a = 6
int j = 5;
int b = j++; // b = 5, j postaje 6
Takođe, redosled operatora utiče na računanje izraza, na primer:
int x = 3;
int y = 4;
int result = -x++ + ++y;
Ovde se prvo primenjuje unarni minus na x (ali x++ je postfix), pa se najpre vraća x (3), zatim x postaje 4, ++y povećava y na 5, i rezultat se računa kao -3 + 5 = 2.
Važno je razumeti prioritet operatora i redosled evaluacije:
- Unarni operatori imaju visok prioritet.
- Postfiksni operatori imaju viši prioritet od prefiksnih.
Greške u redosledu korišćenja modifikacionih operatora mogu dovesti do neočekivanih rezultata, stoga je preporučljivo pisati kod tako da je redosled evaluacije jasan.