A função é um conceito muito importante na linguagem C. A função é um pedaço de código que nos ajuda a executar determinada ação. Com base em sua definição, a função pode ser dividida em quatro tipos.
Isso é baseado na função de entrada e retorno de saída.
No tópico de hoje, discutiremos a chamada por valor e chamada por referência. Esses tópicos são totalmente baseados na classificação da função.
Exemplo de programação 1:
Neste exemplo de programação, veremos o mecanismo de chamada por valor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #incluir int add (int, int); // protótipo da declaração de função. int main () int s, x, y; printf ("Digite 2 números"); scanf (" %d %d", & x, & y); s = add (x, y); // Chamada de função. printf ("soma é %d", s); retornar 0; int add (int a, int b) // Definição de função e transmitindo o valor através da função. int c; c = a + b; retornar c; |
Saída:
Explicação:
Este exemplo de programação é o exemplo ideal de chamada por valor. É o exemplo de pega algo e retorna algo.
Inserir algum valor e saída nenhum programa é o mesmo como a entrada Nenhum e saída algum valor. A única diferença é que, como é por natureza, tomando algo, o valor de dois números deve ser aprovado na função de chamada. Eles são chamados argumentos reais.
Ou, o usuário pega o valor do teclado que é usado pela função main (). O valor então é passado para a função add (). Esses valores são chamados argumentos formais.
Então, é um tipo de chamado por valor exemplo. Caso contrário, o procedimento de retorno é o mesmo que não leva nada, retorna algo procedimento.
Exemplo de programação 2:
Aqui, veremos outro exemplo de método de chamada por valor aplicando pega algo e retorna nada procedimento.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #incluir void add (int, int); // Declaração de função globalmente int main () int x, y; void add (int, int); // Declaração da função localmente printf ("Digite 2 números"); scanf (" %d %d", & x, & y); // argumentos reais add (x, y); retornar 0; void add (int x, int y) // argumentos formais int c; c = x + y; printf ("soma é %d", c); |
Saída:
Explicação:
Se quisermos adicionar os dois valores de duas variáveis declaradas dentro do principal (). Adicione isso em um nome de função diferente add (). Então, usamos, leva algo de retorna nada método. Nesse caso na função principal, o valor de x, y é passado para a função add quando add () está chamando. Pois isso pode ser nomeado como ligue por valor.
Sempre que passamos o valor como um argumento para uma função de chamada, esses argumentos são chamados de argumentos reais.
Por definição, dentro dos parênteses de uma função, quando declaramos a variável que receberá o valor da variável que é aprovada pela função de chamada é chamada de argumento formal.
O nome da variável de argumento real e argumento formal pode ser o mesmo porque o compilador sabe que a variável x, y são declarados dentro da função main () e x, y declarados em add () são variáveis diferentes.
Na função de chamada, apenas passamos o valor das variáveis declaradas dentro de Main (). Para isso, escrevemos add (x, y);
Exemplo de programação 3:
Aqui, veremos um exemplo de chamada por endereço aplicando pega algo e retorna algo procedimento.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #incluir int add (int *, int *); // Declaração de protótipo da função globalmente int main () int s, x, y; printf ("Digite dois números:"); scanf (" %d %d", & x, & y); s = add (& x, & y); // Passando o endereço de variáveis. printf ("A soma é: %d \ n", s); retornar 0; int add (int *a, int *b) int c; c = *a + *b; retornar (c); |
Saída:
Explicação:
Este é um exemplo de chamada por referência. Às vezes, em nosso programa, ocorre uma situação quando não somos capazes de passar o valor da variável através da função. Temos que passar no endereço dessas variáveis para acessá -las. É chamado Call By Reference.
Aqui, passamos o endereço de variável A, variável b dentro da função Adicionar para somar os valores de variável A, variável b.
Exemplo de programação 4:
Aqui, veremos outro exemplo de chamada por endereço aplicando pega algo e retorna algo procedimento.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #incluir int swap (int *, int *); int main () int p = 56; int q = 22; printf ("Antes de trocar o valor do número inteiro p: %d \ n", p); printf ("Antes de trocar o valor do número inteiro q: %d \ n", q); troca (& p, & q); // Ligue para a função. printf ("Depois de trocar o valor do número inteiro p: %d \ n", p); printf ("Depois de trocar o valor do número inteiro q: %d \ n", q); retornar 0; int swap (int *x, int *y) // passando o endereço de variáveis. int t; / * Variável temporária para armazenar o valor da 1ª variável */ t = *x; *x = *y; *y = t; |
Saída:
Explicação:
Este é um exemplo de chamada por referência. Às vezes, em nosso programa, ocorre uma situação quando não somos capazes de passar o valor da variável através da função. Temos que passar no endereço dessas variáveis para acessá -las. É chamado Call By Reference.
Aqui, passamos o endereço de variável A, variável b dentro da função swap () para trocar os valores de variável A, variável b. Como resultado Valores de A, B são trocados através de chamada por referência.