Memorie & Referințe
Modificarea pointerilor
Pointerii pot fi redirecționați spre altă adresă după declarare — aceasta îi diferențiează de referințe.
int a = 10, b = 20;
int* ptr = &a;
cout << *ptr << endl; // 10
ptr = &b; // redirecționare!
cout << *ptr << endl; // 20
*ptr = 99; // modifică b
cout << b << endl; // 99Aritmetica pointerilor
int v[] = {10, 20, 30, 40, 50};
int* ptr = v; // pointer la primul element
cout << *ptr << endl; // 10
cout << *(ptr+1) << endl; // 20
cout << *(ptr+2) << endl; // 30
ptr++; // avansează la elementul următor
cout << *ptr << endl; // 20Aritmetica pointerilor ține cont de tipul de date:
ptr+1 avansează cu sizeof(tip) octeți, nu cu 1 octet.