Aula 04 - Ponteiros

Embed Size (px)

Citation preview

  • 7/24/2019 Aula 04 - Ponteiros

    1/10

    Estrutura de Dados

    Prof Ms. Elizabeth Brito Llamosas Gomes

    1

    Ponteiros Aula 04

    Se algum no tropea no falar, tambm capaz de controlar todo o seu corpo.Tiago 3:2

  • 7/24/2019 Aula 04 - Ponteiros

    2/10

    2

    uma varivel cujo contedo alocalizao de outra varivel;

    Permite acessar indiretamente os valores deoutras variveis.

    Um ponteiro anlogo a uma sinalizao de

    estrada que leva a um certo local, ou a umatira de papel na qual um endereo tenhasido anotado.

    PONTEIRO

  • 7/24/2019 Aula 04 - Ponteiros

    3/10

    3

    PONTEIRO

    Por exemplo, na declarao:int i= 15,j, *p, *q;

    iejso variveis numricas do tipo inteiro ep e q so ponteiros para variveis do tipointeiro, onde o asterisco frente de p e qindica sua funo.

    Parao ponteiro papontar para a varivel i faap= &i;

    Para inicializar p faa p= null;

  • 7/24/2019 Aula 04 - Ponteiros

    4/10

    p i15

    4

    Sendo p= &i;Assumindo que os endereos das variveisi,j, pe qsejam 1080, 1082, 1084 e 1086,

    depois de se atribuir 15 para i nadeclarao, as posies e os valores nasvariveis de memria do computador so:

    1080 15 i1082 ? j1084 1080 p1086 ?

    q

    PONTEIRO

  • 7/24/2019 Aula 04 - Ponteiros

    5/10

    5

    Ponteiro - Exemplo 1

    #include#includeint main(void){

    system("color f0");int I =15,J,*P,*Q;P = &I;printf("\n i = %d *p = %d e p = %i \n\n",I,*P,P);

    printf("\n &i = %d &j = %d \n\n",&I,&J);system("pause");return(0);

    }

  • 7/24/2019 Aula 04 - Ponteiros

    6/10

    6

    Ponteiro para estrutura:

    PONTEIRO

    struct ESTRUTURA{

    int A;

    float B;};struct ESTRUTURA E, *P;P = &E;

    P -> A = 1; // ou (*P).A = 1;P -> B = 1.2; // ou (*P).B = 1.2;

  • 7/24/2019 Aula 04 - Ponteiros

    7/10

    #include#includeint main(void)

    {system("color f0");struct ESTRUTURA{

    int A;

    float B;};struct ESTRUTURA E, *P;P= &E;

    (*P).A= 1; // ou P->A = 1;(*P).B= 1.2; // ou P->B = 1.2;printf("\n A = %d B = %.1f \n\n,P->A,P->B);system("pause");return(0);

    } 7

    Exemplo 2

  • 7/24/2019 Aula 04 - Ponteiros

    8/10

    8

    Exerccio 1Qual o valor de X e de Y ao final do programa?

    int main(void){system("color f0");int Y, *P, X;Y = 0;P = &Y;X = *P;X = 4;(*P)++;

    X--;(*P) += X;printf ("\n Y = %d X = %d \n", Y,X);system("pause");

    return(0);}

  • 7/24/2019 Aula 04 - Ponteiros

    9/10

    9

    Exerccios 2 e 32. Qual das instrues abaixo correta para declarar um

    ponteiro para inteiro?a) *int pti b) *ptic) &i d) int_pti ptie) int *pti

    3. Para as instrues, qual afirmativa falsa:int *pti;int i = 10;pti = &i;

    a) pti armazena o endereo de ib) *pti igual a 10c) ao se executar *pti = 20; i passar a ter o valor 20d) ao se alterar o valor de i, *pti ser modificado

    e) pti igual a 10

  • 7/24/2019 Aula 04 - Ponteiros

    10/10

    10

    REFERNCIAS

    DROZDEK, A. Estrutura de dados e algoritmos emC++. So Paulo: Cengage learning, 2009.

    MANZANO, J. A; oliveira, J. F. Algoritmos: Lgica paraDesenvolvimento de Programao de Computadores.So Paulo:rica, 2000.

    MORAES, C. R. Estruturas de dados e algoritmos. Umaabordagem didtica. 2. ed. So Paulo: Futura, 2003.

    Preiss, B. R. Estrutura de dados e algoritmos: Padresde projetos orientado a objetos com Java. Rio deJaneiro: Elsevier, 2000.

    TENENBAUM, A. M; LANGSAM, Y; AUGENSTEIN, A. J.Estrutura de dados usando C. So Paulo: Makron Books,1995.