Bases de la programmation en C

int i = 5;
int a = i++;
int b = ++i;
printf("%d %d %d\n", a, b, i);

Quelle est la sortie obtenue en exécutant le code ci-dessus, qui utilise ++ en préfixe et en suffixe ?

  1. A5 6 6
  2. B5 7 7
  3. C6 7 7
Afficher la réponse et l'explication

Réponse : B. 5 7 7

En suffixe, i++ donne comme valeur de l'expression la valeur d'avant l'incrémentation, puis augmente i de 1. a reçoit donc 5 et i passe à 6. En préfixe, ++i augmente d'abord i de 1, puis prend la nouvelle valeur comme valeur de l'expression : i passe à 7 et b reçoit aussi 7. La sortie est « 5 7 7 ».

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de la programmation en C

  1. Quelle est la sortie obtenue en exécutant le code ci-dessus, où = est écrit dans la condition d'une instruction if ?
  2. Le code ci-dessus a été écrit pour tester si le bit 2 de la valeur de registre reg vaut 1. Quel est le résultat de son exécution ?
  3. uint8_t est un type entier non signé de 8 bits. Quelle est la sortie obtenue en exécutant le code ci-dessus ?
  4. uint8_t est un type entier non signé de 8 bits. Quelle est la sortie obtenue en exécutant le code ci-dessus, qui incrémente x 10 fois ?
  5. unsigned char fait 8 bits et int fait 32 bits. Quelle est la sortie obtenue en exécutant le code ci-dessus ?