0Pricing
C Academy · Lektion

register und const

Hinweise und Unveränderlichkeit

register und const ist eine kostenlose C Academy-Lektion auf CoddyKit. Dies ist Lektion 4 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.

Der Hinweis register

register schlägt vor, eine Variable aus Geschwindigkeitsgründen in einem CPU-Register zu speichern. Es ist nur ein Hinweis; moderne Compiler ignorieren ihn normalerweise.

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

Ihre Adresse kann nicht ermittelt werden

Da eine register-Variable möglicherweise nicht im Speicher liegt, dürfen Sie ihre Adresse nicht mit & ermitteln.

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

Warum register heute selten verwendet wird

Optimierende Compiler legen häufig verwendete Variablen ohnehin in Registern ab. Das Schlüsselwort hat heute hauptsächlich historische Bedeutung.

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

Der Qualifizierer const

const macht eine Variable nach der Initialisierung schreibgeschützt. Ein Änderungsversuch führt zu einem Compilerfehler.

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

Konstanten dokumentieren die Absicht

Die Verwendung von const für feste Werte macht den Code verständlicher und schützt vor unbeabsichtigten Änderungen.

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

const mit Zeigern

const int *p bedeutet, dass der Wert, auf den gezeigt wird, über p nicht geändert werden kann. Der Zeiger selbst kann weiterhin auf eine andere Adresse zeigen.

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

Konstanter Zeiger

int * const p bedeutet, dass der Zeiger nicht geändert werden kann, der Wert, auf den er zeigt, jedoch schon.

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

const bei Funktionsparametern

Wenn Sie einen Parameter als const markieren, versprechen Sie, dass die Funktion ihn nicht ändert. Das erleichtert es Aufrufern, das Verhalten nachzuvollziehen.

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

Unveränderlichkeit von Anfang an

Bevorzugen Sie const für jeden Wert, der sich nicht ändern soll. So werden Fehler bereits zur Compile-Zeit erkannt.

#include <stdio.h>
int main(void) {
    const int LIMIT = 100;
    int x = 90;
    if (x < LIMIT)
        printf("under limit\n");
    return 0;
}

const und globale Variablen kombinieren

Eine globale const-Variable ist eine sichere, gemeinsam verwendete Konstante, die in der gesamten Datei verfügbar ist.

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

register und const zusammen

Sie können einen Schleifenzähler sogar mit beiden Schlüsselwörtern versehen, wobei const hier bedeutet, dass der Schleifenkörper ihn nicht ändern darf.

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

Kurzer Test

Testen Sie Ihr Verständnis von register und const.

Rückblick: register und const

Sie haben zwei Qualifizierer kennengelernt.

  • register gibt einen Hinweis auf die Registerspeicherung, wird aber normalerweise ignoriert
  • Die Adresse einer register-Variable kann nicht ermittelt werden
  • const macht einen Wert schreibgeschützt
  • Bei Zeigern gibt es zwei Formen von const: konstanter Wert oder konstanter Zeiger
  • Verwenden Sie const großzügig, um die Sicherheit zu erhöhen

Häufig gestellte Fragen

Ist die Lektion „register und const“ kostenlos?

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

Hinweise und Unveränderlichkeit 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 4 von 4.

Wie lange dauert die Lektion „register und const“?

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