Dalej•LEKCJA 17 / 24

Wskaźniki

Kurs C++ · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.

Wskaźnik przechowuje adres innego obiektu.

Jak to działa?

&number pobiera adres zmiennej, a *ptr odczytuje wartość spod adresu. Nie dereferencjonuj wskaźnika nullptr.

W nowoczesnym C++ preferuj zarządzanie zasobami przez obiekty RAII.

Przykład 1 — poznaj zapis

int number = 42;
int* ptr = &number;

std::cout << *ptr;
*ptr = 50;

Po zmianie *ptr zmienna number ma wartość 50.

Przeczytaj kod linijka po linijce

  1. int number = 42;Tworzymy lub aktualizujemy zmienną, pole albo przypisanie.
  2. int* ptr = &number;Tworzymy lub aktualizujemy zmienną, pole albo przypisanie.
  3. std::cout << *ptr;Wyświetlamy wartość, aby sprawdzić efekt działania programu.
Oczekiwany wynik / efektpo uruchomieniu przykładu
42 (następnie przez *ptr ustawiona zostaje wartość 50)

Przykład 2 — podobny problem, inne dane

Teraz przyjrzyj się drugiemu przykładowi. Zwróć uwagę na to, co zmieniło się w kodzie, a co w wyniku. Spróbuj przewidzieć rezultat przed przeczytaniem odpowiedzi.

int x = 12;
int* p = &x;
std::cout << *p;
Wynik drugiego przykładupo uruchomieniu przykładu
12
Sprawdź, czy rozumiesz

Wróć do pierwszego przykładu, zmień jedną wartość i spróbuj samodzielnie przewidzieć wynik. Następnie uruchom kod i porównaj rezultat. W ten sposób nauczysz się nie tylko przepisywać instrukcje, ale rozumieć ich działanie.

Spróbuj samodzielnie

Sprawdź, czy wskaźnik jest różny od nullptr przed użyciem.

To już koniec tej lekcji.

Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.