Menu
Coddy logo textTech

Pointer und Arrays

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

Arrays und Pointer haben in C++ eine besondere Beziehung. Wenn Sie ein Array deklarieren, fungiert der Name des Arrays tatsächlich als Pointer auf das erste Element dieses Arrays. Diese Verbindung ermöglicht es Ihnen, Pointer zu verwenden, um auf leistungsstarke Weise mit Arrays zu arbeiten.

Betrachten Sie diese Array-Deklaration:

int numbers[5] = {10, 20, 30, 40, 50};
int* ptr = numbers;  // ptr zeigt nun auf numbers[0]

Hier ist numbers äquivalent zu &numbers[0] – beide geben Ihnen die Adresse des ersten Elements. Der Zeiger ptr zeigt nun auf denselben Speicherort.

Sobald Sie einen Pointer auf ein Array haben, können Sie Pointer-Arithmetik verwenden, um durch die Elemente zu navigieren. Das Addieren von 1 zu einem Pointer bewegt diesen zum nächsten Element desselben Typs:

ptr++;        // Zeigt jetzt auf numbers[1]
ptr = ptr + 2; // Zeigt jetzt auf numbers[3]

Sie können den Pointer an jeder beliebigen Position dereferenzieren, um auf den Wert zuzugreifen: *ptr liefert Ihnen den Wert an der aktuellen Position, und *(ptr + 1) liefert Ihnen den Wert des nächsten Elements.

Diese Zeiger-Array-Beziehung ermöglicht es Ihnen, durch Arrays unter Verwendung von Zeigern anstelle von herkömmlichen indexbasierten Schleifen zu iterieren, was einen alternativen Ansatz zum Durchlaufen von Arrays bietet.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das einen Pointer verwendet, um durch ein Array zu iterieren und jedes Element auszugeben, um die Beziehung zwischen Pointern und Arrays zu demonstrieren.

Ihnen wird das folgende Array zur Verfügung gestellt:

int values[6] = {15, 23, 8, 42, 17, 31};

Ihr Programm sollte:

  1. Einen Pointer namens ptr erstellen, der auf das erste Element des values Arrays zeigt
  2. Pointer-Arithmetik verwenden, um durch alle 6 Elemente des Arrays zu iterieren
  3. Jedes Element durch Dereferenzierung des Pointers an jeder Position ausgeben
  4. Den Pointer mithilfe von Pointer-Arithmetik zum nächsten Element bewegen (den Pointer inkrementieren)

Geben Sie jedes Element in einer separaten Zeile im folgenden Format aus:

Element: [value]

Die Ausgabe sollte alle 6 Elemente in der Reihenfolge zeigen, in der sie im Array erscheinen, wobei der Zugriff über Pointer-Dereferenzierung anstatt über Array-Indizierung erfolgt.

Spickzettel

Array-Namen fungieren als Pointer auf das erste Element. Sie können einen Array-Namen direkt einem Pointer zuweisen:

int numbers[5] = {10, 20, 30, 40, 50};
int* ptr = numbers;  // ptr zeigt auf numbers[0]

Verwenden Sie Pointer-Arithmetik, um durch Array-Elemente zu navigieren:

ptr++;        // Zum nächsten Element bewegen
ptr = ptr + 2; // Um 2 Elemente vorwärts bewegen

Dereferenzieren Sie den Pointer, um auf Werte zuzugreifen:

*ptr          // Wert des aktuellen Elements
*(ptr + 1)    // Wert des nächsten Elements

Dies ermöglicht das Pointer-basierte Durchlaufen von Arrays als Alternative zu indexbasierten Schleifen.

Probier es selbst

#include <iostream>
using namespace std;

int main() {
    // Gegebenes Array
    int values[6] = {15, 23, 8, 42, 17, 31};
    
    // TODO: Erstellen Sie einen Pointer namens 'ptr', der auf das erste Element des Arrays zeigt
    
    // TODO: Verwenden Sie eine Schleife, um durch alle 6 Elemente mittels Pointer-Arithmetik zu iterieren
    // TODO: Geben Sie jedes Element aus, indem Sie den Pointer dereferenzieren
    // TODO: Bewegen Sie den Pointer mittels Pointer-Arithmetik zum nächsten Element
    
    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