Να κάνει μια κλήση-από-αναφορά λειτουργίας, αντί της διάβασης τησαπό μεταβλητής η ίδια, περνά τη διεύθυνση της μεταβλητής. Η διεύθυνση της μεταβλητής μπορεί να ληφθεί από τη χρησιμοποίηση & το χειριστή. Το Dereferencing επιτυγχάνεται στο γ με τη χρησιμοποίηση της σημείωσης δεικτών (*). Οι λειτουργίες μπορούν να είναι επαναλαμβανόμενες που είναι μια λειτουργία μπορεί να κληθεί.

Data Recovery PRO DATA DOCTOR

Home | Order Online | Downloads | Contact Us | Software Knowledgebase

it | es | pt | fr | de | jp | kr | cn | ru | nl | gr


Κλήση-από-αναφορά

Να κάνει μια κλήση-από-αναφορά λειτουργίας, αντί της διάβασης η ίδια της μεταβλητής, περνά τη διεύθυνση της μεταβλητής. Η διεύθυνση της μεταβλητής μπορεί να ληφθεί από τη χρησιμοποίηση & το χειριστή. Οι ακόλουθες κλήσεις μια λειτουργία ανταλλαγής που περνά τη διεύθυνση των μεταβλητών αντί των πραγματικών τιμών.

swap(&x, &y);

Dereferencing

Το πρόβλημα έχουμε τώρα είμαστε ότι την ανταλλαγή λειτουργίας έχουν περάσει τη διεύθυνση παρά τη μεταβλητή, έτσι χρειαζόμαστε στο dereference τις μεταβλητές έτσι ώστε εξετάζουμε τις πραγματικές τιμές παρά τις διευθύνσεις των μεταβλητών προκειμένου να αυτές ανταλλαχθούν.

Το Dereferencing επιτυγχάνεται στο γ με τη χρησιμοποίηση της σημείωσης δεικτών (*). Στους απλούς όρους, αυτό σημαίνει την τοποθέτηση * πριν από κάθε μεταβλητή πρίν χρησιμοποιεί το για αναφέρει στην αξία της μεταβλητής παρά τη διεύθυνσή του. Το ακόλουθο πρόγραμμα επεξηγεί την περνώ-από-αναφορά στην ανταλλαγή δύο τιμές.

#include <stdio.h>
void swap(int *x, int *y);

int main()
{
int x=6, y=10;
printf("Before the function swap, x = %d and y =
%d\n\n", x, y);

swap(&x, &y);

printf("After the function swap, x = %d and y =
%d\n\n", x, y);
return 0;
}

void swap(int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}

Δείτε την παραγωγή του προγράμματος:

Before the function swap, x = 6 and y = 10

After the function swap, x = 10 and y = 6

Οι λειτουργίες μπορούν να είναι επαναλαμβανόμενες που είναι μια λειτουργία μπορεί να κληθεί. Κάθε κλήση σε το απαιτεί ότι η τρέχουσα κατάσταση της λειτουργίας ωθείται επάνω στο σωρό. Είναι σημαντικό να αναφερθεί αυτό το γεγονός όπως είναι εύκολο να δημιουργηθεί μια υπερχείλιση σωρών, δηλ. ο σωρός έχει τρέξει από το διάστημα για να τοποθετήσει άλλα στοιχεία.

Το ακόλουθο παράδειγμα υπολογίζει τον παραγοντικό ενός αριθμού χρησιμοποιώντας recursion. Ένας παραγοντικός είναι ένας αριθμός που πολλαπλασιάζεται με κάθε άλλο ακέραιο αριθμό κάτω από το, κάτω από σε 1. Παραδείγματος χάριν, ο παραγοντικός του αριθμού 6 είναι:

Factorial 6 = 6 * 5 * 4 * 3 * 2 * 1

Επομένως ο παραγοντικός 6 είναι 720. Μπορεί να δει από το ανωτέρω παράδειγμα που παραγοντικά 6 = 6 * παραγοντικά 5. Ομοίως, παραγοντικά 5 = 5 * παραγοντικά 4, και τα λοιπά.

Tπου είναι ο γενικός κανόνας για τους παραγοντικούς αριθμούς.

factorial(n) = n * factorial(n-1)

Ο ανωτέρω κανόνας ολοκληρώνει όταν ν = προσπαθήστε 1, δεδομένου ότι ο παραγοντικός 1 είναι 1. να το καταλάβετε καλύτερα με τη βοήθεια του παραδείγματος:

#include <stdio.h>
long int factorial(int num);

int main()
{
int num;
long int f;

printf("Enter a number: ");
scanf("%d", &num);

f = factorial(num);

printf("factorial of %d is %ld\n", num, f);
return 0;
}

long int factorial(int num)
{
if (num == 1)
return 1;

else
return num * factorial(num-1);
}

Δείτε την παραγωγή της εκτέλεσης αυτού του προγράμματος:

Enter a number: 7
factorial of 7 is 5040

 

Sample Chapters from book DATA RECOVERY WITH AND WITHOUT PROGRAMMING by Author Tarun Tyagi
Data Recovery with & without Programming


Publishers of the Book
Number of Pages
ISBN
Price of the Book


BPB Publications, New Delhi, India
540
81-7656-922-4
$69.00 (Including Shipping Charges, Cost of Book and Other expenses, Free Source Code CD included with the Book)





Buy Data recovery Book

Previous page

page 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20

 
 

page 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37

 
 

page 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54

 
 

page 55 | 56 | 57 | 58 | 59 | 60

Next page

© Copyright 2002-2005 DataDoctor.Biz

Home | Contact us | Downloads | Services | Resources | Terms and conditions | Site map

Website Data Recovery | recuperación de Datos | Récupération de données | Datenrettung | Recupero dati | データ復旧 | 데이터 복구 | 数据恢复 | Восстановление данных | De terugwinning van gegevens | Ανάκτηση δεδομένων
Sitemap Site map1 2 3 4 | Spanish1 2 3 | French1 2 3 | German1 2 3 | Italian1 2 3 | Portuguese1 2 3 | Japanese1 2 3 | Korean1 2 3 | Chinese1 2 3 | Russian1 2 3 | Dutch1 2 3 | Greek1 2 3
Data Recovery Book English | Spanish | French | German | Italian | Portuguese | Japanese | Korean | Chinese | Russian | Dutch | Greek