Menu
Coddy logo textTech

Zeiger deklarieren

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

Nachdem Sie nun verstanden haben, was Pointers sind, lernen wir, wie man sie erstellt. Das Deklarieren einer Pointer-Variable folgt einer spezifischen Syntax, die dem Compiler mitteilt, auf welchen Datentyp der Pointer zeigen wird.

Die grundlegende Syntax zum Deklarieren eines Pointers lautet: data_type *pointer_name;

int *ptr;        // Deklariert einen Zeiger auf eine Ganzzahl
char *ch_ptr;    // Deklariert einen Zeiger auf ein Zeichen
float *f_ptr;    // Deklariert einen Zeiger auf eine Gleitkommazahl

Der Stern (*) macht dies zu einer Pointer-Deklaration. Er teilt dem Compiler mit, dass diese Variable eine Speicheradresse speichern wird und nicht den eigentlichen Datenwert. Wenn Sie int *ptr; deklarieren, sagen Sie damit: „ptr ist ein Pointer, der die Adresse einer Integer-Variablen speichern kann.“

Es ist eine gute Praxis, Pointee mit NULL zu initialisieren, wenn sie noch nicht auf eine gültige Speicheradresse zeigen. Dies verhindert, dass sie auf zufällige Speicherorte zeigen: int *ptr = NULL;

Beim Drucken von Pointer-Adressen unter Verwendung von printf verwenden Sie den Formatbezeichner %p. Es wird oft empfohlen, den Pointer nach (void *) zu casten, um Kompatibilität und korrekte Formatierung zu gewährleisten: printf("%p", (void *)ptr);

Beachten Sie, dass der Datentyp vor dem Sternchen angibt, auf welche Art von Daten der pointer zeigen wird. Dies ist wichtig, da verschiedene Datentypen unterschiedlich viel Speicherplatz belegen und der Compiler diese Informationen für eine ordnungsgemäße Speicherverwaltung benötigt.

challenge icon

Aufgabe

Einfach
Schreiben Sie ein C-Programm, das die korrekte Zeiger-Deklarationssyntax demonstriert. Ihr Programm sollte:
  1. Einen Zeiger auf einen `integer` namens int_ptr deklarieren, initialisiert mit NULL
  2. Einen Zeiger auf einen `character` namens char_ptr deklarieren, initialisiert mit NULL
  3. Einen Zeiger auf einen `float` namens float_ptr deklarieren, initialisiert mit NULL
  4. Die in jedem Zeiger gespeicherten Speicheradressen unter Verwendung von printf mit dem Formatbezeichner %p ausgeben. Casten Sie den Zeiger beim Drucken nach (void*), um die korrekte Formatierung zu gewährleisten, zum Beispiel: printf("Label: %p\n", (void*)ptr);

Ihre Ausgabe sollte die drei Zeigeradressen im folgenden Format anzeigen:

Integer pointer: [address]
Character pointer: [address]  
Float pointer: [address]

Beachten Sie, dass die tatsächlichen Speicheradressen variieren, aber das Format und die Beschriftungen genau wie oben gezeigt übereinstimmen müssen.

Probier es selbst

#include <stdio.h>

int main() {
    // TODO: Deklariere deine Zeiger hier
    
    
    // TODO: Gib die Zeigeradressen im erforderlichen 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