 <p>Example 1: imagine having 5 different sorting algorithms. you just want to sort in all sorts of places, but you don't want to select between the 5 in each and every place you do it. instead, you have a pointer to the sorting algorithm (they all take the same parameters, types, etc.). simply select an algorithm once (set the pointer) and use the pointer to sort everywhere.</p> <p>Example 2: callback... a function does something in a loop but needs application feedback every iteration. to that function, the callback is a function pointer that's passed as an argument.</p>