Ponteiros - sandrorigo.pro.br

Propaganda
Ponteiros
• Variáveis do tipo “ponteiro” armazenam
endereços de memória
• Apontam para outra variáveis
• Permitem manipulações mais eficientes
em estruturas de dados, principalmente
estruturas dinâmicas
• Notação:
– Referência direta: com a variável
– Referência indireta: com ponteiro
Ponteiros
• Exemplo:
int contador; //declara variável do tipo inteiro
int *pcontador; //declara variável ponteiro para inteiro
contador = 12;
//atribui o valor 12 para contador
pcontador = &contador; //atribui o endereço da variável
//contador à variável pcontador
0x0012ff7c
contador
12
pcontador
0x0012ff7c
Ponteiros
• Sintaxe básica
– Declaração
<tipo da variável> * <nome do ponteiro>;
– Atribuição
<nome do ponteiro> = &<nome da variável>;
– Avaliação
*<nome do ponteiro> //retorna (ou altera) o valor
//armazenado
// no endereço indicado
Exemplo:
cout << *pcontador; aux = *pcontador + 5;
*pcontador = contador + 5;
Ponteiros
• Exemplo 2:
cout << "Endereço: contador: "<< &contador<<endl;
cout << "Valor: pcontador: "<< pcontador<<endl;
cout << "Valor: contador: "<< contador<<endl;
cout << "Valor: *pcontador: "<< *pcontador<<endl;
Ponteiros
• Sintaxe : expressões e aritmética de ponteiros
– Vetores: uso do nome equivale ao ponteiro para
primeiro elemento
char v[30];
char *pv;
pv = v;
pv = &v[0];
// instruções equivalentes
//
– Aritmética: incremento / decremento apontam para
próximos elementos
pv = &v[0];
pv ++;
pv = pv + 3;
//aponta elemento inicial
// aponta para o segundo;
//aponta para o quinto elemento
Exercícios
Considerando um vetor de elementos quaisquer, utilize
ponteiros para realizar uma busca neste vetor, até encontrar e
manipular o elemento procurado.
T
e
s
t
a
char v[30];
char *pv;
pv = v;
// ou pv = &v[0];
while ( ((*pv) != ‘a’) && ((*pv) != 0) ) pv ++;
if (*pv ==0) cout<<“Não achei...”;
else cout << “achei o valor: “<<*pv;
n d o
0
Download