Bonjour,
J'étudie en ce moment un tutorial : http://c.developpez.com/cours/poly-c/?page=page_2
J'ai pas compris grand chose au lvalue et rvalue, j'ai cherché sur le net et ca m'a pas parrut simple
Quelqun pourrais m'expliquer clairement SVP
Bonjour,
J'étudie en ce moment un tutorial : http://c.developpez.com/cours/poly-c/?page=page_2
J'ai pas compris grand chose au lvalue et rvalue, j'ai cherché sur le net et ca m'a pas parrut simple
Quelqun pourrais m'expliquer clairement SVP
Si je ne dis pas de bêtise, une lvalue est ce qui peut être/est à gauche d'un '=' et une rvalue, ce qui est à droite.
Code C : Sélectionner tout - Visualiser dans une fenêtre à part lvalue = rvalue;
Lvalue désigne ce qui peut être mis à gauche du signe égal, alors que rvalue désigne ce qui ne peut pas être mis à gauche du signe égal.
Ces noms proviennent de l'anglais "left" qui signifie gauche et "right" qui signifie droite.
Pour fixer les idées, l'expression "4" n'est pas une lvalue car on ne peut pas écrire quelque chose comme :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part 4 = 10;
"4" est donc une rvalue.
À l'inverse, une variable nommée "mon_entier" est une lvalue car on peut écrire quelque chose comme :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int mon_entier; mon_entier = 10;
ok comprendo,
je vous remercie
Bonjour,
En théorie, une lvalue ne se définit pas à partir de l'opérateur =. Rigoureusement, une lvalue est une expression qui désigne potentiellement un objet, tandis que l'opérande de gauche de l'opérateur d'affectation doit être une lvalue modifiable. En effet, il existe également des lvalues qui ne sont pas modifiables :
- les types tableaux ;
- les types incomplets ;
- les types qualifiés de const.
D'autre part, bien que le terme de rvalue ne soit pas normalisé, il est cependant décrit dans une note de pied de page (donc non normative) comme étant la valeur d'une expression.
Par ailleurs, à moins que la normalisation ait changé entre temps (je n'ai parcouru que la norme C11), le paragraphe du cours à ce sujet ne me semble pas être correct.
Bonne journée.
Récursivité en C : épidémie ou hérésie ?
"Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman
Partager