Buscar

Ponteiros - Parte 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Ponteiros – parte 1
Lidiana de França Martins
Introdução
 Um ponteiro é uma variável que contém um 
endereço de memória.
 Este endereço é normalmente a posição de 
uma outra variável na memória.
 Se x tiver o endereço de y, então é dito que x
aponta para y.
 Declaração:
tipo *nome;
2Técnicas de Programação - Lidiana de França 
Martins
Introdução
#include <iostream>
#include<cstdlib>
using namespace std;
int main()
{ int v, *p;
v = 2;
p = &v;
cout << "Valor de v: " << v << endl;
cout << "Endereço de v: " << p << endl;
cout << "Valor de v: " << *p << endl; 
system("PAUSE");
return 0;
} 
3Técnicas de Programação - Lidiana de França 
Martins
Atribui a p o 
endereço de v
Exibe o valor da 
variável apontada 
por p.
O * obtém o valor armazenado no endereço que 
ele precede.
O & obtém o endereço do objeto que ele precede.
Atribuição de valores através 
de um ponteiro
#include <iostream>
#include<cstdlib>
using namespace std;
int main()
{
int v, *p;
v = 1000;
p = &v;
cout << "Valor de v: " << *p << endl;
*p = 2000;
cout << "Novo valor de v: " << *p << endl;
(*p)++;
cout << "Valor de v após o incremento de 1: " << *p << endl;
system("PAUSE");
return 0;
}
4Técnicas de Programação - Lidiana de França 
Martins
Aritmética de ponteiros
#include <iostream>
#include<cstdlib>
using namespace std;
int main()
{
float v = 9.8;
float *p;
p = &v;
cout << "Valor de v: " << *p << endl;
cout << "Endereço de v: " << p << endl;
p++;
cout << "Valor de p incrementado: " << p << endl;
cout << "Valor da posição de memória agora apontada por p: " << *p;
cout << endl;
system("PAUSE");
return 0;
}
5Técnicas de Programação - Lidiana de França 
Martins
Há apenas 4 operadores 
aritméticos que podem ser 
usados em ponteiros: ++, --, + e -
Ponteiros e arrays
 Há um 
relacionamento 
próximo entre 
ponteiros e arrays.
 Freqüentemente 
ponteiros e arrays
são intercambiáveis.
#include <iostream>
#include<cstdlib>
using namespace std;
int main()
{
float *p, q[5];
int i;
p = q;
for(i = 0; i < 5; i++)
cout << (int) (p+i) << endl;
cout << endl;
system("PAUSE");
return 0;
} 
6Técnicas de Programação - Lidiana de França 
Martins
Ponteiros e arrays
#include <iostream> //versão 1
#include <cstdlib>
#include <cstring>
using namespace std;
int main()
{ char a[20], *s;
gets(a);
s = a;
for(int i = 0; i < strlen(a); i++)
cout << *(s + i); 
cout << endl;
system("PAUSE");
return 0;
}
7Técnicas de Programação - Lidiana de França 
Martins
Acessando o 
valor de índice i
Ponteiros e arrays
#include <iostream> //versão 2
#include <cstdlib>
#include <cstring>
using namespace std;
int main()
{ char a[20], *s;
gets(a);
s = a;
for(int i = 0; i < strlen(a); i++)
cout << s[i];
cout << endl;
system("PAUSE");
return 0;
} 8Técnicas de Programação - Lidiana de França 
Martins
Indexando o ponteiro
Ponteiros e arrays
#include <iostream> //versão 3
#include <cstdlib>
using namespace std;
int main()
{ char a[20], *s;
gets(a);
s = a;
for(int i = 0; s[i]; i++)
cout << *(s + i);
cout << endl;
system("PAUSE");
return 0;
} 9Técnicas de Programação - Lidiana de França 
Martins
O laço continuará 
até ‘\0’ ser 
encontrado
10
Bibliografia recomendada
 C++ guia para iniciantes, Herbert Schildt, 
Editora Ciência Moderna, 2002.
 C++ guia de consulta rápida, Joel Saade, 
Novatec, 2004.
 C++ fundamentos e práticas, Herbert 
Schildt, Alta Books, 2004.
 C completo e total, Herbert Schildt, 
Makron Books, 1997.
Técnicas de Programação - Lidiana de França 
Martins

Outros materiais