Question de cours en programation c

Résolu/Fermé
ENITIEN - 6 nov. 2009 à 15:48
 ENITIEN - 6 nov. 2009 à 17:15
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?

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
Salut,

Puisque l'incrémentation se fait après i+10

Si tu veux obtenir 53 il faut faire
++i + 10
0
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
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é
0
merciiiiiiiiiiiiii à tous c très clair
0