Σε αυτό το σεμινάριο, θα μάθετε να μεταδίδετε πίνακες (τόσο μονοδιάστατες όσο και πολυδιάστατες συστοιχίες) σε μια λειτουργία στον προγραμματισμό C με τη βοήθεια παραδειγμάτων.
Στον προγραμματισμό C, μπορείτε να μεταβιβάσετε ολόκληρο τον πίνακα σε συναρτήσεις. Προτού το μάθουμε αυτό, ας δούμε πώς μπορείτε να μεταβιβάσετε μεμονωμένα στοιχεία ενός πίνακα σε συναρτήσεις.
Περνώντας μεμονωμένα στοιχεία πίνακα
Η μεταβίβαση στοιχείων πίνακα σε μια συνάρτηση είναι παρόμοια με τη μεταβίβαση μεταβλητών σε μια συνάρτηση.
Παράδειγμα 1: Διαβίβαση ενός πίνακα
#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; )
Παραγωγή
8 4
Παράδειγμα 2: Μετάδοση συστοιχιών σε συναρτήσεις
// 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; )
Παραγωγή
Αποτέλεσμα = 162,50
Για να μεταβιβάσετε έναν ολόκληρο πίνακα σε μια συνάρτηση, μόνο το όνομα του πίνακα περνά ως όρισμα.
result = calculateSum(age);
Ωστόσο, παρατηρήστε τη χρήση του ()
ορισμού της συνάρτησης.
float calculateSum(float age()) (… )
Αυτό ενημερώνει τον μεταγλωττιστή ότι μεταβιβάζετε έναν μονοδιάστατο πίνακα στη συνάρτηση.
Διαβίβαση πολυδιάστατων συστοιχιών σε μια λειτουργία
Για να περάσετε πολυδιάστατες συστοιχίες σε μια συνάρτηση, μόνο το όνομα του πίνακα περνά στη συνάρτηση (παρόμοια με μονοδιάστατες συστοιχίες).
Παράδειγμα 3: Διαβίβαση δισδιάστατων συστοιχιών
#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)); ) ) )
Παραγωγή
Εισαγάγετε 4 αριθμούς: 2 3 4 5 Εμφάνιση: 2 3 4 5
Σημείωση: Στον προγραμματισμό C, μπορείτε να μεταβιβάσετε πίνακες σε συναρτήσεις, ωστόσο, δεν μπορείτε να επιστρέψετε πίνακες από συναρτήσεις.