/* day_mon1.c -- prints the
days for each month */
#include <stdio.h>
#define MONTHS 12
int main(void)
{
int days[MONTHS = {31,28,31,30,31,30,31,31,30,31,30,31};
int index; for (index = 0;
index < MONTHS; index++)
printf("Month %d has %2d
days.\n", index +1,
days[index]);
return 0;
}
While trying to understand array, pointer in Week 2, I came across the above code (Source: C Primer Plus, Stephen Prata). Particularly, I cannot understand why days[index].
How is that int days [MONTHS] is replaced by days[index]? Is it that an array which is MONTHS in this case can be replaced by other variables (index in this case) while carrying out printf?
Not sure why this command will not compile:
printf("Month %d has %2d days.\n", index +1, days[MONTHS]);
To me, using days[MONTHS] instead of days[index] looks more plausible. I know I am missing in some key concept.