Skip to main content

Cheat-Sheet

Introduction

Le langage C est un langage de bas niveau qui doit être compilé avant d'être exécuté.

Variables

En C, les variables ont 4 caractéristiques :

  • Un type (int, floatfloat, char ou char)void)
  • Un identifiant (un nom).
  • Une valeur (correspondant au type).
  • Une adresse mémoire (en hexadécimale).

Déclaration

  • Entier :
int myInteger = 0;
  • Flottant :
float myFloat = 26.34;
  • Caractère :
char myChar = 'J';
// Avec le code ASCII (caractère 'A')
char myChar = 65;
  • Chaîne de caractères (tableau de char terminant par '\0') :
char name[256]="Elieroc";
    Tableau :
    int monTableau[5]={1, 4, 7};
      Constante (en majuscule) :
      const float PI = 3.14;
        Statique (la valeur reste en mémoire après avoir quittée la fonction appelante) :
        static int maVariableStatique = 2;
          Préprocesseur :
          #define LONGUEUR (15)

          Bibliothèques

          • Standard :
          #include <stdlib.h>
          • Standard Input/Output :
          #include <stdio.h>
          • String (pour les chaînes de caractères :
          #include <string.h>

          Assert (pour les vérifications) :

          #include <assert.h>

          Fonctions

          Déclaration / Implémentation

          En C, on distingue le prototype d'une fonction de son implémentation. Le prototype n'est pas indispensable mais utile lorsqu'on souhaite implémenter les fonctions après la fonction main par exemple.

          • Prototypage :
          float calculator(float op1, float op2);
          • Implémentation :
          float calculator(float op1, float op2){
              return op1 + op2;
          }

          Type et valeur de retour

          Chaque fonction a un type qui doit correspondre à sa valeur de retour :

          int myFunc(){
              return 3;
          }

          Cette valeur de retour peut être stockée dans une variable :

          myVar=myFunc(); // '3'

          Main

          Tout programme en langage C présente la fonction main qui sera naturellement appelée lors de l’exécution du programme :

          int main(){
          
            return 0;
          }

          Printf

          La fonction printf() permet d'afficher des éléments dans la sortie standard (souvent il s'agit de la console).

          printf("Hello world !");

          Elle prend en charge les flags pour afficher des variables :

          printf("Mon entier : %d et mon flottant : %f \n", myInt, myFloat);

          Remarque : On notera la présence du caractère '\n' pour marquer le retour à la ligne.

          Scanf

          La fonction scanf() permet de récupérer des éléments de l'entrée standard (souvent il s'agit du clavier).

          Ici, la valeur est transmise dans la variable myInt :

          scanf("%d", &myInt);

          Remarque : Il fonctionne avec les flags comme printf.

          Commentaires

          Il existe deux types de commentaires en C.

          Commentaire sur une seule ligne :

          // Mon commentaire

          Commentaire sur plusieurs lignes :

          /*
            Mon commentaire
            en plusieurs lignes
          */

          Cast (transtypage)

          • Passer d'un flottant à un entier :
          int myInteger = (int)myFloat;

          Les flags

          Pour certaines fonctions, il peut être nécessaire d'utiliser des flags (ex : printf ou scanf).

          Voici la liste des flags les plus courants :

          Flags
          Types de variables
          %d
          int
          %f
          float
          %c
          char
          %s
          string

          Les conditions

          If
          int niveau = 18;
          
          if (niveau < 5 || niveau == 18) 
          {
              printf("Yop");
          } 

          If / Else

          int niveau = 18;
          if (niveau < 5 || niveau == 18) 
          {
              printf("Yop");
          } 
          else 
          {
              printf("Hoho");
          }

          Switch

          int age = 18;
          switch(age)
          {
          case 18:
              printf("Tu as la majorité !");
              break;
          case 100:
              printf("Tu es centenaire !");
              break;
          default:
              break;
          }

          Ternaire

          int age = 16;
          (age == 15) ? printf("tu as 15 ans") : printf("Interdit pour toi");

          Les boucles

          While

          int i = 0;
          while (i<10){
              printf("Waou !\n");
              i++;
          }

          For

          int i;
          for (i = 0 ; i<5 ; i++){
              printf("Ce message est affiché 5 fois\n");
          }
            Parcourir un tableau :
            int monTableau[5];
            for (int i = 0 ; i < 5 ; i++)
            {
               monTableau[i] = i*3;
            }

            Pointeurs

            Un pointeur est une variable qui stocke une adresse mémoire.

            Déclaration

            int nb1 = 5;
            int *pt_nb1 = &nb1;

            Utilisation

              Le caractère & placé devant l'identifiant de la variable fait référence à l'adresse de celle-ci. Le caractère * placé devant l'identifiant de la variable fait référence à la valeur stockée dans la variable derrière le pointeur.
              void exchange(float*nombreA, float*nombreB)
              {
                  float tmp = *nombreB;
                  *nombreB = *nombreA;
                  *nombreA = tmp;
              }
              
              int main(){
              
                  float nombreA = 6.8;
                  float nombreB = 9.45;
              
                  printf("A = %.2f | B = %.2f\n", nombreA, nombreB);
                  exchange(&nombreA, &nombreB);
                  printf("A = %.2f | B = %.2f", nombreA, nombreB);
              
                  return 0;
              }