Frage von AZ1212, 28

Frage zu %c (c-programmierung)?

Hallo, Warum schreibe ich ("%c",beispiel) ohne '&' also ("%c",&beispiel)? Möchte außerdem gerne wissen warum ich bei %d, %f ... das & schreiben muss, was bedeutet das? danke im voraus.

Bild im Anhang

Antwort
von Minihawk, 17

Das ist ganz einfach zu erklären:

Variablen für Zahlenwerte sind echte Variablen, die einen Speicherbereich belegen, ihr Aufruf gibt den zahlenwert zurück, nicht den Zeiger auf den Speicherbereich.

Willst du also etwas in eine Variable einfügen per scanf-Befehl, so muss dem Befehl der Zeiger auf die Variable übergeben werden so dass er in den Speicherbereich den Wert ablegt. Beim printf-Befehl musst du keinen Zeiger nutzen, da dort nichts in die Variable gespeichert werden muss.

Ein string ist ein Speicherbereich, dessen Variable ist direkt ein Zeiger. Er zeigt auf einen Speicherbereich, der aus Zeichen besteht und einem Wert 0, der den String beendet. Daher muss man hier bei scanf keinen Zeiger angeben, man benötigt das &-Zichen nicht, bzw. das &-Zeichen würde auf den Speicherbereich verweisen, an dem der Zeiger gespeichert ist.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten