Menu
Coddy logo textTech

Zeiger deklarieren

Teil des Abschnitts Logik & Ablauf der C-Journey von Coddy. Lektion 2 von 63.

Da du nun verstanden hast, was Zeiger sind, wollen wir lernen, wie man sie erstellt. Die Deklaration einer Zeigervariable folgt einer bestimmten Syntax, die dem Compiler mitteilt, auf welchen Datentyp der Zeiger zeigen wird.

Die grundlegende Syntax zum Deklarieren eines Zeigers 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
Schreibe ein C-Programm, das die korrekte Syntax für Zeigerdeklarationen demonstriert. Dein Programm sollte:
  1. Einen Zeiger auf eine Ganzzahl namens int_ptr deklarieren, initialisiert mit NULL
  2. Einen Zeiger auf ein Zeichen namens char_ptr deklarieren, initialisiert mit NULL
  3. Einen Zeiger auf eine Gleitkommazahl namens float_ptr deklarieren, initialisiert mit NULL
  4. Die in jedem Zeiger gespeicherten Speicheradressen mit printf und dem Formatspezifizierer %p ausgeben. Wandle den Zeiger bei der Ausgabe in (void*) um, um die korrekte Formatierung sicherzustellen, zum Beispiel: printf("Label: %p\n", (void*)ptr);

Deine Ausgabe sollte die drei Zeigeradressen im folgenden Format anzeigen:

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

Beachte, dass die tatsächlichen Speicheradressen variieren werden, das Format und die Bezeichnungen jedoch 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 Logik & Ablauf

Übe selbstständig: Online-C-Compiler