
A linguagem C/C++ é, sem dúvida, a linguagem mãe de todas as demais linguagens. Isto porquê boa parte dos compiladores das linguagens mais populares que temos hoje são construídos sob esta linguagem. Mas sua importância não pára por aí. C++ é a linguagem base para o desenvolvimento dos principais sistemas operacionais existes. Podemos citar: Windows (da versão 3.11 até o XP), Linux (todas as distribuições), entre outros.
A escolha da linguagem C++ para construção destes ambientes não se deu ou se dá ao acaso. A linguagem C++ oferece uma gama de poderosos recursos que possibilitam ao programador o desenvolvimento de aplicações robustas e extremamente rápidas. Algumas destas características importantes são:
- Linguagem compilada: esta característica nos diz que, como a linguagem é extremamente dependente do sistema (software e hardware) no qual está inserida, os aplicativos construídos com base nesta arquitetura tendem a ser extremamente rápidos e eficientes;
- Gerência nativa de hardware: O C++ é conhecido no universo da programação como a linguagem mais baixo nível das linguagens de alto nível. Um dos motivos pelo qual esta afirmação é feita, é o fato de ela prover recursos nativos para interfaceamento de hardware com o sistema. Este é também um dos motivos pelos quais o C++ é a linguagem escolhida para o desenvolvimento de Sistemas Operacionais;
- Dentre outros
Muitas características positivas poderíamos apontar sobre a linguagem C++, entretanto, este não é o foco deste artigo.
O que são ponteiros?
Para melhor entendermos o que são os ponteiros, imaginemos a seguinte situação: Você mora na Rua X. Você, como morador mais antigo desta rua, sabe exatamente o endereço de cada um dos moradores desta rua e mais que isso, sabe também quem mora em cada endereço. Assim, quando uma pessoa estranha a esta rua passar por você procurando determinada pessoa, você poderá servir de referência a este desconhecido, apontando exatamente o local de moradia daquele que o forasteiro está procurando.
Muito embora esta situação seja hipotética, ponteiros possuem exatamente esta idéia, ou seja, são entes que possuem o poder de armazenar o endereço onde estão localizadas determinadas informações. Falando em termos de programação, podemos entender um ponteiro como uma variável que armazena (aponta) um endereço de memória onde está localizado um valor.
Para que servem os ponteiros?
Os ponteiros são úteis em diversas situações. Podemos citar, por exemplo, a atualização de valores que são utilizados em várias partes do software e que, por algum motivo, precisam ser atualizados ao longo da vida útil do mesmo. Para solucionar esta situação, basta referenciar-se estes valores em uma função e aplicar sobre os mesmos operações que alterem seus valores de forma pertinente e a replicação ocorre automaticamente.
Nomenclatura e utilização
Para trabalharmos com ponteiros em C++ utilizamos o símbolo * na frente do nome da variável. Assim, temos por exemplo: int * vlrP;.
Esta nomenclatura pode ser entendida da seguinte forma: vlrP é um ponteiro para um endereço de memória que possui um valor inteiro.
Para que possamos passar o endereço de memória de determinada variável comum para um ponteiro, utilizamos o símbolo & na frente do nome da variável. Assim, se quiséssemos passar à variável vlrP o endereço de memória de uma variável simples também inteira: int vlrX = 10, teríamos a seguinte nomenclatura: vlrP = &vlrX; Assim, esta expressão pode ser lida como: vlrP aponta para o endereço de memória de vlrX, sendo que neste, está armazenado o valor 10.
Podemos ainda, fazer acesso direto ao valor real que determinado endereço de memória guarda. Para fazermos esta operação, basta que, no momento da atribuição, coloquemos à esquerda da variável ponteiro o símbolo *. Assim, teríamos, utilizando o mesmo acima, a seguinte expressão: vlrX = *vlrP + 1;, por exemplo. Neste caso, devemos entender a expressão da seguinte forma: vlrX recebe o valor que ele já possui + 1, pois não estamos acessando seu endereço de memória e sim o valor que este endereço de memória carrega.
Espero ter ajudado pessoal. Se as dúvidas sobre ponteiros persistirem, entrem em contato comigo através do site.
Pingback: Tweets that mention Ponteiros – O que são e para que servem | FabrícioSanchez! -- Topsy.com