Question de cours en programation c
Résolu/Fermé
Bonjour, j'ai le code suivant dans mon cours
int i = 42;
int j;
j = (i++ + 10);
// i is now 43
// j is now 52 (NOT 53)
pourquoi j n'est pas égal à 53?
int i = 42;
int j;
j = (i++ + 10);
// i is now 43
// j is now 52 (NOT 53)
pourquoi j n'est pas égal à 53?
A voir également:
- Question de cours en programation c
- Panne tnt en cours aujourd'hui - Guide
- En cours de préparation ✓ - Forum Consommation & Internet
- Il est en cours de transport vers votre site de livraison - Forum Consommation & Internet
- Démarrage d'android en cours optimisation de l'application - Astuces et Solutions
- Association avec le server freebox en cours freeplug vert - Forum Freebox
3 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
6 nov. 2009 à 15:54
6 nov. 2009 à 15:54
Salut,
Puisque l'incrémentation se fait après i+10
Si tu veux obtenir 53 il faut faire
Puisque l'incrémentation se fait après i+10
Si tu veux obtenir 53 il faut faire
++i + 10
Pilow
Messages postés
400
Date d'inscription
vendredi 2 octobre 2009
Statut
Membre
Dernière intervention
23 décembre 2009
71
6 nov. 2009 à 15:55
6 nov. 2009 à 15:55
i++ signifie que le ++ se fait apres l'opération dans la parenthèse
Donc d'abord j = i + 10 puis i++
Si tu avais mis
j = (++i + 10);
j = 53; car dans ce cas le ++ se fait avant
EDIT : Devancé
Donc d'abord j = i + 10 puis i++
Si tu avais mis
j = (++i + 10);
j = 53; car dans ce cas le ++ se fait avant
EDIT : Devancé