Einzelnen Beitrag anzeigen

Waldteufel
(Gast)

n/a Beiträge
 
#2

Re: [C] Fragen zu Pointern

  Alt 23. Jun 2007, 15:23
Hallo Matze.

Code:
void main()
{
    char Buchstab, *pointerBuch = &Buchstab;

    pointerBuch = "Adam Riese";         // (1) -> richtig
    pointerBuch = "a";                  // (2) -> richtig

    *Buchstab = "xyz";                   // (3) -> falsch, als falsch markiert: *
}
In C ist ein string, wie man ihn aus Pascal/Delphi kennt kein nativer Datentyp, sondern ein Pointer auf ein Zeichen. Zum String gehören dann alle Zeichen nach dem, auf das gezeigt wird, bis zum Nullzeichen \0.

Daher ist bei 1 und 2 der Ausdruck auf der rechten Seite ebenfalls ein Pointer und kann deshalb zugewiesen werden.

Bei 3 steht aber auf der linken Seite ein Ausdruck des Typs char, an den natürlich kein Pointer zugewiesen werden kann. Wenn man den Stern allerdings weglässt ergibt sich:

Code:
Buchstab = "xyz";
Hier sind wieder beide Seiten vom Typ char* und die Zuweisung funktioniert!

EDIT: Blödsinn... Buchstab ist eben kein Pointer und auch ohne Stern geht's nicht...

Gruß,
Waldteufel
  Mit Zitat antworten Zitat