Qu'est-ce que le fragment de code suivant (en C) imprime?Qu'est-ce que le fragment de code suivant (en C) imprime?
int a = 033;
printf("%d", a + 1);
Qu'est-ce que le fragment de code suivant (en C) imprime?Qu'est-ce que le fragment de code suivant (en C) imprime?
int a = 033;
printf("%d", a + 1);
033
est un entier octal littéral et sa valeur est 8*3+3 = 27
. Votre code affiche 28
.
Un littéral entier commençant par 0
est octal. Si cela commence par 0x
c'est hexadécimal.
Par ailleurs, pour un exemple à cause de
int x = 08; //error
est une erreur de compilation depuis 8
n'est pas un chiffre octal.
merci beaucoup Armen – Lucas
je risquerais une conjecture sauvage et dire 28
:)
merci mingos et darioo. Je voudrais savoir comment fermer ce post – Lucas
28.
033 est un nombre octal en C, car il a un principal « 0 », ce qui signifie que sa valeur est 27 en décimal.
Ainsi, 27 + 1 = 28
est ici un indice:
Essayez de regarder cet exemple:
#include<stdio.h>
main()
{
int a = 033;
printf("\nin decimal: %d", a+1);
printf("\nin hex: %x", a+1);
printf("\nin octal: %o", a+1);
}
cela se traduit par:
in decimal: 28
in hex: 1c
in octal: 34
Je pense que vous connaissiez la réponse –
Avez-vous essayé vous-même? C'est généralement le meilleur moyen de le savoir. Demander * pourquoi * est une question différente. –
merci Cody, j'avais juste besoin d'une "réponse rapide". Merci pour toutes vos réponses. – Lucas