wofür steht bei c scanf() das "&" (programmieren)

2 Antworten

Variablen werden irgendwo im Speicher deines Computers abgelegt. Die Stelle wo die Variable abgelegt wird, wird als ihre „Adresse“ bezeichnet. Jetzt wird es aber kompliziert.

Mit der Zeile

int *zeiger;

deklariert man eine Adressvariable namens „zeiger“ – dieser Wert ist immer!! eine Speicheradresse! Üblicherweise sollte man mit dieser Variablen nicht unbedingt rechnen. Natürlich kann man 10 oder 20 addieren oder subtrahieren und erhält eine entsprechend höhere bzw. niedrigere Adresse. Nur sollte man dann wissen, was dort im Speicher steht. Mehr ist jedoch sinnvoller Weise nicht möglich …

Mit der Zeile

scanf ("%d",&i);

sagt man, lies an der Stelle i den Wert aus und gib ihn mir. D.h. & ist ein Adressoperator, der auf die Adresse von i zeigt bzw. diese Adresse „referenziert“. An der Adresse von i (&) steht also der Integerwert, der gesucht ist …

Mit dem "&"-Operator werden in C Adressen von Variablen angesprochen. Bei deinem scanf wird also ein ganzzahliger Wert (integer: %d) in die Adresse der Variable i gespeichert. Der Compiler muss wissen, wo er die eingegebene Zahl abspeichern muss - daher die Adresse.

Hoffe, es war verständlich ausgedrückt.

Woher ich das weiß:Studium / Ausbildung – Masterstudium Elektrotechnik - Schwerpunkt Embedded Systems