ich beschäftige mich gerade mit Zeigern unter C! Habe folgenden Code kopiert und verstehe dort etwas nicht ganz. Vielleicht kann mir von Euch jemand das Problem erklären oder mir einen Tipp dazu geben. Ich verstehe folgende Code-Zeile nicht:
a = *c + *d;
Ich verstehe nicht, wie *c den Wert 7 zugewiesen bekommt! Wie gesagt es wäre supper von Euch wenn mir jemand das einmal erklären könnte.
Ich Danke Euch für die Hilfe.
MFG, Reinhold
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a=2, b=5, *c=&a, *d=&b; // a = 2 b=5 *c=2 *d = 5
a = *c * *d; // a=10 *c=2 *d=5
printf("Ausgabe von a %d\n\n",a);
*d -= 3; // b=2, *d=2
printf("Ausgabe von d %d\n\n",*d);
b = a * b; // b=20 b= 2 a=10
printf("Ausgabe von b %d\n\n",b);
c = d; // *c=20
printf("Ausgabe * von *c %d\n",*c); // hier ist c = 20
printf("Ausgabe * von d1 %d\n",*d);
printf("Ausgabe * von a %d\n\n\n",a); // a = 10
b = 7; // b=7 *d=7
printf("Ausgabe ** von d %d\n", *d); // da b auf die Adresse von *d zeigt, ist *d = 7
printf("Ausgabe ** von c %d\n",*c); // c = ???????????
printf("Ausgabe ** von b ist %d\n",b); // b = 7
printf("Ausgabe ** von a ist %d\n\n\n\n"); // a = 7 ------------
a = *c + *d; // a=14
printf("Ausgabe von a %d\n",a);
printf("Ausgabe c1 %d und Ausgabe d1 %d \n\n",*c,*d);
printf("Ausgabe von a %d\n\n",a);
}