Passagem de parâmetros
Passagem por valor:
Ex.:
Int funcao (int a, int b){
Return (a+b);
}
Esse tipo de passagem de parâmetros não faz com que a variável de valor. Se o objetivo é fazer com que isso ocorra deve-se utilizar a passagem de parâmetros por referência. Esta passagem faz uso de ponteiros, para assim atuar na memória da variável e não em apenas copiar o seu valor.
Passagem por referência
Ao chamar a função e passar os parâmetros necessários (na main ou em qualquer outra função) deve-se utilizar o ‘&’ e o nome do ponteiro.
Ex.:
funcao(&a, &b);
Passagem de função como parâmetro
Na linguagem C é possível passar uma função como parâmetro de outra função. Isso soa muito estranho, mas na verdade não é tão complicado. Para isso, usa-se um ponteiro para receber uma função. Então se passa este ponteiro como parâmetro. int funcao (int a, int b, int (*ponteiro_da_funcao)(int, int)){
}
Deve-se observar que nesta declaração do exemplo acima (int, int) são os tipos dos parâmetros da função que está sendo chamada. Se forem 1, 3 ou mais deve-se declarar coerentemente.
Um pequeno programa para mostrar a passagem de função como parâmetro:
#include
#include /* Ponteiro para funções são usados para passar funções como parâmetros de outras funções. Veja:*/ int pega_result (int a, int b, int (*compare)(int, int)) { return (compare(a,b)); } int max (int a, int b) { printf ("\nEm max\n"); return ((a > b ) ? a : b); } int min (int a, int b) { printf ("\nEm min\n"); return ((a < b) ? a : b); }
int main () { int result; int num1, num2; printf("Informe o primeiro numero: "); scanf("%i", &num1); printf("Informe o segundo numero: "); scanf("%i", &num2); result =