Ponteiros em C++
Instanciando Ponteiros:
Existem 3 formas de instanciar um ponteiro em C++:
int* pointer;int *pointer;
int * pointer;
Como não instanciar um ponteiro (jeito errado):
*int pointer;int pointer*;
int pointer *;
O "*" indica que pointer é uma variável do tipo ponteiro. Neste Caso, um ponteiro para variáveis do tipo int.
O ponteiro é uma variável cujo o valor é o endereço de outras variável. Sendo esse endereço direto da posição de memória.
![]() |
| Variável "ptr" do tipo int (declaração : int* ptr) apontando para o endereço de memória da variável "a". Para isso, "ptr" recebe o endereço de memória de "a" (ptr = &a). |
Trabalhando com Ponteiros na prática:
int counter = 10;
pointer = &counter; //a variável ponteiro recebe o endereço de memória de counter
cout << "*pointer = " << *pointer << "\n"; //a saída será *pointer = 10
(*pointer)++; //incrementa +1 em counter
cout << "*pointer = " << *pointer << "\n"; //saída = 11
cout << "counter = " << counter << "\n"; //saída = 11
cout << "&pointer = " << &pointer << "\n"; //saída = endereço de memória de pointer
cout << "&counter = " << &counter << "\n"; //saída = endereço de memória de counter
cout << "counter = " << counter << "\n"; //saída = valor da variável counter
cout << "*&counter = " << *&counter << "\n"; //saída valor da variável counter.
Explicando o código acima:
int counter = 10;
pointer = &counter;
O "&" representa o endereço direto da posição de memória onde está armazenada a variável estática counter.
Pointer recebe este endereço (pointer é uma referência).
cout << "*pointer = " << *pointer << "\n";
*pointer é a forma de acessarmos a variável apontada por pointer ("*" é um operador de desreferência)
Neste caso, pointer aponta para a variável counter.
Escreve na saída o valor da variavel que pointer aponta.
No caso desse exemplo o valor é = 10.
(*pointer)++;
A variável apontada por pointer equivale a counter.
Incrementamos esta variável.
cout << "&pointer = " << &pointer << "\n";
Escreve na saída o endereço de memória da variável pointer.
Por exemplo: 0x61ff1c
cout << "&counter = " << &counter << "\n";
Escreve na saída o endereço de memória da variável counter.
Por exemplo: 0x61ff18
cout << "counter = " << counter << "\n";
Escreve na saída o valor da variável counter.
No caso do exemplo, o valor de counter é = 11, pois houve o incremento em (*pointer)++.
cout << "*&counter = " << *&counter << "\n";
Escreve na saída o valor da variável que está no endereço de counter (ela mesma).
No caso desse exemplo é = 11.

Comentários
Postar um comentário
Obrigado pelo contato, retornarei o mais breve possível!