Ergebnis 1 bis 2 von 2

Thema: Frage zu Zeigern

  1. #1
    Neuer Benutzer
    Registriert seit
    14.07.2017
    Beiträge
    1

    Standard Frage zu Zeigern

    Hallo !

    Ich schreibe am Montag eine Klausur in Informatik und stoße bei den Übungsklausuren immer wieder an einen Punkt den ich mir nicht erklären kann.
    Ich hoffe Ihr könnt mir weiterhelfen.

    Quellcode:
    Code:
    #include <stdio.h>
    
    main()
    {
    int index;
    char *y, *z, text[] = "ebagfuA";
    z = text;
    for (index = 6; index > -1; index--)
    {
    y = z + index;
    printf("%c",*y);
    }
    }
    Die Ausgabe ist "Aufgabe", das ist mir soweit klar.

    Jetzt kommt der Teil der mir ein Rätsel ist:
    Die printf Anweisung wird nun geändert in :
    Code:
    printf("%s",y);
    Die Ausgabe ist jetzt: "AuAfuAgfuAagfuAbagfuAebagfuA"

    Ich verstehe einfach nicht wie das zustande kommt und wie ich in der Klausur darauf kommen soll.

    Ich hoffe ihr könnt mir weiterhelfen.

    LG Harle

  2. #2
    CodePlanet Staff Avatar von GAGA
    Registriert seit
    11.09.2005
    Beiträge
    166

    Standard

    Hallo Harle!

    Der Grund liegt darin, dass %c immer ein Character, also ein Zeichen ausgibt, während %s einen ganzen String ausgibt. Ein String in C ist immer nullterminiert, d.h. er endet mit \0. Wenn oben

    PHP-Code:
    text[] = "ebagfuA"
    definiert wird, hängt der Compiler automatisch die 0 an.

    Das führt in deiner Aufgabe nun dazu, dass von hinten nach vorne 6 mal ausgegeben wird. Zuerst der letzte Buchstabe A, dann der vorletzte und letzte Buchstabe uA usw. bis am Ende der ganze String 1 zu 1 ausgegeben wird.

    Grüße,
    GAGA

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •