Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
rvalue_et_lvalue [2016/05/26 21:00] detork [Portée d'une variable] |
rvalue_et_lvalue [2019/02/08 05:29] (Version actuelle) anthonyholstein |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
^ [[ratio|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[enum_class|Chapitre suivant]] ^ | ^ [[ratio|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[enum_class|Chapitre suivant]] ^ | ||
+ | |||
+ | __ ajouter l'operateur comma et la declaration de plusieurs variables __ | ||
====== Utiliser la mémoire avec les variables ====== | ====== Utiliser la mémoire avec les variables ====== | ||
Ligne 124: | Ligne 126: | ||
==== Modifier la valeur d'une variable ==== | ==== Modifier la valeur d'une variable ==== | ||
- | L'intérêt d'une variable est que vous allez pouvoir la réutiliser dans des expressions. A chaque fois qu'une expression contenant une variable est évaluée, la variable est remplacée par sa valeur lors du calcul. | + | <note warning>**Regle fondamentale** |
+ | |||
+ | Il ne faut jamais modifier plusieurs fois une meme variable dans une ligne de code ! L'ordre d'evaluation n'est pas fixe et le comportement n'est pas definie. | ||
+ | |||
+ | Par exemple : | ||
+ | |||
+ | <code cpp> | ||
+ | std::cout << ++i << ++i << std::endl; | ||
+ | </code> | ||
+ | |||
+ | Ce code modifie deux fois la variable ''i'' dans la meme ligne, ce qui produit un comportement indetermine. | ||
+ | |||
+ | Note : la vraie regle est un peu plus compliquee, mais retenez cette version simple pour le moment. | ||
+ | </note> | ||
+ | |||
+ | L'intérêt d'une variable est que vous allez pouvoir la réutiliser dans des expressions. À chaque fois qu'une expression contenant une variable est évaluée, la variable est remplacée par sa valeur lors du calcul. | ||
<code cpp main.cpp> | <code cpp main.cpp> | ||
Ligne 249: | Ligne 266: | ||
<code cpp> | <code cpp> | ||
- | unsigned shot int const i { 12 }; | + | unsigned short int const i { 12 }; |
unsigned int j { 3456 }; | unsigned int j { 3456 }; | ||
std::vector<long int> const v { 1, 2, 3 }; | std::vector<long int> const v { 1, 2, 3 }; |