runner% cat months.c /* Months program */ #include void print_months1(char * []); /* or (char **) */ void print_months2(char **); /* or (char * []) */ void main(void) { int i, j; char **p; char *q; char *months[] = {"none", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", NULL}; /**** 1st ********************************/ printf("First attempt to print months\n"); for (i = 1; i <= 12; i++) printf("%s\n", months[i]); /**** 2nd ********************************/ printf("Second attempt to print months\n"); for (i = 1; i <= 12; i++) printf("%s\n", *(months + i)); /**** 3rd ********************************/ printf("Third attempt to print months\n"); p = &months[1]; while (*p != NULL) printf("%s\n", *(p++)); /**** 4th ********************************/ printf("Fourth attempt to print months\n"); for (i = 1; i <= 12; i++) { j = 0; while ((months[i])[j]) /* months[i][j] */ putchar((months[i])[j++]); putchar('\n'); } /**** 5th ********************************/ printf("Fifth attempt to print months\n"); p = &months[1]; while (*p) { q = *p++; while (*q) putchar(*q++); putchar('\n'); } /**** 6th ********************************/ printf("Sixth attempt to print months\n"); print_months1(months); /**** 7th ********************************/ printf("Seventh attempt to print months\n"); print_months2(months); printf("Th-th-th-th-that's-all-folks\n"); } void print_months1(char *months[]) { int i; for (i = 1; i <= 12; i++) printf("%s\n", months[i]); } void print_months2(char **months) { char **p; p = &months[1]; while (*p) printf("%s\n", *(p++)); } runner% cc -o months months.c runner% months First attempt to print months January ... December Second attempt to print months January ... December Third attempt to print months January ... December Fourth attempt to print months January ... December Fifth attempt to print months January ... December Sixth attempt to print months January ... December Seventh attempt to print months January ... December Th-th-th-th-that's-all-folks runner%