Listing 1

/*
BY        :  PETE UPCZAK

COMMENTS  :  COMPILED UNDER BORLAND INTERNATIONAL'S
           TURBO C, V2.0.
*/
#include <stdio.h>
#include <stdlib.h>
void new_array_name(char *array_copy[])
  {

  /*  info on array in main()) referenced by different name */

  printf("the value returned by 'array_copy' is %xh\n", array_copy);
  printf("the value returned by 'sizeof(array_copy)' is %d\n",
     sizeof(array_copy) );

  return;

  }

void main ()
  {
  static char *message[] = {  /*  the object in question */
     "aaaa",
     "bbbb",
     };
void new_array_name (char *[]);

    /*  info on array element 1 */
    printf("the value returned by '&message[1]' is %xh\n",
      &message[1]);
    printf("the value returned by 'message + 1)' is %xh\n",
         (message + 1) );
    printf("the value returned by '*(message + 1)' is %xh\n",
         *(message + 1));
    printf("the value returned by 'message[1]' is %xh\n",
         message [1]);
    printf("sizeof(*(message + 1)) is %d\n", sizeof(*(message +
         1)) );
    printf("sizeof(message[1]) is %d\n", sizeof(message[1]) );
    printf("%s, %s\n\n", message [1], *(message + 1) );

    /*  info on array element 0 */

    printf("the value returned by '&message[0]' is %xh\n",
         &message [0]);
    printf("the value returned by 'message' is %xh\n",
         message );
    printf("the value returned by 'message [0]' is %xh\n",
         message [0] );
    printf("the value returned by *message' is %xh\n",
         *message);
    printf("sizeof(*message) is %d\n", sizeof(*message) );
    printf("sizeof(message) is %d\n", sizeof(message[0]) );
    printf("%s, %s\n\n", message[0], *message );

    /*  info on the copy of the array name */

    new_array_name(message);

    /*  info on the array name itself */

    printf("sizeof(&message[0]) is %d\n", sizeof(&message[0]) );
    printf("sizeof(message) is %d\n", sizeof(message) );

    }
                 Output

    the value returned by '&message[1]' is 196h
    the value returned by '(message + 1)' is 196h
    the value returned by '*(message + 1)' is 1FBh
    the value returned by 'message[1]' is 1FBh
    sizeof(*message + 1)) is 2
    sizeof(message[1]) is 2
    bbbbb, bbbbb

    the value returned by '&message[0]' is 194h
    the value returned by 'message' is 194h
    the value returned by 'message[0]' is 1F5h
    the value returned by '*message' is 1F5h
    sizeof(*message) is 2
    sizeof(message[0]) is 2
    aaaaa, aaaaa

    the value returned by 'array_copy' is 194h
    the value returned by 'sizeof(array_copy)' is 2
    sizeof(&message[0] ) is 2
    sizeof(message) is 4