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.
registergibt einen Hinweis auf die Registerspeicherung, wird aber normalerweise ignoriert- Die Adresse einer
register-Variable kann nicht ermittelt werden constmacht einen Wert schreibgeschützt- Bei Zeigern gibt es zwei Formen von const: konstanter Wert oder konstanter Zeiger
- Verwenden Sie
constgroß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
- auto und lokaler Gültigkeitsbereich
- static-Variablen
- extern und global
- register und const