0Pricing
C Academy · Lektion

const-Variablen

Machen Sie Werte schreibgeschützt.

const-Variablen ist eine kostenlose C Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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 const bedeutet

Das Schlüsselwort const teilt dem Compiler mit, dass sich der Wert einer Variablen nach der Initialisierung nicht ändern darf.

Wenn Sie später versuchen, ihn zu ändern, schlägt die Kompilierung fehl. So werden Werte geschützt, die unverändert bleiben sollen.

const int MAX_USERS = 100;

Eine const-Variable deklarieren

Sie müssen einer const-Variablen bei der Deklaration einen Wert geben, da Sie ihr danach keinen Wert mehr zuweisen können.

Hier wird PI einmal initialisiert und anschließend wie jede normale Variable zum Lesen verwendet.

#include <stdio.h>
int main(void) {
    const double PI = 3.14159;
    printf("%f\n", PI);
    return 0;
}

Versuchen, eine const-Variable zu ändern

Eine Zuweisung an eine const-Variable nach ihrer Deklaration ist ein Kompilierungsfehler.

Die folgende Zeile würde vom Compiler abgewiesen – genau das ist der gewünschte Schutz.

const int LIMIT = 50;
/* LIMIT = 60; <- compile error */

const ist typisiert

Im Gegensatz zu einem einfachen Makro besitzt eine const-Variable einen echten Typ, den der Compiler prüft.

Das bietet Typsicherheit: Der Compiler weiß, dass RATE ein double ist, und warnt bei falscher Verwendung.

#include <stdio.h>
int main(void) {
    const double RATE = 0.05;
    double total = 200.0 * RATE;
    printf("%.2f\n", total);
    return 0;
}

const mit Zeigern: Daten

Bei Zeigern gibt es zwei Arten von const. const int *p bedeutet, dass die Daten, auf die gezeigt wird, nicht über p geändert werden können.

Sie können p weiterhin so ändern, dass der Zeiger auf eine andere Stelle zeigt, aber Sie können nicht über ihn schreiben.

int x = 5;
const int *p = &x;
/* *p = 9; <- error: data is const */

const mit Zeigern: Zeiger

int *const p bedeutet, dass der Zeiger selbst nicht neu zugewiesen werden kann, die Daten aber geändert werden können.

Lesen Sie Deklarationen von rechts nach links: "p ist ein const-Zeiger auf int".

int x = 5, y = 8;
int *const p = &x;
*p = 9;       /* allowed */
/* p = &y;    <- error: pointer is const */

Funktionsargumente schützen

Wenn Sie einen Zeigerparameter mit const markieren, versprechen Sie, dass die Funktion die Daten des Aufrufers nicht verändert.

Damit dokumentieren Sie die Absicht und ermöglichen es dem Compiler, versehentliche Schreibzugriffe zu erkennen.

#include <stdio.h>
void show(const char *msg) {
    printf("%s\n", msg);
}
int main(void) {
    show("hello");
    return 0;
}

const in einer Berechnung

Eine häufige Verwendung sind feste Konfigurationswerte, etwa ein Steuersatz oder ein Umrechnungsfaktor.

Das Lesen der Konstanten hält die Formel übersichtlich und den Wert an einer einzigen Stelle.

#include <stdio.h>
int main(void) {
    const double KM_PER_MILE = 1.609;
    double miles = 10.0;
    printf("%.2f km\n", miles * KM_PER_MILE);
    return 0;
}

const hat einen Speicherort

Da ein const eine echte Variable ist, belegt es Speicher, und Sie können seine Adresse ermitteln.

Das unterscheidet es von einem #define-Makro, das lediglich eine Textersetzung ohne Adresse ist.

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

Gültigkeitsbereich und Lebensdauer

Ein const folgt denselben Regeln für den Gültigkeitsbereich wie gewöhnliche Variablen.

Wird es innerhalb einer Funktion deklariert, ist es lokal; wird es außerhalb deklariert, ist es global. Dieser Gültigkeitsbereich ist ein weiterer Vorteil gegenüber dateiweiten Makros.

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

const und magische Zahlen

Wenn Sie rohe Zahlen in Ihrem Code durch benannte const-Werte ersetzen, verschwinden die „magischen Zahlen“.

Falls sich der Wert jemals ändert, bearbeiten Sie nur eine Zeile, anstatt das gesamte Programm zu durchsuchen.

#include <stdio.h>
int main(void) {
    const int SECONDS_PER_MIN = 60;
    int minutes = 5;
    printf("%d seconds\n", minutes * SECONDS_PER_MIN);
    return 0;
}

Schnelltest

Überprüfen Sie Ihr Verständnis des Verhaltens von const.

Zusammenfassung

Eine const-Variable ist ein typisierter, schreibgeschützter Wert, den der Compiler vor Änderungen schützt.

Sie besitzt im Gegensatz zu einem Makro einen Typ, einen Gültigkeitsbereich und eine Adresse. Bei Zeigern kann sich const auf die Daten, den Zeiger oder auf beides beziehen. Als Nächstes vergleichen wir dies mit #define.

Häufig gestellte Fragen

Ist die Lektion „const-Variablen“ kostenlos?

Ja — der vollständige Text von „const-Variablen“ 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 „const-Variablen“?

Machen Sie Werte schreibgeschützt. 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 3 von 4.

Wie lange dauert die Lektion „const-Variablen“?

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. Enums definieren
  2. Enum-Werte und Wertebereiche
  3. const-Variablen
  4. #define-Konstanten
← Zurück zu C Academy