C-Programmierung

Array Parameter Beispiel

Arrays als Parameter | | Einsatz von Zeigerarithmetik

Implizites Beispiel:

void init(int a[10]) /* implicit declaration of pointer */
{
   int i;
   for (i=0; i<10; i++) a[i]=i+1;
}

int a[10], b[10]; /* definition of array */

init(a);
init(b);

Explizites Beispiel:

int sum(const int *a, int n) /* explicit declaration of pointer */
{
   int i,x;
   for (x=0,i=0; i<n; i++) x += a[i];
   return(x);
}

int a[5] = {1,2,3,4,5}; /* definition of array with initialization */
int s = sum(a, 5);

Um den Unterschied zu Call-By-Reference Parametern zu verdeutlichen, benutzt man const-Parameterzeiger. In ersterem Fall werden Werte zurück geschrieben, in letzterem Fall sollen nur Werte übergeben werden, d.h. das Schreiben wird durch die Verwendung des const Schlüsselwortes verboten.

Call-by-Value:

void set(int v) // local copy, no side effect
{
   v=42;
}

Call-by-Reference:

void set(int *a) // read and write
{
   *a=42;
}

Array-as-Parameter:

int get(const int *a) // read only, no side effect
{
   return(*a);
}


Arrays als Parameter | | Einsatz von Zeigerarithmetik

Options: