Documente Academic
Documente Profesional
Documente Cultură
Tablouri (array)
Sintaxa definitie:
Tip_date nume_tablou[dim1][dim2]…
Alocarea memorie
Initializare tablouri
TipData NumeTablou[dim1][dim2][...]=
{{val01,val02,..},{val10,val11,..},{...}..};
Initializare tablouri
Ex.:
int a[2][3]={1,2,3,4,5,6};
Sirurile de caractere
Pointeri
= variabila in care se poate stoca adresa unei zone de memorie;
Sintaxa, operatori:
int *a //declaratie/definitie pointer
int b;
a=&b; //operator de referentiere (adresare)
b=*a; //operator de dereferentiere (indirectare)
Obs.: void *nume este pointer fara tip de baza (se poate stoca o
adresa, insa nu se stie tipul variabilei stocate acolo; nu
. functioneaza artimetica pointerilor); se poate folosi numai prin
conversie la un tip concret de date
Tipuri de date derivate. Tipuri predefinite. Pointeri.
Ex.: int *a
int b[5]={1,2,3,4,5}; // initializare vector
b[0] b[1] b[2] b[3] b[4]
a=&b;
a++;
cout << *a << endl;
Tipuri de date derivate. Tipuri predefinite. Pointeri.
Alocarea / dealocare memoriei:
• Ca in C folosind functiile malloc , respectiv free
• In C++ exista operatori proprii: new, respectiv delete
pentru alocare multipla (vector) eliberarea spatiului se face cu
operatorul delete[]
Referinte
= nume alternativ asociat unui obiect deja existent
Referinte
= nume alternativ asociat unui obiect deja existent
Obs.: cum nu poate exisa un nume fara variabila asociata,
orice referinta trebuie initializata la declarare
Sintaxa: TipDate & nume=varInit;
Exemplu: Exemplu:
int a[3]={1,2,3};
int a[3]={1,2,3};
int* const pv=&a[0];
const int* pv=&a[0]; pv[0]=4; // corect
pv[0]=4;// gresit, ob const pv++; // gresit, pointer const
pv++; // corect pv[2]=5; // ??
cout<<pv[1]; cout<<pv[1];