Informatică Programare
Pointeri in C++ explicati detaliat
Pointerii în C++ sunt variabile care stochează adrese de memorie ale altor variabile, permițând manipularea indirectă a datelor. Declarați un pointer cu tipul* nume;. Exemplu: int x = 5; int* ptr = &x; *ptr = 10; // x devine 10.
Noțiuni de bază
- Declarare și inițializare Tip* ptr; declară un pointer. &variabilă returnează adresa. int a = 3; int* p = &a;. Pointerul neinițializat poate cauza erori.
- Dereferențiere *ptr accesează valoarea de la adresa stocată. Dacă p indică spre a, *p = 7 schimbă valoarea lui a la 7. Dereferențierea unui pointer null duce la crash.
- Pointerul null nullptr este o valoare care indică că pointerul nu indică spre nicio adresă validă. Verificați if(ptr != nullptr) înainte de dereferențiere.
Operații avansate
- 1 Pasul 1: Aritmetica pointerilor Pe array-uri, ptr++ mută pointerul la următorul element de același tip. int arr[3] = {1,2,3}; int* p = arr; p++; // p indică acum spre arr[1].
- 2 Pasul 2: Pointeri la pointeri int** pp; stochează adresa unui pointer. int x = 5; int* p = &x; int** pp = &p; **pp = 10; schimbă x la 10.
- 3 Pasul 3: Pointeri și funcții Puteți pasa pointeri ca parametri pentru a modifica variabile în afara funcției. void modificare(int* ptr) { *ptr = 20; } apelată cu modificare(&x) schimbă x.
Folosește pointeri cu grijă, verificând mereu pentru null și înțelegând aritmetica pentru a evita erori de memorie.