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

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 83
    Points : 0
    Points
    0
    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
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    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.
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

  3. #3
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    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 : 946
    Points : 1 351
    Points
    1 351
    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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 83
    Points : 0
    Points
    0
    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