Em programação, um ponteiro ou apontador é um tipo de dado de uma linguagem de programação cujo valor se refere diretamente a um outro valor alocado em outra área da memória, através de seu endereço. Neste post veja ponteiros em C.

Um ponteiro é uma simples implementação do tipo referência da Ciência da computação.

Ponteiros são uma abstração da capacidade de endereçamento fornecidas pelas arquiteturas modernas.

Em termos simples, um endereço de memória, ou índice numérico, é definido para cada unidade de memória no sistema, no qual a unidade é tipicamente um byte ou uma word, o que em termos práticos transforma toda a memória em um grande vetor.

Logo, a partir de um endereço, é possível obter do sistema o valor armazenado na unidade de memória de tal endereço.

O ponteiro é um tipo de dado que armazena um endereço.

Na maioria das arquiteturas, um ponteiro é grande o suficiente para indexar todas as unidades de memória presentes no sistema.

Isso torna possível a um programa tentar acessar um endereço que corresponde a uma área inválida ou desautorizada da memória, o que é chamado de falha de segmentação.

Por outro lado, alguns sistemas possuem mais unidades de memória que endereços.

Nesse caso, é utilizado um esquema mais complexo para acessar diferentes regiões da memória, como o de segmentação ou paginação.

Abaixo é mostrado o conceito de ponteiros usando a linguagem C:

int main() {
	
   //declaração das variáveis 
   int num1 = 10;
   int num2 = 20;

   // os valores de 'num1' e 'num2' são, respectivamente, 10 e 20 
   cout << "O valor da variavel 'num1' eh " << num1 << endl;
   cout << "O valor da variavel 'num2' eh " << num2 << endl;

   // mostra as posições em memória onde as variáveis 'num1' e 'num2' estão 
   cout << "A posicao em memoria da variavel 'num1' eh " << &num1 << endl;
   cout << "A posicao em memoria da variavel 'num2' eh " << &num2 << endl;

   //declaração de variáveis de ponteiro 
   int* pNum1;
   int* pNum2;

   //'&' significa "pegue o endereço de" 
   //'*' significa "encontre a coisa indicada por" 

   pNum1 = &num1;//var. ponteiro 'pNum1' aponta para endereço de memória da var. 'num1' 
   pNum2 = &num2;//var. ponteiro 'pNum2' aponta para endereço de memória da var. 'num2' 
   cout << "Confirmando a posicao em memoria da variavel 'num1' eh " << pNum1 << endl;
   cout << "Confirmando a posicao em memoria da variavel 'num2' eh " << pNum2 << endl;

   *pNum1 = 50;//armazena valor 50 na posição em memória indicada pelo ponteiro 'pNum1' 
   *pNum2 = 80;//armazena valor 80 na posição em memória indicada pelo ponteiro 'pNum2' 

   //Agora os valores de 'num1' e 'num2' serão, respectivamente, 50 e 80 
   cout << "Agora o valor da variavel 'num1' eh " << num1 << endl;
   cout << "Agora o valor da variavel 'num2' eh " << num2 << endl;

   return 0;  
}
QUER SER UM PROGRAMADOR FULL-STACK E DOMINAR AS PRINCIPAIS TECNOLOGIAS DO MERCADO?

Aprenda através de projetos reais e aulas práticas. São 20 cursos completos + cursos bônus. Grupos privados exclusivos, atualizações constantes e lives semanais.

Python, PHP, Java Script, CSS, Node, Angular JS, MySQL, Photoshop, Flutter, AWS, Apache e muito mais!

CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:

CLIQUE AQUI E SAIBA MAIS

Membros protegidos em C

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags: |

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *