Capitolul 5.9. Initializarea tablourilor de pointeri
:: Programare :: C & C++ :: Capitolul 5
Pagina 1 din 1
Capitolul 5.9. Initializarea tablourilor de pointeri
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.
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.
Subiecte similare
» Capitolul 5.8. Tablouri de pointeri, pointeri pe pointeri
» Capitolul 5. POINTERI SI TABLOURI
» Capitolul 5.1. Pointeri si adrese
» Capitolul 5.10. Comparatie pointeri. Tablouri multi-dimensionale
» Capitolul 5.3. Pointeri si tablouri
» Capitolul 5. POINTERI SI TABLOURI
» Capitolul 5.1. Pointeri si adrese
» Capitolul 5.10. Comparatie pointeri. Tablouri multi-dimensionale
» Capitolul 5.3. Pointeri si tablouri
:: Programare :: C & C++ :: Capitolul 5
Pagina 1 din 1
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum