Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Apelul functiilor

c



+ Font mai mare | - Font mai mic



Apelul functiilor

Apelul unei functii inseamna referirea functiei, impreuna cu valorile actuale ale parametrilor formali, precum si preluarea valorii returnate, daca este necesar. La apelul functiei, tipul argumentelor trebuie sa fie acelasi cu cel al tipului parametrilor formali ai functiei.



Daca apar nepotriviri de tip (de exemplu, parametrul formal al functiei este de tip int, iar apelul functiei foloseste un argument de tip float) de obicei, compilatorul C nu semnalizeaza eroare, dar rezultatul poate fi incorect.

In C transmiterea argumentelor de la functia apelanta spre functia apelata se face prin valori sau prin adrese.

a) In cazul transmiterii argumentului prin valoare, se realizeaza copierea (atribuirea) valorilor fiecarui argument in (la) cate un parametru formal al functiei apelate.

Exemplu Se apeleaza o functie ce calculeaza patratul unui numar intreg.

# include <stdio.h>

square(); // Prototipul functiei sqrt()

void main(void)

square(x) // Se declara functia sqrt()

int x;

Se observa ca prin aceasta metoda, schimbarile survenite asupra parametrului formal x nu afecteaza variabila utilizata pentru apelul functiei (schimbarile lui x nu modifica in nici un fel pe t).

b) Daca transmiterea argumentului se realizeaza prin adrese, atunci la apelul functiei in loc de valori se folosesc adrese, iar in definitie, parametrii formali se declara ca pointeri.

Exemplu: O functie swap() care schimba valorile a doua variabile reale se poate defini astfel:

void swap(float *x, float *y)

Se observa ca parametrii formali ai functiei swap() sunt pointeri la float. Programul urmator arata modul de apel al acestei functii.

# include <stdio.h>

void swap(float *x,float *y);

void main(void)

Prin &x si &y, programul transfera adresele lui x si y functiei swap() si nu valorile lui x si y.

Un apel combinat, valoare-referinta este prezentat in exemplul urmator:

# include <stdio.h>

void f();

void main (void)

void f(int val, int *ref)



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1414
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved