Hallo!
Ich bin ein Anfänger was C++ betrifft. Im Moment arbeite ich ein Einsteiger C++ Buch durch und bin beim Kapitel "Variablenfelder" (alle Quelltexte kompiliere ich unter RedHat Linux mit dem GNU Compiler gcc). Dort ist folgendes Programm leider ohne erleuchtende Erklärung abgedruckt:
Soweit so gut (ich hab das Programm bis jetzt noch nicht ausprobiert, mir geht es erstmal um das logische Verständnis). #include usw. ist klar. void input(int *a) heißt, daß die Funktion keinen Wert zurückliefert und das an sie der Inhalt (Dereferenzierungsoperator mit *) einer bestimmten Adresse übergeben wird. Die Funktion zählt zehn mal und erwartet vom Benutzer 10 Eingaben, die er im Array a abspeichert. Stimmt das?
Der Inhalt der zweiten Funktion ist mir ziemlich unklar...was ist a[y]*=2 für ein Ausdruck?
Die dritte Funktion ist wohl wie die erste.
Den Sinn des Inhaltes in der main-Funktion konnte ich bisher auch nicht ergründen. Die Funktionsnamen scheinen so etwas wie Feldnamen zu sein. Aber wieso liefern die Funktionen keinen Rückgabewert? Alle Variablen werden doch gelöscht beim Verlassen, wie kann dann mit den Werten weiter gerechnet werden?
Ich bin ein Anfänger was C++ betrifft. Im Moment arbeite ich ein Einsteiger C++ Buch durch und bin beim Kapitel "Variablenfelder" (alle Quelltexte kompiliere ich unter RedHat Linux mit dem GNU Compiler gcc). Dort ist folgendes Programm leider ohne erleuchtende Erklärung abgedruckt:
Code:
#include <iostream.h>
using namespace std;
void input(int *a)
{
int y;
for(y=0;y<10;y++)
{
cout << "bitte Zahl " << y+1 << " eingeben:";
cin >> a[y];
}
}
void calc(int *a)
{
int y;
for(y=0;y<10;y++)
a[y]*=2;
}
void output(int *a)
{
int y;
for(y=0;y<10;y++)
{
cout << "Das Ergebnis der " << y+1;
cout << ". Multiplikation ist " << a[y] << endl;
}
}
int main()
{
int x[10];
input(x);
calc(x);
output(x);
}
Soweit so gut (ich hab das Programm bis jetzt noch nicht ausprobiert, mir geht es erstmal um das logische Verständnis). #include usw. ist klar. void input(int *a) heißt, daß die Funktion keinen Wert zurückliefert und das an sie der Inhalt (Dereferenzierungsoperator mit *) einer bestimmten Adresse übergeben wird. Die Funktion zählt zehn mal und erwartet vom Benutzer 10 Eingaben, die er im Array a abspeichert. Stimmt das?
Der Inhalt der zweiten Funktion ist mir ziemlich unklar...was ist a[y]*=2 für ein Ausdruck?
Die dritte Funktion ist wohl wie die erste.
Den Sinn des Inhaltes in der main-Funktion konnte ich bisher auch nicht ergründen. Die Funktionsnamen scheinen so etwas wie Feldnamen zu sein. Aber wieso liefern die Funktionen keinen Rückgabewert? Alle Variablen werden doch gelöscht beim Verlassen, wie kann dann mit den Werten weiter gerechnet werden?