Wskaźnik przechowuje adres do miejsca w pamięci RAM, aby dotrzeć do danych, wskazywanych należy wyłuskać wskaźnik.
int * wskN; //definicja wskaźnika na int, wskaźnik nie wskazuje na żadne dane int i = 4; int wskI = &i; //definicja wskaźnika na int połączona z inicjalizacją *wskI += 2; // wyłuskanie wkźnika cout << i << endl; // drukuje 6
Referencja jest rodzajem stałego wskaźnika (przechowuje niezmienny adres), którego definicja musi być połączona z inicjalizacją. Referencje używa się łatwiej niż wskaźniki. Referencja stanowi alternatywną nazwę zmiennej. Czyli jedna zmienna może mieć wiele alternatywnych nazw.
int & refN; //definicja referencji int, błąd!! brak inicjalizacji int i = 4; int & refI = i; //definicja referencj int połączona z inicjalizacją refI += 2; // referencji używa się tak samo jak nazwę zwykłej zmiennej cout << i << endl; // drukuje 6
Wiele zmiennych tego samego typu ułożonych w pamięci jedna za drugą w sposób ciągły tworzą tablicę. Każda z tych zmiennych to elemant tablicy. Nazwa tablicy jest wskaźnikiem (adresem) na początek tablicy. Kolejne elementy dostępne są przez indeks. Indeks jest parzesunięciem od początku tablicy do określoego jej elementu.
int a[20]; //definicja tablicy 20 elementowej a[0] = 5; // odwołanie do pierwszego elementu tablicy! indeks = 0 a[19] = -3; // odwołanie do ostatniego elementu tablicy! indeks = 19 cout << a[5]; // odwołanie do 6 elementu tablicy! indeks = 5 //Alternatywnie cout << *(a+5); // odwołanie do 6 elementu tablicy! indeks = 5 int * wskI = &a[5]; // wskI jest wskaźnikiem do 6 elementu tablicy *(wskI+1) = -12; // odwołanie do 7 elementu tablicy! indeks = 6 int & refI = a[5]; // refI jest alternatywną nazwą 6 elementu refI = 67; cout << a[5]; // drukuje 67
Więcej można znaleźć na stronach: