0Pricing
C Academy · Lektion

auto und lokaler Gültigkeitsbereich

Variablen auf Blockebene

auto und lokaler Gültigkeitsbereich ist eine kostenlose C Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Gültigkeitsbereich

Der Gültigkeitsbereich ist der Codebereich, in dem ein Name sichtbar ist. In C sind Variablen, die innerhalb eines Blocks deklariert werden, nur in diesem Block sichtbar.

#include <stdio.h>
int main(void) {
    int x = 5;
    printf("x = %d\n", x);
    return 0;
}

Die Speicherklasse auto

Lokale Variablen sind standardmäßig auto. Das Schlüsselwort wird nur selten geschrieben, da es für jede Variable mit Block-Gültigkeitsbereich implizit gilt.

#include <stdio.h>
int main(void) {
    auto int n = 42;
    printf("n = %d\n", n);
    return 0;
}

Block-Gültigkeitsbereich

Ein geschweiftes Klammerpaar erzeugt einen neuen Block. Variablen darin verschwinden, sobald der Block endet.

#include <stdio.h>
int main(void) {
    {
        int inner = 10;
        printf("inner = %d\n", inner);
    }
    return 0;
}

Automatische Lebensdauer

Eine auto-Variable wird beim Betreten ihres Blocks erzeugt und beim Verlassen des Blocks zerstört. Das ist ihre Lebensdauer.

#include <stdio.h>
int main(void) {
    for (int i = 0; i < 2; i++) {
        int fresh = i * 10;
        printf("fresh = %d\n", fresh);
    }
    return 0;
}

Namensüberdeckung

Eine innere Variable kann eine äußere Variable mit demselben Namen überdecken. Innerhalb ihres Blocks hat der innere Name Vorrang.

#include <stdio.h>
int main(void) {
    int x = 1;
    {
        int x = 99;
        printf("inner x = %d\n", x);
    }
    printf("outer x = %d\n", x);
    return 0;
}

Funktionsparameter sind lokal

Auch Parameter sind lokale Variablen. Sie existieren nur, solange die Funktion ausgeführt wird.

#include <stdio.h>
int square(int n) {
    return n * n;
}
int main(void) {
    printf("%d\n", square(6));
    return 0;
}

Nicht initialisierte lokale Variablen

Eine auto-Variable wird nicht automatisch auf null gesetzt. Wenn Sie sie vor einer Zuweisung lesen, erhalten Sie einen unbestimmten Wert. Initialisieren Sie Variablen immer.

#include <stdio.h>
int main(void) {
    int x = 0;
    x = x + 5;
    printf("x = %d\n", x);
    return 0;
}

Lokale Variablen pro Aufruf

Jeder Aufruf einer Funktion erhält eine eigene, neue Kopie ihrer lokalen Variablen.

#include <stdio.h>
void greet(void) {
    int count = 1;
    printf("count = %d\n", count);
}
int main(void) {
    greet();
    greet();
    return 0;
}

Warum lokale Variablen sinnvoll sind

Ein lokaler Gültigkeitsbereich hält Variablen voneinander getrennt und verhindert unbeabsichtigte Wechselwirkungen zwischen verschiedenen Teilen eines Programms.

#include <stdio.h>
int main(void) {
    int a = 3;
    {
        int b = 4;
        printf("a + b = %d\n", a + b);
    }
    return 0;
}

Verschachtelte Blöcke

Blöcke können verschachtelt werden. Innere Blöcke können äußere Variablen lesen, äußere Blöcke jedoch keine inneren.

#include <stdio.h>
int main(void) {
    int outer = 1;
    {
        int middle = 2;
        {
            int inner = 3;
            printf("%d\n", outer + middle + inner);
        }
    }
    return 0;
}

Gültigkeitsbereich und Schleifen

Eine im for-Kopf deklarierte Variable ist nur innerhalb der Schleife gültig.

#include <stdio.h>
int main(void) {
    int sum = 0;
    for (int i = 1; i <= 4; i++)
        sum += i;
    printf("sum = %d\n", sum);
    return 0;
}

Kurzer Test

Testen Sie Ihr Verständnis von auto und lokalen Gültigkeitsbereichen.

Rückblick: auto und lokale Gültigkeitsbereiche

Sie haben gelernt, wie sich lokale Variablen verhalten.

  • Variablen mit Block-Gültigkeitsbereich sind standardmäßig auto
  • Ihre Lebensdauer ist an den Block gebunden
  • Innere Namen können äußere Namen überdecken
  • Lokale Variablen werden nicht automatisch initialisiert
  • Jeder Funktionsaufruf erhält neue lokale Variablen

Häufig gestellte Fragen

Ist die Lektion „auto und lokaler Gültigkeitsbereich“ kostenlos?

Ja — der vollständige Text von „auto und lokaler Gültigkeitsbereich“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „auto und lokaler Gültigkeitsbereich“?

Variablen auf Blockebene Du übst C Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C Academy zu starten?

Keine Vorkenntnisse erforderlich. C Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „auto und lokaler Gültigkeitsbereich“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C Academy-Lektion Code schreiben und ausführen?

Ja. Jede C Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. auto und lokaler Gültigkeitsbereich
  2. static-Variablen
  3. extern und global
  4. register und const
← Zurück zu C Academy