Sobes.tech
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.