Ponteiros
Seminário: Ponteiros. Pesquise 862.000+ trabalhos acadêmicosPor: jaquelinnegomes • 21/8/2014 • Seminário • 639 Palavras (3 Páginas) • 247 Visualizações
Ponteiro
Um ponteiro é simplesmente uma variável que armazena o endereço de outra variável.
Por exemplo O que é o ponteiro de um relógio?
É o que aponta para as horas, minutos ou segundos. Um ponteiro aponta para algo. Em programação, temos as variáveis armazenadas na memória, e um ponteiro aponta para um endereço de memória.
Imagine as variáveis como documentos, a memória do computador como pastas para guardar os documentos, e o ponteiro como atalhos para as pastas.
Declarando e acessando ponteiro
Na declaração de ponteiro, como em qualquer declaração de variável, temos que colocar o tipo da variável que o ponteiro ira apontar. Então na declaração, especificamos o tipo da variável para qual ele aponta e seu nome precedido por asterisco:
Int ponteiro; /* declara uma variável comum do tipo inteiro */
Int *ponteiro; /* declara um ponteiro para um inteiro */
Temos que ter cuidado ao declarar vários ponteiros em uma linha, pois o asterisco devem vir antes de cada nome de variável. Note os três exemplos:
Int p, q, r; // estamos a declara três variáveis comuns
Int *p, q, r; // apenas o p será ponteiro
Int *p, *q, *r; // três ponteiros
Para acessar o endereço de uma variável, utilizamos o operador & (E comercial), chamado "operador de referência" ou "operador de endereço". Como o nome sugere, ele retorna o endereço na memória de seu operando. Ele é unário e deve ser escrito antes do seu operando. Por exemplo, se uma variável nome foi guardada no endereço de memória 1000, a expressão &nome valerá 1000.
Para atribuir um valor ao ponteiro, usamos apenas seu nome de variável. Esse valor deve ser um endereço de memória, portanto obtido com o operador &:
Int a;
Int *p;
P = &a;
Claro que também podemos inicializar um ponteiro:
Int *p = &a;
Nos dois casos, o ponteiro p irá apontar para a variável a.
Mas, como o ponteiro contém um endereço, podemos também atribuir um valor à variável guardada nesse endereço, ou seja, à variável apontada pelo ponteiro. Para isso, usamos o operador * (asterisco), que basicamente significa "o valor apontado por".
Ex:
Int a;
Int *p = &a;
*p = 20;
Para ver o resultado:
Printf (“ a :%i\n”,a);
Printf (“*p :%i\n”,*p);
Ponteiro e NULL
Uma falha de segmentação ou em inglês (segmentation fault) ocorre quando um programa tenta acessar um endereço na memória que
...