Lösung:
/* zeiger2.c Demonstriert die grundlegenden Aspekte von Zeigervariablen: Die Aufgabenstellung lautet: a) Variablen f (float) i (int) und Zeigervariablen dazu definieren b) den Variablen f und i Werte zuordnen c) den Zeigervariablen die Adresse der dazu passenden Variable zuordnen d) ueber die Zeiger f und i aendern und die Aenderung ueberpruefen e) Inhalte und Adressen aller Variablen anzeigen */ #include <stdio.h> int main(void) { int i, *ptoi; /* i ist vom Typ int, ptoi ist Zeiger auf int */ float f, *ptof; /* f ist vom Typ float, ptof ist Zeiger auf float */ i = 4; /* Loesung zu b */ f = 0.01; ptoi = &i; /* Loesung zu c */ ptof = &f; printf("Vorher : i = %3i f = %8.4f\n", i, f); printf("i und f werden jetzt ueber Zeiger geaendert!\n"); *ptoi = 8; /* Loesung zu d ptoi zeigt auf i, *ptoi ist daher der Zugriff auf i ueber den Zeiger ptoi */ *ptof = -(*ptof); printf("Nachher: i = %3i f = %8.4f\n\n", i, f); printf("%s%s%s%s", "Adressen und Inhalte aller beteiligten Variablen:\n", /* zu e */ "-------------------------------------------------\n", "Variable Adresse Inhalt\n", "-------------------------------------------------\n"); printf(" i %8u %8i\n" ,&i, i); printf(" f %8u %8.3f\n",&f, f); printf(" ptoi %8u %8u\n" ,&ptoi, ptoi); printf(" ptof %8u %8u\n" ,&ptof, ptof); return 0; }