Latest web development tutorials

C ein Array an eine Funktion übergeben

C-Array C - Array

Wenn Sie ein eindimensionales Array in einer Funktion als Argument übergeben wollen, können Sie in den folgenden drei Möglichkeiten sein muss, eine Funktion in Form von Parametern zu erklären, die Ergebnisse dieser drei Aussagen ist die gleiche Weise, weil jeder Weg, den Compiler sagen, wird ein zu erhalten Integer-Zeiger. Ebenso können Sie auch ein mehrdimensionales Array als formale Parameter.

Modus 1

Formale Parameter ist ein Zeiger (Sie im nächsten Kapitel zur Erkenntnis des Zeigers lernen kann):

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

Modus 2

Formale Parameter ist ein Array-Größe:

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

Modus 3

Formale Parameter ist ein Array von nicht definierten Größe:

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

Beispiele

Lassen Sie uns nun auf die folgende Funktion suchen, die das Array als Parameter, und auch andere Parameter übergeben, nach der Verkündigung der Parameter, die durchschnittliche Rendite für jedes Element im Array:

double getAverage(int arr[], int size)
{
  int    i;
  double avg;
  double sum;

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

  avg = sum / size;

  return avg;
}

Nun wollen wir die obige Funktion wie folgt aufrufen:

#include <stdio.h>
 
/* 函数声明 */
double getAverage(int arr[], int size);

int main ()
{
   /* 带有 5 个元素的整型数组 */
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;

   /* 传递一个指向数组的指针作为参数 */
   avg = getAverage( balance, 5 ) ;
 
   /* 输出返回值 */
   printf( "平均值是: %f ", avg );
    
   return 0;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

平均值是: 214.400000

Wie Sie sehen können, die Funktion ist die Länge des Arrays irrelevant, weil C die Überprüfung der Grenzen Formparameter nicht durchführen.

C-Array C - Array