We already know that pointers can point to variables, and even to array elements. It turns out that in C, functions themselves have addresses in memory, and we can store those addresses in function pointers. This lets us decide, at runtime, which function to call— a surprisingly powerful idea. Here’s what we’ll cover: