/* loes9-1.c Zugriff auf Vektorelemente ueber einen Zeiger */

#include <stdio.h>

int main(void)
{
  double v[10];
  double *p;
  int i, n;

  printf("Zahlen einlesen: Anzahl der Zahlen n = ");
  scanf("%i", &n);

  for (i = 0; i < n; i++) {
    printf("v[%1i] = ", i); scanf("%lf", &v[i]);
  }

  /* Tabellenkopf */

  printf("\n\n"
         "      Adressen     |       Inhalte\n");
  printf("-------------------+---------------------\n");
  printf("    p   =  &v[i]   |     *p    =   v[i]  \n");
  printf("-------------------+---------------------\n");

  /* Vektorelemente ueber Zeiger p erfassen, Inhalt ist dann *p !
     Zum Vergleich wird auch &v[i] und v[i] ausgegeben */

  p = v;  /* p zeigt auf erstes Element des Vektors          */
  for (i = 0; i < n; i++) {
    printf("%p  %p | %8.2f  %8.2f\n", p, &v[i], *p, v[i]);
    p++;  /* p erhoehen, d.h. er zeigt auf naechstes Element */
  }

  printf("-------------------+---------------------\n");

  return 0;

}