Fazer uma cham-por-referência da função, em vez de passar a variável própria, passa o endereço da variável. O endereço da variável pode ser feito exame usar-se & por operador. Dereferencing é conseguido em C usando a notação do ponteiro (*). As funções podem ser recursive que é uma função pode se chamar.

Data Recovery PRO DATA DOCTOR

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

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


Call-by-reference

Fazer uma cham-por-referência da função, em vez de passar a variável própria, passa o endereço da variável. O endereço da variável pode ser feito exame usar-se & por operador. As seguintes chamadas uma função da troca que passa o endereço das variáveis em vez dos valores reais.

swap(&x, &y);

Dereferencing

O problema que nós temos é agora que a troca da função estêve passada ao endereço melhor que à variável, assim que nós necessitamos dereference as variáveis de modo que nós estejamos olhando os valores reais melhor que os endereços das variáveis a fim as trocar.

Dereferencing é conseguido em C usando a notação do ponteiro (*). Em termos simples, isto significa colocar a * antes de cada um variável antes de usá-lo a fim de que consulte ao valor da variável melhor que a seu endereço. O seguinte programa ilustra a pass-por-referência para trocar dois 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;
}

Deixar-nos ver a saída do programa:

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

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

As funções podem ser recursive que é uma função pode se chamar. Cada chamada a se requer que o estado atual da função está empurrado na pilha. É importante recordar este fato porque é fácil criar um excesso de pilha, isto é a pilha funcionou fora do espaço ao lugar any more dados.

O seguinte exemplo calcula o Factorial de um número usando o recursion. Um factorial é um número multiplicado por cada outro inteiro abaixo dse, para baixo a 1. Por exemplo, o factorial do número 6 é:

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

Conseqüentemente o factorial de 6 é 720. Pode-se ver do exemplo acima esses 6 factorial = 6 * 5 factorial. Similarmente, 5 factorial = 5 * 4 factorial, e assim por diante.

O seguinte é a régua geral para calcular números factorial.

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

A régua acima termina quando n = 1, como o factorial de 1 é 1. Deixar-nos tentar compreendê-la mais melhor com a ajuda do exemplo:

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

Deixar-nos ver a saída da execução deste 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 | 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