Menu
Coddy logo textTech

Operator dereferencji

Część sekcji Logika i przepływ programu ścieżki C++ w Coddy. Lekcja 3 z 56.

Skoro potrafisz już uzyskać wskaźnik do zmiennej, musisz nauczyć się, jak uzyskiwać dostęp do wartości pod tym adresem pamięci i ją modyfikować. W tym miejscu niezbędny staje się operator dereferencji (*).Operator dereferencji * służy do uzyskiwania dostępu do wartości przechowywanej pod adresem pamięci, na który wskazuje wskaźnik. Gdy umieścisz * przed zmienną wskaźnikową, „podąża” on za adresem i zwraca rzeczywistą przechowywaną tam wartość.Pamiętaj, że operator pobrania adresu (&) służy do uzyskiwania adresu pamięci zmiennej, natomiast operator dereferencji (*) służy do uzyskiwania wartości pod tym adresem.
int number = 42;
int* ptr = &number;  // ptr przechowuje adres number
int value = *ptr;    // value zawiera teraz 42
Możesz również użyć operatora dereferencji, aby zmodyfikować oryginalną zmienną za pośrednictwem wskaźnika. Gdy przypisujesz nową wartość do *ptr, tak naprawdę zmieniasz wartość przechowywaną w tej lokalizacji pamięci:
*ptr = 100;  // Zmienia number na 100
// number ma teraz wartość 100, mimo że zmieniliśmy ją za pośrednictwem ptr
To pośredni dostęp sprawia, że wskaźniki są tak potężne — możesz odczytywać i modyfikować zmienne z dowolnego miejsca w programie, o ile masz do nich wskaźnik.
challenge icon

Wyzwanie

Łatwy

Utwórz program, który demonstruje działanie operatora dereferencji, modyfikując wartość zmiennej za pomocą wskaźnika.

Dane wejściowe będą zawierać:

  • Liczbę całkowitą reprezentującą początkową wartość zmiennej
  • Liczbę całkowitą reprezentującą nową wartość, którą należy przypisać za pomocą wskaźnika

Twój program powinien:

  1. Zadeklarować zmienną całkowitą o nazwie temperature i zainicjalizować ją pierwszą wartością wejściową
  2. Utworzyć wskaźnik o nazwie tempPtr, który wskazuje na zmienną temperature
  3. Wypisać pierwotną wartość przez dereferencję wskaźnika
  4. Użyć operatora dereferencji, aby zmienić wartość temperature na drugą wartość wejściową za pomocą wskaźnika
  5. Ponownie wypisać nową wartość przez dereferencję wskaźnika

Użyj dokładnie następującego formatu wyjściowego:

Original value: [original value]
New value: [new value]

Spróbuj swoich sił

#include <iostream>
using namespace std;

int main() {
    // Odczytaj wartości wejściowe
    int initialValue, newValue;
    cin >> initialValue;
    cin >> newValue;
    
    // TODO: Napisz swój kod poniżej
    // 1. Zadeklaruj zmienną temperature i zainicjalizuj ją wartością initialValue
    // 2. Utwórz wskaźnik tempPtr wskazujący na temperature
    // 3. Wypisz pierwotną wartość przez dereferencję wskaźnika
    // 4. Zmień wartość temperature za pomocą wskaźnika, używając newValue
    // 5. Wypisz nową wartość przez dereferencję wskaźnika
    
    return 0;
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator C++ online