Buscar

Resumo de Ponteiros

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Ponteiros ¨C Oque são ?
Ponteiros são a maneira como a linguagem C guarda a REFERENCIA para algum elemento.
A princípio, pode parecer dificil, mas na real, é bem simples.
Para que Servem ?
Imagine que você tenha um número inteiro, e tenha declarado ele no seu programa como :
int meuNumeroInteiro = 17;
Você já parou para pensar que, este número, está na MEMÓRIA do seu computador ?
Logo,tem que existir uma maneira de “chegar” nele.��Cada variável que você declara no seu programa tem o seu próprio “endereço de memória”. 
Guarde isso e repita como um mantra :) Endereço de Memória.�
Um endereço de memória, tem uma “cara” meio feia, geralmente é algo do tipo 0x91828371 (mas não se assuste). Abstraia do que significa esse 0x na frente e etc, porque você não vai precisar disso.
Então um ponteiro, serve para você acessar alguma variável em memória.
Como declarar e usar ?
O simbolo de um ponteiro é o asterísco * .
Ele indica que você declarou um ponteiro.
Para criar um ponteiro para inteiro, basta escrever
int* meuPonteiro; 
Fazendo isso você acabou de dizer o seguinte : “Ei, Eu criei uma variável chamada meuPonteiro, que vai GUARDAR O ENDEREÇO DE UM NUMERO INTEIRO”. 
Preste atenção : UM PONTEIRO NÃO GUARDA VALORES, ELE GUARDA ENDEREÇOS. OS ENDEREÇOS, ESTES SIM, TEM ALGUM VALOR DENTRO.
EX : Declarar um inteiro com valor qualquer, e salvar um ponteiro para ele.
int inteiroA = 10;
int* meuPonteiro = &inteiroA; 
Repare Que o & simboliza que você está atribuindo a variável meuPonteiro, o ENDEREÇO da variável inteiroA;
Lembre-se : Um ponteiro guarda o ENDEREÇO, nunca um valor.
Ponteiros Não guardam valor, os endereços sim.
Apesar dos ponteiros não guardarem valores, os endereços para os quais ELES APONTAM, guardam.
Se você fizer : 
int inteiroA = 10;
int* meuPonteiro = &inteiroA;��e mandar imprimir o valor de meuPonteiro (usando printf), o resultado será algo do tipo 0x17260291, que é o ENDEREÇO do inteiroA.
Para imprimir o CONTEUDO do ENDEREÇO DE MEMORIA APONTADO pelo ponteiro, use *(meuPonteiro).
Exemplo :
	 int a=10;
 int* b=&a;
 
 printf("\n%d",a);
 printf("\n%d",&a);
 printf("\n%d",b);
 printf("\n%d",*b);
Saída : 10
 35820182
 35820182
 10
Motivo ? 
Primeiro imprimimos o valor de A, que é 10.
Depois, o endereço dele, que é esse numero feio.
Depois, o valor de b (que é um ponteiro para a), logo o valor do ponteiro, é o endereço da variável ª São iguais. O ponteiro b, aponta para área de memória onde está o “a”. Por isso os numeros são iguais.
E por ultimo imprimimos o valor do CONTEUDO DA AREA DE MEMORIA APONTADA POR B, que é 10. Se B aponta para A, e o Conteudo de A = 10, temos que o conteudo da area de memoria apontada por B = 10;
Pode parecer confuso, mas leia várias vezes até pegar.

Outros materiais