Menu
Coddy logo textTech

Dereferenzierungsoperator

Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy — Lektion 3 von 56.

Da Sie nun einen Pointer auf eine Variable erhalten können, müssen Sie lernen, wie Sie auf den Wert an dieser Speicheradresse zugreifen und diesen ändern können. Hier wird der Dereferenzierungsoperator (*) unverzichtbar.

Der Dereferenzierungsoperator * wird verwendet, um auf den Wert zuzugreifen, der an der Speicheradresse gespeichert ist, auf die ein Pointer zeigt. Wenn Sie * vor eine Pointer-Variable setzen, „folgt“ er der Adresse und liefert Ihnen den dort gespeicherten tatsächlichen Wert.

int number = 42;
int* ptr = &number;  // ptr speichert die Adresse von number
int value = *ptr;    // value enthält nun 42

Sie können auch den Dereferenzierungsoperator verwenden, um die ursprüngliche Variable über den Pointer zu ändern. Wenn Sie *ptr einen neuen Wert zuweisen, ändern Sie tatsächlich den an dieser Speicheradresse gespeicherten Wert:

*ptr = 100;  // Ändert number auf 100
// number ist jetzt 100, obwohl wir es über ptr geändert haben

Dieser indirekte Zugriff macht Pointer so mächtig – Sie können Variablen von überall in Ihrem Programm lesen und ändern, solange Sie einen Pointer auf sie haben.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das den Dereferenzierungsoperator demonstriert, indem es den Wert einer Variablen über einen Pointer ändert.

Die folgende Eingabe wird bereitgestellt:

  • Ein Integer, der den Initialwert für eine Variable darstellt
  • Ein Integer, der den neuen Wert darstellt, der über den Pointer zugewiesen werden soll

Ihr Programm sollte:

  1. Deklarieren Sie eine Integer-Variable namens temperature und initialisieren Sie diese mit dem ersten Eingabewert
  2. Erstellen Sie einen Pointer namens tempPtr, der auf die Variable temperature zeigt
  3. Geben Sie den ursprünglichen Wert aus, indem Sie den Pointer dereferenzieren
  4. Verwenden Sie den Dereferenzierungsoperator, um den Wert von temperature über den Pointer auf den zweiten Eingabewert zu ändern
  5. Geben Sie den neuen Wert aus, indem Sie den Pointer erneut dereferenzieren

Verwenden Sie das folgende exakte Ausgabeformat:

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

Spickzettel

Der Dereferenzierungsoperator * wird verwendet, um auf den Wert zuzugreifen, der an der Speicheradresse gespeichert ist, auf die ein Pointer zeigt:

int number = 42;
int* ptr = &number;  // ptr speichert die Adresse von number
int value = *ptr;    // value enthält nun 42

Sie können den Dereferenzierungsoperator auch verwenden, um die ursprüngliche Variable über den Pointer zu ändern:

*ptr = 100;  // Ändert number auf 100
// number ist jetzt 100, obwohl wir es über ptr geändert haben

Dieser indirekte Zugriff ermöglicht es Ihnen, Variablen von überall in Ihrem Programm zu lesen und zu ändern, solange Sie einen Pointer auf sie haben.

Probier es selbst

#include <iostream>
using namespace std;

int main() {
    // Eingabewerte lesen
    int initialValue, newValue;
    cin >> initialValue;
    cin >> newValue;
    
    // TODO: Schreiben Sie Ihren Code unten
    // 1. Temperaturvariable deklarieren und mit initialValue initialisieren
    // 2. tempPtr-Pointer erstellen, der auf temperature zeigt
    // 3. Ursprünglichen Wert mittels Pointer-Dereferenzierung ausgeben
    // 4. Temperaturwert über den Pointer mit newValue ändern
    // 5. Neuen Wert mittels Pointer-Dereferenzierung ausgeben
    
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf