Menu
Coddy logo textTech

Der Adressoperator (&)

Teil des Abschnitts Logic & Flow der C-Journey von Coddy — Lektion 3 von 63.

Nachdem Sie nun Pointer deklarieren können, müssen Sie lernen, wie Sie tatsächlich eine Speicheradresse in ihnen speichern. Der Adressoperator (&) ist der Schlüssel, um die Speicheradresse einer beliebigen Variablen zu erhalten.

Wenn Sie den &-Operator vor einen Variablennamen setzen, gibt er die Speicheradresse zurück, an der diese Variable gespeichert ist. Stellen Sie es sich wie die Frage vor: „Wo befindet sich diese Variable im Speicher?“

int age = 25;
int *ptr;
ptr = &age;    // Speichere die Adresse von 'age' in 'ptr'

In diesem Beispiel gibt uns &age die Speicheradresse der age-Variable. Wir weisen diese Adresse dann unserem Pointer ptr zu. Jetzt "zeigt" ptr auf die age-Variable.

Der Adressoperator ist essenziell, da er die Brücke zwischen regulären Variablen und Pointern bildet. Ohne ihn könnten Sie einem Pointer nicht mitteilen, auf welche Variable er zeigen soll. Denken Sie daran, dass die Datentypen übereinstimmen müssen – Sie können die Adresse eines Integers nur einem Pointer zuweisen, der für Integer deklariert wurde.

challenge icon

Aufgabe

Einfach

Schreiben Sie ein C-Programm, das die Verwendung des Adressoperators demonstriert, um Variablen mit Pointern zu verknüpfen. Ihr Programm sollte:

  1. Deklarieren Sie eine Integer-Variable namens number und initialisieren Sie diese mit dem Wert 42
  2. Deklarieren Sie eine Character-Variable namens letter und initialisieren Sie diese mit dem Wert 'X'
  3. Deklarieren Sie einen Pointer auf einen Integer namens num_ptr
  4. Deklarieren Sie einen Pointer auf einen Character namens char_ptr
  5. Verwenden Sie den Adressoperator, um die Adresse von number an num_ptr zuzuweisen
  6. Verwenden Sie den Adressoperator, um die Adresse von letter an char_ptr zuzuweisen
  7. Geben Sie die in beiden Pointern gespeicherten Adressen mit printf und dem Formatbezeichner %p aus

Ihre Ausgabe sollte die Pointer-Adressen im folgenden Format anzeigen:

Address of number: [address]
Address of letter: [address]

Die tatsächlichen Speicheradressen variieren zwischen den Programmdurchläufen, aber das Format und die Beschriftungen müssen exakt wie oben gezeigt übereinstimmen.

Spickzettel

Der Adressoperator (&) gibt die Speicheradresse einer Variablen zurück:

int age = 25;
int *ptr;
ptr = &age;    // Speichere die Adresse von 'age' in 'ptr'

Der Adressoperator ist essenziell, um Variablen mit Pointern zu verknüpfen. Datentypen müssen übereinstimmen – man kann die Adresse eines Integers nur einem Pointer zuweisen, der für Integer deklariert wurde.

Verwenden Sie den Formatspezifizierer %p, um Pointer-Adressen mit printf auszugeben.

Probier es selbst

#include <stdio.h>

int main() {
    // TODO: Schreiben Sie Ihren Code hier
    // 1. Deklarieren und initialisieren Sie die Variablen
    // 2. Deklarieren Sie die Pointer
    // 3. Verwenden Sie den Adressoperator, um Adressen zuzuweisen
    // 4. Geben Sie die Adressen im gezeigten Format aus
    
    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 Logic & Flow