Wskaźniki

2016-04-14 18:57
Jacek Labudda
												

Czym są wskaźniki?

Wskaźniki w C++ jak sama nazwa mówi, wskazują na coś. Wcześniej wspominałem, że każda zmienna ma swój adres w pamięci RAM. Adres ten zmienne mogą przekazywać. Mamy możliwość pobrania adresu zmiennej, po przez użycia operatora &(ampersand) przed nazwą zmiennej.
int zmienna; cout << &zmienna << endl;
Adres jest zapisany w systemie szesnastkowym. W momencie, gdy zmienne mają ten sam adres, to ich wartość będzie taka sama.

W jaki sposób przekazać adres?

Będziemy potrzebowali do tego co najmniej dwóch zmiennych tego samego typu, jedna z nich będzie wskaźnikiem. Wskaźnik deklarujemy w taki sposób, że nazwą zmiennej uprzedzamy znakiem *(gwiazdki).
int *zmienna1; //wskaznik int zmienna2 = 12; zmienna1 = &zmienna2; //przekazanie adresu
Adres naszej zmiennej został przekazany. Teraz możemy sprawdzić, czy wszystko działa:
cout << "zmienna1 adres: " << zmienna1 << " jej wartosc = " << *zmienna1 << endl << " zmienna2 adres: " << &zmienna2 << " jej wartosc = " << zmienna2 << endl;
Zwróć uwagę, że jeśli zmienisz wartość jednej ze zmiennych to wartość drugiej również zostanie zmieniona.
#include <iostream> using namespace std; int main() { int *zmienna1; //wskaznik int zmienna2 = 12; //definiowanie wartosci zmienna1 = &zmienna2; //przekazanie adresu //wypis cout << "zmienna1 adres: " << zmienna1 << " jej wartosc = " << *zmienna1 << endl << "zmienna2 adres: " << &zmienna2 << " jej wartosc = " << zmienna2 << endl; zmienna2 = 5; //zmiana wartosci //wypis cout << "zmienna1 adres: " << zmienna1 << " jej wartosc = " << *zmienna1 << endl << "zmienna2 adres: " << &zmienna2 << " jej wartosc = " << zmienna2 << endl; *zmienna1 = 72; //zmiana wartosci //wypis cout << "zmienna1 adres: " << zmienna1 << " jej wartosc = " << *zmienna1 << endl << "zmienna2 adres: " << &zmienna2 << " jej wartosc = " << zmienna2 << endl; return 0; }
I tym przykładem kończę tą krótką lekcję.

Użytkownicy
Logowanie:
Zaloguj
Polub nas na facebooku
Wyszukiwanie na stronie