Δείτε ένα άλλο παράδειγμα. Το ακόλουθο παράδειγμα χρησιμοποιεί μια λειτουργία αποκαλούμενη τετραγωνική που γράφει το τετράγωνο των αριθμών μεταξύ 1 και 10.
#include <stdio.h>
int square(int x); /* Function prototype */
int main()
{
int counter;
for (counter=1; counter<=10; counter++)
printf("Square of %d is %d\n", counter, square(counter));
return 0;
}
/* Καθορίστε τη λειτουργία "τετράγωνο" */
int square(int x)
{
return x * x;
}
Η παραγωγή αυτού του προγράμματος θα επιδειχθεί ως εξής:
Square of 1 is 1
Square of 2 is 4
Square of 3 is 9
Square of 4 is 16
Square of 5 is 25
Square of 6 is 36
Square of 7 is 49
Square of 8 is 64
Square of 9 is 81
Square of 10 is 100 |
Το τετράγωνο πρωτοτύπων λειτουργίας δηλώνει μια λειτουργία που παίρνει μια παράμετρο ακέραιων αριθμών και επιστρέφει έναν ακέραιο αριθμό. Όταν ο μεταγλωττιστής φθάνει στην κλήση λειτουργίας στο τετράγωνο στο κύριο πρόγραμμα, είναι σε θέση να ελέγξει την κλήση λειτουργίας σε σχέση με τον καθορισμό της λειτουργίας.
Όταν το πρόγραμμα φθάνει στη γραμμή που καλεί το τετράγωνο λειτουργίας, το πρόγραμμα πηδά στη λειτουργία και εκτελεί εκείνη την λειτουργία πρίν επαναλαμβάνει την πορεία του μέσω του κύριου προγράμματος. Τα προγράμματα που δεν έχουν έναν επιστροφής τύπο πρέπει να δηλωθούν χρησιμοποιώντας το κενό. Κατά συνέπεια οι παράμετροι στη λειτουργία μπορούν να είναι πέρασμα από την αξία ή πέρασμα από την αναφορά.
Μια επαναλαμβανόμενη λειτουργία είναι μια λειτουργία που καλείται. Και αυτή η διαδικασία καλείται recursion.
Πέρασμα από τις λειτουργίες αξίας
Τις παραμέτρους της τετραγωνικής λειτουργίας στο προηγούμενο παράδειγμα από η αξία περνούν. Αυτό σημαίνει ότι μόνο ένα αντίγραφο της μεταβλητής έχουν περάσει στη λειτουργία. Οποιεσδήποτε αλλαγές στην αξία δεν θα απεικονιστούν πίσω στην καλώντας λειτουργία.
Η ακόλουθες πέρασμα-από-αξία και οι αλλαγές χρήσεων παραδείγματος η αξία της περασμένης παραμέτρου, η οποία δεν έχει καμία επίδραση στην καλώντας λειτουργία. Η λειτουργία count_down έχει δηλωθεί τόσο το κενό όπως δεν υπάρχει κανένας επιστροφής τύπος.
#include <stdio.h>
void count_down(int x);
int main()
{
int counter;
for (counter=1; counter<=10; counter++)
count_down(counter);
return 0;
}
void count_down(int x)
{
int counter;
for (counter = x; counter > 0; counter--)
{
printf("%d ", x);
x--;
}
putchar('\n');
}
Η παραγωγή του προγράμματος θα επιδειχθεί ως εξής:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
7 6 5 4 3 2 1
8 7 6 5 4 3 2 1
9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1 |
|