function pointers are a good thing to get your head around for advanced stuff.
Function pointers are at the heart of both polymorphism and function overloading
you can do some seriously cool stuff with function pointers