Um zu verstehen, was notwendig ist, geschieht etwas zu sagen, was Variable bedeutet, als etwas sagen über Zeiger und seine Typen und schließlich erklären, wie funktioniert scanf
Werke und warum ist es gut, seinen Rückgabewert zu überprüfen.
Lets fragen, was ist Variable a
?
a
ist nur Speicheradresse benannt. Wenn Sie Code a
eintippen sagt es im Wesentlichen zum Compiler, um Wert zu erhalten, der auf dieser Speicheradresse liegt, was in Ihrem Fall Wert 5
ist.
Also, wenn Sie a
passieren funktionieren übergeben Sie nur Wert, der in Ihrem Fall ist 5. Wenn Sie durch die Funktion wollen Wert zu schreiben, in die Variable Sie haben Zeiger auf Ihre Variable a
passieren.
Und was ist ein Zeiger?
Zeiger ist nur Speicheradresse mit Informationen über den Datentyp, der auf dieser Speicheradresse liegt.
Warum müssen Sie Info Compiler über den Typ?
Da verschiedene Typen unterschiedliche Größe im Speicher belegen (1B, 2B was auch immer).
Grundsätzlich geben Sie den Typ des Zeigers in Ihrem Funktionsparameter an. Zum Beispiel lässt Funktion f
void f(int* b){
b = 42;
}
definieren und rufen Sie die Funktion f
wie folgt aus: f (& a); und nach seinem Aufruf ist der Wert der Variablen a
42
. Aber Funktion scanf
ist nicht in diesem Fall weiterlesen ...
Wie funktioniert funktioniert scanf?
Funktion scanf
deklariert als:
int scanf (const char * format, ...);
Diese ...
sagt, dass Funktion variable Anzahl von Parametern akzeptiert. So hat am Anfang keine Info über Arten von Parametern und deren Anzahl. Sie müssen also jeden Typ jedes Parameters in der Zeichenfolge format
angeben. So
, wenn Sie schreiben:
scanf("%d", &a);
Sie sagen. „Hey Funktion scanf
Ich gebe Ihnen meine Variable Adresse und schreiben Sie mir bitte an diese Adresse Wert der Zahl, die scanf
von der Standardeingabe liest und Funktion wissen, dass Zeiger auf Variable a
ist Typ int
von Format-String %d
.
nicht vergessen Rückgabewert der Funktion scanf zu überprüfen
Und außerdem ist es eine gute Angewohnheit, den Rückgabewert der Funktion scanf zu überprüfen, die angibt, ob die Methode erfolgreich war oder fehlgeschlagen ist. (Der Benutzer kann anstelle der Nummer den Text "Hallo" angeben.)
Weitere Informationen über die Funktion scanf und ihren Rückgabewert finden Sie unter in documentation.
Da wir den Kontext Ihrer Hausaufgaben nicht haben, ist es schwierig, es zu tun. Sagte, dass wir keine "tue meine Hausaufgaben" -Seite sind. – Olaf
@Olaf Es ist keine Hausaufgabe. Außerdem spielt es keine Rolle, ob es sich um Hausaufgaben handelt oder nicht. Ich versuche die Dinge zu verstehen. –
Dies wird in so vielen Tutorials, C-Büchern oder Online-Dokumentation erklärt ... – jcoppens