Sunteți pe pagina 1din 1

S7.

Comentati si exemplificati metoda de transfer


a parametrilor prin valoare

O functie are urmatoarea forma ca modul apelat:


tip_rezultat nume_functie (linie_parametri_formali)
{
//corpul functiei
[return …;] //daca tip_rezultat este diferit de tipul void
}

Parametri din linia de parametri formali poate fi transmisi prin adresa sau prin
valoare. Apelul unei functii se numeste modul apelant.

In cazul transferului prin valoare in parametrul formal este copiata valoarea unui
argument din modulul apelant si depunerea sa pe stiva. Asta inseamna ca orice
modificare asupra argumentului respectiv in interiorul functiei nu se pastreaza si in afara
executiei acesteia.

Exemplu:

#include<stdio.h>

//modul apelat
void suma(int s)
{
for(int i=0;i<=10;i++)
s=s+i;
}

main()
{
int s;
s=0;
suma(s); //modul apelant
printf(”Suma este: %d\n”,s);
}

In urma executiei acestui program rezultatul afisat va fi: Suma este 0


Desi suma calculata in interiorul functiei este corecta (55) ea nu se pastreaza decat
in interiorul functiei, nu si in afara acesteia.

O astfel de declaratie cu transfer a parametrilor se foloseste atunci cand se doreste


o folosire a parametrilor formali din linie, si nu o modificare a acestora cu vizibilitate in
afara executtie functiei.
Spre exemplu aceasta declaratie se foloseste la iesiri (la consola, fisier), etc.

S-ar putea să vă placă și