Array in Funktion übergeben

Gast #1255842
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);
#1255850
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.
#1256019
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 :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren