IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

lvalue rvalue ?


Sujet :

C

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2007
    Messages : 267
    Points : 119
    Points
    119
    Par défaut lvalue rvalue ?
    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

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    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.

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 50
    Points : 273
    Points
    273
    Par défaut

    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 :


    "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;

  4. #4
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2007
    Messages : 267
    Points : 119
    Points
    119
    Par défaut
    ok comprendo,
    je vous remercie

  5. #5
    Membre éclairé
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Points : 807
    Points
    807
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2014, 14h35
  2. rvalue reference et lvalue
    Par guillaume07 dans le forum C++
    Réponses: 4
    Dernier message: 08/12/2010, 12h17
  3. Rvalues et Lvalues
    Par deubelte dans le forum Débuter
    Réponses: 1
    Dernier message: 29/04/2010, 16h36
  4. [debutant]erreur invalid lvalue in assignment
    Par Battosaiii dans le forum C
    Réponses: 3
    Dernier message: 30/11/2005, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo