Capitolul 5.9. Initializarea tablourilor de pointeri

Vezi subiectul anterior Vezi subiectul urmator In jos

Capitolul 5.9. Initializarea tablourilor de pointeri

Mesaj  zooky la data de Mier Mar 18, 2009 1:49 pm

Sa ne pune problema scrierii unei functii month_name(n) care returneaza un pointer pe un sir de caractere continind numele a n linii. Aceasta este o aplicatie ideala pentru un tablou static intern. month-name contine un tablou propriu de siruri de caractere si returneaza un pointer pe sirul convenabil atunci cind este apelat. Scopul acestei sectiuni este de a arata cum se initializeaza tabloul de nume.
Sintaxa este similara cu cea a initializarilor precedente:

char *month-name(n) /*returneaza numele celei de-a n-a luni*/
int n;
{
static char *name[] =
{
"luna eronata",
"ianuarie",
"februarie",
"martie",
"aprilie",
"mai",
"iunie",
"iulie",
"August",
"septembrie",
"octombrie",
"noiembrie",
"decembrie"
};
return((n < 1 || n > 12) ? name[0] : name[n]);
}

Declararea numelui, care este un tablou de pointeri pe caractere este aceeasi ca si la lineptr, in ex de sortare. Valorile de initializare sint de fapt o lista de caractere; fiecare dintre acestea din urma este asignat pozitiei corespunzatoare din tablou.
Mai precis, caracterele celui de-al i-lea sint plasate undeva iar pointerul pe ele este stocat in name[i]. Daca lungimea tabloului name nu este specificata, compilatorul numara valorile de intializare si pune lungimea corecta.
avatar
zooky
Moderator
Moderator

Numarul mesajelor : 147
Data de inscriere : 15/03/2009
Varsta : 24
Localizare : Cernatesti City

Vezi profilul utilizatorului http://e-learning.forumhit.ro

Sus In jos

Vezi subiectul anterior Vezi subiectul urmator Sus


 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum