Exact. Sunt transmise defapt niste copii (nu se aplica si daca trimiti ca parametru un vector). Ai sa inveti si transmiterea prin referinta :). Da. (daca ai o functie void F(int x) de exemplu, nu o poti folosi drept valoare, gen cout<<F(3) sau if(F(3) == 23). Daca aveai in schimb int F(int x), te puteai folosi de valoarea returnata (gen, daca returna 3 la x=4, cout<<F(4) afisa 3, if (F(4) == 3) era adevarata, etc) Prin return nu. Insa poti stoca intr-un vector valorile de care ai nevoie. E la fel de eficient, dar te ajuta sa nu faci o varza in main care sa fie greu de inteles, impartind problema in sub-probleme.