Big Tuto : Programmez avec le langage C

De la théorie à la pratique

Chapitre 5 : Les variables

Tutoriel présenté par : The Ludovyc et Jérémie F. Bellanger (Jay)
 The Ludovyc 
Publication : 30 mars 2014 
Dernière révision : 17 avril 2016

   Dans ce chapitre, nous allons aborder les variables ! Et comme vous allez le voir, ça va être du lourd, et ça, c'est cool !  cool

   Pour commencer, il faut savoir qu'une variable peut être signée (c'est à dire être négative ou positive : par exemple -256 ou +256) ou non-signée (dans ce cas, nous la considérerons comme absolue). wink

   Mais à quoi ça sert, me direz-vous ? surprise

   Eh bien, tout simplement, avec le même nombre de bits, on peut soit gérer autant de nombres négatifs que positifs, soit gérer le double de nombres absolus. Si on prend l'exemple des char : un char prend un slot en mémoire, c'est-à-dire un octect soit 8bits. D'un point de vue général, le bit de poids fort est utilisé pour le signe donc avec un char, on peut compter de -128 jusqu'à 127 s'il est signé ou de 0 à 255 s'il est non-signé.

   Suivant les usages, ce sera donc à vous de déterminer le choix le plus judicieux, sachant que toutes les variables sont signées par défaut, et qu'il faut l'indiquer, si on veut qu'elles ne soient pas signées (= unsigned), comme ceci :

char c = 127;
unsigned char c = 255;

   Je vais maintenant vous proposer une petite liste des différents types de variables avec leurs paramètres printf() le plus souvent utilisés :

      Les types entiers :

char
Description

Variable de base pour les petits nombres, les booléens, et les lettres.

Souvent nommé "c" dans le code.

Taille en octet(s) 1 (taille invariable sur tout type de machine)
Déclaration (code) (unsigned) char c = 8;
Valeurs par défaut  -128 à 127
Valeurs, non-signé 0 à 255 (unsigned)
Notation printf()

%d pour la valeur décimale

%c pour l'afficher sous forme de lettre

 

short
Description

Variable utilisée pour les valeurs entières.

Taille en octet(s) 2 (taille invariable sur tout type de machine)
Déclaration (code) (unsigned) short s = 16;
Valeurs par défaut  -32768 à 32767
Valeurs, non-signé 0 à 65535 (unsigned)
Notation printf()

%d pour la valeur décimale

 
int
Description

Variable la plus souvent utilisée.

Pour les valeurs entières.

Taille en octet(s) 2 ou 4 
Déclaration (code) (unsigned) int i = 32;
Valeurs par défaut  -2147483648 à 2147483647 (sur 4 octets)
Valeurs, non-signé 0 à 4294967295 (unsigned, sur 4 octets)
Notation printf()

%d pour la valeur décimale

%p pour la valeur héxadécimale

 
long
Description

Variable pour les très grandes valeurs entières.

Taille en octet(s) 4 ou 8
Déclaration (code) (unsignedlong l = 64;
Valeurs par défaut  -4x10e16 à 3x10e16 (à peu près, pour 8o)
Valeurs, non-signé 0 à 7x10e16 (unsigned, à peu près, pour 8o)
Notation printf()

%ld

 

 

      Les types rationnels :


Je tiens à préciser ici un point de syntaxe important : la virgule utilisée en c pour séparer les chiffres est généralement un point, comme en anglais (même si cela peut varier selon les IDE). 1,37 s'écrira donc 1.37

 
float
Description

Variable courament utilisée pour les nombres flottants (= à virgule).

Taille en octet(s) 4
Déclaration (code) float f = 12.8;
 Mantisse simple 6
Valeurs 3,4x10e-38 à 3,4x10e38
Notation printf()

%f

 
double
Description

Variable moins couramment utilisée que le float mais plus précise et avec un domaine plus large.

Taille en octet(s) 8
Déclaration (code) double d = 51.2;
 Mantisse double 15
Valeurs 1,7x10e-308 à 1,7x10e308
Notation printf()

%f

   Eh voilà ! smiley Maintenant pour vous faire un peu manipuler toutes ces variables, passons à quelques exercices pratiques ! wink

 

      Exercice 1 :

   Votre mission, si vous l'acceptez (et j'espère bien que oui ! devil), va être d'écrire un petit programme qui va afficher à l'aide de la fonction printf() toutes les variables que nous venons de voir. Vous n'oublierez pas de bien mettre un  retour chariot (\n) après chaque valeur, sauf la dernière, sinon elles vont être agglutinées ! wink
   Cet exercice a pour but de vous familiariser avec toutes ces variables et de comprendre comment les afficher dans la console. Et pas d'inquiétude, c'est très rapide à faire ! Voilà d'ailleurs le début du code, pour vous aider : 

#include <stdio.h>

int main(){

    char c = 8;
    printf("%d\n", c);
    printf("%c\n", c);

}

Ne vous inquiétez pas si vous ne voyez pas 'c' s'afficher en lettres, c'est normal.

      Correction de l'exercice :

#include <stdio.h>

int main(){

    char c = 8;
    printf("%d\n", c);
    printf("%c\n", c);

    short s = 16;
    printf("%d\n", s);

    int i = 32;
    printf("%d\n", i);
    printf("%p\n", i);

    long l = 64;
    printf("%ld\n", l);

    float f = 12.8;
    printf("%f\n", f);

    double d = 51.2;
    printf("%f\n", d);

}

 

        Exercice défi :

   Ecrire un programme qui affiche les différentes tailles des types de variables vues dans ce chapitre.

Défi 1 : ne pas utiliser de variable pour le stockage de la taille.
Défi 2 : utiliser le type de variable le plus adapté pour les différentes variables de stockage, et les utiliser pour l'affichage.
Défi 3 : n'utiliser qu'une seule variable avec le type le plus adapté pour le stockage et l'affichage.

Note : la fonction sizeof() retourne la taille du type de variable mis en paramètre. wink

   Exemples pour vous aider :

//Sans variable de stockage
printf("%d", sizeof(char));

//Avec une variable de stockage
int i = sizeof(char);

printf("%d\n", i);

//Indices
char c = sizeof(char);
printf("%d\n", c);

c = sizeof(double);
printf("%d", c);

   Je vous donnerai la correction de cet exercice dans le prochain chapitre ! @ bientôt !

 

Connexion

CoalaWeb Traffic

Today152
Yesterday282
This week946
This month3239
Total1742446

19/04/24