Aufgabe 11
- Aufgabenstellung
- Lösung
In dieser Aufgabe lernen Sie den grundlegenden Umgang mit Zeigern in C++ sowie
den Zusammenhang zwischen Variablen, deren Adressen im Speicher und Zeigern.
Schreiben Sie ein Programm, das eine ganze Zahl mit dem Namen a deklariert und ihr
den Wert 10 zuweist. Danach soll ein Zeiger p erstellt werden, der auf die Variable a zeigt.
Gib zunächst den Wert von a direkt über die Variable aus.
Danach geben Sie den Wert noch einmal über den Zeiger p aus,
indem Sie den Dereferenzierungsoperator * verwenden.
Im nächsten Schritt soll der Wert von a über den Zeiger verändert werden,
zum Beispiel auf 20. Anschließend geben Sie erneut den Wert von a sowohl direkt
als auch über den Zeiger aus, um zu zeigen, dass sich der Wert tatsächlich geändert hat.
Zusätzlich soll Ihr Programm auch die Adresse von a im Speicher ausgeben.
Verwende dazu den Adressoperator & vor a. Geben Sie außerdem den Inhalt von p aus –
also die Adresse, auf die der Zeiger zeigt – und überzeugen Sie sich davon,
dass es sich um die gleiche Adresse handelt wie bei a.
Hinweise
Lesen und programmieren Sie die Anweisungen in komplett chronologischer Reihenfolge, so wie sie im Text vorkommen. Denken Sie Code-Zeile für Code-Zeile, um sich nicht verwirren zu lassen.
#include <iostream>
using namespace std;
int main() {
int a = 10; // Ganze Zahl a mit dem Wert 10
int* p = &a; // Zeiger p zeigt auf die Adresse von a
cout << "Wert von a: " << a << endl; // Ausgabe des Werts direkt über a
cout << "Wert über Zeiger p: " << *p << endl; // Ausgabe des Werts über den Zeiger (Dereferenzierung)
*p = 20; // Wert von a wird über den Zeiger geändert
cout << "Neuer Wert von a: " << a << endl; // Direkte Ausgabe nach Änderung
cout << "Wert über Zeiger p (nach Änderung): " << *p << endl; // Ausgabe über Zeiger nach Änderung
cout << "Adresse von a: " << &a << endl; // Ausgabe der Adresse von a im Speicher
cout << "Adresse, auf die p zeigt: " << p << endl; // Ausgabe der Adresse, die im Zeiger gespeichert ist
return 0;
}