Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso: Informática
Profa. Evaldinolia Gilbertoni Moreira
Email: evaldinolia@acad.ifma.edu.br
Roteiro 1.
Ponteiros
Ponteiro
Um ponteiro é uma referência sobre um objeto na memória (é um
endereço). Exemplo de Declaração de Ponteiros:
float * pf
/* declara que pf é um ponteiro sobre um real */
pf
4.6
Os Operadores & e
*
✓ operador de endereçamento &
quando aplicado sobre uma variável e permite retornar
seu endereço memória
✓ operador de indireção *
quando aplicado sobre um ponteiro, permite
retornar (manipular) o objeto apontado.
Os
Operadores &
e* *P
P
V
(Ponteiro) (Variável)
&v
inteiro */
v = 15;
Os p = &v;
*p = 100;
Operadores &
e*
int v;
v
(Variável) &100
int *p; /* p é um ponteiro sobre um
&100 &200
v = 15;
p = &v;
Os Operadores *p = 25;
Os Operadores
&
&
e*
int v;
p e*
(Ponteiro)
int *p; /* p é um ponteiro
v int v;
sobre um inteiro */ int *p; /* p é um ponteiro
(Variável)
sobre um inteiro */
v
(Variável)
v = 15; &100 &20015
p = &v;
*p = 25;
p
(Ponteiro)
Os Operadores &
e*
int v;
int *p; /* p é um ponteiro sobre um
inteiro */
v = 15; p
v
(Variável)
&200 100
&100 15
p = &v; *p = 25;
&v
(Ponteiro)
int v;
int *p; /* p é um ponteiro sobre um
Os inteiro */
Operadores &
*p
v
e*
(Variável)
&200 100
v = 15; &100 15
p
p = &v; desenho
(Ponteiro)
*p = 25;// acrescentar no
&v
int v;
int *p; /* p é um ponteiro sobre um
Os inteiro */
Operadores &
*p
v
e*
(Variável)
&200 100
v = 15; &100 25
p
p = &v;
*p = 25;// acrescentar no &v
desenho
(Ponteiro)
Exemplo 2
int i,j;
int *pi; /* pi é um ponteiro sobre um inteiro */
pi
&i
i
j
Exemplo 2
int i,j;
int *pi; /* pi é um ponteiro sobre um inteiro */
pi
i=5;
5
i
Exemplo 2
int i,j;
int *pi; /* pi é um ponteiro sobre um inteiro */
pi=&i;
i=5; pi
&i&
5
j i
Exemplo 2
int i,j;
int *pi; /* pi é um ponteiro sobre um inteiro */
pi=&i; *pi=6;
i=5; pi
&i&
6 i
5
j
Exemplo 2
int i,j;
int *pi; /* pi é um ponteiro sobre um inteiro */
pi=&i; *pi=6; ;
i=5; j=*pi-2 pi
&i
&i 4
6 i
j 5
Exemplo 2
int i,j;
int *pi; /* pi é um ponteiro sobre um inteiro */
pi=&i; *pi=6; j=*pi-2
i=5;
; &j
6 i
pi=&j;
pi 5
j
&i 4
Exercício
1. Declare um inteiro i e um ponteiro p
sobre um inteiro 2. Inicialize a variável i com um valor
inteiro qualquer 3. Aponte o ponteiro sobre a variável i
4. Imprima o valor de i
5. Modifique o valor de i usando o ponteiro p
6. Imprima o novo valor de i
7. Imprima o endereço de i, utilizando a variável i
8. Imprima o endereço de i, utilizando a variável p
9. Imprima o endereço de p
10. Imprima o valor da variável p
11. Imprima o valor de i, utilizando a variável p
Resolução
int i; /* 1 */ int * p; /* 1 */
i=8; /* 2 */ p=&i; /* 3 */
printf("i= %d\n",i); /* 4 */
*p=5; /* 5 */ printf("novo i=
%d\n",i); /* 6 */