Incrémentation de variables

Fermé
pasdepseudo2 Messages postés 1 Date d'inscription mercredi 5 février 2014 Statut Membre Dernière intervention 5 février 2014 - 5 févr. 2014 à 12:10
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 5 févr. 2014 à 19:18
Bonjour à tous,

je fais des QCM en C et je suis tombé sur un code qui a affiché un résultat auquel je ne m'y attendais pas. Voici le code source:

int main ()
{
int a=10;
float b;
int c= sizeof ( a++ - b);
printf( " %d ", c );
printf(" %d ", a );
return 0
}


le résultat de l'exécution est le suivant :

4 10

-
j'aimerai attirer votre attention sur l'expression en gras, vous remarquer que "a" a été incrémenté, alors ma question est la suivante :

Pourquoi lors de l'affichage la variable a gardée la valeur 10 et non pas 11 ?

Merci.

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
Modifié par fiddy le 5/02/2014 à 19:18
Sizeof n'est pas exécuté lors de l'exécution du programme mais est évalué dès la compilation. a ++-b reste un ont. Donc le sizeof vaudra la taille d'un int. Lors de l'exécution a ne sera donc pas modifié.
Cdlt
0