C++ Ponteiro¶
Com ponteiros a execução de tarefas de programação podem ser simplificadas, e algumas tarefas, como a alocação dinâmica da memória, só podem ser relizadas com ponteiros.
Endereço de variáveis¶
Cada variável tem seu local na memória e cada local define um endereço que pode ser acessado utilizando o operador "E comercial" (&), que representa um endereço na memória. O exemplo abaixo irá retornar o endereço de uma variável definida:
#include <iostream>
using namespace std;
int main()
{
int var1;
char var2[10];
cout << "Endereço da variável var1: ";
cout << &var1 << endl;
cout << "Endereço da variável var2 : ";
cout << &var2 << endl;
return 0;
}
Após compilação e execução, temos o seguinte resultado:
Ponteiro¶
Depois de ter visto o que é um endereço na memória e como acessá-lo, o entendimento de um ponteiro será mais fácil. Ponteiro é uma variável cujo valor é o endereço de outra variável, ou seja, o endereço direto de uma locação na memória. Como qualquer variável ou constante, um ponteiro deve ser declarado antes de usá-lo para armazenar o endereço de outra variável. De forma geral, um ponteiro se declara assim:
int *number; /* um ponteiro para variáveis do tipo inteiro */
float *decimal_number; /* um ponteiro para um float*/
char *character; /* um ponteiro para variáveis do tipo char */
Usando Ponteiros¶
Para usar o ponteiro, normalmente seguimos os seguintes passos: 1. Definir um ponteiro; 2. Atribuir o endereço da variável ao ponteiro; 3. Acessar o valor do endereço disponível na variável ponteiro.
Isso irá retornar o valor da variável no endereço específico pelo operador * . Exemplo:
#include <iostream>
using namespace std;
int main()
{
int var = 20; // declaração de variável
int *int_pointer; // declaração da variável ponteiro
int_pointer = &var; // armazena o endereço da "var" no específico ponteiro
cout << "Valor da variável var: ";
cout << var << endl;
// gera o endereço armazenado na variável ponteiro
cout << "Endereço armazenado na variável int_pointer: ";
cout << int_pointer << endl;
// accessa o valor do endereço no ponteiro
cout << "Valor da variável *int_pointer: ";
cout << *int_pointer << endl;
return 0;
}
Referências¶
https://cplusplus.com/doc/tutorial/pointers/
https://www.simplilearn.com/tutorials/cpp-tutorial/pointers-in-cpp