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 :

La difference i++ et ++i


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut La difference i++ et ++i
    Bonjour, suite à la lecture de code en C de certaine personne, j'ai pu remarquer ces 2 différentes notations que sont i++ et ++i.
    Cela m'a mit la puce à l'oreille donc j'ai trouvé sur le web la réponse ici

    donc ok, j'ai compris la petite nuance entre les deux
    Mais est-ce que l'un d'entre vous aurrait un exemple où il serait préférable d'appliquer i++ plutot que ++i et vice versa ? car dans la pratique je me contente très bien de i++

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mashadow Voir le message
    ...car dans la pratique je me contente très bien de i++
    Salut

    Généralement tu te contentes de i++ parce que tu n'as pas besoin de sa valeur (enfin je présume). Un peu comme ceci for (i=0; i < 5; i++).
    Et donc que tu écrives i++ ou ++i, ici c'est pareil.

    Maintenant, imagines ce clone de strlen()
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int mystrlen(char *pt)
    {
        int i=0;
        while (*pt++) i++;
        return i;
    }
    Tu remarqueras qu'ici, écrire *pt++ au lieu de *++pt est super important...

    Donc voilà. En espérant t'avoir éclairci un peu...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Merci de lire la FAQ C
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Maintenant, imagines ce clone de strlen()
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int mystrlen(char *pt)
    {
        int i=0;
        while (*pt++) i++;
        return i;
    }
    Tu remarqueras qu'ici, écrire *pt++ au lieu de *++pt est super important...
    Oui..

    J'ai toujours trouvé (et le fait que ce soit un sujet de la FAQ ainsi que la question du PO appuie ma pensée) que cela relève plus de l'obfuscation qu'autre chose...

    En bref, pour le PO et les gens se posant la question, il est relativement déconseillé d'utiliser l'écrture ++i, et même à mon avis l'écriture i++ en dehors des boucles.. Il est aussi clair d'écrire i = i + 1 ; ou p = p+1; et on ne se pose jamais de questions.. Et ça ne change rien pour le compilateur, qui fera bien i = i +1 même si on a écrit i++...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

Discussions similaires

  1. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  2. La difference entre XSL et XSLT?
    Par pantin dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/06/2003, 15h14
  3. Difference entre fenetre et boite de dialog
    Par billyboy dans le forum Windows
    Réponses: 2
    Dernier message: 02/06/2003, 15h43
  4. [] Difference entre MSHFlexGrid et MSFlexGrid
    Par olivierx dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/04/2003, 08h48
  5. Difference entre types d'Adresse IP
    Par freud dans le forum Développement
    Réponses: 3
    Dernier message: 02/03/2003, 02h06

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