Hallo Leute,
ich mal wieder mit paar Fragen...
Ich habe einen Quellcode dessen Ausgabe ich verstehen muss.
ZitatAlles anzeigen
[INDENT] #include <stdio.h>
[/INDENT]
[INDENT] main()
{ int a=100;
double b=0.4567890;
printf("%d %o %X\n", 10, 10, 10);
printf("%d %d %d\n", 0, '0', '\0');
printf("%c %c %c\n", 50, 0x50, '\50');
printf("%c %c %c\n", a, 'a', '\xa');
printf("%8.3f %10.3e", b, b);
}
[/INDENT]
ich habe den so kompilieren lassen und versucht nachzuvollziehen.
Ausgabe sieht so aus
Zitat
10 12 A
0 48 0
2 P (
d a0.457 4.568e-001
Die 1 Zeile mit der Ausgabe "10 12 A" kann ich nachvollziehen.
Bei der 2. Zeile mit "0 48 0" kann ich dir ersten 2 Werte nachvolliehen. Also zuerst einfach die Ausgabe der Zahl 0, dann die Ausgabe der Dezimalzahl "48" in der ASCII Tabelle der Ziffer 0.
Aber was bedeutet '\0', da ja "0" ausgegeben wird?!
In der 3. Zeile wird zuerst Zeichen "2" an der Dezimalstelle 50 ausgegeben, dann das Zeichen "P" an der Hexzahlstelle 50.
Und was bedeutet dann die '\50', dass "(" ausgegeben wird?
Die 4. Zeile verstehe ich auch nicht bis auf die Ausgabe von "a", da ja einfach 'a' da steht.
Die 5. Zeile mit der Ausgabe der Zahl kann ich auch nicht nachvollziehen. Ich weiß nur dass z.B. bei %8.3f die 3 für das Runden nach der dritten Nachkommastelle steht.
danke fürs lesen.