⚡ Cap 14: Aritmética de Ponteiros & Function Pointers
Especialização em Engenharia de Sistemas com Linguagem C (C17/C23)
🗺️ Slide 1: Aritmética de Ponteiros
\[\text{Endereco}(ptr + n) = \text{Base} + (n \times \text{sizeof}(T))\]*(ptr + i)é rigorosamente idêntico aptr[i].- Subtração de ponteiros: retorna
ptrdiff_t(quantidade de elementos de distância).
🎯 Slide 2: Ponteiros Duplos (**ptr)
graph LR
A["pptr (0x3000)"] -->|Aponta para| B["ptr (0x2000)"]
B -->|Aponta para| C["valor = 42 (0x1000)"]
style A fill:#7c3aed,stroke:#c084fc,color:#ffffff
style B fill:#0284c7,stroke:#38bdf8,color:#ffffff
style C fill:#059669,stroke:#34d399,color:#ffffff
- Permite que funções alterem ponteiros do chamador.
🧰 Slide 3: Ponteiro Genérico void*
void *ptr = №
int valor = *(int*)ptr; // Casting obrigatório!
- Não suporta aritmética direta sem conversão prévia para tipo com tamanho conhecido.
⚡ Slide 4: Function Pointers e Callbacks (qsort)
int comparar(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
qsort(arr, n, sizeof(int), comparar);
- Aponta para a seção
.text. Base para despacho dinâmico e tabelas de máquinas de estados.
📋 Resumo da Aula & Próximos Passos
- Revise os códigos de exemplo deste capítulo.
- Teste seus conhecimentos no Quiz Formativo.
- Pratique os exercícios em 4 níveis de complexidade.
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim