Was macht %a?
-
Ich habe ein kleines Testprogramm zum lernen umgeschrieben und aus Versehen statt %i einfach den Variablennamen %a genommen.
Gab eine fehlerfreie Ausgabe auf der Konsole, nur hab ich keine Ahnung was das darstellen soll.
/* sizeof_int.c */ #include <stdio.h> int main(void) { int a=100; printf("%a", a); getchar(); return 0; }
Ausgegeben wurde: 0x0.611090p-1022, was ja anscheinend irgendeine Speicheradresse oder ähnliches darstellt
.
Wozu auch passen würde, dass sich die Ausgabe je nach Wert von a immer ändert, aber ich konnte nichts zu %a finden per Google?
-
Das mag wie eine Speicheradresse aussehen, ist aber keine.
Das Programm interpretiert einfach den Wert von a als float und gibt diesen hexadezimal aus. Siehe auch<a href= schrieb:
printf - C++ Reference">a | Hexadecimal floating point, lowercase
frorg schrieb:
Wozu auch passen würde, dass sich die Ausgabe je nach Wert von a immer ändert, aber ich konnte nichts zu %a finden per Google?
Das passt aber nicht dazu. Wenn der Wert von a sich ändert, dann ändert sich ja nicht die Adresse.
Außerdem übergibst du der Funktion ja nur einen Wert, sie kann gar nicht an die Adresse von a kommen.