Geen cache-versie.

Caching uitgeschakeld. Standaardinstelling voor deze pagina:ingeschakeld (code LNG204)
Als het scherm te langzaam is, kunt u de gebruikersmodus uitschakelen om de cacheversie te bekijken.

Types de données en C

Les variables

Une variable est une partie de la mémoire de l'ordinateur que le programmeur alloue à son programme.
Elle peut ne contenir qu'une seule valeur (on parle alors de variable scalaire), ou plusieurs (tableaux, structures,...) sur laquelle (ou lesquelles) nous pouvons effectuer un calcul arithmétique.


C'est par la déclaration de la variable que nous allons lui attribuer un identificateur (son nom), et déterminer son type (le genre d'élément qui y sera rangé).
La spécification du type de la variable permet la réservation de la quantité de mémoire nécessaire, et répond à un ensemble de mots clés.

Inhoudsopgave Haut

Déclaration de variable en C

Syntaxe: [classe] type identificateur [initialiseur];

Les éléments entre crochets sont facultatifs.

  • Classe : voir page classe.
  • Type : précédés du signe %, les types les plus souvent rencontrés sont int, char, et float
  • Identificateur: c'est le nom que nous allons attribuer à la variable. La définition de plusieurs variables de même type en une seule instruction est possible en séparant les identificateurs par des virgules.
    L'identificateur peut être composé de lettres (attention, le langage C fait la différence entre majuscules et minuscules), de chiffres, et du caractère _ (souligné), mais le premier caractère ne peut être un chiffre. Le caractère d'espacement (blanc) est interdit, ainsi que les caractères accentués.
    Pour un pointeur, le nom est précédé du signe * (étoile).
  • Initialiseur : le signe = suivi d'une valeur, affecte cette valeur à la variable placée à gauche du signe.

Selon la durée de vie souhaitée pour une variable, on peut la déclarer à deux endroits différents. On parle alors de variable locale, ou de variable globale.

Inhoudsopgave Haut

Déclaration variables locales

Pré requis: bloc d'instructions.
Le bloc d'instructions, rappelons le, est un ensemble de déclarations et d'instructions délimités par des accolades.

Une déclaration locale de variable est une déclaration effectuée à l'intérieur d'un bloc, et la durée de vie de la variable n'excède pas les limites du bloc.
Lorsque le programme atteint le début du bloc ({), la mémoire nécessaire aux variables locales est réservée en haut de la pile (dont la taille augmente donc), espace mémoire retiré de la pile à la sortie du bloc.
Le seul cas où la mémoire reste allouée pour cette variable (donc où la valeur que contient la variable est conservée) est le cas où on quitte un bloc pour aller dans une fonction appelée (mais dans ce cas le terme "quitter" le bloc est sujet à discussions).

La déclaration locale d'une variable évite donc le gaspillage de la mémoire, mais nous devons alors trouver une solution pour retourner la valeur de cette variable si elle doit être utilisée hors du bloc.

Exemple d'utilisation de variable locale:

  1. #include <stdio.h>
  2. int fonct2 (int var2);

Prototype de la fonction fonct2

  1. void main (void)
  2. {
  3. int var1=97;
  4. printf("%c\n%c\n", fonct2 (var1), var1);
  5. }

Entrée dans le bloc, déclaration et initialisation de var1 (pour info: à quoi correspond cette valeur dans le code ASCII ?).

Ensuite, nous faisons appel à la fonction fonct2

  1. int fonct2 (int var2)
  2. {
  3. int var3;
  4. var3=var2-32;
  5. var2=0;
  6. return(var3);
  7. }

Réservation d'un emplacement mémoire pour var2 (à laquelle on transmet la valeur de var1)en haut de la pile.

Entrée dans le bloc, et allocation d'un emplacement mémoire pour var3, à laquelle on affecte la valeur var2-32 (=65. Toujours pour info: que représente la valeur 65 dans le code ASCII ?).

Réinitialisation de var2 et retour de la valeur 65 vers la fonction main (libération de la mémoire allouée à var2 et à var3).

L'exécution du programme provoque donc la sortie à l'écran de la lettre A suivie d'un saut de ligne, et de la lettre a (fainéants, vous auriez pu chercher un peu...).

Tableau des principaux types de variables

TypeSignificationArgument
TypeSignificationArgument
cUn seul caractère<char*arg
dEntier décimal<int*arg
DEntier décimal<long*arg
eVirgule flottante<float*arg
EVirgule flottante<double*arg
fVirgule flottante<float*arg
gVirgule flottante<float*arg
GEntier, octal, hexadécimaldouble*arg
iEntier, octal, hexadécimalint*arg
IEntier, octal, hexadécimalint*arg
oEntier, octal, sans signeint*arg
OEntier, octal, sans signelong*arg
pHexadécimal<void far*arg / void near*arg
sChaîne avec NULLchar tableau[]
uEntier décimal non signéunsign.int*arg
UEntier décimal non signéunsign.long*arg
xEntier hexadécimal non signéint*arg
XEntier hexadécimal non signélong*arg

Nederlandse vertaling

U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.

Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.

Bij voorbaat dank.

Document heeft de 19/03/2002 gemaakt, de laatste keer de 07/04/2023 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/c-variables.html

De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.