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 :

Rvalues et Lvalues


Sujet :

C++

  1. #1
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut Rvalues et Lvalues
    Bonjour
    je cherche à comprendre la différence entre les rvalues et les lvalues. Bien qu'intuitivement, j'ai une idée, je voudrais avoir une idée précise.
    Quand on va sur ce lien:

    http://msdn.microsoft.com/en-us/library/f90831hc.aspx
    On voit deux définitions:

    An lvalue refers to an object that persists beyond a single expression. You can think of an lvalue as an object that has a name. All variables, including nonmodifiable (const) variables, are lvalues.
    An rvalue is a temporary value that does not persist beyond the expression that uses it.
    Je ne vois pas trop ce que cela signifie: to persist beyond the expression that uses it.
    Qu'est-ce que cela veut dire

    Merci

  2. #2
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Bonjour,
    Citation Envoyé par deubelte Voir le message
    Je ne vois pas trop ce que cela signifie: to persist beyond the expression that uses it.
    Qu'est-ce que cela veut dire
    Merci
    C'est simple, si je déclare un int à la ligne 1 :
    et qu'à la ligne 2 je l'utilise dans l'expression :
    En sortant de la fonction foo, à la ligne 3, i existe encore, "persiste", je peux l'utiliser à nouveau, prendre son adresse etc... i est une lvalue.

    Par contre, dans le cas suivant :
    Le "5" n'existe plus, ne "persiste" plus, car c'est une rvalue, c'est à dire une variable temporaire, qui n'a pas de nom, dont on ne peux pas prendre l'adresse et qui disparait à la fin de l'expression (au point virgule).

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2014, 14h35
  2. lvalue rvalue ?
    Par FoX_*D i E* dans le forum Débuter
    Réponses: 4
    Dernier message: 23/12/2012, 11h41
  3. rvalue reference et lvalue
    Par guillaume07 dans le forum C++
    Réponses: 4
    Dernier message: 08/12/2010, 12h17
  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