int a[7];
int * ptr = a;


int i;
for (i=0; i < 7; ++i) {
   a[i] = i;
}
--------------------
int i;
for (i=0; i < 7; ++i) {
   *(a+i) = i;
}
--------------------
int i;
int *ptr;
for (ptr=a, i=0; i < 7; ++ptr, ++i) {
   *ptr = i;
}
--------------------
int *ptr;
for (ptr=a; ptr < &a[7]; ++ptr) {
   *ptr = (int) (ptr - a);
}

char ca[10];	/* 10 bytes */
short sha[10];  /* 20 bytes */
double lots[10]; /* 80 bytes */
double *p, *q;
p = lots;
q = p + 1;
printf("%d\n", q - p);
printf("%d\n", (int) q - (int) p);

void initialize(double x[], int size)
{
  for (--size; size >= 0; --size)
    x[size] = 0.0;
}

void initialize2(double *x, int size)
{
  for (--size; size >= 0; --size)
    *(x++) = 0.0;
}

void strcpy(char *s, char *t)
   /* requires: t has as much space as s
      has elements */
   /* effect: copy s to t */
{
  int i;
  for (i = 0; (s[i] = t[i]) != '\0'; i++)
	;
}


void strcpy(char *s, char *t)
   /* requires: t has as much space as s
      has elements */
   /* effect: copy s to t */
{
  for (; (*s = *t) != '\0'; s++, t++)
	;
}


void strcpy(register char *s,
	    register char *t)
   /* requires: t has as much space as s
      has elements */
   /* effect: copy s to t */
{
  while (*s = *t)
 	;
}

