aula - passagem referência

10
Procedimentos e Funções Passagem de Parâmetros: Passagem por Valor: Quando a função é chamada o parâmetro passado por valor é copiado, ou seja, o valor da variável utilizada como parâmetro não é alterado. Passagem por Referência: Quando a função é chamada o endereço do parâmetro passado por referência é atribuído à um ponteiro, ou seja, qualquer alteração no conteúdo apontado será refletida no conteúdo da variável utilizada como parâmetro.

Upload: anderson-soares

Post on 24-Sep-2015

4 views

Category:

Documents


0 download

DESCRIPTION

Aula - Passagem Referência

TRANSCRIPT

  • 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 FunesExemplo :

    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 FunesExerccio 1:

    Escreva um procedimento ou funo em linguagem Cque troca dois valores A e B.

    Exerccio 2:

    Escreva um procedimento ou funo em linguagem Cque recebe dois valores A e B, calcula a soma eguarda o resultado em A.

    Exerccio 3:

    Escreva um procedimento ou funo em linguagem Cque 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 Cque recebe um vetor de nmeros inteiros V detamanho 100, e um inteiro N, em seguida voc deveimprimir 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 Cque recebe um vetor de nmeros inteiros V detamanho 100, e um inteiro N por referncia, emseguida voc deve ler valores inteiros da entrada atque o usurio digite -1. Ao final todos os valoresdiferentes de -1 devem estar armazenados em V e ototal 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);

    }}

    Procedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e FunesProcedimentos e Funes