Exemplo Prático
pIdade é um ponteiro para um inteiro. Ao atribuir &idade à pIdade, ele armazena o endereço de memória da variável idade.
O uso de *pIdade nos permite acessar ou modificar o valor armazenado nesse endereço.
Ponteiros e Arrays
Ponteiros são particularmente úteis ao trabalhar com arrays, pois o nome de um array é, na verdade, um ponteiro para o seu primeiro elemento.
numeros é um array de três inteiros. p = numeros faz o ponteiro p apontar para o primeiro elemento do array (numeros[0]).
Usamos aritmética de ponteiros (*(p + i)) para acessar os elementos subsequentes do array.
Ponteiros em Funções
Podemos passar ponteiros para funções para que estas modifiquem diretamente os valores das variáveis ou elementos dos arrays, sem a necessidade de retornar valores. Vamos ver um exemplo:
A função dobrarValor recebe um ponteiro para um inteiro e altera diretamente o valor dessa variável. A função inicializarArray recebe um ponteiro para um array e seu tamanho, inicializando cada elemento do array.