Lesson 21: Function pointers
Not only variables live in memory — function code does too, so functions also have addresses. A function pointer stores such an address: int (*op)(int, int); — and the parentheses around (*op) are critical; without them it's a completely different declaration. After op = add; you can call op(3, 4) j