Adressvariablen???



  • Hi!
    Man erklärt in allen Büchern und Tutorials
    die Pointer folgendermaßen:
    int x=24,*z;
    z = &x;
    soweit alles gut.
    Ich habe neulich versucht aus der Standardbibliothek von C eine
    Funktion zu verwenden kam leider mit dem Wissen über Pointer
    wie ich sie oben erklärt bekam in der Praxis überhaupt nicht klar.
    Ganz konkret wie benutze ich bzw wie setze ich die Pointer in der
    Praxis ein? Ich sehe in der Praxis fast nie eine explizite z = &x - Zuweisung.
    Warum kann man das nicht wirklich so erklären, dass ich so eine stinknormale
    Funktion richtig benutzen kann.

    So was will nun die Funktion als Parameter?

    // char* strcpy (char* szCopyTo, const char* szSource);

    // size_t strlen(const char *s)

    //void* memmove (void* pMoveTo, const void* pSource, size_t sizeSource);

    ..eine Adresse, einen Wert, eine Referenz gar einen Stern(Witz)????
    Und der Rückgabewert ist auch etwas mit Stern also auch ein Pointer.
    Der Stern genau der Stern macht mir Probleme. Was muss ich grundsätlich
    machen wenn ich so einem Stern begegne??
    Kann mir das mal vielleicht wirklich jemand erklären was dieser Stern
    in diesen Funktionen auf sich hat.
    Kann es sein dass es vielleicht im Rumpf dieser Funktionen
    &-Zuweisung gibt. Etwa so

    char* strcpy (char* szCopyTo, const char* szSource)
    {

    char xyz,test,jkj;
    szCopyTo = &xyz ;
    szSource = &test;
    return .jkj;

    }
    Das wäre der einzige Weg die Tutorials nachvollzuzihen.

    Grüße



  • Hi,

    der Stern bedeutet, dass es sich um eine Pointer-Variable handelt, einen Verweis auf eine Speicherstelle im Speicher des Rechners. Der Typ gibt an, um was es sich an der Speicherstelle handeln soll, z.b. eine Zeichenkette. Wie man eine Zeichenkette programmiert weißt Du? Ansonsten nennt man das, was Du da angibtst Funktionsprototypen, die Dir zeigen, wie Du die Funktion beschicken musst und was Du wie zurück erhältst. Es ist eine Black-Box, über deren Inhalt Du deshalb auch nicht Bescheid wissen musst. Der Prototyp gibt Dir an, was Du übergeben musst. Einen char * - String oder einen konstanten String. Wenn Du Beispiele suchst in der MSDN von Microsoft gibt es zu jeder dieser String-Funktionen auch ein Beispiel zu deren Verwendung. Kannst Du ja mal reinschauen. Ach so, der & ist übrigens die Angabe, dass die Adresse übergeben werden soll und nicht deren Inhalt. Will ich den Inhalt einer Pointer-Variablen haben, so schreibe ich den * vor die Pointervariable und bekomme dann den Inhalt zurück. Ich hoffe, ich konnte Dir ein bisschen helfen.

    Gruß

    Oliver 🙂


Anmelden zum Antworten