Listing 3

#include <stdio.h>

typedef  struct
       {
       char    fname[25];
       char    lname[25];
       } REC;

main()
    {
    REC rec, *recptr;
    char charstr[25], *cptr;
    int i;

       /***********/

    strcpy(rec.fname, "Stanley");
    strcpy(rec.lname, "Cohen");

    recptr = &rec;
    cptr = recptr;  /*** value of recptr is assigned to cptr
                     NO cast ***/

    i = 0;;
    while( charstr[i++] = *cptr++);  /***  pointer arithmetic
                                     on cptr ***/

    puts(charstr);  /***  first name is output to screen
                                        ***/

    cptr = recptr;

    printf("\n\address pointed to by cptr -> %d", cptr);
    printf("\naddress pointed to by recptr -> %d", recptr);

    cptr++;
    recptr++;

    printf("\n\naddress pointed to by cptr -> %d", cptr);
    printf("\naddress pointed to by recptr -> %d", recptr);

    }