Ponteiros

Um ponteiro é um endereço de objeto de dados de um tipo particular. Isto é, o tipo deve ser essencial para usar os dados designados pelo endereço.
Variáveis que armazenam endereços, normalmente outras variáveis.

int i;
int *p -> int = tipo base para onde o ponteiro está indicando. define o ponteiro para uma variável inteira.
p = &i; -> endereço da variável i

Por que ponteiros precisam de um tipo base?

int *p -> _ -> _ _ _ _ (4)
float *p -> _ -> _ _ _ _ _ _ _ _ (8)
char *p -> _ -> _ (1)

sizeof – char = 1 / int = 4 / float = 8