Passa array a una funzione in C

In questo tutorial imparerai a passare array (array unidimensionali e multidimensionali) a una funzione nella programmazione C con l'aiuto di esempi.

Nella programmazione C, puoi passare l'intero array alle funzioni. Prima di apprenderlo, vediamo come passare i singoli elementi di un array alle funzioni.

Passaggio di singoli elementi dell'array

Il passaggio di elementi di matrice a una funzione è simile al passaggio di variabili a una funzione.

Esempio 1: passaggio di un array

 #include void display(int age1, int age2) ( printf("%d", age1); printf("%d", age2); ) int main() ( int ageArray() = (2, 8, 4, 12); // Passing second and third elements to display() display(ageArray(1), ageArray(2)); return 0; ) 

Produzione

 8 4 

Esempio 2: passaggio di array a funzioni

 // Program to calculate the sum of array elements by passing to a function #include float calculateSum(float age()); int main() ( float result, age() = (23.4, 55, 22.6, 3, 40.5, 18); // age array is passed to calculateSum() result = calculateSum(age); printf("Result = %.2f", result); return 0; ) float calculateSum(float age()) ( float sum = 0.0; for (int i = 0; i < 6; ++i) ( sum += age(i); ) return sum; )

Produzione

 Risultato = 162,50

Per passare un intero array a una funzione, solo il nome dell'array viene passato come argomento.

 result = calculateSum(age);

Tuttavia, si noti l'uso di ()nella definizione della funzione.

 float calculateSum(float age()) (… )

Questo informa il compilatore che stai passando un array unidimensionale alla funzione.

Passaggio di array multidimensionali a una funzione

Per passare array multidimensionali a una funzione, solo il nome dell'array viene passato alla funzione (simile agli array unidimensionali).

Esempio 3: passaggio di array bidimensionali

 #include void displayNumbers(int num(2)(2)); int main() ( int num(2)(2); printf("Enter 4 numbers:"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) scanf("%d", &num(i)(j)); // passing multi-dimensional array to a function displayNumbers(num); return 0; ) void displayNumbers(int num(2)(2)) ( printf("Displaying:"); for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 2; ++j) ( printf("%d", num(i)(j)); ) ) )

Produzione

 Immettere 4 numeri: 2 3 4 5 Visualizzazione: 2 3 4 5 

Nota: nella programmazione C, è possibile passare array a funzioni, tuttavia, non è possibile restituire array da funzioni.

Articoli interessanti...