/* Operatori dodele - =, += */

#include <stdio.h>

int main() {
  /* Inicijalizacija je slicna dodeli, ali postoje razlike */
  int a = 3;
  printf("a = %d\n", a);

  /* Dodela je specijalni operator. Dodela je izraz, a ako se zavrsi
     sa ; postaje i iskaz (koji se veoma cesto koristi). */ 
  a = 3 + 5; /* a se postavlja na 8 */
  printf("a = %d\n", a);

  /* Proizvoljni izraz (ne samo dodela) moze da postane iskaz, ali
     uglavnom dodele (i izrazi sa bocnim efektima) imaju smisla */
  3 + 5; /* Ovaj izkaz nema puno smisla, ali je korektan */

  a = a + 3;  /* a se uvecava za 3 */
  printf("a = %d\n", a);

  a += 3;  /* a se uvecava za 3 - operator += */
  printf("a = %d\n", a);

  /* X += Y ne mora uvek da bude isto sto i X = X + Y;
     Npr. 
     a[f()] += 3           - garantuje se da se izraz f() jednom izracunava
     a[f()] = a[f()] + 3   - izraz f() se najverovatnije dva puta izracunava i 
                             moze da ima razlicitu vrednost pri svakom 
                             izracunavanju
  */
}