What does the following program print? Assume PRINT prints the argument and a return.
<<<< First File >>>>
int a[] = { 0, 1, 2, 3, 4 };
void main(void) {
int i, *p;
for (i = 0; i <= 4; i++)
PRINT( a[i] );
for (p = &a[0]; p <= &a[4]; p++)
PRINT(*p);
for (p = &a[0], i = 1; i <= 5; i++)
PRINT(p[i]);
for (p = a, i = 0; p + i <= a + 4; p++, i++)
PRINT(*(p + i));
for (p = a + 4; p >= a; p--)
PRINT(*p);
for (p = a + 4, i = 0; i <= 4; i++)
PRINT(p[-i]);
for (p = a + 4; p >= a; p--)
PRINT(a[p - a]);
}