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 42Sie 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 habenDieser 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.
Aufgabe
EinfachErstellen 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:
- Deklarieren Sie eine Integer-Variable namens
temperatureund initialisieren Sie diese mit dem ersten Eingabewert - Erstellen Sie einen Pointer namens
tempPtr, der auf die Variabletemperaturezeigt - Geben Sie den ursprünglichen Wert aus, indem Sie den Pointer dereferenzieren
- Verwenden Sie den Dereferenzierungsoperator, um den Wert von
temperatureüber den Pointer auf den zweiten Eingabewert zu ändern - 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 42Sie 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 habenDieser 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;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Pointer und Speicher
Was ist ein Pointer?AdressoperatorDereferenzierungsoperatorNull-PointerPointer und ArraysDynamischer Speicher mit 'new'Speicher freigeben mit 'delete'Zusammenfassung – Pointer-Übung2Vektoren (Dynamische Arrays)
Einführung in std::vectorEinen Vector erstellenElemente hinzufügenAuf Elemente zugreifenVector-GrößeIterieren mit einer For-SchleifeRange-based For-SchleifeElemente entfernenZusammenfassung – Vector-Operationen3Projekt: Aufgabenlisten-Tool
ProjektübersichtEine Aufgabe hinzufügen