B
ByeBye 249714
Hallo!
Ich arbeite mit C und versuche mir zur Zeit den Umgang mit Pointern klar zu machen... zu folgendem Codeschnipsel habe ich eine Frage:
Was dort von statten geht glaube ich verstanden zu haben:
Die Funktion eingabe erwartete einen pointer auf eine Integer-Variable. Pointer haben als Werte Adressen (auf diese Adresse zeigen sie). Damit eine Adresse übergeben wird, steht deswegen der Adressoperatur vor a in Zeile 10. Die Funktion scanf erwartet eine Adresse, an die es die eingelesene Zahl speichern kann, also in diesem Fall der Pointer alpha (formaler Parameter) bzw. der aktuelle Paramater, die Adresse von a,.
Warum ist folgendes nicht möglich?:
Die Funktion nimmt sich die Variable n vom Typ Integer und schreibt in sie den eingelesenen Wert ein.
Ich arbeite mit C und versuche mir zur Zeit den Umgang mit Pointern klar zu machen... zu folgendem Codeschnipsel habe ich eine Frage:
Code:
void eingabe (int * alpha)
{
printf ("Gib a ein: ");
scanf ("%d", alpha);
}
int main (void)
{
int a;
eingabe (&a);
printf ("\nDer Wert von a ist %d", a);
return 0;
}
Was dort von statten geht glaube ich verstanden zu haben:
Die Funktion eingabe erwartete einen pointer auf eine Integer-Variable. Pointer haben als Werte Adressen (auf diese Adresse zeigen sie). Damit eine Adresse übergeben wird, steht deswegen der Adressoperatur vor a in Zeile 10. Die Funktion scanf erwartet eine Adresse, an die es die eingelesene Zahl speichern kann, also in diesem Fall der Pointer alpha (formaler Parameter) bzw. der aktuelle Paramater, die Adresse von a,.
Warum ist folgendes nicht möglich?:
Code:
void eingabe (int n)
{
printf ("Gib a ein: ");
scanf ("%d", &n);
}
int main (void)
{
int a;
eingabe (a);
printf ("\nDer Wert von a ist %d", a);
return 0;
}