Forum: PC-Programmierung Array in Funktion übergeben


von XYZ (Gast)


Lesenswert?

Hi
Ich hab da mal ne Frage. Ich habe hier ein kleine Programm in Visual C 
geschrieben, dass in eine Funktion ein Array übergibt.
Funktionieren tut das ganz auch aber soweit ich weiß, sollte es das 
eigentlich gar nicht. Kann mir das jemand erklären?

double maxwert(int datenanzahl, double datensatz[1000])
{
  int i;
  double groesste;

  //Gößterwert
  groesste=datensatz[0];

  for(i=1; i<datenanzahl; i++)
  {
    if(groesste<datensatz[i])
    {
      groesste=datensatz[i];
    }
  }
  return groesste;
}


int main(int argc, char* argv[])
{
   int datenanzahl;
   double datensatz[1000];


        maxdrehz=maxwert(datenanzahl, datensatz);

von Karl H. (kbuchegg)


Lesenswert?

XYZ schrieb:
> Hi
> Ich hab da mal ne Frage. Ich habe hier ein kleine Programm in Visual C
> geschrieben, dass in eine Funktion ein Array übergibt.
> Funktionieren tut das ganz auch aber soweit ich weiß, sollte es das
> eigentlich gar nicht. Kann mir das jemand erklären?
>
> double maxwert(int datenanzahl, double datensatz[1000])


Das ist nur eine alternative Schreibweise für
1
 double maxwert(int datenanzahl, double * datensatz)

Die Einen mögen sie. Hauptsächlich deshalb, weil sie Pointer für 
Teufelszeug halten, dass man nicht verstehen kann.

Die Anderen hassen sie, weil sie etwas suggeriert, was in Wirklichkeit 
nicht stattfindet.

von XYZ (Gast)


Lesenswert?

Danke für die Aufklärung!
Hatte mich schon gewundert, warum das funktioniert.

von Karl H. (kbuchegg)


Lesenswert?

XYZ schrieb:
> Danke für die Aufklärung!
> Hatte mich schon gewundert, warum das funktioniert.

LOL
Du hast das an anderer Stelle auch schon benutzt

int main(int argc, char* argv[])

                             ^
                             |

Ob da in den Klammern noch eine Zahl steht oder nicht, ist dem Compiler 
aber sowas von egal :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.