Function Pointers are pointers i.e. variables which point to the address of a function. You must keep in mind that a running program gets a certain space in the main-memory. Both the executable compiled program code and the used variables are put inside this memory. Thus a function in the program code is like e.g. a character field nothing else than an address. It is only important how you or better your compiler/processor interpret the memory a pointer points to.