Ohita taulukot funktiolle C

Tässä opetusohjelmassa opit siirtämään taulukot (sekä yksi- että moniulotteiset taulukot) C-ohjelmoinnin funktiolle esimerkkien avulla.

C-ohjelmoinnissa voit siirtää koko matriisin funktioille. Ennen kuin opimme sen, katsotaanpa, kuinka voit siirtää matriisin yksittäiset elementit funktioille.

Yksittäisten taulukkoelementtien välittäminen

Matriisielementtien välittäminen funktiolle on samanlainen kuin muuttujien välittäminen funktiolle.

Esimerkki 1: Taulukon välittäminen

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

Tuotos

 8 4 

Esimerkki 2: Taulukoiden välittäminen funktioille

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

Tuotos

 Tulos = 162,50

Jos haluat siirtää koko taulukon funktiolle, vain taulukon nimi välitetään argumenttina.

 result = calculateSum(age);

Huomaa kuitenkin ()funktion määritelmän käyttö.

 float calculateSum(float age()) (… )

Tämä ilmoittaa kääntäjälle, että välität funktiolle yksiulotteisen taulukon.

Moniulotteisten taulukoiden välittäminen funktiolle

Jos haluat siirtää moniulotteisia taulukoita funktiolle, vain ryhmän nimi välitetään funktiolle (samanlainen kuin yksiulotteiset taulukot).

Esimerkki 3: Kaksiulotteisten taulukoiden välittäminen

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

Tuotos

 Syötä 4 numeroa: 2 3 4 5 Näytetään: 2 3 4 5 

Huomaa: C-ohjelmoinnissa voit siirtää matriiseja funktioille, mutta et voi palauttaa taulukoita funktioista.

Mielenkiintoisia artikkeleita...