Skicka matriser till en funktion i C.

I den här handledningen lär du dig att skicka matriser (både endimensionella och flerdimensionella matriser) till en funktion i C-programmering med hjälp av exempel.

I C-programmering kan du skicka en hel uppsättning till funktioner. Innan vi lär oss det, låt oss se hur du kan skicka enskilda element i en matris till funktioner.

Passerar enskilda matriselement

Att skicka matriselement till en funktion liknar att skicka variabler till en funktion.

Exempel 1: Skicka en matris

 #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; ) 

Produktion

 8 4 

Exempel 2: Skicka matriser till funktioner

 // 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; )

Produktion

 Resultat = 162,50

För att skicka en hel matris till en funktion skickas endast namnet på matrisen som ett argument.

 result = calculateSum(age);

Lägg dock märke till användningen av ()i funktionsdefinitionen.

 float calculateSum(float age()) (… )

Detta informerar kompilatorn om att du skickar en endimensionell matris till funktionen.

Förmedla flerdimensionella matriser till en funktion

För att skicka flerdimensionella matriser till en funktion skickas bara namnet på matrisen till funktionen (liknar endimensionella matriser).

Exempel 3: Skicka tvådimensionella matriser

 #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)); ) ) )

Produktion

 Ange 4 nummer: 2 3 4 5 Visning: 2 3 4 5 

Obs: I C-programmering kan du skicka matriser till funktioner, men du kan inte returnera matriser från funktioner.

Intressanta artiklar...