Pāriet masīvus funkcijai C

Š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.

Interesanti raksti...