Accueil > Langage C > Langage C – Les variables

Langage C – Les variables

This entry is part 4 of 10 in the series Langage C - Tutoriel

Pour fonctionner, un programme à generalement besoin de pouvoir utiliser des données. Pour cela, il doit pouvoir
stocker les valeurs, et pouvoir y acceder par la suite. Le programme poura ensuite les controler, et pourquoi
pas, les modifier.
Pour cela, il existe un moyen simple qui est l’utilisation des variables.

Mais avant de voir tout ceci en détail, il nous faut tout d’abord distinguer les différents types de données
existants.
On peut commencer par distinguer les chiffres (données numeriques) du texte (chaînes de caractères).
Pour les nombres, rien de bien compliqué. En revanche, l’exploitation des chaînes de caractères est relativement complexe
en comparaison à d’autres langages plus accessibles comme le Basic ou le Pascal. C’est pourquoi nous les aborderons dans des sections futures, quand
nous serons plus calés :-) .

Mais compliquons quand même un peu : dans les données numériques, on peut encore trouver des « sous-catégories », comme par exemple, les nombres entiers,
decimaux, signés (uniquement positifs)…

Commençons par les types de variables entiers, que voici :

Types de variables en langage C
Type Description Intervalle Signé Intervalle Non-Signé Memoire requise
char Destiné à recevoir le code ASCII d’un caractère -128 à 127 0 à 255 1 octets
short Entier court -32768 à 32767 0 à 65535 2 octets
int Entier standard (très utilisé) -32768 à 32767 0 à 65535 2 octets
long Entier long -2147483648 à 2147483647 0 à 4294967295 4 octets

En C, la déclaration d’une variable se fait selon la syntaxe suivante :

type identificateur;

type represente le type de la variable et identificateur le nom de cette variable.
Un identificateur doit suivre certaines regles, comme :

  • Ne pas contenir d’espaces ou de carctères dits spéciaux comme les accents, la ponctuation (à l’execption du trait de soulignement),
    etc…
  • Ne pas commencer par un chiffre (il peut par contre en contenir)
  • Ne pas prendre le nom d’une fonction déjà existante

De plus, un identificateur de variable doit s’efforcer d’être explicite au maximum. C’est à dire que l’on devrai pouvoir savoir ce que représente
une variable rien qu’en lisant son nom.

Voici quelques exemples de déclaration de variables valides :

int i;/* Entier normal*/
char touchepressee;/* Caractère */

La déclaration des variables doit se faire avant toute instruction, sinon une erreur de compilation se produit. À notre stade, nous délarerons les
variables dans la fonction main(). Il est possible de les déclarer à l’exterieur, mais cela n’est utile que pour un programme possedant
plusieurs fonctions, ce qui n’est pas le cas pour l’instant.

Pour affecter une valeur à une variable, on utilise tout simplement l’opérateur = (égal). Ce qui est du coté droit de cet opérateur sera
alors affecté au coté gauche. Par exemple, pour affecter la valeur 5 à la variable nombre, on écrira :

int main(){
int nombre;/* Declaration de la variable nombre */
nombre = 5;/* Affectation de 5 à nombre */
return 0;
}

Bien evidement, le coté gauche de cet opérateur ne peut en aucun cas être une constante, puisque la valeur d’une constante est par définition invariable.
En revanche, on peut parfaitement affecter la valeur d’une variable à une autre :

int main(){
int nombre, autrenombre;
nombre = 5;/* Affectation de 5 à nombre */
autrenombre = nombre;/* Affectation de nombre à autrenombre */
return 0;
}

Vous remarquez que on a déclaré la variable nombre et la variable autrenombre sur la même ligne. Cette syntaxe est également
possible.
Maintenant que nous avons vu comment affecter une valeur à une variable, nous allons voir comment afficher sont contenu. Pour cela, nous allons utiliser
la fonction printf de la bibliothéque stdio.
La syntaxe de cette fonction est extrement complexe (ou plutôt très complete) et nous ne l’aborderons pas en détail dans cette section.
Pour afficher le contenu d’une variable numérique, nous utiliserons simplement la syntaxe suivante :

printf("Ceci est du texte %u", variable);

Vous avez reconnu la première partie de cette fonction, "Ceci est du texte %u". Il s’agit d’une chaîne de caractères qui sera affichée
à l’écran, à un petit détail près : la séquence %u sera remplacée par la variable variable passée comme second argument.
Si nous avions plusieurs variables, nous aurons pu écrire :

printf("A vaut %d et B vaut %d", A, B);

Le premier %d sera remplacé par le contenu de la variable A, et le second %d par celui de B.
Ainsi, pour afficher le contenu de notre variable nombre, nous écrirons :

#include <stdio.h>

int main(){
int nombre=5;/* Déclaration et affectation */

printf("Le contenu de nombre est %d", nombre);/* Sortie -> 5 */
return 0;
}

La première ligne (en fait, la seconde) permet de gagner du temps en déclarant une variable et en lui affectant une valeur initiale (ici, 5).

Maintenant, revenons à notre histoire de type signé et non-signé. Pour déclarer une variable non-signée, c’est à dire uniquement positive, il suffit
de rajouter le mot-clef unsigned devant la déclaration de la variable :

unsigned short MaVariable;/* Intervalle : 0 à 65535 */

Maintenant, si on affecte une valeur négative à MaVariable, aucune erreur ne se produira, mais le résultat sera arbitraire :

#include <stdio.h>

int main(){
unsigned short MaVariable=-10;

printf("Cet valeur n'est pas garantie %u", MaVariable);
return 0;
}

Il faut donc faire très attention aux valeurs utilisées.
Mais passons maintenant aux types flottants. Les voici répertoriés dans le tableau ci-dessous :

Types de variables en langage C
Type Description Intervalle Memoire requise
float Nombres réels 3.4 x 10-38 à 3.4 x 10+38 4 octets
double Nombres réels longs 1.7 x 10-308 à 1.7 x 10+308 8 octets
long double Nombres réels très longs 3.4 x 10-4932 à 3.4 x 10+4932 10 octets

L’utilisation de ces types est identique que pour les types entiers.
Par contre, l’utilisation de printf sera differente. On poura par exemple écrire :

#include <stdio.h>

int main(){
float Nombre=3.1415;

printf("%f", Nombre);
return 0;
}
Series Navigation«Langage C – CommentairesLangage C – Opérateurs»
Categories: Langage C Tags:
  1. Yvan
    08/04/2004 à 09:06 | #1

    Clair et efficace !

  2. shurikeN
    01/02/2010 à 13:25 | #2

    Comme dit précedemment, clair, concis, efficace. Beau travail, merci à toi.

  1. Pas encore de trackbacks