Introdução a ponteiros na linguagem C

Publicado por Thiago Cabral Borges em 10/07/2008

[ Hits: 12.412 ]

 


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

Criando pacotes RPM com o rpmbuild

Acessando partições NTFS (read/write) com ntfs-3g (Slackware Linux 12)

Bentoo Linux (distro brasileira)

Configurando RIP v2 em roteadores CISCO

Alternando entre dois diretórios eficientemente

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts