Apprendre le langage C en 10 minutes
Petit programme
- include <stdio.h>
int main(void) {
printf("Bonjour tout le monde !\n"); return 0;
}
D'abord on inclue la bibliothèque stdio.h, responsable des entrées/sorties standards. Cela nous permettra d'utiliser la fonction printf, qui permet d'ajouter du texte dans le terminal.
Ensuite on définit la fonction appelée au démarrage du programme, main. Cette fonction renvoit un entier (int) et ne prend rien en paramètre (void). Son code est contenu dans des accolades.
Puis on appelle la fonction printf, qui va afficher la chaîne « Bonjour tout le monde ! » suivie d'un retour à la ligne (\n).
Enfin, on renvoit 0, code qui indique que tout s'est terminé normalement (return 0;)
Pour exécuter ce programme, on va le compiler:
gcc bonjour.c
La compilation donne un fichier exécutable appelé a.out
On lui donne le droite de s'exécuter avec :
chmod +x ./a.out
Puis on l'exécute avec :
./a.out
Variables
Les variables sont identifiées par leur nom et leur type. Elles peuvent être globales ou locales, si elles sont à l'intérieur d'une fonction ou d'une partie de fonction. Elles sont initialisées grâce au symbole =
- include <stdio.h>
- include <stdlib.h>
double vitesse ; /* 'vitesse' est une variable globale de type réel */
int main(int argc, char *argv[]) {
int bicyclette = 4; /* 'bicyclettes' est une variable de type entier locale à la fonction 'main', elle vaut 4 */ printf("Vous avez %d vélos\n", bicyclettes); return 0;
}
Il existe différents types de variables, voici quelques exemples :
int (nombres entiers courts), long (longs nombres entiers), float et double pour les nombres décimaux.
Ici dans le printf, on a un % suivi d'une lettre, qui permet de dire quoi afficher. "%d" représente int, "%ld" représente long, %f float ou double.
On peut récupérer une variable avec scanf:
int main(int argc, char *argv[]) {
int bicyclettes = 0; // On initialise la variable à 0 printf("Combien de vélos sont dans votre garage ? "); scanf("%d", &bicyclettes); // On demande d'entrer l'âge avec scanf printf("Vous avez %d vélos dans votre garage.\n", bicyclettes); return 0;
}
Opérations sur les nombres
On va utiliser les opérateurs standards
printf("2 + 3 = %d", resultat);
printf("4 - 3 = %d", resultat);
printf("3 * 2 = %d", resultat);
printf("4 / 2 = %d", resultat);
printf("9.0 / 2.0 = %f", resultat);
Il y a aussi des raccourcis.
variable = variable + 1; équivaut à variable++
variable = variable - 1; équivaut à variable--
variable = variable * 3; équivaut à variable *= 3;
Chaînes de caractères
Pour utiliser les chaînes de caractères, il faut inclure la bibliothèque pour les chaînes
- include <string.h>
Un autre caractère courant dans les ch est \t pour la tabulation.
Comparaison de chaînes: strcmp("manchot","linux"); 0 est renvoyé si elles sont identiques
Longueur: strlen("manchot")
Conditions
Voici un exemple avec if, else if et else:
if (taille == 85a) {
printf("Tout ce qui est petit est joli !");
} else if (taille == 90b) {
printf("Tout ce qui est moyen est bien !");
} else if (taille == 95c) {
printf("Quand c'est gros c'est beau !");
} else {
printf("Chaque taille a son charme");
}
Le même exemple avec switch:
switch (taille) { case "85a":
printf("Tout ce qui est petit est joli !"); break;
case "90b":
printf("Tout ce qui est moyen est bien !"); break;
case "95c":
printf("Quand c'est gros c'est beau !"); break;
default:
printf("Chaque taille a son charme"); break;
}
On peut aussi définir les conditions avec ? et :
jours = (bissextile) ? 366 : 365;
est équivalent à
if (bissextile)
jours = 366;
else
jours = 365;
Commentaires
Les commentaires peuvent être inclus entre /* et */, dans ce cas ils peuvent s'étaler sur plusieurs lignes :
/*
un commentaire deux commentaires
- /
Ou alors précédés de //
// un commentaire // deux commentaires