Hacer una llamar-por-referencia de la función, en vez de pasar la variable sí mismo, pasa la dirección de la variable. La dirección de la variable se puede tomar por usar y el operador. El Dereferencing es alcanzado en C usando la notación del indicador (*). Las funciones pueden ser recurrentes que es una función puede llamarse.

Data Recovery PRO DATA DOCTOR

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

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


Llamar-por-referencia

Hacer una llamar-por-referencia de la función, en vez de pasar la variable sí mismo, pasa la dirección de la variable. La dirección de la variable se puede tomar por usar y el operador. Las llamadas siguientes una función del intercambio que pasa la dirección de variables en vez de los valores reales.

swap(&x, &y);

El Dereferencing

El problema que tenemos ahora es que el intercambio de la función se ha pasado la dirección más bien que la variable, así que necesitamos dereference las variables de modo que estemos mirando los valores reales más bien que las direcciones de las variables para intercambiarlas.

El Dereferencing es alcanzado en C usando la notación del indicador (*). En términos simples, esto significa la colocación de a * antes de cada uno variable antes de usarlo para que refiera al valor de la variable más bien que a su dirección. El programa siguiente ilustra pasar-por-referencia para intercambiar dos valores.

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

Veamos la salida del programa:

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

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

Las funciones pueden ser recurrentes que es una función puede llamarse. Cada llamada a sí mismo requiere que el estado actual de la función esté empujado sobre el apilado. Es importante recordar este hecho pues es fácil crear un desbordamiento de apilado, es decir el apilado ha funcionado de espacio al lugar más datos.

El ejemplo siguiente calcula el factorial de un número usando la repetición. Un factorial es un número multiplicado por cada otro número entero debajo de sí mismo, abajo a 1. Por ejemplo, el factorial del número 6 es:

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

Por lo tanto el factorial de 6 es 720. Puede ser visto del ejemplo antedicho esos 6 factoriales = 6 * 5 factoriales. Semejantemente, 5 factoriales = 5 * 4 factoriales, y así sucesivamente.

Lo que sigue es la regla general para calcular números factoriales.

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

La regla antedicha termina cuando n = 1, como el factorial de 1 es 1. Intentemos entenderla mejor con la ayuda de ejemplo:

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

Veamos la salida de la ejecución de este programa:

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