Upload
valterprimo
View
215
Download
0
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.