Array in Funktion übergeben

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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.