Você está na página 1de 10

Se algum no tropea no falar, tambm capaz de controlar todo o seu corpo.

Tiago 3:2

Estrutura de Dados
Ponteiros Aula 04
Prof Ms. Elizabeth Brito Llamosas Gomes
1

PONTEIRO
uma varivel cujo contedo
localizao de outra varivel;

Permite acessar indiretamente os valores de


outras variveis.

Um ponteiro anlogo a uma sinalizao de


estrada que leva a um certo local, ou a uma
tira de papel na qual um endereo tenha
sido anotado.
2

PONTEIRO
Por exemplo, na declarao:
int i = 15, j, *p, *q;
i e j so variveis numricas do tipo inteiro e
p e q so ponteiros para variveis do tipo
inteiro, onde o asterisco frente de p e q
indica sua funo.
Para o ponteiro p apontar para a varivel i faa
p = &i ;

Para inicializar p

faa

p = null;

PONTEIRO
Sendo p = &i ;
Assumindo que os endereos das variveis
i, j, p e q sejam 1080, 1082, 1084 e 1086,
depois de se atribuir 15 para i na
declarao, as posies e os valores nas
variveis de memria do computador so:
i
1080
15
j
1082
?
1084 1080 p
q
1086
?

i
15

Ponteiro - Exemplo 1
#include<stdio.h>
#include<stdlib.h>
int 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);
}
5

PONTEIRO
Ponteiro para estrutura:
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;

Exemplo 2

#include<stdio.h>
#include<stdlib.h>
int 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);
}

Exerccio 1
Qual 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);
}

Exerccios 2 e 3
2. Qual das instrues abaixo correta para declarar um
ponteiro para inteiro?
a) *int pti
b) *pti
c) &i
d) int_pti pti
e) int *pti
3. Para as instrues, qual afirmativa falsa:
int *pti;
int i = 10;
pti = &i;
a) pti armazena o endereo de i
b) *pti igual a 10
c) ao se executar *pti = 20; i passar a ter o valor 20
d) ao se alterar o valor de i, *pti ser modificado
e) pti igual a 10

REFERNCIAS
DROZDEK, A. Estrutura de dados e algoritmos em
C++. So Paulo: Cengage learning, 2009.
MANZANO, J. A; oliveira, J. F. Algoritmos: Lgica para
Desenvolvimento de Programao de Computadores.
So Paulo: rica, 2000.
MORAES, C. R. Estruturas de dados e algoritmos. Uma
abordagem didtica. 2. ed. So Paulo: Futura, 2003.
Preiss, B. R. Estrutura de dados e algoritmos: Padres
de projetos orientado a objetos com Java. Rio de
Janeiro: Elsevier, 2000.
TENENBAUM, A. M; LANGSAM, Y; AUGENSTEIN, A. J.
Estrutura de dados usando C. So Paulo: Makron Books,
1995.
10

Você também pode gostar