Zdobądź zawód w IT!     |       Ścieżki Kariery 30% taniej     |      Jeszcze przez:

1 dni 21 godzin
close
Cart icon
User menu icon
User icon
Skontaktuj się z nami:
+48 888-916-333
Lightbulb icon
Jak to działa?
FAQ icon
FAQ
Contact icon
Kontakt
Terms of service icon
Regulamin zakupów
Privacy policy icon
Polityka prywatności
Czym są wskaźniki w języku c++

Wskaźniki w języku C++

Bez wskaźników można żyć. Są jednak sytuacje gdy ich użycie jest niezbędne, a przynajmniej “wskazane” - chociażby ze względu na wydajność kodu. Każdy bardziej zaawansowany programista C++ powinien wiedzieć jak wskaźników używać. Sprawdź nasz artykuł, który wprowadzi Cię łatwo w ten fascynujący temat.

opanuj wskaźniki w języku c++

Naucz się programować w jednym z najbardziej wszechstronnych języków programowania.

Dowiedz się więcej

Jak zdefiniować wskaźnik

Jak definiujemy wskaźniki? Przeanalizuj poniższy przykład:

int *wsk;

Znak specjalny * (gwiazdka) sygnalizuje, że mamy do czynienia ze wskaźnikiem. Jak powinniśmy rozumieć taką definicję?

Wskaźnik wsk jest wskaźnikiem do pokazywania na elementy typu int.

Analogicznie możemy postępować dla innych typów:

double *pointer;

Wskaźnik pointer jest wskaźnikiem do pokazywania na elementy typu double.

Wykorzystanie wskaźników

Już wiesz jak definiujemy wskaźniki. Nadszedł czas aby zrozumieć w jaki sposób możemy ich użyć:

int *wsk;
int digit = 7;

Teraz ustawimy wskaźnik i wyświetlimy informację co takiego udało nam się ustawić:

wsk = &digit;
cout << wsk << endl;

Na wyjściu otrzymamy:

0x7ffee55e589c  

Widzisz te dziwne znaczki? Jest adres zmiennej digit. Chodzi o adres zmiennej w pamięci. Wskaźnik wsk jest w stanie przechowywać takie informacje. Adres zmiennej uzyskujemy za pomocą specjalnego znaku &. Umieszczając go po lewej stronie zmiennej jesteśmy w stanie uzyskać jej adres w pamięci.

Jak wykorzystać adres

Co nam daje wiedza o adresie? Kiedy wiemy jaki zmienna ma adres, możemy ją kontrolować.

Oto przykład:

int *wsk;
int digit = 7;
        
wsk = &digit;
    
// wyświetlanie danych
cout << *wsk << endl;
cout << digit << endl;
    
// zmieniam wartość digit;
digit = 8;
cout << *wsk << endl;
cout << digit << endl;
    
// zmieniam wartość przy pomocy wsk
*wsk = 9;
cout << *wsk << endl;
cout << digit << endl;

Rezultat powyższego kodu:

7
7
8
8
9
9

W powyższym przykładzie możesz zwrócić uwagę na użycie wskaźnika wsk. Jak widzisz, czasami możemy używać wskaźnika z użyciem *.

W kontekście zmiennej digit możemy wysunąć następujące wnioski:

Jeżeli wsk = &digit, to *wsk oznacza dokładnie to samo co digit. Wykonując w kodzie *wsk odnosimy się do wartości zmiennej, na którą nasz wskaźnik wskazuje (czyli digit). W naszym wypadku zmieniając wartość zmiennej digit lub za pomocą *wsk zmieniamy tak naprawdę zmienną digit ponieważ nasz wskaźnik “wie” pod jakim adresem zmienna się znajduje.

Jak zdefiniować wskaźniki w języku c++?

Naucz się programować w jednym z najbardziej wszechstronnych języków programowania.

Dowiedz się więcej

Podsumowanie

Z użyciem wskaźników wiąże się wielka odpowiedzialność. Mogą być one niezwykle przydatnym narzędziem, ale trzeba z nich korzystać rozważnie. W powyższych przykładach widać było wyraźnie, jak za pomocą wskaźników można manipulować wartościami zmiennych. Dlatego zawsze dwa razy się zastanów nad sposobem użycia wskaźnika, bo można sobie bardzo łatwo narobić problemów. Powodzenia!