Variables const
Rendez les valeurs accessibles en lecture seule.
Variables const est une leçon C Academy gratuite sur CoddyKit. Ceci est la leçon 3 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.
Signification de const
Le mot-clé const indique au compilateur que la valeur d’une variable ne doit plus changer après son initialisation.
Si vous essayez de la modifier par la suite, la compilation échoue. Cela protège les valeurs qui doivent rester fixes.
const int MAX_USERS = 100;Déclarer une constante
Vous devez donner sa valeur à une variable const lors de sa déclaration, car vous ne pourrez plus lui en attribuer une ensuite.
Ici, PI est initialisé une seule fois et utilisé comme n’importe quelle variable pour être lu.
#include <stdio.h>
int main(void) {
const double PI = 3.14159;
printf("%f\n", PI);
return 0;
}Essayer de modifier une constante
Attribuer une valeur à une variable const après sa déclaration provoque une erreur de compilation.
La ligne ci-dessous serait rejetée par le compilateur, ce qui correspond exactement à la protection recherchée.
const int LIMIT = 50;
/* LIMIT = 60; <- compile error */const est typé
Contrairement à une macro brute, une variable const possède un véritable type vérifié par le compilateur.
Vous bénéficiez ainsi de la sécurité des types : le compilateur sait que RATE est un double et avertit en cas d’utilisation incorrecte.
#include <stdio.h>
int main(void) {
const double RATE = 0.05;
double total = 200.0 * RATE;
printf("%.2f\n", total);
return 0;
}const avec des pointeurs : données
La qualification const des pointeurs comporte deux variantes. const int *p signifie que les données pointées ne peuvent pas être modifiées par l’intermédiaire de p.
Vous pouvez toujours déplacer p pour le faire pointer ailleurs, mais vous ne pouvez pas écrire par son intermédiaire.
int x = 5;
const int *p = &x;
/* *p = 9; <- error: data is const */const avec des pointeurs : pointeur
int *const p signifie que le pointeur lui-même ne peut pas être réaffecté, mais que les données peuvent être modifiées.
Lisez les déclarations de droite à gauche : « p est un pointeur const vers un int ».
int x = 5, y = 8;
int *const p = &x;
*p = 9; /* allowed */
/* p = &y; <- error: pointer is const */Protéger les arguments des fonctions
Marquer un paramètre pointeur avec const garantit que la fonction ne modifiera pas les données de l'appelant.
Cela documente l'intention et permet au compilateur de détecter les écritures accidentelles.
#include <stdio.h>
void show(const char *msg) {
printf("%s\n", msg);
}
int main(void) {
show("hello");
return 0;
}const dans un calcul
Un usage courant consiste à définir des valeurs de configuration fixes, comme un taux de taxe ou un facteur de conversion.
Lire la constante rend la formule plus claire et centralise la valeur.
#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;
}Une constante const possède un emplacement mémoire
Comme un const est une véritable variable, il occupe de la mémoire et vous pouvez obtenir son adresse.
Cela le distingue d'une macro #define, qui effectue une simple substitution de texte sans adresse.
#include <stdio.h>
int main(void) {
const int N = 42;
const int *p = &N;
printf("%d\n", *p);
return 0;
}Portée et durée de vie
Un const obéit aux mêmes règles de portée que les variables ordinaires.
Déclaré à l'intérieur d'une fonction, il est local ; déclaré à l'extérieur, il est global. Cette portée constitue un autre avantage par rapport aux macros étendues à tout le fichier.
#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 et nombres magiques
Remplacer les nombres bruts de votre code par des valeurs const nommées supprime les « nombres magiques ».
Si la valeur change un jour, vous modifiez une seule ligne au lieu de la rechercher dans tout le programme.
#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;
}Vérification rapide
Vérifiez votre compréhension du comportement de const.
Récapitulatif
Une variable const est une valeur typée en lecture seule que le compilateur protège contre toute modification.
Elle possède un type, une portée et une adresse, contrairement à une macro. Avec les pointeurs, const peut s'appliquer aux données, au pointeur ou aux deux. Nous allons maintenant comparer cela avec #define.
Questions Fréquemment Posées
La leçon « Variables const » est-elle gratuite ?
Oui — le texte complet de « Variables 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 « Variables const » ?
Rendez les valeurs accessibles en lecture seule. 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 3 sur 4.
Combien de temps prend la leçon « Variables 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.