În acest tutorial, veți învăța să treceți matrici (atât matrici unidimensionale, cât și multidimensionale) către o funcție din programarea C cu ajutorul exemplelor.
În programarea C, puteți transmite o întreagă matrice funcțiilor. Înainte de a afla acest lucru, să vedem cum puteți trece elemente individuale ale unui tablou la funcții.
Trecerea elementelor matrice individuale
Trecerea elementelor matrice la o funcție este similară cu trecerea variabilelor la o funcție.
Exemplul 1: Trecerea unui tablou
#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; )
Ieșire
8 4
Exemplul 2: Transmiterea matricilor către funcții
// 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; )
Ieșire
Rezultat = 162,50
Pentru a transmite o întreagă matrice către o funcție, numai numele matricei este transmis ca argument.
result = calculateSum(age);
Cu toate acestea, observați utilizarea lui ()
în definiția funcției.
float calculateSum(float age()) (… )
Aceasta informează compilatorul că transmiteți o matrice unidimensională funcției.
Transmiterea matricilor multidimensionale către o funcție
Pentru a transmite matrici multidimensionale către o funcție, numai numele matricei este transmis funcției (similar matricilor unidimensionale).
Exemplul 3: Trecerea matricilor bidimensionale
#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)); ) ) )
Ieșire
Introduceți 4 numere: 2 3 4 5 Afișare: 2 3 4 5
Notă: În programarea C, puteți transmite matrici către funcții, cu toate acestea, nu puteți returna matrici din funcții.