Flux rss
Collection CommentCaMarche.net

Langage C++ - Les variables

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 à une adresse 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) :
    • asm, auto
    • break
    • case, catch, char, class, const, continue
    • default, delete, do, double
    • else, enum, extern
    • float, for, friend
    • goto
    • if, inline, int
    • long
    • new
    • operator
    • private, protected, public
    • register, return
    • short, signed, sizeof, static, struct, switch
    • template, this, throw, try, typedef
    • union, unsigned
    • virtual, 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
_707this 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, ...;

  • Le langage C++ impose que les variables soient impérativement déclarées
  • Le langage C++ permet de définir une variable à n'importe quel endroit du code, afin de le rendre plus lisible

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.

En C++, il existe un opérateur, appelé opérateur de résolution de portée, qui permet d'accéder à des variables globales plutôt qu'à des variables locales, lorsqu'il en existe portant le même nom. Cet opérateur se note ::. Imaginons que l'on définisse plusieurs variables portant le même nom dans des blocs différents :

int i = 3;

void main(){
	int i = 12;

	::i = i + ::i;

}

L'opérateur de résolution de portée placé devant le nom de la variable indique qu'il s'agit de la variable globale. Ainsi, l'instruction ::i = i + ::i; permet d'ajouter à la variable globale i (celle située en dehors de la fonction main()) la valeur de la variable locale i.

D'une manière générale il est tout de même préférable de donner des noms différents aux variables locales et globales...

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 suivante remplacera toutes les chaînes de caractères « _Pi » par la valeur 3.1415927 :

#define _Pi 3.1415927

Toutefois, avec cette méthode les constantes ne sont pas typées, c'est pourquoi le C++ rajoute le mot réservé const, qui permet de définir une constante typée, qui ne pourra pas être modifiée pendant toute la durée d'exécution du programme. Il est ainsi nécessaire d'initialiser la constante dès sa définition :

const int A = 26;

const float Pi = 3.14159


Dernière modification le mardi 14 octobre 2008 à 17:40:30.
Ce document intitulé « Langage C++ - Les variables » issu de 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.
Langage C - Les variables 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... www.commentcamarche.net/contents/c/cvar.php3
Langage C++ - Les types de données Les types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître... www.commentcamarche.net/contents/cpp/cpptype.php3
Les classes en langage C++ La notion d'objet Le langage C est un langage procédural, c'est-à-dire que c'est un langage permettant de définir des données grâce à des variables, et des traitements grâce aux fonctions. L'apport principal du langage C++ par rapport au langage C... www.commentcamarche.net/contents/cpp/cppclass.php3
Ajouter la langue arabe au clavier français sous WindowsPour ajouter le clavier en arabe sous Windows XP il suffit d'aller dans : Démarrer -> Panneau de configuration -> Options régionales et linguistiques Dans l'onglet "Langue" (ou Clavier et langues), cocher la case "Installer les fichiers pour les... www.commentcamarche.net/faq/sujet-6619-ajouter-la-langue-arabe-au-clavier-francais-sous-windows
Langage C - var de type char (Résolu)Bonjour, je début en langage C et je suis face à un souci avec une var de type char. Je vous explique mon problème : Voici mon code : int main(int argc, char *argv[]) { //========================= //declaration des variables... www.commentcamarche.net/forum/affich-5565953-langage-c-var-de-type-char
Getchar() langage C (Résolu)Bonjour, je suis nouveau ne langage C et donc j'eprouve quelques difficulte : Je souhaiterai stocker le flux dentre que jentre au clavier pour cela je procede de la maniere suivante : #define BUFSIZE=4096; char buf[BUFSIZE]; printf("Enter your... www.commentcamarche.net/forum/affich-2960608-getchar-langage-c
Langage C pointeurs, creation de liste. (Résolu)Bonjour a tous. Voila, je rencontre quelaues petits preoblemes en langage C. Le but est de creer des fiches afin de creer une listes les contenant. Il faut ensuite afficher ce que l on a entre dans chaque fiche, puis afficher enfin le nombre de fiches... www.commentcamarche.net/forum/affich-2170245-langage-c-pointeurs-creation-de-liste
Langage C - Les types de donnéesLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le... www.commentcamarche.net/contents/c/ctype.php3
Langage C++ - Les pointeursComme en langage C, le langage C++ permet d'utiliser des pointeurs pour manipuler des données, mais il introduit aussi le concept de référence, très pratique pour permettre la modification d'une donnée passée en paramètre d'une fonction. Définition... www.commentcamarche.net/contents/cpp/cpppoint.php3
Introduction au langage CPetite histoire du C Le langage C a été mis au point par D.Ritchie et B.W.Kernighan au début des années 70. Leur but était de permettre de développer un langage qui permettrait d'obtenir un système d'exploitation de type UNIX portable. D.Ritchie... www.commentcamarche.net/contents/c/cintro.php3