Source: http://people.scs.carleton.ca/~mjhinek/W13/COMP2401/notes/Arrays_and_Pointers.pdf