Char-Array ausgeben



  • Hallo ihr Lieben,
    ich habe ein kleines Problem, das sicherlich fix gelöst wird.

    #include <stdio.h>
    
    int main()
    {
        char a[30] = {'1'};
    
        int i = 0;
        while (a[i] != '\0')
        {
            printf("%c", a[i]);
            i++;
        }
    return 0;
    }
    

    Wenn ich das richtig verstehe, dann ist mein Array doch durchgehend mit Einsen gefüllt, bis auf den letzten Platz, hat am Ende dann als Zeichen '\0'.
    Wenn ich jetzt das Array einmal durchgehe, müsste doch durhcgehend eine 1 gezeigt werden, bis das Array durch ist. Warum wird mir das nur einmal angezeigt? Wo ist mein Denkfehler?

    Vielen Dank für jede Hilfe!



  • @Hawaiihemd sagte in Char-Array ausgeben:

    Wenn ich das richtig verstehe, dann ist mein Array doch durchgehend mit Einsen gefüllt, bis auf den letzten Platz, hat am Ende dann als Zeichen '\0'.

    Und wo hast du das her?

    All array elements that are not initialized explicitly are empty-initialized.
    (https://en.cppreference.com/w/c/language/array_initialization)



  • @Hawaiihemd sagte in Char-Array ausgeben:

    Wenn ich das richtig verstehe, dann ist mein Array doch durchgehend mit Einsen gefüllt, bis auf den letzten Platz, hat am Ende dann als Zeichen '\0'.

    Das hast du falsch verstanden.

    Wenn ein Array initialisiert wird (bei der Definiton werden Werte zugewiesen), dann werden nur die angegebenen Elemente gefüllt. Der Rest wird mit 0 (Null) aufgefüllt.

    Das gilt für jede Art von Array. '\0' entspricht 0.

    char a[30] = "1"; hat den gleichen Effekt.


Anmelden zum Antworten