Wie wird das folgende Codefragment (in C) gedruckt?Wie wird das folgende Codefragment (in C) gedruckt?
int a = 033;
printf("%d", a + 1);
Wie wird das folgende Codefragment (in C) gedruckt?Wie wird das folgende Codefragment (in C) gedruckt?
int a = 033;
printf("%d", a + 1);
033
ein 8*3+3 = 27
Oktal Ganzzahlliteral und sein Wert ist. Ihr Code druckt 28
.
Ein Ganzzahlliteral, das mit 0
beginnt, ist oktal. Wenn es in 0x
beginnt, ist es hexadezimal.
By the way, für ein willen Beispiel
int x = 08; //error
ist ein Fehler Compile-Zeit seit 8
kein Oktalziffer ist.
vielen Dank Armen – Lucas
würde ich eine wilde Vermutung riskieren und sagen 28
:)
Danke Mingos und Darioo. Ich würde gerne wissen, wie man diesen Beitrag schließt – Lucas
28.
033 ist eine Oktalzahl in C, weil es eine führende „0“ hat und das bedeutet, sein Wert 27 in dezimaler ist.
So, 27 + 1 = 28
hier ein Stichwort:
Versuchen Sie, bei diesem Beispiel suchen:
#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);
}
dies ergibt:
in decimal: 28
in hex: 1c
in octal: 34
ich glaube, Sie kannte die Antwort –
Sie es selbst ausprobiert? Das ist normalerweise der beste Weg, das herauszufinden. Fragen * warum * ist eine andere Sache. –
danke Cody, ich brauchte nur eine "schnelle Antwort". Danke für alle Antworten. – Lucas