# Variables > Une variable est un élément qui associe un **identifiant** à une **valeur**. Une variable est un espace mémoire nommé qui permet de stocker une valeur manipulée par le programme. En langage C, chaque variable possède : - un type (entier, réel, caractère, etc.) - un nom - une valeur (modifiable au cours de l’exécution) ## Caractéristiques Une variable possède plusieurs caractéristiques ou propriétés. La **déclaration**, c'est l'endroit dans le code qui défini l'existence de la variable. ```c int age = 19; ``` L'**initialisation** : attribue une valeur à la valeur. Utiliser une variable non initialisée conduit à un comportement indéfini. Les varaiables sont pas toujours initialisées à une valeur par défaut (comme 0 par exemple). Un **nom** sous lequel la variable est déclarée. Dans cette déclaration le nom de la variable est `age`. Un **type**. Dans la mémoire d'un ordinateur, toute information est stockée sous forme d'éléments binaires appelés `bit` (en: binary digit, nombre binaire). Un même ensemble de bits peut être représenté sous différentes aspects : nombre entier, nombre réel, texte, photo, vidéo, audio, ... C'est la convention d'interprétation du type qui défini la valeur de la variable. Dans cette déclaration le type de la variable `age` est un entier `int`. La **taille** associée au type. Dans le cas des types fixe, le type de la variable spécifie aussi le nombre de bits ou le nombre de mots (en: bytes, octets) utilisés. Dans cette déclaration la taille de la variable `age` est de 4 octets ou 32 bits, qui est la taille associée à un type `int`. La **valeur**, c'est la valeur intrasèque des bits suivant la représentation associée au type; Dans cet exemple la valeur de la variable `age` est `10`. La **portée**, c'est la portion de code où la variable est utilisable. Une variable est accessible depuis sa définition jusqu'à la fin du bloc où elle est déclarée. Variable locale : déclarée dans une fonction ou un bloc Variable globale : déclarée en dehors de toute fonction Les variables déclarées dans une fonction sont locales à cette fonction. Les paramètres d’une fonction sont eux aussi des variables locales. ### Règles #### Déclaration > [!WARNING] > Les variables doivent être déclarées **avant** d'être utilisées. ```c #include int main() { printf("%d", age); int age = 10; } ``` Ce code provoque une erreur : la variable est non déclarée avant sont utilisation ! ``` error: ‘age' undeclared (first use in this function) ``` Voici le code correct ```c #include int main() { int age = 10; printf("%d", age); } ``` ## Types courants int : nombre entier float : nombre réel (simple précision) double : nombre réel (double précision) char : caractère