/* Demonstration der Pointer- oder Zeigerarithmetik */
#include <stdio.h>
#define LEN 6
int main() {
  int i;  char *pc;  double *pd;
  char w[LEN]; double x[LEN];

  printf("Adressen in Arrays, Zeigerarithmetik:\n\n");
  printf("sizeof(char)   = %u, setze pc = w:\n", (unsigned int)sizeof(char));
  pc = w;
  for (i=0; i < LEN-1; i++) {
    printf("&w[%u] = %lu, w+%u = %lu, pc = %lu, pc++\n",
           i,(unsigned long)&w[i],i,(unsigned long)(w+i),(unsigned long)pc);
    pc++;
  }
  printf("sizeof(double) = %u, setze pd = x:\n",(unsigned int)sizeof(double));
  pd = x;
  for (i=0; i < LEN-1; i++) {
      printf("&x[%u] = %lu, x+%u = %lu, pd = %lu, pd++\n",
             i,(unsigned long)&x[i],i,(unsigned long)(x+i),(unsigned long)pd);
      pd++;
  }
  printf("Ein String:\n");
  w[0] = 'H'; w[1] = 'a'; w[2]=w[3]='l'; w[4]='o'; w[5]='\0';
  printf("%s", w);
  printf("\n");
  printf("...%s...\n",w);
  pc = w;
  for (i=0; i < LEN; i++)
      printf("%c ",*pc++);
  printf("\n");
}
