register et const
Indications et immutabilité
register et const est une leçon C Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C Academy comprend 4 leçons au total.
L’indication de registre
register suggère qu’une variable soit conservée dans un registre du CPU pour gagner en rapidité. Ce n’est qu’une indication ; les compilateurs modernes l’ignorent généralement.
#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;
}Vous ne pouvez pas obtenir son adresse
Comme une variable register peut ne pas se trouver en mémoire, vous ne pouvez pas obtenir son adresse avec &.
#include <stdio.h>
int main(void) {
register int x = 10;
printf("x = %d\n", x);
return 0;
}Pourquoi register est rarement utilisé aujourd’hui
Les compilateurs optimisants placent déjà les variables fréquemment utilisées dans des registres. Ce mot-clé est désormais essentiellement historique.
#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;
}Le qualificateur en lecture seule
const rend une variable accessible en lecture seule après son initialisation. Tenter de la modifier provoque une erreur de compilation.
#include <stdio.h>
int main(void) {
const int DAYS = 7;
printf("DAYS = %d\n", DAYS);
return 0;
}Les constantes expriment l’intention
Utiliser const pour les valeurs fixes rend le code plus clair et le protège contre les modifications accidentelles.
#include <stdio.h>
int main(void) {
const double PI = 3.14159;
double r = 2.0;
printf("area = %.2f\n", PI * r * r);
return 0;
}Lecture seule avec les pointeurs
const int *p signifie que la valeur pointée ne peut pas être modifiée par l’intermédiaire de p. Le pointeur lui-même peut toujours changer d’adresse.
#include <stdio.h>
int main(void) {
int x = 5;
const int *p = &x;
printf("*p = %d\n", *p);
return 0;
}Pointeur constant
int * const p signifie que le pointeur ne peut pas changer, mais que la valeur vers laquelle il pointe le peut.
#include <stdio.h>
int main(void) {
int x = 5;
int * const p = &x;
*p = 9;
printf("x = %d\n", x);
return 0;
}Paramètres de fonction en lecture seule
Déclarer un paramètre avec const garantit que la fonction ne le modifiera pas, ce qui aide les appelants à comprendre son comportement.
#include <stdio.h>
void show(const int n) {
printf("n = %d\n", n);
}
int main(void) {
show(42);
return 0;
}Immuable par conception
Préférez const pour toute valeur qui ne devrait pas changer. Cela permet de détecter les bogues lors de la compilation.
#include <stdio.h>
int main(void) {
const int LIMIT = 100;
int x = 90;
if (x < LIMIT)
printf("under limit\n");
return 0;
}Combiner lecture seule et variables globales
Une variable globale const est une constante partagée sûre, disponible dans tout le fichier.
#include <stdio.h>
const int VERSION = 2;
int main(void) {
printf("VERSION = %d\n", VERSION);
return 0;
}Registre et lecture seule ensemble
Vous pouvez même déclarer un compteur de boucle de ces deux façons, bien qu’ici la lecture seule signifie que le corps de la boucle ne doit pas le modifier.
#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;
}Vérification rapide
Vérifiez votre compréhension de register et const.
Récapitulatif : registre et lecture seule
Vous avez découvert deux qualificateurs.
registersuggère un stockage dans un registre, mais est généralement ignoré- Vous ne pouvez pas obtenir l’adresse d’une variable de registre
constrend une valeur accessible en lecture seule- La constance des pointeurs a deux formes : valeur constante ou pointeur constant
- Utilisez largement
constpour plus de sécurité
Apprends C avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 39
- Leçons
- 144
Questions Fréquemment Posées
La leçon « register et const » est-elle gratuite ?
Oui — le texte complet de « register et const » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C Academy, passe à CoddyKit PRO. Le cours C Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « register et const » ?
Indications et immutabilité Tu pratiques C Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C Academy ?
Aucune expérience préalable n'est requise. C Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « register et const » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C Academy ?
Oui. Chaque leçon C Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- auto et portée locale
- Variables static
- extern et global
- register et const