PREFIX/POSTFIX INKREMENT/DEKREMENT OPERATORI
PREFIX znači da se prvo obavi operacija inkrementa/dekrementa,
a zatim nekakva operacija pridruživanja. POSTFIX znači da se operacija
vrši nakon pridruživanja. Pogledajmo slijedeće izraze
++count; /* PREFIX Inkrement, znači povećaj count za jedan*/ count++; /* POSTFIX Inkrement, znači povećaj count za jedan */U gornjem primjeru, zato što se vrijednost varijable count ne pridružuje nijednoj varijabli, učinak PREFIX/POSTFIX operacija nije jasno vidljiv.
Ispitajmo što se događa kada koristimo operator zajedno s operacijom pridruživanja. Pogledajmo slijedeći program,
#include <stdio.h> main() { int count = 0, loop; loop = ++count; /* isto kao count = count + 1; loop = count; */ printf("loop = %d, count = %d\n", loop, count); loop = count++; /* isto kao loop = count; count = count + 1; */ printf("loop = %d, count = %d\n", loop, count); } Ispis programa loop = 1, count = 1 loop = 1; count = 2Ako operator prethodi (ako je s lijeve strane) varijabli, operacija se izvodi prva, tako izraz
loop = ++count;ustvari znači inkrementiraj prvo count , a onda novu vrijednost varijable count pridruži varijabli loop.
Kako ćete pisati?
Tamo gdje se inkrement/dekrement operacija koristi
za promjenu vrijednosti varijable, i nije uključena ni u kakvu operaciju
pridruživanja, što ćete koristiti,
++loop_count; ili loop_count++;Odgovor je da u stvari nije bitno. Čini se da većina C programera koristi postfix formu.
Na što morate pripaziti
Nemojte da vam uđe u naviku koristiti razmak(e)
između imena varijable i prefix/postfix operatora.
loop_count ++;Pokušajte povezati operator ne koristeći praznine.