Qu'est-ce que le fragment de code suivant (en C) imprimer?
Question
Qu'est-ce que le fragment de code suivant (en C) print?
int a = 033;
printf("%d", a + 1);
La solution
033
est un entier octal littéral et sa valeur est 8*3+3 = 27
. Votre code imprime 28
.
Un littéral entier qui commence par un 0
est octal. Si elle commence à 0x
il de hexadécimal.
Par ailleurs, pour l'amour d'un exemple
int x = 08; //error
est une erreur de compilation depuis 8
n'est pas un chiffre octal.
Autres conseils
Je risque une supposition sauvage et dire 28
:)
28.
033 est un nombre octal en C, car il a un principal « 0 » et que des moyens sa valeur est 27 en décimal.
, 27 + 1 = 28
voici un indice:
- un 3 chiffres avec zéro au début est un octal.
- une valeur à 2 chiffres avec « 0x » au début est un hexagone.
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);
}
Le résultat:
in decimal: 28
in hex: 1c
in octal: 34
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow