Nesta série de artigos procurou-se apresentar os conceitos fundamentais relacionados ao uso dos ponteiros em C. Diversos tópicos foram apresentados, de forma introdutória, com objetivo de demonstrar as regras de sintaxe e os fundamentos desse recurso. Os artigos da série são listados acima.
Esses tópicos foram construídos de forma sequencial para apresentar a dependência de alguns tópicos, sendo os dois últimos artigos uma apresentação desse recurso poderoso da linguagem C.
Algumas Considerações
Outros pontos devem ser analisados em um programa que utiliza ponteiros. Foi dito que um programa em C quando compilado pode ser dividido em algumas regiões de memória, neste caso, a arquitetura do dispositivo e a organização da memória podem implicar na forma como os ponteiros são utilizados. Para não estender muito o assunto, seguem algumas definições que devem ser estudadas.
- Arquitetura de Harvard (em relação à memória): O programa e os dados são armazenados em memórias distintas;
- Arquitetura de von Neumann (em relação à memória): O programa e os dados são armazenados na mesma memória;
- Memória Virtual: Num sistema que utiliza este mecanismo os endereços das instruções e dos dados são virtuais, isto é, não correspondem diretamente ao endereço físico da memória. Embora o mapeamento de endereços seja realizado pelo sistema operacional, é importante saber as diferenças ao examinar um programa;
- Memória de leitura e escrita (Read/Write memory – RWM): Geralmente, as memórias semicondutoras RWM são chamadas de RAM (Random-Access Memory). Estes dispositivos são organizados de forma que operações de leitura e escrita possam ser igualmente realizadas;
- Memória apenas de leitura (Read only memory – ROM): São memórias não-voláteis estruturadas para realizar principalmente a operação de leitura, contudo alguns dispositivos podem ser escritos mais de uma vez (a operação de escrita é mais complicada que a operação de leitura).
Livros
Para aprender mais sobre a linguagem C o livro C Completo e Total é uma ótima referência. A terceira revisão do livro de Herbert Schildt trata de diversos assuntos sobre a linguagem e apresenta os ponteiros de maneira bem didática.
Agora, se você procura um livro só sobre ponteiros… Sim, ele existe! O livro Understanding and Using C Pointers de Richard Reese é o guia complete sobre o assunto.
Para saber mais
À primeira vista, os ponteiros causam uma boa confusão! Porém, se o conceito for bem compreendido os ponteiros tornam-se um recurso muito poderoso. Com base nos artigos apresentados é possível ter uma boa base para estudar os ponteiros em C.
Para quem nunca utilizou este recurso os dois primeiros artigos são fundamentais. Os outros tópicos discutidos devem ser estudados somente se o conceito de endereços e ponteiros for bem compreendido.
Avançando em outros tópicos da linguagem C, foi demonstrada a utilização de ponteiros no contexto de funções e estruturas. O assunto sobre funções pode ser bem explorado, pois foi visto que os ponteiros podem ser utilizados na passagem de parâmetros, no retorno de funções e também na chamada de funções.
Todos esses tópicos foram apresentados para discutir outros três assuntos: Alocação Dinâmica de Memória, Tipo de Dado Abstrato e Polimorfismo. Esses assuntos tiveram como destaque que a aplicação de todos os tópicos apresentados anteriormente, apresentando alguns conceitos de avançados que podem ser utilizados para modelar uma aplicação.










