Uma das partes de C/C++ que fazem os iniciantes desistirem da linguagem é o estudo dos ponteiros. Muitos professores (mesmo os que têm boa intenção) não são muito didáticos na hora de ensinar essa matéria e acabam por criar um 'preconceito' besta em relação à linguagem. Eu mesmo tive certa dificuldade em relação à matéria (eximo os professores da culpa) e resolvi estudar um pouco mais a fundo a matéria. Boa parte de minhas conclusões foram retiradas do livro "Osborne - C++ --Complete Reference (3rd Ed.)" (Hebert Schildt), uma ótima referência para estudantes de C e C++. Preferi modularizar os textos para facilitar a absorção e espero que outros participantes do fórum colaborem com materiais, correções e textos complementares. Pretendo ao final dos artigos fazer exemplos para facilitar mais ainda o estudo.
Introdução
Ponteiros são variáveis que armazenam um endereço de memória de um objeto/variável na memória. Trocando em miúdos: eles armazenam a localização de uma variável da memória. Esse endereço, apesar de ser possível visualizar, é relativamente transparente.
Declaração
<tipo> [b]*[/b]nomeVariável;
<tipo>[b]*[/b] nomeVariável;
Ex.:
int* p;
int *p;
Note que há o operador asterisco para identificar que a variável é um ponteiro. O “tipo” da variável determina qual o tipo que o ponteiro pode apontar. Tecnicamente os ponteiros (independentemente do tipo) podem apontar para qualquer endereço de memória, mas as operações “aritméticas” de ponteiro são baseadas no tipo do ponteiro. Sendo assim é importante declarar o ponteiro corretamente.
Operadores
• &: Operador unário que retorna o endereço do operando.
Ex.: Supondo que var esteja alocada no endereço 300 e seu valor seja 350, considere a seguinte atribuição:
p = &var; //p irá receber o endereço de var: 300.
• *: Operador unário que retorna o valor do endereço de memória apontado pelo operando
Ex.: Utilizando o exemplo anterior, considere a seguinte atribuição:
i = *p; // i irá assumir o valor do endereço de memória apontado por p: 350.
Vou parar por aqui hoje. No próximo irei falar sobre Expressões de ponteiros.
Pergunta
Felipe Pedroso
Uma das partes de C/C++ que fazem os iniciantes desistirem da linguagem é o estudo dos ponteiros. Muitos professores (mesmo os que têm boa intenção) não são muito didáticos na hora de ensinar essa matéria e acabam por criar um 'preconceito' besta em relação à linguagem. Eu mesmo tive certa dificuldade em relação à matéria (eximo os professores da culpa) e resolvi estudar um pouco mais a fundo a matéria. Boa parte de minhas conclusões foram retiradas do livro "Osborne - C++ --Complete Reference (3rd Ed.)" (Hebert Schildt), uma ótima referência para estudantes de C e C++. Preferi modularizar os textos para facilitar a absorção e espero que outros participantes do fórum colaborem com materiais, correções e textos complementares. Pretendo ao final dos artigos fazer exemplos para facilitar mais ainda o estudo.
Introdução
Ponteiros são variáveis que armazenam um endereço de memória de um objeto/variável na memória. Trocando em miúdos: eles armazenam a localização de uma variável da memória. Esse endereço, apesar de ser possível visualizar, é relativamente transparente.
Declaração
Note que há o operador asterisco para identificar que a variável é um ponteiro. O “tipo” da variável determina qual o tipo que o ponteiro pode apontar. Tecnicamente os ponteiros (independentemente do tipo) podem apontar para qualquer endereço de memória, mas as operações “aritméticas” de ponteiro são baseadas no tipo do ponteiro. Sendo assim é importante declarar o ponteiro corretamente. Operadores • &: Operador unário que retorna o endereço do operando. Ex.: Supondo que var esteja alocada no endereço 300 e seu valor seja 350, considere a seguinte atribuição:• *: Operador unário que retorna o valor do endereço de memória apontado pelo operando
Ex.: Utilizando o exemplo anterior, considere a seguinte atribuição:
Vou parar por aqui hoje. No próximo irei falar sobre Expressões de ponteiros.
Editado por Felipe PedrosoLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados