Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

Langage C - Les variables

Les variables en C Encyclopédie


Le concept de variable

Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans celles-ci possèdent un type, ainsi elles sont donc stockées dans la mémoire et occupent un nombre d'octets dépendant du type de donnée stockée.

En langage C, les noms de variables peuvent être aussi long que l'on désire, toutefois le compilateur ne tiendra compte que des 32 premiers caractères. De plus, elles doivent répondre à certains critères :

  • un nom de variable doit commencer par une lettre (majuscule ou minuscule) ou un « _ » (pas par un chiffre)
  • un nom de variable peut comporter des lettres, des chiffres et le caractère « _ » (les espaces ne sont pas autorisés !)
  • les noms de variables ne peuvent pas être les noms suivants (qui sont des noms réservés) :
    • auto
    • break
    • case, char, const, continue
    • default, do, double
    • else, enum, extern
    • float, for
    • goto
    • if, int
    • long
    • register, return
    • short, signed, sizeof, static, struct, switch
    • typedef
    • union, unsigned
    • void, volatile
    • while

Nom de variable correct Nom de variable incorrect Raison
VariableNom de Variable comporte des espaces
Nom_De_Variable123Nom_De_Variable commence par un chiffre
nom_de_variabletoto@mailcity.com caractère spécial @
nom_de_variable_123Nom-de-variable signe - interdit
_707goto nom réservé

Les noms de variables sont sensibles à la casse (le langage C fait la différence entre un nom en majuscules et un nom en minuscules), il faut donc veiller à utiliser des noms comportant la même casse !

La déclaration de variables

Pour pouvoir utiliser une variable, il faut la définir, c'est-à-dire lui donner un nom, mais surtout un type de donnée à stocker afin qu'un espace mémoire conforme au type de donnée qu'elle contient lui soit réservé.

Une variable se déclare de la façon suivante :

 type Nom_de_la_variable;

ou bien s'il y a plusieurs variables du même type :

 type Nom_de_la_variable1, Nom_de_la_variable2, ...;

Affectation d'une donnée à une variable

Pour stocker une donnée dans une variable que l'on a initialisée, il faut faire une affectation, c'est-à-dire préciser la donnée qui va être stockée à l'emplacement mémoire qui a été réservé lors de l'initialisation.

Pour cela on utilise l'opérateur d'affectation « = »  :

Nom_de_la_variable = donnée;

Pour stocker le caractère B dans la variable que l'on a appelée Caractere, il faudra écrire :

 Caractere = 'B';

Ce qui signifie stocker la valeur ASCII de « B » dans la variable nommée « Caractere ». Il est bien évident qu'il faut avoir préalablement déclaré la variable en lui affectant le type char :

 char Caractere;

Initialisation d'une variable

La déclaration d'une variable ne fait que « réserver » un emplacement mémoire où stocker la variable. Tant que l'on ne lui a pas affecté une donnée celle-ci contient ce qui se trouvait précédemment à cet emplacement, que l'on appelle garbage (en français détritus).

On peut donc affecter une valeur initiale à la variable lors de sa déclaration, on parle alors d'initialisation :

 type Nom_de_la_variable = donnee;

Par exemple :

 float Toto = 125.36;

Portée (visibilité) des variables

Selon l'endroit où on déclare une variable, celle-ci pourra être accessible (visible) de partout dans le code ou bien que dans une portion confinée de celui-ci (à l'intérieur d'une fonction par exemple), on parle de portée (ou visibilité) d'une variable.

Lorsqu'une variable est déclarée dans le code même, c'est-à-dire à l'extérieur de toute fonction ou de tout bloc d'instruction, elle est accessible de partout dans le code (n'importe quelle fonction du programme peut faire appel à cette variable). On parle alors de variable globale.

Lorsque l'on déclare une variable à l'intérieur d'un bloc d'instructions (entre des accolades), sa portée se confine à l'intérieur du bloc dans lequel elle est déclarée.

  • Une variable déclarée au début du code, c'est-à-dire avant tout bloc de donnée, sera globale, on pourra alors l'utiliser à partir de n'importe quel bloc d'instruction.
  • Une variable déclarée à l'intérieur d'un bloc d'instructions (dans une fonction ou une boucle par exemple) aura une portée limitée à ce seul bloc d'instruction, c'est-à-dire qu'elle est inutilisable ailleurs, on parle alors de variable locale.

Définition de constantes

Une constante est une variable dont la valeur est inchangeable lors de l'exécution d'un programme. En langage C, les constantes sont définies grâce à la directive du préprocesseur #define, qui permet de remplacer toutes les occurrences du mot qui le suit par la valeur immédiatement derrière elle. Par exemple la directive :

#define _Pi 3.1415927

remplacera tous les identifiants « _Pi » (sans les guillemets) par la valeur 3.1415927, sauf dans les chaînes de caractères :

resultat = _Pi * sin(a); //-> remplacé
resultat = _Pi+1; //-> remplacé
_Pi = 12; //-> remplacé MAIS génère une erreur
resultat = _PiPo; //-> pas remplacé
printf("pi = _Pi "); //-> pas remplacé 

Toutefois, avec cette méthode les constantes ne sont pas typées, il faut donc utiliser la directive #define avec parcimonie...
Il est ainsi préférable d'utiliser le mot clef const, qui permet de déclarer des constantes typées :

const int dix = 10; 

De plus, cela permet d'éviter certains problèmes du #define, qui fait du « chercher-remplacer » textuel sans réfléchir.

Trucs & astuces pertinents trouvés dans la base de connaissances

28/01 09h50 Comment récupérer le résultat d'une commande dans une variable (Bash)
17/11 11h21 Tester une variable numérique (Shell)
13/11 20h06 La variable d'environnement PATH (Bash)
Variable en C Plus d'astuces sur « Variable en C »

Discussions pertinentes trouvées dans le forum

07/02 20h46 php session variable [php]session..ou mettre la variable??? Développement 02/01 20h02->maxime_B19
25/10 09h37 php boucle for nom variable [PHP] Boucle for et nom de variable ! Développement 25/10 10h39->kij_8218
28/12 17h00 php utilisation variable [Php] Utilisation de variable Développement 29/12 17h10->ZIG116
06/05 01h19 access boîte dialogue alimentée variable [ACCESS] Boîte dialogue alimentée pr variable Développement 11/05 23h02->GUYSYS12
05/07 21h55 script bash variable environnement [script/bash] Variable d'environnement Développement 07/07 23h22->asevere10
21/11 10h29 succesion variable script Succesion de variable dans un script Linux/Unix 21/11 14h21->jipicy10
29/03 10h24 passage variable url php 4.3.10 Passage de variable par URL PHP 4.3.10 Webmastering 18/04 17h40->ric8
15/06 10h14 variable php requete mysql variable php dans requete mysql Webmastering 20/06 10h28->nonoleharicot8
11/08 13h30 php variable tableau [PHP] variable de recherche dans un tableau Développement 11/08 17h16->Riwalenn8
02/09 16h30 vba access formulaire variable [VBA] Access : formulaire et variable Développement 05/01 19h32->achaoui8
Discussion fermée Problème résolu Variable en C Plus de discussions sur « Variable en C »

Ce document intitulé « Langage C - Les variables » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.