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 :

post incrémentation/décrémentation et pré etc.


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 83
    Par défaut post incrémentation/décrémentation et pré etc.
    Bonsoir,

    Si j'ai bien saisit,
    si i = 5;
    int v = i++; v = 5 et i = 6
    int e = ++i; e = 6 et i = 6

    Mais j'ai un probléme de compréhension, quand je fait ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int i = 1;
    printf("%d\n", i);
    printf("%d\n", ++i);
    printf("%d\n", ++i);
    J'obtient bien, 1 2 3.
    Par contre, si je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("%d %d %d\n", i, ++i, ++i);
    J'obtient : 3 3 3.
    Je comprend pas bien la

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 624
    Par défaut
    Tu as deux programmes différents, qui affichent 2 choses différentes.
    Au premier tu fais faire 3 affichages différents, au second un seul affichage.

    Le ++i va ajouter 1 à i avant d'évaluer la ligne (là, un printf).
    Donc, dans ton premier programme (qui fait 3 affichages) :
    1. tu affiches i
    2. tu incrémentes i et ensuite tu affiches i
    3. tu incrémentes i et ensuite tu affiches i


    Dans le second, tu incrémentes i, tu incrémentes i, et ensuite tu affiches i i i.

  3. #3
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,
    Citation Envoyé par lirycs78 Voir le message
    Par contre, si je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("%d %d %d\n", i, ++i, ++i);
    J'obtient : 3 3 3.
    Il me semble qu'il y a résultat indéterminé car la norme ne précise pas dans quel ordre sont évalué les paramètres. http://fr.wikibooks.org/wiki/Program...roc%C3%A9dures

    A+

    Pfeuh

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 83
    Par défaut
    Merci de vos réponse

Discussions similaires

  1. problème avec la post-incrémentation
    Par peperaleur dans le forum Débuter
    Réponses: 6
    Dernier message: 30/01/2008, 20h54
  2. incrémentation ,décrémentation
    Par BECHE dans le forum Langage
    Réponses: 6
    Dernier message: 07/12/2005, 00h03
  3. boucle while et post incrémentation
    Par tut dans le forum C++
    Réponses: 7
    Dernier message: 10/12/2004, 17h24
  4. Post incrémentation?
    Par Defrag dans le forum C
    Réponses: 4
    Dernier message: 08/10/2002, 10h36

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