FUNCTII CARE RETURNEAZA POINTERI
Sunt situatii cand nu este suficient ca functia apelanta sa intoarca o singura valoare catre apelanta. De multe ori apelanta ar trebui sa returneze un sir de val 141c29b ori, o structura sau o uniune, un sir de caractere, o matrice etc.
Toate aceste alternative sunt rezolvate in limbajul C prin intermediul functiilor care returneaza pointeri. Anume pointeri la siruri, la structuri, la uniuni, la matrice etc.
O functie care returneaza pointer se declara astfel :
[tip] nume-functie (lista-declaratori-parametri) ;
In aceasta constructie caracterul asterisc " * " este cel care indica faptul ca va returna un pointer. Tip-ul din fata este de fapt tipul pointerului returnat de functie.
Exemplu 5.7.1
Urmatoarea functie concateneaza sirul S la sfarsitul lui D si returneaza pointer catre noul sir D. Se presupune ca in D este suficient loc pentru ambele siruri.
char *strcat (char *D, char *S)
/* pozitia SB */
else
if (i == 1) /* Daca este subsir atunci */
return SC ; /* returneaza SC */
SA = S 1 ; SC++ ; SB = SC ; /* Trece la urmatoarea */
} /* pozitie in S 2 */
return NULL ; /* Nu este subsir */
}
Observatie
Analizati si exemplu 5.9.1. de la paragraful 5.9.
|