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.


Anmelden zum Antworten