Listing 4

#include <stdio.h>

char *(*f(void))[3];

main()
{
      printf("f()[0][1] = %c\n", (*f())[0][1]);
      printf("f()[1][1] = %c\n", (*f())[1][1]);
      printf("f()[2][1] = %c\n", (*f())[2][1]);
}

char *(*f(void))[3]
{
      static char *ap[] = {
             "red",
             "blue",
             "green"
      };

      return &ap;     /* no conversion */
}

f()[0][1] = e
f()[1][1] = l
f()[2][1] = r