Até este momento, a manipulação de memória foi realizada de forma indireta, por meio de variáveis e arrays. Esses elementos permitem acessar dados armazenados na memória sem que seja necessário conhecer explicitamente seus endereços.
Os ponteiros introduzem uma abordagem diferente: eles permitem operar diretamente sobre a memória, por meio da manipulação de endereços.
Um ponteiro é uma variável cujo valor corresponde ao endereço de memória de outra variável.
Dessa forma, um ponteiro permite:
Por essa razão, diz-se que um ponteiro “aponta” para uma região da memória.
A declaração de um ponteiro é realizada utilizando o operador *:
int *ponteiro;
Nesse exemplo:
ponteiro é uma variável do tipo ponteiroint indica o tipo de dado armazenado na memória apontadaEssa informação é importante porque define quantos bytes serão considerados ao acessar o conteúdo apontado.
Para obter o endereço de uma variável, utiliza-se o operador &, conhecido como operador de referência: