Introdução a ponteiros na linguagem C

Publicado por Thiago Cabral Borges em 10/07/2008

[ Hits: 11.003 ]

 


Introdução a ponteiros na linguagem C



Introdução a ponteiros na linguagem C
Thiago Cabral Borges
30/06/2008

Resumo

Este tutorial demonstra, de maneira fácil e rápida, como usar ponteiros na linguagem de programação C. Os tópicos aqui abordados são conceitos básicos que ajudam a compreender como funciona um ponteiro.

Palavras-chave: Ponteiros; Memória; Variável.

Introdução

Ponteiros é uma característica poderosa oferecida pela pelo C. A linguagem de programação C depende muito dos ponteiros, assim, um bom programador em C precisa dominar bem ponteiros.

Ponteiro é visto pela maior parte dos programadores iniciantes como uma das partes mais difíceis na linguagem C, pois o conceito de ponteiros pode ser novo ou um mesmo símbolo usado para certa finalidade e usado para outra diferente, tornando mais difícil o entendimento.

Entendendo o que é um ponteiro

Um ponteiro é uma variável que guarda um endereço de memória de outra variável. Os ponteiros da linguagem C proporcionam uma forma fácil de acesso ao valor de variáveis sem referenciá-las diretamente. Um ponteiro possui tipo, por exemplo, inteiros, ponto flutuante e caracteres. O tipo do ponteiro indica que tipo é a variável para qual ele aponta.

Um ponteiro é declarado a seguinte forma:

tipo_do_ponteiro *nome_do_ponteiro

Exemplo:

int *p, *a;
char *pt, *ponteiro;

No exemplo acima foram criados quatro ponteiros, dois de tipo inteiro e dois de tipo caractere. É importante não confundir o asterisco (*), que indica que a variável é um ponteiro, com o mesmo sinal indicando uma multiplicação.

Conhecendo os operadores

Sempre é importante iniciar o ponteiro. Um ponteiro sempre é iniciado com o local na memória onde se localiza o valor da variável. Para iniciar a variável desejada como o endereço de memória, segue o exemplo:

int variavel_apontada=2;
int *ponteiro;
ponteiro=&variavel_apontada;

No exemplo foi criada uma variável e iniciada com valor 2, foi criado também um ponteiro que logo abaixo foi iniciado com o endereço da variável chamada variável_apontada.

A linguagem de programação C oferece dois operadores unitários, o operador de endereço (&) e o operador indireto (*). O operador de endereço retorna o endereço de memória onde fica localizado a variável, como foi mostrado no exemplo acima. O operador indireto retorna o valor da variável para qual o ponteiro aponta. Por exemplo:

main() {
   int var, *p;
   var=10;
   p=&var;
   printf("O valor da variavel e': %d \n", *p);
   printf("O endereco de memoria da variavel e': %p \n", p);
   printf("O endereco de memoria do ponteiro e': %p \n", &p);
   *p=15;
   printf("O novo valor da variavel e': %d \n", var);
   return (0);    
}

A saída será:

O valor da variavel e': 10
O endereco de memoria da variavel e': 00AE4F6
O endereco de memoria do ponteiro e': 00AE4F8
O novo valor da variavel e': 15

No exemplo, usam-se os operadores para imprimir e aterá o valor da variável. Onde o endereço de memória varia de cada computador.

Conclusão

O ponteiro é usado em situações em que a passagem de valores é complicada, por isso é muito importante seu aprendizado. O conceito de ponteiro e seu uso podem, aparentemente, ser complicado, porém, não é muito difícil. O uso indevido e insensato de ponteiros pode causar sérios bugs em um programa e até comprometer todo o sistema, assim, é necessário cuidado quando se usa eles.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Tutoriais sobre o openSUSE 11.3

Visualizar vídeos feitos em Adobe Flash no Google Chrome usando Ubuntu 64 bits

Configuração do horário de verão 2005/2006

Criando senhas seguras

VirtualBox.xml - Configurar várias pastas de VMs

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário