Übergeben von Arrays an Funktionen in C-Sprache

Übergeben von Arrays an Funktionen in C-Sprache

Wenn Sie ein eindimensionales Array als Argument in einer Funktion übergeben möchten, müssten Sie einen formalen Parameter auf eine der folgenden drei Arten deklarieren, und alle drei Deklarationsmethoden erzeugen ähnliche Ergebnisse, da jede dem Compiler mitteilt, dass ein ganzzahliger Zeiger geht zu erhalten. Ebenso können Sie mehrdimensionale Arrays als formale Parameter übergeben.

Weg-1

Formalparameter als Zeiger −

void myFunction(int *param) {
   .
   .
   .
}

Weg-2

Formale Parameter als geordnetes Array −

void myFunction(int param[10]) {
   .
   .
   .
}

Weg-3

Formale Parameter als Array ohne Größe −

void myFunction(int param[]) {
   .
   .
   .
}

Beispiel

Betrachten Sie nun die folgende Funktion, die ein Array zusammen mit einem anderen Argument als Argument verwendet und basierend auf den übergebenen Argumenten den Durchschnitt der durch das Array geleiteten Zahlen wie folgt zurückgibt −

double getAverage(int arr[], int size) {

   int i;
   double avg;
   double sum = 0;

   for (i = 0; i < size; ++i) {
      sum += arr[i];
   }

   avg = sum / size;

   return avg;
}

Lassen Sie uns nun die obige Funktion wie folgt aufrufen −

#include <stdio.h>
 
/* function declaration */
double getAverage(int arr[], int size);

int main () {

   /* an int array with 5 elements */
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;

   /* pass pointer to the array as an argument */
   avg = getAverage( balance, 5 ) ;
 
   /* output the returned value */
   printf( "Average value is: %f ", avg );
    
   return 0;
}

Wenn der obige Code zusammen kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis −

Average value is: 214.400000

Wie Sie sehen, spielt die Länge des Arrays für die Funktion keine Rolle, da C keine Begrenzungsprüfung für formale Parameter durchführt.