Source: http://www.cs.cornell.edu/courses/cs321/2001fa/handouts/array_notes.pdf