Parametrul a este transmis prin referință. Nu se lucrează cu valoare lui a, ci cu valoarea de la adresa lui a ( o să vezi la pointeri ). Ideea este că valoarea lui a se modifică. Funcția returnează o valoare prin intermediul parametrului a.
Nu am înțeles cum ție îți afișează rezultatele alea. Sunt mai mult ca sigur că ai greșit ceva.
Trebuie să afișeze în cazul 1 : 4549 și în cazul 2 : 4559
A treia cifră a numărul este valoarea lui a afișată din main. În primul caz valoarea variabilei a s-a schimbat, în al doilea a rămas aceeași.