because array names are constant pointers to array starting positions. For example In C array[2] is turned into array + (sizeof(array)*2), which will give you two elements beyond the starting element(third element:)). so if you want to reach the starting element, with the same math, you should do array + (sizeof(array)*i) = array (sizeof(array)*i) = 0 i = 0 simple equation math.