En bref
Les bases du C tiennent en huit briques, avec un fil conducteur : ici, rien n’est caché. Le cycle de travail d’abord : on écrit, on compile (gcc transforme le fichier en exécutable), on exécute — trois étapes visibles, assumées. La structure ensuite : un include pour importer les outils, une fonction main comme point d’entrée. Puis les types stricts (int, float, double, char) déclarés à la naissance de chaque variable — avec une surprise fondatrice : pas de type texte natif, une chaîne est un tableau de caractères terminé par un marqueur de fin. Suivent printf et scanf avec leurs formats (%d, %f, %s), les opérateurs, les conditions et boucles classiques, les fonctions annoncées par leur prototype, et les tableaux à taille fixe. En filigrane partout : la mémoire — que le symbole & te fait toucher du doigt dès scanf, en attendant le grand chapitre des pointeurs.
Apprendre les bases du C, c’est faire de la programmation sans les coulisses fermées : chaque notion te montre un peu de la machine qu’elle pilote. Ce guide des bases du C parcourt le socle dans l’ordre d’apprentissage, en nommant à chaque brique ce qu’elle révèle. C’est le compagnon de la deuxième étape de notre guide complet pour apprendre le C — compilateur gcc installé, on démarre.
Compiler et exécuter : ton premier programme C
Contrairement aux langages interprétés, le C impose un détour fondateur : la compilation. Ton fichier .c est du texte ; la commande gcc mon_programme.c -o mon_programme le traduit en exécutable — un vrai programme autonome que la machine lance directement, sans interprète. Écrire, compiler, exécuter : ce cycle en trois temps est ton nouveau rythme de travail, et sa deuxième étape est une alliée — le compilateur relit tout ton code avant de produire quoi que ce soit, et refuse de continuer s’il trouve une incohérence, ligne à l’appui.
Le programme minimal révèle déjà la philosophie : une ligne #include <stdio.h> importe la bibliothèque d’entrées-sorties (rien n’est chargé d’office — tu demandes ce que tu utilises), puis une fonction main — le point d’entrée universel — contient tes instructions entre accolades, chacune close par un point-virgule. À l’intérieur, printf(« Bonjour !\n »); affiche ton premier message, le \n sautant la ligne. Adopte tout de suite le réflexe du professionnel : compile avec l’option -Wall, qui active tous les avertissements — le compilateur devient alors un relecteur exigeant qui signale même ce qui compile mais sent mauvais. En C, on lit ses avertissements comme on lit son courrier : intégralement.
Types, saisie, conditions, boucles : la logique au plus près de la machine
Chaque variable C déclare son type à la naissance — int age = 25; float prix = 19.99; char initiale = ‘S’; — et ce type dit très concrètement combien d’octets la machine réserve et comment elle les interprète : première fenêtre sur la mémoire. La surprise du débutant arrive vite : pas de type texte natif — le texte attendra la brique des chaînes, et cette absence te dit déjà quelque chose de la philosophie du langage : rien n’existe qui ne soit construit.
Le dialogue passe par deux fonctions à formats : printf affiche en insérant les valeurs via des marqueurs — %d pour un entier, %f pour un flottant, %c pour un caractère — et scanf lit la saisie avec les mêmes formats, assorti d’un détail lourd de sens : scanf(« %d », &age); exige le symbole &, « l’adresse de » — tu ne donnes pas la variable, tu donnes l’endroit où elle habite. Retiens l’intuition sans creuser encore : c’est l’avant-goût des pointeurs. La logique, elle, te sera familière : conditions if/else entre accolades (avec == pour comparer — le = seul affecte, piège classique), opérateurs logiques && et ||, et les boucles for et while dans leur forme canonique — celle que tous les autres langages ont copiée.
Fonctions, tableaux et chaînes de caractères
Les fonctions C annoncent leur contrat complet : int carre(int n) { return n * n; } — type de retour, nom, paramètres typés. Particularité d’organisation : le compilateur lisant de haut en bas, une fonction doit être connue avant d’être appelée — d’où les prototypes, ces déclarations d’une ligne placées en tête de fichier qui annoncent la signature avant la définition. C’est ta première leçon d’architecture de fichier : en C, l’ordre des choses n’est jamais un détail.
Les tableaux réservent une série de cases contiguës en mémoire — int notes[5]; — de taille fixe, indexées depuis zéro, et sans garde-fou : lire notes[7] dans un tableau de cinq ne déclenche aucun message poli, juste un comportement imprévisible — ta première rencontre avec la responsabilité mémoire, qui fait la réputation formatrice du langage. Et le texte, enfin : une chaîne C est un tableau de char terminé par le caractère nul ‘\0’ — char prenom[] = « Sami »; occupe cinq cases, la sentinelle comprise. La bibliothèque string.h fournit les outils (strlen, strcpy, strcmp), mais tu sais désormais ce qu’ils manipulent vraiment : des cases mémoire alignées, rien de plus. Ton socle est posé — huit briques sans magie. Fais-le travailler sur nos 10 exercices de C, du premier printf jusqu’aux structures, et garde le vocabulaire à portée : en C, chaque terme a un sens précis, et le langage te le fera respecter.
Un mot d’équipement pour la route : apprends deux options de gcc dès maintenant — -Wall, déjà citée, pour tous les avertissements, et -o pour nommer ton exécutable — puis, quand tes programmes grandiront, fais connaissance avec le débogueur gdb, qui exécute ton code pas à pas et montre l’état des variables à chaque ligne. En C plus que partout ailleurs, voir la machine travailler ligne après ligne vaut tous les schémas du monde — et transforme les bugs opaques en simples observations.
Questions fréquentes
Quelles sont les notions de base à apprendre en C ?
Dans l’ordre : le cycle écrire-compiler-exécuter avec gcc, la structure include + main, les types stricts (int, float, char), printf et scanf avec leurs formats, les opérateurs et conditions, les boucles for et while, les fonctions avec prototypes, puis les tableaux et les chaînes de caractères.
Pourquoi faut-il compiler un programme C ?
Parce que le C produit de vrais exécutables : le compilateur traduit ton code en instructions machine autonomes, après avoir vérifié la cohérence de l’ensemble. C’est ce qui donne au C sa vitesse et son omniprésence dans les systèmes — et ce qui t’offre un relecteur intransigeant à chaque compilation.
Pourquoi n’y a-t-il pas de type texte en C ?
Par philosophie de simplicité : le C ne fournit que les briques élémentaires, et le texte s’y construit comme un tableau de caractères terminé par le marqueur nul ‘\0’. La bibliothèque string.h outille leur manipulation, mais la structure sous-jacente reste visible — et formatrice.
Que signifie le & dans scanf ?
C’est l’opérateur « adresse de » : scanf a besoin de savoir où écrire la valeur saisie, tu lui passes donc l’adresse mémoire de la variable plutôt que la variable elle-même. C’est le premier contact concret avec les adresses — l’antichambre du chapitre des pointeurs.
Sources
- cppreference — la référence complète du langage C
- freeCodeCamp — tutoriels C gratuits et progressifs
Cet article a une vocation informative et pédagogique. Les plateformes, outils et formations éventuellement cités le sont à titre d’exemple ; compare plusieurs options avant de t’engager ou de payer.

