Aula 21: Ponteiros de função
Não são só as variáveis que moram na memória — o código das funções também mora, então funções também têm endereços. Um ponteiro de função guarda um endereço desses: int (*op)(int, int); — e os parênteses ao redor de (*op) são fundamentais; sem eles é uma declaração completamente diferente. Depois d
Um ponteiro de função é como um botão de discagem rápida no telefone: o botão não fala sozinho, ele só guarda 'para quem ligar'. Você pode atribuí-lo à sua mãe ou à pizzaria — apertá-lo (a chamada) alcança quem estiver guardado ali no momento.
- ponteiro de função
- Uma variável que guarda o endereço de uma função — você pode chamar através dela e mudar para onde ela aponta.
- anatomia da declaração int (*op)(int, int);
- op é um ponteiro para uma função que recebe dois ints e retorna int. Os parênteses ao redor de (*op) são a parte fundamental.
- nome da função como endereço
- O nome de uma função sem parênteses (como add) é o seu endereço — por isso op = add; funciona.
- callback
- Uma função passada como ponteiro para outra função, para ser invocada no momento certo.
- o comparador do qsort
- qsort recebe um ponteiro para uma função de comparação — é assim que ele consegue ordenar qualquer tipo.