Aula - Passagem Referência

Você também pode gostar

Você está na página 1de 10

Procedimentos e Funes

Passagem de Parmetros:

Passagem por Valor: Quando a funo


chamada o parmetro passado por valor
copiado, ou seja, o valor da varivel utilizada como
parmetro no alterado.

Passagem por Referncia: Quando a funo


chamada o endereo do parmetro passado por
referncia atribudo um ponteiro, ou seja,
qualquer alterao no contedo apontado ser
refletida no contedo da varivel utilizada como
parmetro.

Procedimentos e Funes
Exemplo :
void FuncaoInutil(int A, int* B)
{
A = 1;
*B = 2;
}
int main()
{
int X = 0, Y = 0;
FuncaoInutil(X, &Y);
printf(%d %d, X, Y);
return 0;
}

Procedimentos e Funes
Exerccio 1:
Escreva um procedimento ou funo em linguagem C
que troca dois valores A e B.
Exerccio 2:
Escreva um procedimento ou funo em linguagem C
que recebe dois valores A e B, calcula a soma e
guarda o resultado em A.
Exerccio 3:
Escreva um procedimento ou funo em linguagem C
que retorna a soma e o produto de dois valores A e B.

Procedimentos e Funes
Soluo:
void troca(int* A, int* B)
{
int aux;
aux = *A;
*A = *B;
*B = aux;
}

Procedimentos e Funes
Soluo:
void SomaEmA(int* A, int B)
{
*A = *A + B;
}

Procedimentos e Funes
Soluo:
void SomaProduto(int A, int B, int* soma, int* prod)
{
*soma = A + B;
*prod = A * B;
}

Procedimentos e Funes
Exerccio :
Escreva um procedimento ou funo em linguagem C
que recebe um vetor de nmeros inteiros V de
tamanho 100, e um inteiro N, em seguida voc deve
imprimir os N primeiros valores do vetor.

Procedimentos e Funes
Soluo:
void ImprimeVetor(int V[100], int N)
{
int i;
for (i = 0; i < N; i++)
printf(%d , V[i]);
}

Procedimentos e Funes
Exerccio :
Escreva um procedimento ou funo em linguagem C
que recebe um vetor de nmeros inteiros V de
tamanho 100, e um inteiro N por referncia, em
seguida voc deve ler valores inteiros da entrada at
que o usurio digite -1. Ao final todos os valores
diferentes de -1 devem estar armazenados em V e o
total de valores deve estar em N.

Procedimentos e Funes
Soluo:
void LeVetor(int V[100], int* N)
{
int aux;
*N = 0;
scanf(%d, &aux);
while (aux != -1)
{
V[*N] = aux;
(*N)++;
scanf(%d, &aux);
}
}

Você também pode gostar