Listing 2

#include <stdio.h>

void f(long [][5]);

main()
{
      static long a[3][5] = {
             { 1, 2, 3, 4, 5},
             { 6, 7, 8, 9,10},
             {11,12,13,14,15}
      };

      f(a);
}

void f(long a[][5])
{
      printf("a[0][2] = %2d\n", a[0][2]);
      printf("a[1][0] = %2d\n", a[1][0]);
      printf("a[2][4] = %2d\n", a[2][4]);

      printf("sizeof(long)    = %lu\n",
             (unsigned long)sizeof(long));
      printf("sizeof(long *)  = %lu\n",
             (unsigned long)sizeof(long *));
      printf("sizeof(a)       = %lu\n",
             (unsigned long)sizeof(a));
      printf("sizeof(*a)    = %lu\n",
             (unsigned long)sizeof(*a));
}

a[0][2] = 3
a[1][0] = 6
a[2][4] = 15
sizeof(long)   = 4
sizeof(long *) = 2
sizeof(a)      = 2
sizeof(*a)     = 20