Šajā apmācībā jūs ar piemēriem iemācīsities nodot masīvus (gan viendimensiju, gan daudzdimensionālus masīvus) funkcijai C programmēšanā.
Programmējot C, funkcijām varat nodot visu masīvu. Pirms mēs to uzzināsim, redzēsim, kā jūs varat nodot atsevišķus masīva elementus funkcijām.
Atsevišķu masīva elementu nodošana
Masīva elementu nodošana funkcijai ir līdzīga mainīgo pārsūtīšanai funkcijai.
1. piemērs: masīva nodošana
#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; )
Rezultāts
8 4
2. piemērs: masīvu nodošana funkcijām
// 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; )
Rezultāts
Rezultāts = 162,50
Lai funkcijai nodotu visu masīvu, kā arguments tiek nodots tikai masīva nosaukums.
result = calculateSum(age);
Tomēr ievērojiet ()
funkcijas definīcijā lietošanu.
float calculateSum(float age()) (… )
Tas kompilatoram paziņo, ka funkcijai tiek nodots viendimensiju masīvs.
Daudzdimensionālu masīvu nodošana funkcijai
Lai funkcijai nodotu daudzdimensiju masīvus, funkcijai tiek nodots tikai masīva nosaukums (līdzīgi kā viendimensiju masīviem).
3. piemērs: divdimensiju masīvu nodošana
#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)); ) ) )
Rezultāts
Ievadiet 4 ciparus: 2 3 4 5 Parādīšana: 2 3 4 5
Piezīme: Programmējot C, jūs varat nodot masīvus funkcijām, taču jūs nevarat atgriezt masīvus no funkcijām.