/* Demonstration des Verhaltens von Pointern = Zeigern */
#include <stdio.h>

int main() {
  double x, z;
  double *pf;          /* Zeigervariable vom Typ double */
  z = 3.1415926535;
  x = 2.7182818284;
  printf("sizeof(double) = %u\n", (unsigned int)sizeof(double));
  pf = &x;   /* pf zeigt auf x */
  printf("                      x       z           pf          *pf\n");
  printf("1. pf = &x     :   %6.4lf  %6.4lf  %10lu   %6.4lf\n",
         x,z,(unsigned long)pf,*pf);
  x += 4.2;  /* x inkrementiert */
  printf("2. x += 4.2    :   %6.4lf  %6.4lf  %10lu   %6.4lf\n",
         x,z,(unsigned long)pf,*pf);
  pf = &z;   /* pf zeigt auf z */
  printf("3. pf = &z     :   %6.4lf  %6.4lf  %10lu   %6.4lf\n",
         x,z,(unsigned long)pf,*pf);
  x = *pf;   /* Dereferenzierung von pf und Zuweisung nach x \*/
  printf("4. x  = *pf    :   %6.4lf  %6.4lf  %10lu   %6.4lf\n",
         x,z,(unsigned long)pf,*pf);
}
